Scalable Semi-Trustless Asset Transfer via Single-Use-Seals and Proof-of-Publication [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2017-12-11T23:16:19+00:00


Summary:

In a Bitcoin development email thread, Peter Todd discusses the centralization and decentralization aspects of proof-of-publication (PoP) sidechains. He points out that the centralized version of PoP is easier to maintain and scale, as more hardware can be added and the key space can be distributed over multiple shards. However, this simplicity comes at the cost of trust, as valid trees and distributed results need to be ensured without trust. Peter Todd's previous work on Treechains attempts to address this issue, but it remains a significantly more difficult problem.Peter Todd proposes a system of secure token transfers using single-use-seals. The system relies on the unique closing of a seal over a message to prevent double-spends. Single-use-seals are generated by a trusted notary, with each seal committing to the notary's identity through cryptographic signatures. The system can be used for both indivisible and divisible asset transfers. In the case of divisible assets, spend commitments are made to sets of outputs, and split commitments are made to sets of zero or seal/value tuples. The recipient can verify the secure transfer by generating a fresh seal, requesting a new split output from the sender, and confirming its validity.To achieve scalability, a proof-of-publication ledger can be utilized. This ledger achieves consensus over its state through a second implementation of single-use-seals. The size of data required for ownership proof in a trustless manner is discussed, with the merkle path down the k/v tree and key/value components amounting to approximately 3KB per ledger. The update rate is estimated at 356 days per year with 12 updates per day, resulting in 13MB of data annually. However, these numbers can be reduced by publishing only valid signatures or assuming no constant attacks. Furthermore, for clients with multiple tokens, much of the data can be shared among each token, reducing the marginal cost per token after the first one to just 1KB/ledger update, or 4.4MB/year.The author presents a worked example of a scalable and trust-minimized system using a proof-of-publication ledger and single-use-seals for secure transfer of indivisible and divisible assets. The implementation supports two fundamental operations: Close and Verify. A secure single-use-seal protocol prevents double-spending by disallowing the closure of a single seal over multiple messages. To achieve scalability, the protocol commits to a merkelized key:value tree instead of unstructured messages in each ledger entry. Each token is identified by its genesis seal, and the most recent seal is closed over a message committing to a new seal. An actual implementation can use a merkle-sum-tree to commit to the split set, allowing outputs to be proven to the recipient by providing only a single branch of the tree. The marginal cost per token after the first one is just 1KB/ledger update, resulting in 4.4MB/year, which is favorable for many use cases.


Updated on: 2023-08-01T22:16:15.958018+00:00