簡単まとめ

【簡単まとめ】DFINITYをFAQから見てみる6(技術編5/5)

更新日:

DFINITY本家のFAQページをもとに、DFINITYについて見ていきます。

これを読むとDFINITYの「USCID」についてざっくりと知ることができます。

要点まとめ

まず、本記事の要点をお伝えします。

  • DFINITYでは、想定している取扱いデータ量の観点からBitcoinやEthereumと違って全ノードにデータをコピーするようなことはできないが、代わりにUSCIDを持たせることで対処する。
  • USCIDは、ステートデータのコピーにユニークな形式で割り当てられたもので、クライアントがステートデータのコピーを保持するのに必要となる。
  • USCIDは、各クライアントが自身のアイデンティティに基づく鍵を使って全データを暗号化したうえで保存することにより機能する。この暗号化されたデータがUSCIDに当たる。
    • クライアントのアイデンティティは他のクライアントが分かるものでなければならない(後述の証明の検証の際に用いる)。
  • USCIDの暗号化方式は共通鍵暗号で、暗号化は遅く、復号は速くなるように設計されている。
  • クライアントは、データの暗号化とともに証明を行う必要がある。証明はハッシュチェーンのランダムビーコンによってユニークに暗号化されたデータをハッシュ化することで生成する。
  • データの暗号化が低速で復号が早い共通鍵暗号方式と、高速なハッシュ化と乱数を用いた証明の生成を組合わせることで不正なクライアントによる制限時間内の証明の生成は極めて難しくなる。
  • 証明の検証は、全く同じデータを保持しているクライアントであれば行うことができる。
    • 証明の検証は、証明の開始ブロックから、暗号化されたデータの復号⇒証明者の鍵による暗号化⇒ハッシュ化(=証明の生成)を繰り返し、出てくるハッシュ(=証明)と証明者の証明が一致するかを確かめることでできる。
    • 証明が無効なものであった場合、証明者の保証金は没収され、証明者の持っていた複製データは別のクライアントに引き継がれるて維持される。

次に詳細としてDIFINITY本家による英文FAQページの日本語訳を掲載します。細部を知りたい方は読み進めてください。

スポンサードサーチ

技術的な質問

USCID(ユニークステートコピーID)って何?どう動くの?(What is a Unique State Copy ID USCID and how does it work?)

注)技術論文や入門資料集もご確認ください。

概略

非中央集権型クラウドの主要目的は安定して、継続稼働するアプリケーションを構築して動かせるコンピューティングプラットフォームを提供することです。これは、クライアントのプロトコルバッファに安全にステートを保存するプラットフォームのキャパシティにかかっています。BitcoinやEthereumではトランザクションを記録する単一のブロックチェーンがあり、そしてEthereumにおいてはステートデータベースは全クライアントに複製されます。DFINITYのようなネットワークは必要に応じて無制限にデータを保存するように設計されているため、クライアントが全データのコピーを保持するようなことはできません。最終的にはエクサバイトを超えるデータ量になってしまう可能性もあります。従って、クライアント間でステートのストレージを区分する(シャードする)必要があり、自然と要求水準のセキュリティを満たすために求められる複製のファクターは何か、という疑問が沸き上がってきます。結果として、この質問は別の重大な質問に対する答えに行き着きます。すなわち、データが実際に複製されることを認識できるような方法は何か、ということです。

対処しなければならない難題は、膨大なクライアントが複製データを保持するように思われるが、そのインプレッションは攻撃者が仕事なしでマイニング報酬を得る目的で作ったただの合成物でしかない可能性があるということです。この問題はIPFSとIPFS関連のインセンティブシステムであるFileCoinなどで詳細に描かれています。IPFSは非中央集権型ファイルストアで、ファイルやその他オブジェクトはデータ自身のハッシュにより処理されます。問題は、ユーザがファイルをアップロードする場合、そのファイルが何回複製されたか分からないこと、そして、いまファイルを保存あるいはキャッシュとして持っているクライアントが将来もファイルを持っているか分からないということです。FileCoinではデータのコピーを保有しているクライアントに参加トークン報酬を払うことでこの問題の解決を図っており、データの広範な維持を目的に必要なインセンティブを生成します。このシステムは、クライアントが自身の持つデータのコピーを使うことで満足しうる課題も取り込んでいます。しかし、実際にクライアントが一切複製せずに全データを保存している巨大なメインフレームのプロキシであるのかプロトコルには分からないという問題は未解決のまま残っています。

