4 ms·
"There's no way to send a message to someone else over an untrusted channel with a very good assurance that it hasn't been tampered with, without a trusted chan
by zaphod420 4y ago
"There's no way to send a message to someone else over an untrusted channel with a very good assurance that it hasn't been tampered with, without a trusted channel. You need some way to convey trustable information. "
This is kind of what real p2p, open, permissionless, decentralized blockchains are good for...
- fluoridation 4y agoBlockchains are not trusted channels. They don't permit secure communication between any node. That is to say, I can't send you a secret tamper-proof message over a blockchain if we haven't exchanged information over some other channel previously.
- a1369209993 4y ago> I can't send you a secret tamper-proof message over a blockchain if we haven't exchanged information over some other channel previously ... Of course you can? If we're interacting via blockchain we both have mutually-known cryptographic public keys used to sign transactions. Assume without loss of generality they can't be used directly for public-key encryption (eg they're Lamport keys). I generate a McElice public encryption key and include it in a transaction signed with my signing key. You use that to encrypt your message and include the encrypted message in a transaction signed with your signing key. I decrypt the message; it's secret and tamper-proof. If, as in londons_explore's comment, we're worried about any specific algorithm being broken, we can use a bunch of different signing keys, and a bunch of different encryption keys, such that a attack would have have to break all the signature algorithms or all the encryption algorithms to compromise the message.
- fluoridation 4y agoIf your only method of communication is a blockchain, you can't know who owns which public key. To know that you would need to talk directly to that person and have them tell you "key such-and-such is mine". You still need that trusted channel. Since you can't know who controls the public key your messaging over the blockchain and they can't know the public key that's messaging them is controlled by you, an impersonation attack is trivial. Someone else can send that public key a message saying "hello, I am a1369209993, let's agree on a symmetric key". So, no, a blockchain is not a trusted channel. For the purposes of communication, it offers no more security than the public Internet. It doesn't even guarantee delivery of messages.
- a1369209993 4y agoIf your only method of communication is a blockchain, a public key is who owns that public key. "Hello, I am q8oYflHjXyXj7Pgu /0R4fkOjFG83GTI8 2bmTfBkzRcLJXNiN 4FuHE7Me71aWyTbk, let's agree on a symmetric key." is incompatible with the would-be impersonator supplying a different public key. (Assuming you're paying attention, I guess, but the original claim was that it was impossible, not that it was awkward and easy to screw up, since the latter is more or less true of practially all cryptography.)