but what about blockchain apps?

date: 2018-01-15

tags: technology

blockchain developers

blockchain developers

global synchronization on a blockchain creates a huge amount of unnecessary overhead. in many ways blockchains (BTC, ETH, &c.) and DHT networks (BitTorrent, IPFS, Dat, &c.) all have a very antiquated mindset. they have a decentralized architecture, but they are still operating in terms of a shared global data structure. Secure Scuttlebutt has some design challenges that address this issue directly.

secure scuttlebutt

design challenges

the primary value i see in blockchains right now is payments. honestly the scaling challenges that they are forced to face because of the shared global state they depend on have me inclined to believe that they aren't really suited for use as the basis for general purpose applications. i mean, most blockchains struggle to keep up with just processing payments. there isn't a single blockchain on the planet that can keep up with the tx processing speed of traditional banking systems.

cryptocurrency in an inspiring concept, but current-gen tech isn't really up to the task. this is the main reason why i'm not in a hurry to launch something: the "killer app" for decent systems is still very much a research problem imo. it is particularly sobering when you look at the practical outcomes of these types of systems. BTC and ETH really aren't that distributed. BitTorrent perhaps a bit more, but you are still dependent on the global internet and a relatively small number of trackers and indexes.

i don't think blockchains are a good substrate for mesh applications. even a blockchain-linked runtime is tethered to the problematic parts of relying on a global distributed data structure. Secure Scuttlebutt is a peer-to-peer protocol designed to avoid global singletons. blockchains and DHT s are distributed systems, but they are still designed around a single, global, distributed data structure. this is a problem for a mesh because you cannot rely on access to the global internet for arbitrary names. the network needs to be aware of a constantly changing network topology. unfortunately, this is very inefficient in IP. throughputs drops off rapidly for relatively small swarms.

blockchain-linked runtime

mesh network throughput

a mesh-oriented protocol does not require internet access to operate. with Secure Scuttlebutt (and bbnet for that matter) i can join an internet-disconnected LAN or wireless mesh and still interact with my local peers. there aren't any blockchains that can operate under these conditions: you always need internet access to interact with peers.


i don't have a solution to this problem for financial applications, but most applications aren't fintech. i don't need a globally consistent data structure to share cat photos or special music with my friends, or to play a video game. i'm not even convinced that i need that for anything, but i can't prove it yet.