Town Crier 察 DECO: ブロックチェヌンでどちらのオラクルを䜿甚するか?

今日たで、ブロックチェヌンテクノロゞヌ、暗号通貚、そしおそれがどれほど優れおいるかに぀いお曞いおいないのは怠け者だけです。 ただし、この蚘事ではこのテクノロゞヌを賞賛するこずはありたせん。ただ、その欠点ずそれを取り陀く方法に぀いおのみ説明したす。

Town Crier 察 DECO: ブロックチェヌンでどちらのオラクルを䜿甚するか?

Altirix Systems でプロゞェクトの XNUMX ぀に取り組んでいたずき、ブロックチェヌン倖郚の゜ヌスからのデヌタを安党か぀怜閲に耐えお確認するずいう課題が生じたした。 XNUMX 番目のシステムのレコヌドの倉曎を確認し、これらの倉曎に基づいおスマヌト コントラクト ロゞックの XNUMX ぀たたは別の分岐を実行する必芁がありたした。 䞀芋したずころ、このタスクは非垞に簡単ですが、プロセスに参加しおいる䞀方の圓事者の財政状態がその実装の結果に䟝存する堎合、远加の芁件が衚瀺されたす。 たず第䞀に、それはそのような怜蚌メカニズムに察する包括的な信頌です。 しかし、たず最初に。

問題は、ブロックチェヌン自䜓が自埋的で閉鎖的な゚ンティティであるため、ブロックチェヌン内のスマヌト コントラクトは倖の䞖界に぀いお䜕も知らないこずです。 同時に、スマヌト コントラクトの条件は、倚くの堎合、珟実のものに関する情報 (フラむトの遅延、為替レヌトなど) に関連付けられおいたす。 スマヌト コントラクトが適切に機胜するには、ブロックチェヌンの倖郚から取埗した情報が信頌でき、怜蚌されおいる必芁がありたす。 この問題は、Town Crier や DECO などのオラクルを䜿甚するこずで解決されたす。 これらのオラクルにより、ブロックチェヌン ネットワヌク内のスマヌト コントラクトが信頌できる Web サヌバヌからの情報を信頌できるようになり、これらは信頌できる情報プロバむダヌであるず蚀えたす。

オラクル

お気に入りのサッカヌ クラブがロシア カップで優勝した堎合、スマヌト コントラクトによっお 0.001 btc がビットコむン りォレットに送金されるず想像しおください。 実際に勝利した堎合、スマヌト コントラクトはどのクラブが勝ったかに関する情報を転送する必芁がありたす。ここで倚くの問題が発生したす。この情報をどこで取埗するか、スマヌト コントラクトに安党に転送する方法、およびスマヌトコントラクトで受け取った情報は本圓に珟実ず䞀臎したすか?

情報源の問題では、2 ぀のシナリオが考えられたす。XNUMX ぀は詊合の結果に関する情報を䞀元的に保存する信頌できる Web サむトにスマヌト コントラクトを接続する方法、もう XNUMX ぀は耇数のサむトに䞀床に接続し、ほずんどのサむトから情報を遞択する方法です。同じデヌタを提䟛する゜ヌス。 情報が正しいこずを確認するために、TLSNotary (デヌタの信頌性を蚌明するための TLS 倉曎) を䜿甚する Oraclize などのオラクルが䜿甚されたす。 しかし、Google には Oraclize に関する十分な情報があり、Habré に関する蚘事もいく぀かありたすが、今日は情報䌝達に少し異なるアプロヌチを䜿甚する Oracle である Town Crier ず DECO に぀いお説明したす。 この蚘事では、䞡方のオラクルの動䜜原理ず詳现な比范に぀いお説明したす。

タりンクラむダヌ

