ホワイトペーパー

Origoホワイトペーパー日本語訳2

更新日:

本稿について

Origo Scalable Privacy Preserving Platform For Decentralized ApplicationsのVersion 0.1、最終更新日: 2018/5/5時点のものを対象とします。本稿では「Chapter 3. Origo Protocol」の日本語訳を掲載します。

原文はこちらになります。

スポンサードサーチ

3. Origoプロトコル

3.1. 設計の原則

プライバシー保証アプリケーションプラットフォームは秘匿トランザクションよりも機能性を提供する。秘匿トランザクションは送受信者と金額を保護する。プライバシー保証アプリケーションには秘匿トランザクションの機能性とともにインプット/アウトプットデータのプライバシー保護機能が必要である。

利用者はインプットデータ(ギャンブルゲームにおける選択など)と通貨単位(オークションの入札など)をシステムに入力する。インプットを受け取ったらシステムはオフチェーンでアプリケーションを実行し、参加者間のペイアウト分布を暗号化して出力する。システムにはインプットのプライバシーと実行の公正性が保証されていることが必要である。

  • インプット/アウトプットのプライバシー:アプリケーションのインプットとアウトプット(データと金額を含む)は大衆から保護されるべきである。言い換えれば、インプット/アウトプットは暗号学的に大衆から秘匿される。これを達成するために、ブロックチェーンへ送信あるいはブロックチェーンから受信するあらゆる情報は暗号化され、ゼロ知識証明を使ってコントラクト実行の正当性を保証する。
  • 実行の公平性:Dappsにとって、特に複数人が絡む場合、大衆に対するプライバシー保護だけでは不十分である。参加者が身勝手で自身の利益を最大化しようとする場合を仮定すると、実行の前にアボートしてしまうかもしれない。システムには参加者間の公平性の保証も必要である。

OrigoはDappsをセキュアかつプライベートに実行するソリューションを提案する。インプット/アウトプットデータのプライバシーを保護するために、OrigoはDappsをオフチェーン環境で実行する。オフチェーンで実行したことの証明は正しい計算が行われたことを検証するためにオンチェーンに送信される。

アプリケーション開発者は暗号理論の知識を持つ必要はない。Origoのプライバシー保証アプリケーションプラットフォーム(PPAP)では、アプリケーション開発者はオリジナルの方法でアプリケーションを記述でき、Origo PPAPがインプットとアウトプットを外部に漏らすことなくアプリケーションをコンパイル・実行する。PPAPは開発者にプライバシー保護のできるアプリケーションを簡単かつ便利に構築する力を与える。

効率性とプライバシーを保証するために、Origohaオンチェーンとオフチェーンの双方の計算ステージを提供した。プライバシーが必要なアプリケーションの実行と正当性の証明はオフチェーンで行う。プライバシー保護のできるアプリケーションの計算の検証と通常のアプリケーションはオンチェーンで行う。オフチェーンでのアプリケーション実行の正当性を実行の詳細情報を秘匿しながらパブリックブロックチェーンが検証できることを保証するためにゼロ知識証明を用いる。また、Origoは悪意あるパーティがコントラクトをアボートしてしまうのを防ぐために適切な経済的メカニズムを提案する。

3.2. 現在のソリューションの限界

既存のブロックチェーンテクノロジを使ってチューリング完全でプライバシー保護のできるアプリケーションを実装する簡単な方法はない。

Ethereumはチューリング完全なアプリケーションをサポートするパブリックなパーミッションレスブロックチェーンである。Ethereumは何らのトランザクションプライバシーも提供しない。各ノードはコントラクトが正しく実行されたことを検証するためにコントラクトを実行する必要がある。ゆえに、コントラクトのインプットと中間ステート、アウトプットはEthereumのノードなら誰でも利用できてしまう。

Ethereumの一定のアプリケーションに対してある程度のプライバシーを保証する技法はいくつかある。例えば、Ethereumのスマートコントラクトを用いて二人がじゃんけんをする場合、片方が何を出したかを直接コントラクトに提出してしまうともう一方は相手が何を出したかを読み取って勝てる手を出すことができてしまう。その代わりに、まず自身が出す手にランダムな文字列を足したものをハッシュ化してコントラクトに提出し、続いて両者がインプットをコミットすると、付け足したランダムな文字列をコントラクトに送ることでインプットを明らかにすることができる。次にコントラクトは両者が主張するインプット+ランダムな文字列のハッシュがそれぞれが提示したハッシュ値と一致するかをチェックすることで、両者のインプットを得ることができる。コード3.1はいま説明したソリューションをデモンストレーションしたものである。このような手法により二人は相手が自分の出す手を確認してそれに応じて手を変えてくるというような心配をせずにこのゲームを遊ぶことができる。だが、このゲームの結果はまだ公開されてしまっている。誰でもどちらが勝って勝者にいくら支払われたのかを知ることができてしまう。

リスティング3.1:じゃんけんするためのEthereumのスマートコントラクト擬似コード

ZcashやMoneroのような暗号通貨は秘匿トランザクションのサポートにより部分的にこの問題を解決する。しかし、これらはスマートコントラクトをサポートしていない。OrigoはDapps用の秘匿トランザクションとスマートコントラクトをサポートする予定である。そしてプライバシー保証アプリケーションのインプット/アウトプットデータが公になってしまうのを防ぐために、オフチェーンで実行する。だがそれでもゼロ知識証明の利用により実際の結果を明らかにすることなく実行を検証できる。そして各者がルールに従ってふるまうインセンティブを与えるよう適切なプロトコルが設計された。

3.3. プロトコル概観

上述の限界に対処するために、Origoはプライベートトランザクションとスマートコントラクトをサポートする。Hawk[6]の研究にインスピレーションを受けて、私たちはオンチェーンとオフチェーンの計算を組み合わせたプロトコルを導入し、実行時のスマートコントラクトのプライバシーを保証する。

図3.1に示したように、プロトコルには4つのフェーズがある。つまり、初期化(Initizlize)、コミット(Commit)、実行(Execute)、確定(Settle)フェーズである。4つのフェーズの概要を以下に示す。詳細の大半は次章で述べる。

初期化フェーズでは、後の実行フェーズのためにネットワークから実行者が選出される。

コミットフェーズでは、各者がコントラクトへコインを凍結し、プライベートなインプットとコインを含むコミットメントを送信する。コミットメントスキームを利用することによりこのインプットとコインはプライベートであるが、各者はコミットメント後に変更できない。全員がコミットメントを送信するかこのフェーズのタイムアウト時間が過ぎたあと、保証金は認証された状態になる。そして次のフェーズに進む。

実行フェーズでは、各者はオフラインの実行者にプライベートなインプットを明かす。実行者はスマートコントラクトをオフラインで実行する。このようにインプットと実行結果は公に曝されることはない。

コントラクトが実行されたあと、実行者はコントラクトが正しく実行されたことを示すゼロ知識証明を生成する。ブロックチェーンが正当性を検証すると、預け入れた資金は実行結果に基づいて各者に分配される。

このプロトコルを利用することで、ユーザのインプットやトランザクション金額、コントラクトの実行情報をプライベートに保つことができる。だがそれでも、誰もがコントラクトが正しく実行されたかどうかを検証することができる。

Origoホワイトペーパー日本語訳1 ←← 前)|(次 →→ Origoホワイトペーパー日本語訳3

免責

邦訳には誤りがある場合がございます。予めご承知おき下さい。

確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。

-ホワイトペーパー
-, , , , , , , , , ,

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

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