モナコインの動的 checkpoint がワークする理由
つぶやき、ぽえむ。技術的な話をしているようだが、あくまでも、ぽえむ。
Ⓜ
仮想通貨として使われている PoW チェーンに対する reorg 攻撃で、攻撃者が利益を得る方法は、概ね 2 つに絞られます。
1つ目。板取引でショート仕掛けてから耳目を集めやすい(たとえばダブルスペンド成功とか) reorg を起こし、差益を狙う。
2つ目。reorg による CEX のデータベース不整合を引き起こし板取引中の BTC などを不正取得する。
1つ目の方法は、BTC など価格お高めで流動性も高いコインに対しては有効にワークする可能性はあります。しかし、弱小アルトではコスパが悪すぎて成立しないでしょう。
2つ目は、たびたび行われてきたもので、かつてモナコインを使った攻撃がありました。
ここまでが、おさらい。
Ⓜ
Monacoin-core の最近リリースで有効化されていた alert 利用の checkpoint 動的追加は、reorg を悪用した CEX への攻撃を保護するのが主目的です。(上出の「2つ目」ですね)
ここで、誤解が生じやすいように思うので指摘しますが。この機能は、ブロックチェーンが長期間 fork 状態になるのを防ぐのは目的に必ずしも含まれず、むしろ CEX を保護できるなら fork が長時間に渡るのも辞せずくらいの覚悟が伴ったシステムと解釈するのが自然です。
Ⓜ
実際のところ、checkpoint の動的追加がどのようにワークするのか、時系列的に並べてみます。
まず、チェーンが攻撃され不自然なほど長い reorg が発生したとき…具体的な alert 送出条件はトップシークレットですが攻撃の手法から常識的に推論するならば…負けたほうのチェーンを支持する checkpoint を示す alert が送出されます(はず)。
チェーンを分断させないためには、全採掘者ノードがこの alert を受信できる必要があります。PoW ブロックチェーン脳の持ち主なら、自明ですね。
しかし目的が「CEX を攻撃から保護する」ならば、別に採掘者ノードが checkpoint を受信しなくても構いません。CEX が所有するノードが、彼らが予め設定した承認数に達する前に checkpoint を受け取り、攻撃者が作った長いチェーンを無効として弾けば十分です。攻撃は失敗します。
Ⓜ
動的 checkpoint 非対応のノードを使っている採掘者は、 "何も知らさらなければ"、攻撃者が作ったチェーンの上で無駄な採掘を続けることになるでしょう。
しかし、alert が発出された際には、野次馬たちに騒がれないはずもなく、無駄掘りしている採掘者は早期に気づくでしょう。その際に、ノードをアップグレードするか、自分が掘っていたチェーンが無効になるまで採掘を一旦停止するか。判断をするはずです。
そして、全ノードの 7 割程度が動的 checkpoint に対応している中で、採掘ノードの全部が動的 checkpoint 非対応である可能性は極めて低いでしょう。checkpoint に沿ったチェーンでの採掘が続き、いずれ攻撃者のチェーンを追い越すはずです。
以上を経て、CEX への攻撃は失敗する可能性が濃厚です。それでも reorg 攻撃をしてくるインセンティブがあるとすれば、fork が長時間続いて混乱するのを眺めたい愉快犯の発想、でしょうか。
Ⓜ
ひとたび動的 checkpoint が発行されると、CEX 以外のサービスで混乱が予想されます。モナコインは BTCPayServer に対応していたりモナパーティのような子チェーン利用もあったりするので、影響は大きいはずです。
しかし、動的 checkpoint によって攻撃のインセンティブが抑えつけられているのに、攻撃された際の心配をするのは、奇妙な取り越し苦労というものでしょう。
Ⓜ
さて、諸々を経て、ハードコードの checkpoint を追加した版をリリースしてもよいかもしれません。Verge が攻撃されたあとに出したパッチが、記憶に新しいところです。
Ⓜ
PoW ブロックチェーン脳として優秀であればあるほど、モナコインの動的 checkpoint の真意を理解できないのではと思います。表層的な仕組みは理解できるとは思いますが。
攻撃者のインセンティブを読み、チェーンの外にあるエコシステムがどう動くかを時系列で読み切らないと、なぜワークするのかが見えてきません。
実のところ、実装者であるワタナベ氏自身は明示的な種明かしはしていないのですが。
なお「CEX を攻撃から保護する」は「CEX を特別優遇する」という意味ではありません。モナコインのチェーンへの攻撃インセンティブを減らすのが目的です。
各 CEX の承認数もあがりハッシュパワーの調達も難しくなった今、モナコインのチェーンを CEX への攻撃の道具として使うのは困難になっています。(ゆえに一刻も早く動的 checkpoint は外したい)