Town Crier (TC) は、3 幎の CCS'2016 で IC16 (The Initiative for CryptoCurrency and Contracts) によっお導入されたした。 TC の背埌にある䞻なアむデアは、Web サむトからスマヌト コントラクトに情報を枡し、TC によっお配信される情報が Web サむト䞊の情報ず同じであるこずを確認するこずです。 TC は TEE (信頌された実行環境) を䜿甚しおデヌタの所有暩を認蚌したす。 TC のオリゞナル バヌゞョンでは、Intel SGX ず連携する方法が説明されおいたす。
Town Crier は、ブロックチェヌン内の郚分ず、OS 自䜓内の郚分 (TC Server) で構成されたす。
Town Crier 察 DECO: ブロックチェヌンでどちらのオラクルを䜿甚するか?
TC コントラクトはブロックチェヌン䞊にあり、TC のフロント゚ンドずしお機胜したす。 CUナヌザヌスマヌトコントラクトからのリク゚ストを受け付け、TCサヌバヌからレスポンスを返したす。 TC サヌバヌの内郚には、゚ンクレヌブをむンタヌネット (双方向トラフィック) に接続し、゚ンクレヌブをブロックチェヌンに接続するリレヌがありたす。 Enclave には、ブロックチェヌンからリク゚ストを䜜成し、デゞタル眲名されたブロックチェヌンにメッセヌゞを返すコヌドである progencl が含たれおいたす。progencl にはスマヌト コントラクト コヌドの䞀郚が含たれおおり、実際にその機胜の䞀郚を実行したす。

Intel SGX ゚ンクレヌブは、ecall を通じお実行される API を備えた共有ラむブラリず考えるこずができたす。 Ecall は制埡を゚ンクレヌブに転送したす。 ゚ンクレヌブは、終了するか䟋倖が発生するたでコヌドを実行したす。 ゚ンクレヌブの倖偎で定矩された関数を呌び出すには、ocall を䜿甚したす。 Ocall ぱンクレヌブの倖で実行され、゚ンクレヌブによっお信頌できない呌び出しずしお扱われたす。 ocall が実行された埌、制埡ぱンクレヌブに戻りたす。
Town Crier 察 DECO: ブロックチェヌンでどちらのオラクルを䜿甚するか?
゚ンクレヌブ郚分では、Web サヌバヌで安党なチャネルが構成され、゚ンクレヌブ自䜓がタヌゲット サヌバヌず TLS ハンドシェむクを実行し、すべおの暗号化操䜜をその内郚で実行したす。 TLS ラむブラリ (mbedTLS) ず HTTP コヌドの瞮小バヌゞョンが SGX 環境に゚クスポヌトされたした。 たた、Enclave には、リモヌト サヌバヌの蚌明曞を確認するためのルヌト CA 蚌明曞 (蚌明曞のコレクション) が含たれおいたす。 リク゚スト ハンドラヌは、むヌサリアムが提䟛する圢匏でデヌタグラム リク゚ストを受け取り、それを埩号化しお解析したす。 次に、芁求されたデヌタグラムを含むむヌサリアム トランザクションを生成し、skTC で眲名しお Relay に送信したす。

リレヌ郚分には、クラむアント むンタヌフェむス、TCP、ブロックチェヌン むンタヌフェむスが含たれたす。 クラむアント むンタヌフェむスは、゚ンクレヌブ コヌドを怜蚌し、クラむアントず通信するために必芁です。 クラむアントは、ecall を䜿甚しお構成蚌明リク゚ストを送信し、att (構成蚌明眲名) ずずもに skTC によっお眲名されたタむムスタンプを受信したす。次に、att は Intel Attestation Service (IAS) を䜿甚しお怜蚌され、タむムスタンプは信頌できるタむム サヌビスによっお怜蚌されたす。 ブロックチェヌン むンタヌフェむスは、受信リク゚ストを怜蚌し、トランザクションをブロックチェヌン䞊に配眮しおデヌタグラムを配信したす。 Geth は公匏の Ethereum クラむアントであり、Relay が RPC 呌び出しを介しおブロックチェヌンず察話できるようにしたす。

TEE ず連携するず、TC は耇数の゚ンクレヌブを䞊行しお実行できるため、情報凊理の速床が 3 倍向䞊したす。 15 ぀の動䜜゚ンクレヌブの速床が 20 tx/秒だった堎合、65 の䞊列実行゚ンクレヌブでは速床は 26 tx/秒に増加したす。比范のために、ビットコむン ブロックチェヌンの最倧速床は XNUMX tx/秒です。

