問題としてよく指摘される「ビットコインはスケールしない」
ビットコインを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, スケール
 



