見出し画像

NymにおけるBonding vs Staking


Nymは、node operatorだけでなく、NYMトークンを保有する一般ユーザーもstakingすることができますが、システム上の役割はそれぞれ微妙に異なっています。このため、このブログでは、まずbonding stake(ノードオペレータ向け)とdelegating stake(一般ユーザー向け)の違いについて簡単に説明し、その後、この設計の複雑な理由を掘り下げて説明することにします。

では、まず最初に:

  • node operatorは、ネットワークに参加するためにstaking(NYMトークン)をbondします。ノードオペレータには、NymブロックチェーンValidatorと、そうでない非ブロックチェーンのMixnodesとGatewayが含まれ、ネットワークトポロジーに参加し、トラフィックのルーティング、クライアントとの対話、およびユーザーのネットワークレベルのプライバシーを確保するすべての活動を開始するために、ステーキングする必要があります。

  • 一方、Nymトークンを保有するユーザーは、ステーキング(NYMトークン)を、サービス品質(QoS)が高いと思われるMixnodeやGatewayにdelegateすることができます。この仕組みは、node operatorの選択に役立ちます。node operatorの選択は、ステーキング量(Bond+delegateされたステーキング)の合計に基づき、ネットワークにサービスを提供することを目的として選ばれるためです。delegateされたステーキングは、NYMトークン保有者がネットワークのノード選定に参加できるようにすることで、ソフトガバナンスを提供し、NYMトークン保有者は、その際に得られるノードオペレータの報酬を受動的に獲得することができます。

それはさておき、雑学に入ります!

stakingとは何ですか?

Stakingは、ある活動に参加するためにbond(担保)を提供することであり、ゲームに参加するための一種のスキンとして機能し、参加する活動への取り組みを公的に示すものです。

現在、多くの分散型システムで、様々なステーキングが利用されています。しかし、大まかに言えば、すべてのステーキングシステムにおいて、node operatorはネットワークに参加するためにステーキングを提供し、このステーキングはノードが適切に行動することを保証するものとして機能します。多くのシステムでは、nodeが期待通りに動作しない場合、ステーキングを切り捨てることもありますが、Nymではこれを行わず、代わりにステークに基づいてネットワークのアクティブセットに確率的に組み込むこんでいることがポイントです(これについては、以下のセクションで詳しく説明します)。

なぜnode operatorのためにステーキングをするのか?

ステーキングは、経済的なインセンティブを与えて善行を保証するだけでなく、シビル攻撃に対する防御としてネットワークで使用されます。シビル攻撃は、nodeのソフトウェアを実行できる人なら誰でもネットワークに参加できるという点で、共有コンセンサスに依存するオープンで分散型のシステムにとって潜在的に大きな問題です。そのため、nodeとしてネットワークに貢献するためのコストが課せられない場合、個々のアクターは複数のノードを設立し、ネットワークの不釣り合いな量のノードを制御することができます。ネットワーク自体の用途によっては、攻撃者がメッセージ送信に影響を与えたり(一部のユーザーがネットワークを効果的に使用できないようにしたり、他のユーザーに優先権を与えたり)[1]、ネットワーク活動全体の不釣り合いな量を監視することでトラフィック分析やフィンガープリントに関与したり、電子投票などのアプリケーションレベルでのネットワーク利用の結果を歪めることができるようになります[2]。

シビル攻撃を軽減するための万能なアプローチは、残念ながら存在しません。異なるネットワークがシビル攻撃を防御するために取るべき戦略は、そのネットワークに属するノードにとって、何がネットワークへの有意義な貢献とみなされるかに依存します。Nymノードの各タイプが実際にどのようにこれを行うかを見てみましょう。

Consensus Validator達は、Nymブロックチェーンを維持することで、Nymネットワークのコンセンサスバックボーンとして運営されています。ブロックチェーンは、Nymトークンのトランザクション履歴、ネットワークのトポロジー、証明書の作成、二重支出からの保護等を提供します。さらに、CosmosはCosmWasmスマートコントラクト(そのうちの1つが現在のmixnetの中核)を使用し、ネットワークの拡張を可能にします。Consensusは、Ouroboros Proof of Stakeコンセンサスモデルに従ってネットワークが運営されており、ブロック生産は、ネットワーク内の一連のノードがブロック生産の費用(buck)を相互に受け渡すことに依存しています。これは各ノードが、例えば友人のために偽の取引を行ったり、過剰なダウンタイムを発生させたりしないことを保証するために、ネットワークにボンドするステーキング量に基づいて選択される可能性があるためです。

