- BTCのアルゴリズムに対する改善策
- ビットコインコアに含まれている「コイン選択(coin selection)アルゴリズム」は極めて非効率的であり、取引手数料が高騰する一因になっています。これを改善すべく、BnB(Branch and bound)という方式の採用が検討されています。
コインの選択アルゴリズムが抱える問題
ビットコインは単なる電子決済システムにすぎませんが、法的通貨との交換に役立っていた「コアシステム」がまさに更新されようとしています。
それは、コイン選択(coin selection)というアルゴリズムです。
「コイン選択(coin selection)」と呼ばれたアルゴリズムは、ユーザーの取引を成り立たせるために、どのビットコインデータが一緒になるのかを決定するものです。
本質的にコイン選択のコードは、たとえば10ドル(約1,050円)の請求書をレジ係に提示して7ドル(約735円)のアイテムを与え、消費者が3ドル(約315円)をおつりで受け取るという支払いプロセスを複製します。
簡単に言えば、ビットコイン取引に対して、「送金側が2BTCを送った際、受け取る側がどのような形でビットコインを受け取るのかの内容を決める仕組み」になります。
ビットコインはまだまだ発展途上であり、トランザクションやマリアビリティ(トランザクション展性)のような問題を複数抱えています。
コイン選択のアルゴリズムはもちろんのこと、現時点では法定通貨(円やドルなど)の一般的な商取引のようにはいきません。
そもそも、10ドルで7ドル分の物を買って、3ドル返ってくるという仕組みにはなっていないのです。
マリアビリティ問題ではセキュリティ面、トランザクションでは取引速度に関する問題が発生したように、ユーザーに対する影響も少なくありません。
ビットコインとビットコインキャッシュのハードフォークのように、システム改善のための仕様の変化は、ビットコインを基に形成されている利害関係の影響を色濃く受けてしまい、思うように進展しない可能性も考えられます。
これまでにsegwit実装を含め、17回に渡るアップデートがなされているビットコインを動かすためのコアシステムである「ビットコインコア」に含まれているコイン選択のアルゴリズムは、開発者のAndrew Chow氏曰く、非常に非効率的です。
とりわけ取引手数料の部分の非効率性が指摘されています。
必要な取引手数料を策定するために膨大な作業が必要になっており、取引量が増えるにあたってその傾向は顕著になっていきました。
これがビットコインの取引数増加による”取引手数料の高騰の一因”にもなっていたのです。
当然ながら、そこでスケーラビリティ問題に対するsegwitのように解決策が生まれました。
取引手数料削減に向けた取り組み
コイン選択アルゴリズムが抱える問題を解決し、取引手数料削減のための取り組みの一つが、仮想通貨用ウォレットのプロバイダーBitGoのエンジニアである「Mark Erhardt」氏が行っている、BnB(Branch and bound)という方式の採用です。
この仕様変更は、最終的に「取引手数料の削減やサイズダウン」に効果があるとされています。
この取り組み自体は2016年から行われていましたが、先に実装段階に移ったのは、Andrew chow氏が行っていた取り組みです。
16度目の更新で行われたsegwit実装に続き、17度目のアップデートでコイン選択問題解決に向けたアップデートが実装される予定になっています。
Chow氏によれば、このアップデートによって「理解が難しかったコイン選択のアルゴリズムを、一般ユーザーにもわかりやすくする」という利点をもたらすと述べています。
ビットコインは、オープンソースの仮想通貨です。仕組みの一つ一つがより容易に伝わるようになれば、容易に改善できるようになることを意味しています。
無駄の多い取引の解消が課題に
そもそもビットコインの取引は、例えば0.5BTCを送るのであれば、0.5BTCデータ一つが送られるのではなく、複数のデータで0.5BTC分を作成して送るという方式をとっています。
繰り返しになりますが、この際にどのような組み合わせで、0.5BTCを作るのか、それを選ぶのが、コイン選択アルゴリズムの役割なのです。
ただ、このアルゴリズムは現在、ランダムでこの組み合わせを選ぶようになっています。つまり、「0.4+0.1」という組み合わせもあれば、もっと小さい数値の組み合わせによって作られるパターンもあります。
しかも、場合によっては0.7になるような組み合わせで生成され、送られる際に0.2BTC分を破棄するような、無駄の多い取引すら行われてしまうのです。
実際には捨てられることはなく、送金した人間のウォレットに「change output(交換出力)」の分として保存されます。
ただし、問題ないのは小数点1桁の場合など、ある程度以上の取引額で計算が行われている場合です。実際にはもっと少額になる場合もあり、ダスト同然になってしまいます。
これが取引手数料の増加やマイクロペイメントの困難を引き起こしていたのです。
改善策
では、Chow氏が発表した新たなアップデートや、BnBアルゴリズムはどのような方式になっているのでしょうか。
できるだけ、changeoutputが、出現する組み合わせを排除するという仕組みになっているようです。
Chow氏は、以下のように述べています。
「このことは単純に取引手数料を減らすだけでなく、ビットコインが残高管理の方法として採用している”UTXO(Unspent Transaction Output)”が抱える問題も改善、取引速度も改善するという大きな利点をもたらす」
まだ未実装の段階ではありますが、この方式は実験段階で効果が証明された仕組みでもあり、Erkhardt氏によれば、既存のアルゴリズムが一般的な取引を行う際、40%のchange outputを生み出していたのに対し、新しいアルゴリズムではこうした不要なデータを取り除くことに成功しました。
単純計算ではありますが、40%の速度向上、あるいは手数料削減に貢献することが考えられます。
まとめ
ビットコインがsegwitに続き、これまで棚上げされていた大きな問題に正式に取り組むこと、そしてそれが実装される予定が発表されました。
初の仮想通貨として多くの人に愛され、投資資材として多大な人気を持ちながらも、マイナー同士の利権構想などから、これまで数々の問題が棚上げにされてきました。
初期より提唱された改善策であるsegwitも、モナコインが先に実装を発表するなど、遅れを取っている感も否めません。
また、ピーク時には200万円台まで高騰していた市場価格も、70万円を下回るなど急激に落ち込んでいます。(昨日からようやく回復の兆しを見せています。)
仮想通貨の基幹技術であるブロックチェーンを利用した多くのサービスやビットコインの改良を目指す通貨の誕生、大手金融機関の市場参入表明などが相次いだ結果、相対的に進展の見えにくいビットコインが有用性を示す上で苦境に立たされつつある現状もあります。
この新たなアップロードが実装され、もたらされる変化に注視していく必要があります。