著者:とみ三(当サイト管理人)
※2020年5月30日、加筆・修正を行いました。
日本時間2019年7月2日17時から20時頃にかけて暗号通貨Dashのアップグレード作業が行われ、開発を担っているDashコアグループによりChainLocks(スポーク19)とLLMQ-Based InstantSend(スポーク20)がアクティブ化された。
ChainLocksによりDashは51%攻撃への極めて高い耐性を獲得した。また、LLMQ Based InstantSendにより従来のInstantSend機能が拡張、マイナーによるブロック生成や承認回数の制約を受けずに連続・連鎖的な送金を繰り返すことが可能になり、すべてのトランザクションが約1秒で決済完了となる。
LLMQとは
LLMQはLong Living Masternode Quorums(長寿命マスターノードクォーラム)の略で、予算案投票などで行われている全てのマスターノードによる投票(署名)の仕組みとは別に、マスターノード内に小規模のクォーラム(選抜集団)を作ることでスピーディーな意思決定を可能とする。DIP6(Dash改善提案6)としてAlexander Blockにより提案された。
現在のマスターノードネットワークを議会に例えると、LLMQは議会の中の委員会のようなものと言えるだろう。マスターノードをランダムに選抜したLLMQが定期的に生成されることで攻撃耐性を高めている。現在、3つのタイプのLLMQが存在し、50あるいは400といった数の選抜されたマスターノードが1時間あるいは12時間といった長時間の周期でランダムに再構成される。
ChainLocksの仕組みとDashネットワークの堅牢性
ChainLocks(チェーンロックス)は、LLMQのうち60%のマスターノードが同一の新しいブロックにBLS署名をした場合に他のブロックが拒否される仕組みである。これによりブロックの再編成は不可能となる。DIP8としてAlexander Blockにより提案された。
ビットコインには、最長のチェーンを正とする「最長チェーン(longest-chain)ルール」がある。しかし、最長のチェーンが後から覆る可能性があるため、確実な決済を行うにはマイナーによる6回の承認(所要時間約60分)を待って決済完了とみなす等の安全策をとる必要がある。Dashでは、LLMQの6割が最初に発見・署名したチェーンを正とする「第一発見(first-seen)ルール」を導入したことになる。これにより、一度承認されたトランザクションがブロックチェーンから消えることはなくなるため、複数回の承認を待つ必要はなくなった。
BLS署名はシュノア署名と異なり、非対話的な署名の集約が可能で、ブロック内の署名を一つに集約することができる。
ChainLocksの実装によりDashを攻撃するにはハッシュパワーの5割以上のみでなく、マスターノードの少なくとも6割以上を支配しなければならなくなった。マスターノードを運営するには1,000 DASHの所有の証明が必要で、現在Dashのマスターノード数は4,801なので4,801,000 DASHがマスターノードの裏打ちとなっていることになる。これは、これまでに供給(採掘)された約890万 DASHの約54%にあたる。仮に現在Dashを所有していない攻撃者が6割以上のマスターノードを支配しようとする場合、市場に流通しているDashのみならずマスターノード運営者からもDashを入手する必要がある。攻撃者がDashをかき集めようとすれば、Dashの価格が高騰するため攻撃にかかるコストは極めて高くなる。Dashネットワークの堅牢性は飛躍的に高まったと言える。
従来のInstantSendとLLMQ-Based InstantSendの違い
従来のInstantSendは、その都度ランダムに選ばれた10のマスターノード(短命のクォーラム)のうち6以上のマスターノードがトランザクションをロックし、そのトランザクションを含まないブロックは拒否されるという仕組みだった。これに対して、LLMQ-Based InstantSendは文字通り長寿命のLLMQがメモリプールに入ったすべての適格なトランザクションをロックする。DIP10としてAlexander Blockにより提案された。
従来のInstantSendは、PrivateSendのためのミキシングトランザクションなどInstantSendにできないトランザクションが存在した。また、マイナーの承認がない状態ではInstantSendによる連続的な送金ができないなどの制約があった。
LLMQ-Based InstantSendでは、すべてのトランザクションがInstantSendとなり、マイナーの承認がない状態でも送信回数の制限はないため、連続・連鎖的な送金が可能となる。追加の送金手数料はかからないため送金手数料は極めて低い(現在の送金手数料の中央値は約0.06円)。すべてのトランザクションは約1秒で決済完了となり、不可逆なものとなる。二重支払いの問題はなく、ビットコインにはない完全なファイナリティ(決済完了性)をDashは持ったことになる。
暗号通貨取引所がDashの入金に複数回の承認を求める必要はなくなった
現在Dashを取り扱っている暗号通貨取引所(日本にはない)は、ユーザーがDashを入金してから取引所アカウントに反映させるまでにマイナーによる複数回(10回、50回など)の承認を必要とするため時間がかかる。
DashがChainLocksとLLMQ-Based InstantSendを実装したことにより、1回の承認を待たなくてもトランザクションは決済完了となるため即時に入金を反映させることが可能となった。この事実をまだ知らない取引所関係者も多いと思われる。今後世界中の取引所でDashによる即時入金が実現することを期待したい。
歴史的な意義
Dashは、PoWを採用する暗号通貨で初めて51%攻撃への極めて高い耐性を獲得し、パブリックブロックチェーンにはないとも言われるファイナリティ(決済完了性)も獲得した。今回のアップグレードはDashにとって歴史的なアップグレードとなったが、ブロックチェーンの歴史上でも重要な意義を持つことになる可能性がある。
この記事に関連するウェブサイト
- Introducing Long Living Masternode Quorums
https://blog.dash.org/introducing-long-living-masternode-quorums-76ea8b23a85a
- Mitigating 51% attacks with LLMQ-based ChainLocks
https://blog.dash.org/mitigating-51-attacks-with-llmq-based-chainlocks-7266aa648ec9
- Product Brief: Dash Core Release v0.14.0 (now on testnet!)
https://blog.dash.org/product-brief-dash-core-release-v0-14-0-now-on-testnet-8f5f4ad45c96
- DIP: 0006 Long-Living Masternode Quorums
https://github.com/dashpay/dips/blob/master/dip-0006.md
- DIP: 0008 ChainLocks
https://github.com/dashpay/dips/blob/master/dip-0008.md
- DIP: 0010 LLMQ InstantSend
コメントをお書きください