データの安全性に関する現実的な保証を与えるため、DFINITYのようなネットワークは関連する基礎的な複製のファクターについてもっと明確にする必要があります。また、これにより、ネットワークは確実に複製を高度すぎないものにすることができます。結局、100万のマイニングクライアントにファイルが複製されるなどというのは愚かな話でしょう。USCIDがこの問題に対する解決法をもたらします。USCIDは、ステートデータのコピーにユニークな形式で割り当てられたものでクライアントがステートデータのコピーを保持するのに必要です。USCIDは"Unique State Copy ID"の頭字語です。USCIDは、各クライアントが自身のアイデンティティ由来の鍵を使って全データを暗号化して保存するのを必須化することで機能します。アイデンティティは他の全クライアントが必ず分かるものでなければなりません。特別にチューニングされた共通鍵暗号アルゴリズムを使うことで、暗号化を比較的遅く、復号を極めて高速にします。そのように設計しているのは、更新と書き込み時にデータを暗号化できる一方で割り当てられた全ステートを妥当な時間で暗号化するのは非実用的だからです。

USCIDシステムではプロトコル通信中、クライアントはユニークに暗号化したステートへの証明を作成することが必須です。例えばクライアントが閾値リレーチェーンPSP(筆者注:Probabilistic Slot Protocol, 確率的スロットプロトコル。チェーンの高さごとにクライアントのランク付けを行うプロトコル。高さごとにランダムビーコンが生成され、そのランダムビーコンに基づくノーバイアスのアウトプットから決定論的に導き出した順番でクライアントが選ばれる。もう少しざっくり説明すると、高さごとにランダムな順番でクライアントをランク付けするプロトコル。)で候補となるブロックを生成する場合、このブロックには先述の証明が含まれていないといけません。ブロックがチェーンに取り込まれて報酬を受け取るためには、数秒の制限時間内にブロックをブロードキャストしなければなりませんが、ここで不正なクライアントが問題になります。証明とは、ユニークに暗号化されたステートに対してランダムウォークを用いることで生成されるハッシュチェーンのアウトプットです。閾値リレーネットワーク内にあるランダムビーコンが指示するあるランダムブロックで始まり、ブロックはハッシュダイジェストに追加され、続いて次のランダムブロックを選び、そうやって同じ動作を繰り返し、必要な長さを有するランダムチェーンにある全ブロックのデータがダイジェストに追加されるまで延々と続きます。ハッシュ化は高速なので、必要とされているアイデンティティ由来の鍵を使ってデータを暗号化している限りにおいては正しく証明を生成することは容易でしょう。しかし、平文の状態であれば、例えば仮想セントラルメインフレームにおいては、ブロックはダイジェストに取り込まれる前に急いでは暗号化しなければなりません。特別に設計した共通鍵暗号アルゴリズムを使った特性のおかげで、不正なクライアントがデータを有益なものにするには証明の生成に時間がかかりすぎてしまいます。

通常の通信中、クライアントは継続してこのような証明を生成します。そして証明はめったに検証されることはありません。しかし、ランダムビーコンがランダムに検証を必要とする場合、あるいはブロック発生中に報酬を得ている場合、全く同じデータの複製を保持している別のクライアントは検証を行うことができます。同じデータを持つクライアントは、同じブロックから始めて、データを平文に復号し、次に証明を行った人に由来する鍵を使って再度暗号化する、という動作を同じアウトプットハッシュが作られるまで繰り返すことで証明そのものを検証することができ、ハッシュができるとすぐに証明を比較することができます。これには選んだ暗号化スキームの特性上どうしても時間がかかりますが、ネットワークの短期的な進捗とは無関係に実行することができるので問題にはなりません。もちろん、万一のチェーンの再編成に備えて特別なデータベースを用いて古いステートを何とかして維持しますので、過去のある時点から古いコピーへと移るのは難しくありません。証明が有効か否かを確実に決定するために、Validation Towerと同じような構造が使用されています。もし証明が有効でない場合は、証明を行った人の保証金は没収され、データの複製を保持する仕事は別のクライアントに引き継がれます。

【簡単まとめ】DFINITYをFAQから見てみる5(技術編4/5) ←← 前)|(次 →→ 【簡単まとめ】DFINITYをFAQから見てみる7(BNS編)

-簡単まとめ
-, , , , , , , , , ,

Copyright© 暗号通貨界隈のメモ書きなど。 , 2019 All Rights Reserved Powered by STINGER.

%d人のブロガーが「いいね」をつけました。