多くのブロックチェーン アプリケーションの最も価値のある特性の 1 つは、トラストレス性です。これは、特定のアクターが特定の方法で動作することに依存する必要なく、アプリケーションが期待どおりに動作し続ける能力です。
彼らの興味が変化し、将来、予期しない別の方法で行動するように促す可能性がある場合でも.
まず、信頼の私の簡単な一文定義:信頼とは、他の人の行動に関するあらゆる仮定の使用です。パンデミックの前に、見知らぬ人が突然ナイフを取り出してあなたを刺すことがないように、見知らぬ人から 2 メートルの距離を保つことを確認せずに通りを歩いていたとしたら、それは一種の信頼です。 、そして法制度を管理する人々がその種の行動に対して強力なインセンティブを提供し続けていることを信頼してください。
他の誰かが書いたコードを実行するとき、あなたは彼らがコードを正直に書いたことを信頼します (彼ら自身の品位のためか、評判を維持するための経済的利益のためか)、または少なくとも十分な数の人がチェックしていることを信頼します。バグが見つかるコード。
自分の食べ物を育てないことは、別の種類の信頼です。十分な数の人々が、食べ物を育ててあなたに販売できるようにすることが自分たちの利益になることに気付くと信じてください。さまざまな規模の人々のグループを信頼でき、さまざまな種類の信頼があります。
ブロックチェーン プロトコルを分析する目的で、私は信頼を 4 つの側面に分類する傾向があります。
期待どおりに振る舞うには、何人の人が必要ですか?
何人から?
その人たちが行動するためには、どのような動機が必要なのでしょうか。彼らは利他的である必要がありますか、それとも単に利益を追求する必要がありますか?それらは調整されていない必要がありますか?
仮定に違反した場合、システムはどの程度失敗しますか?
ここでは、最初の 2 つに焦点を当てます。グラフを描くことができます:
緑が多いほど良い。カテゴリをさらに詳しく調べてみましょう。
1 of 1 : アクターは 1 人だけで、システムはその 1 人のアクターが期待どおりの動作をする場合 (およびその場合にのみ) 機能します。これは伝統的な「中央集権型」モデルであり、私たちがより良いものにしようとしているものです。
N of N : 「ディストピア」の世界。すべてが機能するためには、すべてのアクターが期待どおりに動作する必要があり、いずれかが失敗した場合のバックアップはありません。
N/2 of N : これがブロックチェーンの仕組みです。マイナー (または PoS バリデーター) の大多数が正直であれば機能します。 N が大きくなるほど、N の N/2 の価値が大幅に高くなることに注意してください。少数のマイナー/バリデーターがネットワークを支配しているブロックチェーンは、マイナー/バリデーターが広く分散しているブロックチェーンよりもはるかに興味深いものではありません。とはいえ、このレベルのセキュリティでも改善したいと考えているため、 51% の攻撃に耐えられるかどうかが懸念されます。
1 of N : 多くのアクターが存在し、そのうちの少なくとも 1 人が期待どおりの動作をする限り、システムは機能します。不正証明に基づくシステムはすべてこのカテゴリに分類され、信頼できるセットアップもそうですが、その場合、N はしばしば小さくなります。 N をできるだけ大きくしたいことに注意してください!
Few of N : 多くのアクターが存在し、システムは少なくとも一定数の少数のアクターが期待どおりの動作をする限り機能します。データの可用性チェックは、このカテゴリに分類されます。
0 of N : システムは、外部アクターにまったく依存することなく、期待どおりに機能します。自分でチェックしてブロックを検証することは、このカテゴリに分類されます。
「N の 0」以外のすべてのバケットは「信頼」と見なすことができますが、それらは互いに大きく異なります。
ある特定の人 (または組織) が期待どおりに機能することを信頼することは、どこかの特定の人が期待どおりに機能することを信頼することとは大きく異なります。
「1 of N」は、「N/2 of N」または「1 of 1」よりも「0 of N」に近いと言えます。 1-of-N モデルは、おそらく 1-of-1 モデルのように感じるかもしれません。なぜなら、1 人のアクターを通過しているように感じるからです。しかし、2 つの現実は大きく異なります。1-of-N システムでは、現在一緒に働いているアクターが姿を消したり悪に変わったりした場合は、別のアクターに切り替えることができますが、1 対 1 のシステムでは失敗します。
特に、実行しているソフトウェアの正確性でさえ、通常、コードにバグがある場合に誰かがバグを見つけられるようにするための「少数の N」信頼モデルに依存することに注意してください。
その事実を念頭に置いて、アプリケーションの他の側面で N の 1 から N の 0 に移行しようと懸命に努力することは、窓が開いているときに家の鉄のドアを強化するようなものです。
もう 1 つの重要な違いは、信頼の前提が破られた場合、システムはどのように失敗するかということです。ブロックチェーンでは、最も一般的な 2 つのタイプの障害は、活性障害と安全障害です。
liveness failure とは、やりたいことを一時的に行うことができないイベントです (コインの引き出し、ブロックに含まれるトランザクションの取得、ブロックチェーンからの情報の読み取りなど)。
安全上の失敗とは、システムが防止することを意図した何かが積極的に発生するイベントです (たとえば、無効なブロックがブロックチェーンに含まれるなど)。
いくつかのブロックチェーン レイヤー 2 プロトコルの信頼モデルの例をいくつか示します。レイヤー2システム自体の参加者のセットを指すのに「小さいN 」を使用し、ブロックチェーンの参加者を指すのに「大きなN 」を使用します。レイヤー 2 プロトコルは、ブロックチェーン自体よりも小さなコミュニティを持っているという前提が常にあります。
また、「活性障害」という言葉の使用は、コインがかなりの時間スタックしている場合に限定しています。システムを使用できなくなったが、ほぼ即時に撤回できる場合は、ライブネスの失敗としてカウントされません。
チャネル(状態チャネル、ライトニング ネットワークを含む): ライブネスに対する 1 の 1 の信頼 (相手方は一時的に資金を凍結することができますが、複数の相手方の間でコインを分割すると、この害は軽減されます)、ビッグ N の信頼の N/2安全のため (ブロックチェーンの 51% 攻撃でコインが盗まれる可能性があります)
Plasma (中央集権的なオペレーターを想定): ライブネスに対する 1 の 1 の信頼 (オペレーターは資金を一時的に凍結できます)、安全性に対する Big-N の N/2 の信頼 (ブロックチェーン 51% 攻撃)。
Plasma (DPOS などの半分散型のオペレーターを想定): N/2 の小さい N の信頼性はライブネスに、N/2 の大きい N の信頼性は安全性に。
オプティミスティック ロールアップ: 1 の 1 または N/2 の小さな N の信頼 (オペレーターの種類によって異なります)、安全性のための大きな N の信頼の N/2。
ZK ロールアップ: ライブネスに対するスモール N トラストの 1 つ (オペレーターがトランザクションを含めなかった場合、あなたは撤回できます。オペレーターがすぐに引き出しを含めなかった場合、オペレーターはそれ以上のバッチを作成できず、以下の助けを借りて自己撤回できます)ロールアップ システムのフル ノード);安全上の失敗のリスクがない
ZK ロールアップ(ライト撤回拡張あり) : 活性障害のリスクなし、安全性障害のリスクなし
最後に、インセンティブの問題があります。あなたが信頼しているアクターは、期待どおりに行動するために非常に利他的である必要がありますか?不正証明の検索は「デフォルトでは」わずかに利他的ですが、それがどれほど利他的であるかは計算の複雑さに依存し (「検証者のジレンマ」を参照)、合理的にするためにゲームを変更する方法があります。
サービスに少額の支払い方法を追加すれば、ZK ロールアップからの撤退を支援することは合理的です。そのため、重要な使用でロールアップを終了できないという懸念はほとんどありません。
一方、過去にさかのぼる51% の攻撃チェーンや長期間の検閲ブロックを受け入れないことにコミュニティとして同意すれば、他のシステムのより大きなリスクを軽減できます。
結論: システムは「信頼に依存している」と誰かが言うときは、その意味を詳しく尋ねてください。それらは 1 の 1、または N の 1、または N の N/2 を意味しますか?彼らはこれらの参加者に利他的であることを要求していますか、それとも単に合理的であることを要求していますか?利他的である場合、それは小さな出費ですか、それとも莫大な出費ですか?
そして、仮定に違反した場合はどうなりますか?数時間または数日待つだけでよいのでしょうか?答えによっては、そのシステムを使用するかどうかに対するあなた自身の答えが大きく異なる可能性があります。
当初は「 Trust Models 」として公開されました