Proof of Stakeシステムにおけるシビル攻撃への防御は、次の2点に依存します:

  • 1つのノードが、すべてのバリデータによってステーキングされた総額の66+1%以上を支配しないように、ノード間のステーク配分を維持すること

  • 66+1%のステーキングを持つ複数のバリデーターが結託してコンセンサスを歪めネットワークを攻撃することが、経済的に賢明でないことを保証すること

メインネットへの移行に伴い、私たちは主要な投資家の経済的分布を反映しています。そのため、理論的にはステーキング総額の66+1%(コンセンサスの下限値)を「コントロール」できるほどのvalidatorを社会的に調整することが可能であっても、これらのvalidatorが関与することは経済的に意味がなく、彼らがNymに投入した多額の投資を台無しにすることになります。

MixnodeとGatewayも同様に、ネットワークトポロジーに含まれるためにステーキングする必要があり、このステーキングが不釣り合いな数のnodeを運営する経済的阻害要因として機能します。ネットワークに参加するために、node operatorに”ゲームに参加するためのスキン”であるステーキングを要求するのは直感に反するかもしれませんが、GatewayとMixnodeはそれぞれmixnetの入り口と通信バックボーンを構成しています。もしGatewayとMixnodeがそのすぐ隣人よりも多くのネットワークを見ることができれば、フィンガープリンティングやトラフィック非匿名化攻撃(traffic deanonymisation attacks)で結託することができるかもしれません![3] このことはNymを、個人がネットワーク全体のnodeの大部分を動かすという形でシビルアタックに弱いTorなどの「無料プレイ」ネットワークとは異なるものとしています[4] 。

シビル攻撃に対する防御として機能するだけでなく、ユーザーがGateway とMixnodeにデリゲートする数量はソフトガバナンスの一形態としてネットワークに利用され、ノードが得る報酬の量はサービスの品質(すなわち、稼働時間と適切な構成)に基づいています。そのため、MixnodeやGatewayにステーキングをdelegateしたいユーザーは、(理論的には)QoSが最も良いnodeに引き寄せられるため、ネットワークが可能な限り効率的に運営されることを保証します。ネットワークが需要に応じて拡張すると[5]Validatorとほぼ同じ方法で、bondされたステーキング量が最も多い(ノードオペレータとユーザーデリゲートの両方から)MixnodeとGatewayは、、アクティブセット(つまり実際にトラフィックをミキシングするノード)に選ばれる確率が高く、さらなる報酬を得ることができます[6]。

要約すると、ステーキングは、ステーキングをbonding(ノードオペレータ)し、ステーキングをdelegateする(ユーザー)という形で、Nymのシステムに重要な情報セキュリティ、ガバナンス、経済性を提供しています。

[1]例えば、MEVがEthereumのmempoolにおける優先システムのバグではなく「機能」となったことで、これの合法的な使用と違法な使用の境界線は間違いなく曖昧になっています。

[2] シビル攻撃に関する詳細については、こちらのシビル攻撃入門記事や、弊社CTOのDave Hrycyszynが以前Nymのテストネットで試みたシビル攻撃の概要を紹介しています。

[3]これらの攻撃がどのようなもので、Nymがどのように防御しているかについては、当社の研究責任者であるAnia Piotrowskaの記事で詳しく説明しています。

[4] https://nusenu.medium.com/how-malicious-tor-relays-are-exploiting-users-in-2020-part-i-1097575c0cac

[5] これについては、whitepaperの3項を参照し、近日中にブログ記事を掲載する予定です!

[6] これについては、今後のブログ記事でより詳しく説明しますので、今回の説明だけでは十分に理解できないかもしれませんが、ご安心ください。


原文記事:


この記事が気に入ったらサポートをしてみませんか?