Skip to content

Instantly share code, notes, and snippets.

@monacoinproject
Last active September 12, 2018 09:27
Show Gist options
  • Save monacoinproject/ff813bc5ec64783ca39dd5d058bc58f2 to your computer and use it in GitHub Desktop.
Save monacoinproject/ff813bc5ec64783ca39dd5d058bc58f2 to your computer and use it in GitHub Desktop.
0.16.2チェックポイント配信説明
51%攻撃などの大規模reorgを狙った攻撃を無効化するため、0.16.2がある程度浸透したところでチェックポイントの配信が行われます(*)。
ジャッジノードと呼ばれる特別なノードがネットワーク上に複数設置され、予め定められたルールに基づいてチェーンを確定させます。
採掘から数ブロックの経過をモニタし、確定したブロックをチェックポイントとして配信します。
判定には個々のトランザクションの内容は参照されず、Monacoinprojectが取引に介入するようなことはありません。
ただしMonacoinのチェーンを乱すSelfish Mining等の手法に対しては今後対策を行う可能性はあります。
ジャッジノードの仕様についてはセキュリティの点から非公開とします。
最後に受信したチェックポイントはdumpvolatilecheckpointコマンドで参照できるので、このコマンドで返るHeightの値より低ければ入金は確定したとして良いと思います。
ただしメンテナンス等によりチェックポイントの配信が停止する場合も考えられるので、200ブロック以上経過など、大きめのブロック数経過による判定も併用してください。
また、このチェックポイントの受信は強制ではなく、monacoin.conf(cmdcheckpoint=false)又は実行時に引数(-cmdcheckpoint=false)を指定することで拒否できます。
チェックポイント関連RPCを用いて誰でも同様の機能を作成可能なので、より良い提案があればそちらを使用されると良いかと思います。
* 0.16.2の浸透前でもテストのため配信する場合があります。
一度配信されるとネットワーク上に残り続けるので、本配信開始前に古いブロックのチェックポイントを受け取ることがありますが正しい動作です。
@monacoinproject
Copy link
Author

物議を醸しそうな手法は避けるべきなのは重々承知で、まずはチェーンの安定と導入・廃止のしやすさを取った。
ハイブリッド案も検討したが採算度外視なら攻撃可能で、規模の小さいコインでの採用は危険と判断。
他のチェーンに依存する提案も来たが、それはあまり好ましくないかなと保留。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment