問題としてよく指摘される「ビットコインはスケールしない」
ビットコインをVISA並の3,000tpsにスケーリングしたいという話。
(執筆途中)
スケール
- 7トランザクション/秒を増やすため、1MB/1ブロックを変更する話
- Gavin的には、年30%増やすというのを提案
- 1MBは、大きすぎても少なぎてもダメなので。
基礎知識
- memory pool (valid だが、unconfirmed なトランザクションが入っている)
- 新しいブロックが見つかると、memory poolからtransactionを削除
- Visaは、平均2,500 tpsを処理(2.12億/日)。ピークで40,000tps (2014/8)
現在のブロック
- 1MB / 1 block (ハードコードされている)
- 約7 transaction per second
Block Propagation の説明
用語
- reconciliation: 2セットのデータの違いを見つけること
- set B: 新しいブロックのトランザクションのセット
- set P: ノードが知っているトランザクションのセット
- IBLTs(Invertible Bloom Lookup Tables): データ構造
- 全トランザクションデータを固定サイズのデータ構造にする(ハッシュとXORで)
- IBLTs は、key-value ペア
- IBLTに必要なキーアイディア
- Canonical ordering of transactions in blocks
- similar (but not identical!) policy for selecting which mempool transactions go into blocks
- Peer sends us an IBLT(newblock) large enough that we are very likely to be able to recover transaction data that is not yet in our mempool.
IBLTsの技術詳細は、長いのでまた別の記事で説明しようかと。
説明
- 全マイナーのmemory poolがsyncしているなら、新しいブロックを固定80-byte のブロックヘッダーとコインベース・トランザクションとしてアナウンスすればいい。けど、現実はそうなってない
- txid48を安全に計算するために: ブルートフォース攻撃を防ぐため、128 bitsのトランザクションIDが必要(IBLT keyにする)。
-
なぜヘッダーだけrelayするのが良くないのか?
- Only DoS-ban on blocks that contain invalid proof-of-work · Issue #3195
歴史
2010年にSatoshiが、最大ブロックサイズを32GBから1MBに変更。
Tree-chains by Peter Todd
Re: [Bitcoin-development] Tree-chains preliminary summary
解決方法の提案
- Lightning.Network
- The Bitcoin Lightning Network
-
SF Bitcoin Devs Seminar: Scaling Bitcoin to Billions of Transactions Per Day – YouTube
-
Storing UTXOs in a Balanced Merkle Tree (zero-trust nodes with O(1)-storage)
- Ultimate blockchain compression w/ trust-free lite nodes
- www.cs.umd.edu/~elaine/docs/bitcoin.pdf
- Scalability, Part 1: Building on Top – Ethereum Blog
- Scalability, Part 2: Hypercubes – Ethereum Blog
- Scalability, Part 3: On Metacoin History and Multichain – Ethereum Blog
参考
-
Bitcoin wiki のスケーラビリティのページ
Scalability – Bitcoin -
スケーラビリティのロードマップ by Gavin
A Scalability Roadmap | The Bitcoin Foundation -
BTCsimのシミュレーション (by btcd)
btcsim: simulating the rise of Bitcoin | Conformal Systems, LLC. -
SF Bitcoin Devs Seminar: Bitcoin Scaling with Peter Todd – YouTube
検索用語
- scalability, スケーラビリティ
- scale, スケール