NEM CatapultのBisonアップデート情報(トレストの声アリ)

 最終更新日2019/01/23 公開日2019/01/23    この記事は 約15分 で読めます。

CatapultのNEMパブリックチェーンへの移行がまたれますが、今回の和訳記事はBisonの公式アップデート情報です。Bisonというのはコードネームで、次のバージョンがcow、その次がdragonだそうです。

途中、「トレストの声」をはさんでます。和訳本文のところは技術的な内容が濃いのでそこだけでもどうぞ。

NEM CatapultのBison

11月2日、Catapult(バージョン2)のBisonアップデートが発表され、CatapultサーバーのGithubリポジトリに対して実行されました。Bisonアップデートの以前には、Alpacaアップデートが行われており、今後はCowアップデートも控えています。

今回のアップデートは、パブリックブロックチェーンCatapultのアップデートのリリースに向けた重要な一歩で、NEMのコア開発者(gimre、BloodyRookie、Jaguar0625)が行ってきた努力の結晶です。

具体的には、Bisonは3つの主要機能を導入します。その機能によりNEMはDLT(Distributed Ledger Technology=分散型台帳技術)イノベーションの最先端に位置し続け、パブリックブロックチェーンの中でも傑出した存在となります。

その3つの機能とは、アカウントプロパティマークル状態証明NEMへのキャッシュ状態のバッキングです。

では、この技術的専門用語は実際には何を意味するのでしょうか。この記事では、それぞれのアップデートを解説し、その仕組みと、NEMとそのユーザーにとってどんなメリットがあるのかを説明していきます。

1) アカウントプロパティ

アカウントプロパティという言葉は一般的な単語のように聞こえますが、ブロックチェーンの分野では具体的な技術的定義を持ちます。

スマートコントラクトと同様に、アカウントプロパティは「スマートルール」の集合体で、あるブロックチェーン上のアカウントが実行可能なことと不可能なことを規定します。

ユーザーはアカウントプロパティを使用して、アドレス、トランザクションの種類、もしくはモザイクIDなどを判断材料として、トランザクションの許可およびブロックを行うことが可能になります。

例えば、あなたの友人のスーザンが、容易に記録が保存できることを理由に、暗号アセットの取引を個人のアドレス間で成立させておきたいと考えたとします。数あるアセットの中でも、スーザンは架空のEGGモザイクを"クレイジーチキン取引所"で取引しています。

アカウントプロパティを通じて、彼女はNEM Catapultブロックチェーン上でアカウントを定義し、送られてくるトランザクションが、クレイジーチキン取引所の彼女のデポジットアドレスへのEGGの移動だった場合にのみ、それを許可するように設定することができます。

アカウントプロパティは、現行のパブリック版NEMと比較して、オンチェーンロジックと運用の可能性を大幅に拡大しています。

アカウントプロパティが存在することで、産業とユーザーがブロックチェーンツールに求める発展的機能に取り組む際の柔軟性が向上しています。

トレストの声

これはこちらのアカウントフィルタで解説してあるものがそうですね。

簡単に言うと、リストにいれたアドレスからだけトランザクションを受け付けたり、受信したくないアドレスをリストにして制限することができるものです。携帯電話で迷惑メールを受けないためのメール選択受信設定と同じ考えでいいと思います。

これにより、モザイクを無差別に送りつけてくるスパムや、欲しくもない一方的なエアドロップモザイクを受け付けないようにできます。

パブリックチェーンのアドレスやトランザクションは公開されていますので、ビジネス利用の場合など、その中に意図しないトランザクションが入って欲しくない場合がありますから、そういうのも防ぐことができます。

また、これを応用して、寄付の受付期間を制限することもできるのではないでしょうか。「受付期間を〇月〇日まで!」と案内しているような企画だと、アドレスがパブリックになってる以上、締切日以降もダラダラと寄付が送られてくることもあると思います(場合により、ありがた迷惑になる)

なので締切日になったら、例えば「運営側で管理する他の1つのアドレスからのみ送信を受け付ける」と設定しておけば、外部からのすべての送信をシャットアウトできると思います。

