Scuttlebutt Protocol Guide
Anyone know why they used UTF-16 for the message type, instead of UTF-8?<p>Also, I&#x27;m skeptical that two peers can exchange keys without a third party, without being susceptible to man-in-the-middle attacks. But maybe the paper linked in the article proves that it&#x27;s possible?<p><a href="https:&#x2F;&#x2F;dominictarr.github.io&#x2F;secret-handshake-paper&#x2F;shs.pdf" rel="nofollow">https:&#x2F;&#x2F;dominictarr.github.io&#x2F;secret-handshake-paper&#x2F;shs.pdf</a><p>When I was playing with p2p 20 years ago, I found that NAT traversal was far harder than the messaging protocol (I just copied a few commands from IRC at the time). So hard in fact, that I failed to solve it after 2 years of effort. I realized later that NAT is part of a cluster of problems with networking, the main one being that TCP should have been a layer above UDP (not beside it) and that connectedness was never really a good concept (it should have used identifiers like this instead of IP addresses so the stream survives changing LAN&#x2F;Wi-Fi&#x2F;mobile networks). Unfortunately, the article doesn&#x27;t talk about UDP much other than for broadcasting peer identifiers on the LAN. So I&#x27;m not sure how much use this would have in the real world for stuff like game networking, much less state transfer with something like a software transactional memory (STM). I wonder if anyone&#x27;s made an STM that runs on a readonly transaction log like this, kind of like CouchDB, RethinkDB or Firebase maybe? But I digress.<p>And I might have used the empty string &quot;&quot; to represent a null hash.. wait I misread that, they use actual null to represent the null pointer in the linked list of message hash addresses, which is great!<p>Could this be used to build a web of trust? Or is it meant to be more transient, like maybe people broadcast on throwaway identities? Could we drop PGP into this?<p>Maybe this is more like an RSS feed than something realtime like WebRTC?<p>Other than that, this seems like a pretty decent protocol, these are just some thoughts&#x2F;concerns that stood out for me.