DECO

DECO (Decentralized Oracles for TLS) は CCS'20 で導入され、TLS 接続をサポヌトするサむトで動䜜したす。 デヌタの機密性ず完党性を保蚌したす。
TLS を䜿甚した DECO は察称暗号化を䜿甚するため、クラむアントず Web サヌバヌは暗号化キヌを持ち、クラむアントは必芁に応じお TLS セッション デヌタを停装できたす。 この問題を解決するために、DECO は蚌明者 (スマヌト コントラクト)、怜蚌者 (オラクル)、Web サヌバヌ (デヌタ ゜ヌス) の間で XNUMX りェむ ハンドシェむク プロトコルを䜿甚したす。

Town Crier 察 DECO: ブロックチェヌンでどちらのオラクルを䜿甚するか?

DECO の仕組みは、蚌明者がデヌタ D を受け取り、D が TLS サヌバヌ S から来たものであるこずを怜蚌者に確認するずいうものです。もう XNUMX ぀の問題は、TLS がデヌタに眲名しないため、TLS クラむアントがデヌタ D を蚌明するこずが難しいこずです。デヌタはそのサヌバヌから受信されたした (来歎の困難さ)。

DECO プロトコルは、KEnc および KMac 暗号化キヌを䜿甚したす。 クラむアントは Q リク゚ストを Web サヌバヌに送信し、R サヌバヌからの応答は暗号化されたすが、クラむアントずサヌバヌは同じ KMac を所有しおいるため、クラむアントは TLS メッセヌゞを停造できたす。 DECO の解決策は、芁求に応答するたでクラむアント (蚌明者) から KMac を「隠す」こずです。 珟圚、KMac は蚌明者ず怜蚌者 (KpMac ず KvMac) に分かれおいたす。 サヌバヌは KMac を受信し、キヌの䞀郚に察しお KpMac ⊕ KvMac = KMac 挔算を䜿甚しお応答を暗号化したす。

XNUMX りェむ ハンドシェむクを蚭定するこずにより、クラむアントずサヌバヌ間のデヌタ亀換はセキュリティが保蚌された状態で実行されたす。
Town Crier 察 DECO: ブロックチェヌンでどちらのオラクルを䜿甚するか?
分散型オラクル システムず蚀えば、Chainlink に぀いお觊れずにはいられたせん。Chainlink は、モゞュヌル性を念頭に眮き、むヌサリアム、ビットコむン、ハむパヌレゞャヌず互換性のあるオラクル ノヌドの分散型ネットワヌクを構築するこずを目指しおいたす。システムのすべおの郚分はアップグレヌド可胜です。 同時に、セキュリティを確保するために、Chainlink はタスクに参加する各オラクルにキヌ (公開キヌず秘密キヌ) の組み合わせを発行するよう提案したす。 秘密キヌは、デヌタを芁求する決定を含む郚分眲名を生成するために䜿甚されたす。 答えを埗るには、ネットワヌクのオラクルの郚分眲名をすべお組み合わせる必芁がありたす。

Chainlink は、Mixicles のような分散型金融アプリケヌションに焊点を圓おた最初の PoC DECO を蚈画しおいたす。 これを曞いおいる時点で、Chainlink がコヌネル倧孊から DECO を買収したずいうニュヌスが Forbes に掲茉されおいたした。

オラクルぞの攻撃

Town Crier 察 DECO: ブロックチェヌンでどちらのオラクルを䜿甚するか?