このアカウントフィルタには、他に「特定のモザイクが添付されている場合にだけ受信を許可する」や「特定のモザイクが添付されたトランザクションを拒否する」という設定もあり、スパムモザイクそのものを指定してブロックすることも可能です。これが上記のスーザンとクレイジーチキン取引所(CrazyChicken…CoinCheck…w)の取引例にあたる部分です。

2) マークル状態遷移証明

ビットコインに導入されたマークル証明は、proof-of-workコンセンサスとブロックチェーンにおけるブロック構成の中核を担っています。マークル証明のおさらいをするために、少し基礎に戻ってマークルツリーの概念を復習してみましょう。

マークルツリーはハッシュによってラベリングされたノードの構造体です。上の図はもっともシンプルな形態のマークルツリーです。これはバイナリー・マークルツリーと呼ばれ、そこではそれぞれのリーフノード(ブロックチェーンのトランザクション履歴すべてを保存するデバイスに使われるノードと混同しないでください)は二つの子ノードにだけ分岐します。

このツリーの最下段では、ハッシュはトランザクションと一対一で対応します。マークルツリーは二つのハッシュを共にハッシュ化し、単一のハッシュが作成されるまでそのプロセスを繰り返すことで構築されます。

ツリーの頂点のハッシュはマークルルートと呼ばれ(ブロックチェーンのトランザクションルートとも呼ばれます)、それぞれのトランザクションをそこからトレースすることができます。マークルルートはトランザクションのブロックを要約するためにブロックチェーンのヘッダーに含まれています。

従来、マークル証明はブロックチェーンの有用性の点でいくつかのメリットを提供してきました。

1.データアセット内のあるトランザクションの存在を確認するために使用することができる。
2.台帳全体に損害を与えることなく、妥当性の証明を行うことができる。
3.残りのデータセットを明らかにすることなく、あるトランザクションの妥当性を確証することができる。

Credit: Wander, 2013. “Bitcoin Block Data.”

特に重要なこととして、マークル証明によって「ライトクライアント」が実現し、ブロックのヘッダーだけをダウンロードすることによって、フルノードのようなトランザクション履歴全体をダウンロードする必要なしに、トランザクションを速やかに認証して送信することが可能になります。

このプロセスはフルノードからマークル証明をリクエストすることによって促進され、ネットワーク維持者やマイナーではない人々が、より自由にネットワークを利用できるようにしてくれます。

しかし、ユーザーや産業からのブロックチェーンの機能性に対する要求が増えるにつれて、ブロックはトランザクションの存在以外のことにも対応することがますます必要となっています。

スマートコントラクトと、状況に依存する条件付きのトランザクションの出現により、ブロックは、トランザクションを開始するための特定の条件が適切に満たされているかを検証するために、ネットワークの状態も記録しなければならなくなっています。

そのような事情から、Bisonアップデートではマークル状態遷移証明を活用して、アカウントのバランス、ロック状態(ハッシュとシークレットロック)、アカウントプロパティ、ネームスペース、モザイク、マルチシグにおける変化も記録します。

ライトクライアントもまた、トランザクションの情報に加え、あるブロックチェーンの状態を速やかに検証することができるようになり、それによってより効率的なスマートコントラクトと条件付きのトランザクションが可能になります。

トレストの声

ワシには何を言っているのかサッパリわからない。

3) キャッシュ状態のバッキング

最後に紹介しますが、重要な機能になります。私たちはキャッシュ状態のバッキングを導入しました。これはフルノードによる参照と検索が容易にできることを目的とした、ブロックチェーンの状態ハッシュの効率の良い保存方法を意味します。

このアップデートは、NEMのパフォーマンスと運用上の複雑性をスケーリングする際に、上記のアップデートと緊密に関係してきます。

(特にアカウントプロパティの導入に伴う)ある時点での、すべてのアカウント間のブロックチェーンネットワークの状態を構成する、パラメータと変数の数が増加したことで、状態マークルツリーノードは、2つの時点間における考えうるあらゆる状態変化を追跡記録するために、2つに限定されない可変数のブランチへのアクセスを必要とします。

そのため、状態ツリーはトランザクションツリーよりもはるかに複雑になる可能性があります。合計ノード数でもはるかに大規模になる可能性があり、そのマークル証明においてより多くの仲介ノードを持つことが考えられます。

したがって、Catapultのケースでは、ネットワーク状態の素早い高精度の認証を行うため、ノードはRocksDBデータベースにデータを保存します。

