Author: Peter Todd 2013-11-19 11:00:23
Published on: 2013-11-19T11:00:23+00:00
Bitcoin's design has two fundamental purposes: proof-of-publication and order consensus. These are closely linked to validation and initial coin distribution, leading to an unscalable design. However, by separating these purposes, scalability and validation of the system can be improved.Proof-of-publication is designed to solve the double-spend problem by agreeing on a common place for all transactions to be published, called the blockchain. This allows anyone to examine the transaction's validity. Order consensus is achieved by establishing the order in which data was published. Validation is an optional optimization that could operate without it.The minimum domain for anti-double-spend proof-of-publication is a single txout. In this scheme, CTxIn's in each block are sorted by the hash of the transaction output being spent and committed through a merkle tree. Miners do minimal validation, and Bob needs to examine the chain of all transactions to determine the payment's validity. However, privacy is increased as whole transactions need not appear in the blockchain.Full TxIn set commitments define the set of all valid oldest CTxIn's. For any given CTxOut, the first valid CTxIn found in any block is included in this set. The state of the TxIn set can be committed to using a merkelized radix tree whose tip is committed to by the block header. Mining with incomplete blockchain data is possible, but the deletion problem arises if a copy of some of the TxIn set cannot be found. This issue can be resolved through proof-of-stake combined with proof-of-work.Alan C. Reiner, Adam Back, and Peter Todd are all contributors to the development of Bitcoin. Reiner proposed a blind symmetric commitment for stronger Byzantine voting resilience. Back suggested near-block broadcasts for proof of transaction propagation. Todd wrote about perverse incentives to withhold blocks. All three topics were discussed on the Bitcoin Development mailing list. Todd can be contacted at peter@petertodd.org.
Updated on: 2023-06-07T21:18:20.203630+00:00