LINEで送る
Pocket

gavin-is-god

ビットコインファウンデーション技術主任であるギャビン・アンダーソンは、20メガバイト分のブロックデータにおいて、いくつかのベンチマークを走らせた後、衝撃的な結果が現れたことを報告した。彼によると、コードを部分的に変更を加えたところ、41LOCの減少、取引の検証速度が60倍、メモリ消費が10分の1になったという。

提供された実際のデータは次のとおりだ。

旧コード: (-debug=bench で走らせ、事前検証したすべての取引を確認した結果):
– Verify 1839 txins: 191.66ms (0.104ms/txin)
新コード:
– Verify 1839 txins: 2.06ms (0.001ms/txin)

(TXINは以前のTXOUTの参照。TXINが受理されれば、取引に不正はないと認められる。)

修正コードを見ると、署名キャッシュ(sigcache.cppおよびsigcache.h)を削除し、全体的な微調整に加え検証結果自体をメモリプールにキャッシュするtxvalidationcache_test.cppを新たに加えた構成となっている。

これにより、さらに、メモリ使用量が10分の1となった。

これが何を意味するかというと、ビットコインのクライアントは既に検証した署名も追跡し、これらの署名はブロックに表示されることもある。既に検証された署名は、本来的に再度検証する必要がないものであり、この手間は積み重なり高コストな無駄となっていた。しかしギャビンはこれまで発覚していなかったこの問題を突き止め、ECDSA署名をキャッシュする代わりにより高レベルな状態で取引の検証をキャッシュすることで無駄をなくし、より高速な取引を行うことができるようになったというわけだ。

コードの詳細についてはgithubに上がっているので興味がある方は是非確認してほしい。ギャビンに対する、なんともいえない畏敬の念が浮かび上がってくることだろう。

ギャビンはこの他にもブロックサイズを引き上げより大量のトランザクションを処理できるようにするプランも持っている。今回の修正はビットコインのスケールに直接関わるものではないが、より基礎的な、ビットコインにとって欠かせないアップデートだ。

ビットコインは天才的な開発者のおかげで急激に成長し続けており、あと数年もしたら、ビットコインの取引が遅いとは誰も言わなくなるのではないだろうか。そんな未来が見えたアップデートだった。

この記事を書いた人

ざきやま(山崎大輔)
ざきやま(山崎大輔)from Cryptocurrency world
ビットコイン専門記者 BTCN編集長
ブロックチェインの可能性を、知的財産の保護やゲーミングカルチャーへ応用できないかと考えてます。
monacoin:MTn7hiNovBHyN7gjtvD1Hh7W96Zmghp41B
bitcoin:1NK8S4ep9ZUZ9H9AmTAfvrCVVAKLbpmi36