Systems will never scale if you require global consensus for local actions by independent agents. For example, I should not have to know where every dollar in the economy is when I want to buy something from you.
Excerpted from Arthur Brock:
“Stop the Nonsensus! (Nonsense Consensus): Systems will never scale if you require global consensus for local actions by independent agents. For example, I should not have to know where every dollar in the economy is when I want to buy something from you. That adds an overhead of ridiculous complexity for something which needs to follow the principle of pushing intelligence and agency to the edges rather than center. Likewise, an atom should be able to bond with another atom (see cartoon) without accounting for status every electron in the universe. However, Bitcoin and blockchains are built around authorized tokens embedded in every transaction/record, which embeds unnecessary complexity and limitations for scalability into every interaction. Tokens are not what makes a decentralized system work, cryptographic signatures and self-validating data structures are.
* Intrinsic Data Integrity:
For a long time, data integrity has been conflated with the hosting, control, and access to the device on which the data is stored. So banks have big firewalls to keep you from hacking in and changing your account balance. But today we have self-validating data structures like hash-chains and Merkle-trees which leave evidence of tampering by breaking structural integrity, cryptographic hash, or counterparty signatures when the data is altered. This makes it possible to distribute the storage and management of data and ensure that the people holding it can’t tamper with it. In other words, you could be an authority to show your own account balance, yet not be able to tamper with your account history. When implemented properly, this is the key to enabling massive scales of storage and throughput by enabling auditable data to be stored anywhere/everywhere instead of requiring agreement on single shared ledger.
* Distributed Process not Consensus:
Let’s learn a bit from tracking how scalable systems in nature and real world get things done. Speakers of a language each carry the means to generate sentences as needed, we don’t store every sentence spoken in some global ledger. Cells each carry a copy of their instruction set (DNA), rather than a record of the state and type of every cell. What you need to distribute in a system of collective intelligence is the ability to distribute reliable processing according to shared agreements. Consensus then becomes something used for to ensure the integrity of the processing, rather than the medium upon which processing is executed. This approach, lets you confirm that your copy of the process is valid, so you can rely on it to work according to the agreed upon rules and proceed authoritatively without having to wait for the rest of the network to validate, verify and update itself with your state.
* Agents not Coins:
Instead of starting with cryptographic coins or tokens as the fundamental thing that exists, start by having the agents/people/organizations (or their signatures and account IDs) be the primary things that exist. When each person has a copy of the process needed to participate, and their records are stored with intrinsic data integrity, that enable two people to perform a transaction without requiring approval or consensus of anyone else. My process audits your transaction chain to make sure you’re in a valid state, yours audits my chain, and either rejects the transaction if it puts someone in an invalid state according to the coded agreements. I know, you have a lot of questions about to make sure this can happen reliably, but I’ll drill into that later.
* Fractal not Global:
You would think that the existence of the web would have taught us already that we can have shared access to pretty reliable, referenceable, information without us all having identical copies of it. Starting by creating a global ledger where each copy has to be in the same state is a totally different problem than having a fractal process for creating and organizing data which can be referenced by anyone wherever that data lives. It can still provide globally accessible agreement about data, but that agreement is constructed from fractally assembled reliable parts instead of requiring each part to reach global (or 51%) agreement to commit each element of data. One of the beautiful outcomes from this is such a massive reduction in the processing and storage requirements that it becomes feasible to run a full node on a mobile phone instead of requiring specialized mining hardware.”
For more, check out the Metacurrency project pages on Medium here.
Photo by Marc_Smith
SAFE Network / MAIDSAFE, have a different sollution to this problem, where consensus is reached in smaller local groups and then validated across a truly decentralized network of storage and computing power. Ending up with a completely end to end encrypted decentralized network.
The first, although centralized, test versions are out with a sample app. The MVP, where user can run their own vaults should be right around the corner, ditto with encrypted messaging.
Amen to all this.
Only thing is this: who writes the rules?
Great point. But there’s an opportunity in that shortcoming. The blockchain is probably still great for things that require universal consensus where changes SHOULDN’T be scalable. Documents like policies, and legislation are digitized as executable processes they could potentially be guaranteed by the blockchain. On the other hand, a truly decentralized system of currency more resistant to extraction of wealth via centralized manipulation such as inflation and speculation (which bitcoin is NOT judging by the constant churn) … might need to use something else. Or following the fractal analogy … one might simply use a separate blockchain for each community, with each community periodically storing a part of that blockchain in a separate higher level blockchain for groups of communities, and part of that blockchain being stored periodically in a separate even higher level blockchain for nation-states, and so forth for regions, continents, … etc.
Andy I agree with your idea re each community having its own blockchain with permission based aggregation at higher level communities. I am working on a organisational methodology/concept called CommunityLink along these lines which also addresses Mikes comment re who writes the rules. It is based around people as agents not coins as per arthurs article with what I can a UIA.or universal information account..and a multi level integrated knowledge model which orders the blockchain communities to maximise the linkages (Holistic Capital Management)….overseen by a national data administrator (Community Access) established by representative consumer, regional, industry, technology, and gov users….overseeing a trust based blockchain data registry which provides the legal basis to exchange the higher level blockchain data with commercial benefits passing back to community/UIA that created it via pre agred comunity loyalty algorithm. Now looking at an initial community blockchain mix as a smart society “product”..with smart community, smart industry , smart consumer blochchain “interlinks to start the process described by Andy.
That is mostly accurate, however shows a “currency thinking”. Currencies are useful as a temporary accounting mechanism during value transfers, however, aren’t necessary. If the currency is sound (data is not tampered with), your value transfer can be just as sound without the currency.
Currencies are useful for economies of scale in creating efficiency between value transfers, such as barter.
All value transfer, including currency, is accounting.
One interesting thing that few understand, is a standard contract structure (language) replaces the need for currency at all.