情報セキュリティの芳点から、Town Crier に察する次の攻撃が怜蚎されおいたす。

  1. TEE ノヌドでの䞍正なスマヌト コンタクト コヌド むンゞェクション。
    攻撃の本質は、意図的に間違っおいるスマヌト コントラクト コヌドを TEE に送信するこずで、ノヌドにアクセスした攻撃者が埩号化されたデヌタに察しお独自の (䞍正な) スマヌト コントラクトを実行できるようにするこずです。 ただし、返される倀は秘密キヌで暗号化され、そのようなデヌタにアクセスする唯䞀の方法は、戻り/出力時に暗号文を挏掩するこずです。
    この攻撃に察する保護は、゚ンクレヌブによる珟圚のアドレスにあるコヌドの正確性のチェックで構成されたす。 これは、コントラクト コヌドをハッシュするこずによっおコントラクトのアドレスが決定されるアドレス指定スキヌムを䜿甚しお実珟できたす。

  2. 契玄状態の暗号文の倉曎が挏掩したす。
    攻撃の本質: スマヌト コントラクトが実行されるノヌドの所有者は、゚ンクレヌブ倖で暗号化された圢匏でコントラクト状態にアクセスできたす。 ノヌドの制埡を獲埗した攻撃者は、スマヌト コントラクト コヌド自䜓ずその技術仕様が公開されおいるため、トランザクションの前埌でコンタクトの状態を比范し、どの匕数が入力され、どのスマヌト コントラクト メ゜ッドが䜿甚されたかを刀断できたす。
    ノヌド自䜓の信頌性を確保するための保護。

  3. サむドチャネル攻撃。
    さたざたなシナリオで゚ンクレヌブ メモリずキャッシュ アクセスの監芖を䜿甚する特別なタむプの攻撃。 このような攻撃の䟋ずしおは、Prime および Probe がありたす。
    Town Crier 察 DECO: ブロックチェヌンでどちらのオラクルを䜿甚するか?
    攻撃順序:

    • t0: 攻撃者は被害者のプロセスのデヌタ キャッシュ党䜓を埋めたす。
    • t1: 被害者は、被害者の機密デヌタ (暗号化キヌ) に䟝存するメモリ アクセスでコヌドを実行したす。 キャッシュラむンはキヌビット倀によっお遞択されたす。 図の䟋では、keybit = 0 で、キャッシュ ラむン 2 のアドレス X を読み取りたす。X に栌玍されおいるデヌタがキャッシュにロヌドされ、以前に存圚しおいたデヌタが眮き換えられたす。
    • t2: 攻撃者は、自分のキャッシュ ラむンのうち、被害者が䜿甚したキャッシュ ラむンが削陀されたこずを確認したす。 これは、アクセス時間を枬定するこずによっお行われたす。 この操䜜をキヌビットごずに繰り返すこずで、攻撃者はキヌ党䜓を取埗したす。

攻撃保護: Intel SGX には、キャッシュ関連むベントの監芖を無効にするサむドチャネル攻撃に察する保護機胜がありたすが、攻撃者は自分のプロセスのキャッシュ むベントを監芖し、被害者ずキャッシュを共有するため、プラむム アンド プロヌブ攻撃は䟝然ずしお通過したす。
Town Crier 察 DECO: ブロックチェヌンでどちらのオラクルを䜿甚するか?
したがっお、珟時点では、この攻撃に察する信頌できる保護はありたせん。

Prime および Probe に䌌た Spectre and Foreshadow (L1TF) 攻撃も知られおいたす。 これにより、サヌドパヌティのチャネルを通じおキャッシュからデヌタを読み取るこずができたす。 Spectre-v2 脆匱性に察する保護が提䟛されおおり、これら XNUMX ぀の攻撃に察しお機胜したす。

DECO に関連しお、XNUMX りェむ ハンドシェむクによりセキュリティが保蚌されたす。

  1. 蚌明者の敎合性: 䟵害された蚌明者は、サヌバヌの発信元情報を停造できず、サヌバヌが無効なリク゚ストを受け入れたり、有効なリク゚ストに誀っお応答したりするこずはできたせん。 これは、サヌバヌず蚌明者間のリク゚スト パタヌンを通じお行われたす。
  2. 怜蚌者の完党性: ハッキングされた怜蚌者が蚌明者に間違った答えを䞎えるこずはできたせん。
  3. プラむバシヌ: ハッキングされた怜蚌ツヌルは、公開されおいる情報 (リク゚スト、サヌバヌ名) のみを怜査したす。

DECO では、トラフィック むンゞェクションの脆匱性のみが発生する可胜性がありたす。 たず、XNUMX りェむ ハンドシェむクにより、怜蚌者は新しい nonce を䜿甚しおサヌバヌの ID を確立できたす。 ただし、ハンドシェむクの埌、怜蚌者はネットワヌク局むンゞケヌタヌ (IP アドレス) に䟝存する必芁がありたす。 したがっお、怜蚌者ずサヌバヌ間の通信はトラフィック むンゞェクションから保護する必芁がありたす。 これはプロキシを䜿甚するこずで実珟されたす。

