ハーロックハードフォークで起こったこと

Symbol関連の翻訳

NEMのハーロックハードフォークが計画され、日本時間2021年11月19日の午前3:40頃の、ブロック高3,464,800で予定されていました。

NEMハーロックハードフォークについてはこちら
(日本語訳:ハーロックハードフォーク)NEMからのお知らせ
Symbolキプロスハードフォークについてはこちら
(日本語訳:キプロスハードフォーク)Symbolハードフォークの詳細
ふたつのハードフォークが意図することについてはこちら
(日本語訳)ハーロック、キプロス、そして壮大な宇宙の物語

先にSymbolのキプロスハードフォークを無事に終え、NEMのハーロックハードフォークをあとは迎えるのみとなっていました。

ノードオーナーは各々ノードを v0.6.98 もしくは v0.6.99 にアップデートし、ハーロックハードフォークへの賛同の意を評していました。ノードオーナーではないXEM保有者も、アップデートした v0.6.98 や v0.6.99 のノードへ委任ハーベストをし、インポータンスをアップデートされたノードに委任することで賛同の意を評していました。

事実、ブロック高3,464,800ではハードフォークに賛同の意を表すコミュニティメンバーが有効な数を上回り、コミュニティの意思は賛成であったと受け止めて良いかと思います。

ですが結果として、NEMの7回目のハードフォークであったハーロックハードフォークは実行されませんでした。NISクライアントにエラーがあったため、ハードフォークのブロック含まれるトランザクションが実行されなかったのです。幸いにもすぐに修正可能なバグでであり、より多くのテストを経た後、月曜日か火曜日にクライアントのアップデートをリリースする予定だそうです。

コア開発者の3人がそれぞれ状況を説明してくれましたので、ここでは翻訳するだけでなく、難しい技術的なことはサラッと説明しなるべくわかりやすく簡単に、何があったのか、今後どうするのかを説明したいと思います。

コア開発者のツイート

それぞれのツイートを読み込むとこのようなことがわかりました。

  • ハードフォーク時には3種類のノードがあった
    ・1. アップデートしていない v0.6.97 ノード
    ・2. アップデートしている v0.6.98(v0.6.99) ノードで、設定ミスのあったノード
    ・3. アップデートしている v0.6.98(v0.6.99) ノードで、正しく設定してあったノード
  • NEMのハーロックハードフォークでは、ファンドの管理していた資金をバーンし、コア開発者とValkyrieで共同信託管理するウォレットへ再鋳造するトランザクションの送信には単に通常の送信トランザクションを使用していた。[*Symbolのキプロスハードフォークでは、新たにMosaic Supply Revocation Transaction(モザイク供給失効トランザクション)を追加していた]
  • 既存のマルチシグアカウントからの再鋳造の機能検証テストをしっかりとしておらず、トランザクションが送信されたところ、送信エラーが出て拒否されてしまった。
  • エラーが発生した場合に備えてあった「フォールバックトランザクション」が「ハーロックトランザクション」の代わりに発動、予定していたハーロックハードフォークは起こらなかった。
  • アップデートしていた v0.6.98(v0.6.99) ノードは、エラーが発生した場合に停止して、フォールバックトランザクションを含むこの3,464,800ブロックを処理することになっており、(ここでは便宜上Aチェーンと呼ぶ)ネットワークの大多数がハーロックに投票したのですから、これはうまく行くはずだった。
  • アップデートしていなかった v0.6.97 ノードは、停止せずにBチェーンとなり、最終的にはAチェーンと同期する予定であった。
  • だが、アップデートしている v0.6.98(v0.6.99) ノードで、設定ミスのあったノードが停止せず、フォールバックトランザクションを含まないBチェーンを生成し始めた。
  • そして徐々に、無効なチェーンであったBチェーンの投票権が優位になっていった。
  • Bチェーンの投票権はどんどん大きくなり、大多数のチェーンになるまでになった。Aチェーンのノードはさらに遅れをとり、チェーンが大きく分裂してしった。これを解決するには、v0.6.98(v0.6.99) のノードをダウングレードさせる必要があった。
  • コア開発者はコミュニティのメンバーに、インポータンスをAチェーンに振り分けるため、委任ハーベストをAチェーンのノードに切り替えるようにメッセージを発した。
  • 同様に、長年のコミュニティメンバーであるSpizzerbと協力し、彼のノードの.dbのコピーを入手し、BチェーンのノードをAチェーンと同期させた。
  • そこにトラストが連絡を取って来て、コア開発者にトラストのアカウントの秘密鍵を渡した(トラストファンドの共同署名の鍵ではない)。この秘密鍵でコミュニティノードに委任して、Aチェーンの比重を有利にして、2つのチェーンを統合することができる見込みがたった。
  • だがここで問題が発生。このトランザクションを実行できるできるノードが無かった。Jaguar0625NCOSIGIMCITYNREのノードは使えない状態であった。そこで、dusanjp さんにDMを送り、彼のノードにSSHで入り、トランザクションをブロードキャストすることができた。
  • その後Bチェーンを利用していたAllNodesとBinanceのノードが正しいAチェーンに再同期し、最終的にはフォールバックトランザクションを持つAチェーンが有利になり、ネットワークは続行さ、フォークは解消された。
  • 今週末に新しいクライアントのリリース(0.7.0を予定)をテストし、一部の v0.6.98(v0.6.99) ノードが停止しなかった理由や、チェーンの分岐があった理由を解明する予定。
  • ノードオーナーや取引所からは、0.7.0をサポートすると言われている。コミュニティがNEMがSymbolのサブチェーンになることを(圧倒的多数で)投票したことは明らか。


以上コア開発者3人の発表した内容をなるべく簡単に、わかりやすくまとめてみました。


僕が驚いたのは、トラストが今回の件に友好的であることがわかっただけでなく、なんとピンチに協力をしたということです。トラスト側からの意見はほとんど聞くことができず、その点について疑問に思ったり、懸念を示す人がいたことは認識しています。僕もしっかりとトラスト側の主張を聞いてみたいとも思っていましが、これで完全に紆余曲折があったのしても、結果トラスト側とコア開発者側はとても有効的な関係であると納得できました。


近々原因究明と、次のフォークへ向けての用意が発表されるでしょう。その際に僕らコミュニティでも用意できること、ノードオーナーに対しては、アップデート。保有者に対しては委任すべきノードなども知らされると思いますので続報があり次第またお伝えできたらと思います。

最後にHatchetがこのように言ってました。

「クリプトの楽しみ方はいかがですか?。イーサリアムは3~6ヶ月ごとにこのようなプロセスを経ています。コミュニティの協力によるこのような調整力は、分散化の力の最たる見せ場であり、また、コミュニティが一丸となって調整を行い、ネットワークの「同期化」を助けてくれたことをこれ以上ないほど誇りに思っています。」

頼もしいですね。

また、僕のボケも拾ってコメントくれました。何か予測できない問題が起きた時、それを無効にしてやり直す「フォールバックトランザクション」


それに対してHatchetは、


「私もよ、、、ええ私もあるわ。」

Hatchetのチャーミングな面も垣間見ることができました。

この翻訳記事を書いた人

Radio(@RadioRa26841511)

野良翻訳屋Radioですよろしくお願いします。

Symbol関連の翻訳活動しておりますので、ご支援いただけるとありがたいです

Symbolノードに委任して支援する
xym602.allnodes.me

XYMを投げ銭して支援する
NDXLBKLDVKG5RM46KVJYRYMZ4ZUG2LZENTPQXFQ

コメント

タイトルとURLをコピーしました