先週末、Reddit上の有志がビットコインのネットワークに対してストレステストを実施した。数人がスクリプトでトランザクションを大量に生成し、ブロードキャストし続けるという方法だ。

彼らが短時間の間におよそ5万件の取引をビットコインのネットワークに放出した結果、通常の取引を含む24000件が4時間の間未承認のまま取り残され、一日の取引量は過去最大の14万件に達した。

ストレステストの結果によって得られたデータは、次のことを差し示している。

マイニングプールの多くは、ブロックサイズの上限を1MBではなく、自主的に0.75MBに制限している。

すなわち、実際には限界処理容量の75%までしか処理していないということであり、一日のトランザクション限界は次の式で表される。

7 tps * 0.75 = 5.25 tps (実質)7 * 0.75 * 86,400 (sec/day) = 453,600 tpd (実質)※ tps = 取引/秒 , tpd = 取引/日

筆者は以前、20万取引になると問題が顕在化しはじめると試算したが、今回の検証でわかったように実際には15万取引前後から問題が現れ始めるようだ。

手数料を多く含めたトランザクションについては遅延が発生しておらず、被害を受けていない。

筆者の所感ではあるが、承認される取引手数料の閾値としては0.0002BTC(200bits)程度からではないかと思われる。個人的に利用しているGreenAddressというマルチシグウォレットはかなり手数料が高く、平均して0.0005BTC(13円相当)程度取られる状況だが、取引の遅延にあったことはない。

大量のトランザクションはごくわずかな人間によって生成された（重要）。

数人単位でネットワークへ影響を与えることができてしまうという事実は、実際のところ、かなり危ない状況だ。報告者は、大きな問題を引き起こすことはなかったとしているが、比較的簡単なスパム行為でネットワークの一部を遅延させることができる場合、何らかの用途で悪用されてしまうこともあり得るだろう。

取引手数料が低い／最低の場合、最初の承認までに3~4時間が必要になる。

一部のウォレットでは取引手数料を最低限（1円程度）に設定されており、変更できないため現時点でも多くの遅延報告が見られている。

スケーラビリティの問題は、コミュニティの中での最近の大きな関心事である。ギャビン・アンドレセン氏はブロックサイズを20MBに引き上げることでこのような問題対策しようとしているが、現時点で、ピーター・トッド氏をはじめとするコミュニティの多くの人々はこれを良く思っていないようだ。

そして、それは技術的な問題よりも、哲学的な問題が大きいようだ。もちろんブロックサイズを引き上げることで、帯域幅やハードディスク容量を多く求められる。しかし、これはムーアの法則が続く限りはさほど大きな問題ではない。それよりも、ブロックサイズを引き上げることで、力の弱い（低ハッシュパワー）のマイナーや帯域幅を確保できない地域に拠点を置くマイナーがネットワークからはじき出されることに大きな問題がある。

このような事態が発生すると、マイナーやマイニングプールの中央集権化が起こり、匿名性や分散性を維持できなくなってしまうというのが反対派の意見である。

報告者はこの点については触れていなかったが、ストレステストによって問題が顕在化されてしまったことを考慮し、「ブロックサイズの引き上げ」と「動的な取引手数料の実装」は急務であると結論付けた。

Reddit - Stress Test Recap