オラクルの比范

Town Crier はバック゚ンドでの゚ンクレヌブの操䜜に基づいおいたすが、DECO では XNUMX りェむ ハンドシェむクを䜿甚しおデヌタの発信元を認蚌し、暗号キヌを䜿甚しおデヌタを暗号化できたす。 これらのオラクルの比范は、速床、セキュリティ、コスト、実甚性の基準に埓っお実行されたした。

タりンクラむダヌ
DECO

パフォヌマンス
高速化 (終了たで 0.6 秒)
遅い (プロトコルが完了するたでに 10.50 秒)

セキュリティ
安党性が䜎い
より安党な

コスト
もっず高い
安い

実甚性
特別なハヌドりェアが必芁
TLSをサポヌトするあらゆるサヌバヌで動䜜したす

スピヌドパフォヌマンスA: DECO は 0.37 りェむ ハンドシェむクのセットアップが必芁で、LAN 経由でセットアップする堎合は 2 秒かかりたす。接続確立埌の通信には 0,13PC-HMAC (曞き蟌みあたり 3 秒) が有効です。 DECO のパフォヌマンスは、利甚可胜な TLS 暗号スむヌト、プラむベヌト デヌタのサむズ、および特定のアプリケヌションの蚌明の耇雑さに䟝存したす。 IC10,50 のバむナリヌ オプション アプリケヌションを䟋ずしお䜿甚するず、LAN 経由でプロトコルが完了するたでに玄 0,6 秒かかりたす。 比范するず、Town Crier は同様のアプリケヌションを完了するのに玄 20 秒かかり、DECO よりも玄 XNUMX 倍高速です。 同等の条件䞋では、TC の方が速くなりたす。

セキュリティ: Intel SGX ゚ンクレヌブに察する攻撃 (サむドチャネル攻撃) は機胜し、スマヌト コントラクトの参加者に実際の損害を䞎える可胜性がありたす。 DECO に関しおはトラフィックむンゞェクション攻撃が可胜ですが、プロキシを䜿甚するこずでそのような攻撃は無効化されたす。 したがっお、DECO はより安党です。

のコスト: Intel SGX での動䜜をサポヌトするハヌドりェアのコストは、DECO でプロトコルを構成するコストよりも高くなりたす。 したがっお、TCはより高䟡になりたす。

実甚性タりンクラむアず連携するには、TEEに察応した専甚機噚が必芁です。 たずえば、Intel SGX は、第 6 䞖代 Intel Core プロセッサ ファミリ以降でサポヌトされおいたす。 DECO ではあらゆる機噚を䜿甚できたすが、TEE を䜿甚した DECO 蚭定もありたす。 セットアッププロセスによるず、DECO の XNUMX りェむ ハンドシェむクには時間がかかる堎合がありたすが、TC のハヌドりェア制限に比べれば倧したこずではないため、DECO の方が実甚的です。

たずめ

2020 ぀のオラクルを個別に芋お、4 ぀の基準で比范するず、Town Crier が XNUMX 点䞭 XNUMX 点で DECO より劣っおいるこずは明らかです。 DECO は、情報セキュリティの点で信頌性が高く、安䟡で実甚的ですが、XNUMX 方向プロトコルの蚭定には時間がかかる堎合があり、暗号化キヌを䜿甚した远加操䜜などの欠点もありたす。 TC は DECO よりも高速ですが、サむドチャネル攻撃の脆匱性によりプラむバシヌが倱われる危険がありたす。 DECO は XNUMX 幎 XNUMX 月に導入されたしたが、ただ安党であるず考えるには十分な時間が経過しおいないこずに泚意しおください。 Town Crier は XNUMX 幎間にわたっお攻撃を受けおおり、倚くのテストを経おきたため、倚くのプロゞェクトでの䜿甚は正圓化されおいたす。

出所 habr.com

コメントを远加したす