RAMから情報を検索した方が作業は素早くなりますが、RAMのメモリ要件はノードに負荷をかける可能性があります。NEMのネットワークは拡大する一方であるため、ノードにかかるRAMの必要負担を減らすためにRocksDBを使用することが合理的です。

さらに、ノードの要件を引き下げることで、ノード数がさらに増加し、ネットワークの分散化が進む可能性が高まります。

トレストの声

catapult以降の世界ではアグリゲートトランザクションやマルチレベルマルチシグアカウントなどでトランザクションが深くなり、さらに今後NEMネットワークの拡大が進むことで、ノードへの負荷が大きくなりその負担を減らすためのヤツだと思います。

最後の一文、「ノードの要件を引き下げることで、ノード数がさらに増加し、ネットワークの分散化が進む可能性が高まる」というのがポイントのように感じました。

スーパーノード(SN)計画はさらなる延長(現時点ではSN報酬は2020年8月で枯渇)が検討されており、その際に現在よりも要件が下げられるなどして、"とりあえずのノード拡大"を目指すのも視野にあるのかな?と空想したり。

SN報酬制度というのは、NEMネットワーク内でノードを立てる意味がある経済圏が出来るまで、しっかりとしたノードを立ててくれるアカウントへのお礼のようなものです。

本来はSNがなくてもノードを立てる意味のある経済圏を目指す必要があります。ノードを立てる意味というのは、SN報酬制度がなくてもノードがネットワークから得られるハーベスト報酬でSN報酬と同程度かそれ以上を賄えるかどうか、というよりも、単純に運用コストを差し引いて黒字化できるかということです。

もっとも、NEMの場合はPoWのように設備投資合戦をする必要がないので、物理的な運用コスト(XEM取得費用を除く)はさほど大きくなりません。2019年1月時点ではおおよそ1万円/月程度でSN運用が可能です。

ノードが分散するほど良いとされる世界ですので、最初に書いたようにトランザクションが複雑化し量も増えることを想定したとしたら、よりノードが立てやすい環境にしてた方がいいに越したことはないです。

報酬については市場価格との兼ね合いもありますので、どのくらいの量が最適なのかはここでは深く考えないようにしますが、SNが不要になった将来、ノードの負荷が大きすぎるが故に運用するコストが膨らむが、期待されるハーベスト報酬でそれが賄えないのであれば、ノードを立てる人なんていなくなっちゃいますし。

余談ですが、

日本はSN報酬もらった段階の時価で所得としないといけないので、2018年1月から12月にかけてあんな値幅で市場価格が右肩下がりになってしまったら、報酬として得たXEMを保有したままのSNは2019年に納税するために今からSN報酬分を売っても赤字です。納税期限までに価格が激落ちしたままであれば。

スーパーノードというかスーパーボランティアでした… _l ̄l○

あの時にCCから盗んだヤツはもちろんのこと、ムダに売り圧ばかり掛けていた旧財団に腹が立つのはそういう意味もありなんですわ…。それでも維持してる日本のSNにねぎらいの拍手を…笑

これ、将来的にハーベスト報酬だけで回る経済圏に成長していても同じで、2018年のような変動リスクがまだ伴っていたら(変動幅は縮まっても上がり続ける相場はないので伴う)、この税制が仇となってノードの分散化が(そういう国では)進まなくなる可能性はなきにしもあらずなので、偉い人どうにかして!

「価格なんてどうでもいい!」というガチ技術者の声もたまにある界隈ですが、個人個人の損益どうのだけではないリスクも(メリットも)あることを理解して欲しいワケです。

まとめ

誕生したばかりのブロックチェーン産業が成熟するにつれて、NEMは産業のニーズの多様性と、Catapultの公開に向けたNEMネットワーク内のアクティビティの増加に対応する準備をしなければなりません。

ここで紹介したアップデートは、相互に関連しながら機能し、今後発表されるNEM Catapultの改善を行います。

すでに説明した通り、そうした機能の導入は、NEMブロックチェーンの将来的な柔軟性と利便性に貢献することになるので、BisonアップデートはNEMにとって非常に重要なマイルストーンといえます。

 - NEM(ネム) , ,

  著者プロフィール