ゼロ知識ブロックチェーンを理解する

あなたが知っていることを示さずにあなたが何かを知っていることを示す方法

先週の金曜日に Zcash、多くの注目を集めた新しいパブリックブロックチェーンと関連する暗号通貨。 今までに、 数百の暗号通貨そのため、新進の若い参入者は、争いを乗り越えるために真剣な差別化要因を必要としています。 Zcashの場合、これは簡単です–Zcashユーザーは絶対的なプライバシーでお互いに送金できます。 ブロックチェーンに基づく暗号通貨の場合、これは驚くべき技術的成果です。 (ただし、次のような他のチェーンは Monero および ダッシュ シンプルですが効果の低い手段を使用して、同じ目標を目指します。)

私がしたように 以前に書かれた、一般的な意味で、ブロックチェーン(パブリックまたはプライベート)は、機密性を犠牲にして中途解約が得られるというトレードオフを表します。 ブロックチェーンは、参加者が相互に信頼していなくても、中央の仲介者を必要とせずに、データベースを安全に共有するための巧妙な新しい方法を提供します。 ただし、このピアツーピアの分散化には代償があります。チェーンのすべての参加者に属する「ノード」は、すべてのトランザクションを自分で検証する必要があります。これは、他のすべての人が何をしているかを確認することを意味します。

チェーンするXNUMXつの方法

パブリックブロックチェーンと暗号通貨の場合、共有データベースは主に、暗号通貨の量を誰が制御するか(したがって効果的に所有するか)の記録として機能し、オプションで「メタデータ」(ビットコイン)または契約ロジック(イーサリアム)を上に振りかけます。 対照的に、プライベートブロックチェーンでは、XNUMXつの主要なユースケースクラスが見られる傾向があります。(a)チェーン上のトークンで表される外部アセットの所有権と転送、および(b)データの保存と取得に関連するより一般的なアプリケーションです。 たとえば、私たち自身の製品では マルチチェーン、これらXNUMXつのクラスのユースケースは、それぞれネイティブアセットとデータストリームを使用して実装されます。

一般的なデータストレージに関しては、ブロックチェーンは多くのサービスを提供します。データの出所を証明し、タイムスタンプを付け、少数のブロックチェーン参加者による変更を防ぐために不変に公証します。 しかし、ブロックチェーンはデータ自体について何も言う必要はありません。各アプリケーションは、データの意味と、それが有効かどうかを判断できます。 不良データは、ブロックチェーン全体の状態に害を及ぼすことなく、アプリケーションレベルで単純に無視できます。

対照的に、ブロックチェーンがトークン化されたアセットを直接転送する場合、それらの転送の有効性に関する内部ルールを適用する必要があります。 簡単に言うと、「アリスがボブにXNUMXユーロを支払う」などのイベントは、アリスの名前が少なくともXNUMXユーロある場合にのみ、チェーンによって承認されます。 さまざまなタイプのブロックチェーンがこのルールをさまざまな方法で表現しますが(ビットコイントランザクションの制約とイーサリアムのスマートコントラクト)、それらはすべて、チェーン内のすべてのノードがアリスの財務を知っている必要があるという特性を共有しています。 これにより、彼女の支払いが有効かどうかを評価し、結果としてボブがいくら持っているかを知り、ボブからチャーリーなどへの将来の支払いを評価することができます。

この時点で、ブロックチェーンに精通している読者は、アリスとボブがチェーン上の名前で直接識別されていないことを指摘します。 代わりに、それぞれがXNUMXつ以上の「アドレス」の下でトランザクションを実行します。これは、実際のIDとは関係のない意味不明の長い英数字の文字列です。 これは真実ですが、実際には、ユーザーとそのアドレスの間の接続を推測できる方法がいくつかあるため、あまり役に立ちません。

まず、最も簡単に言えば、ブロックチェーン上の誰かと取引するために、私は彼らのアドレスの少なくともXNUMXつを知る必要があります。 ですから、私が彼らにいくらかのお金を送れば、そのお金が次にどこに行くのか、そして彼らが私にお金を払っているのなら、それがどこから来たのかがわかります。 次に、現実世界の参加者について何かを知っている場合(たとえば、どのタイプの資産をXNUMX日のどの時間に取引するか)、チェーンのアクティビティで対応するパターンを検索し、高レベルのアドレスを推測できます。信頼。 最後に、参加者のXNUMXつのアドレスがわかれば、チェーン上の資金の全フローを監視することで、参加者が所有および使用している他のアドレスを特定できることがよくあります。 これを達成するのは簡単ではありませんが、次のような企業によって証明されているように、十分なモチベーションがあれば確かに可能です。 連鎖解析 および スクリ この種のビットコインの「ネットワーク分析」を提供して生計を立てている人。

暗号化で保存しましたか?

資産とデータの対比は、暗号化の問題に直接関係しています。 ブロックチェーン上の一般的なデータストレージの場合、データの出所、タイムスタンプ、不変性のメリットを享受しながら、保存された情報を暗号化できます。 これらの機能はいずれも、データ自体を洞察する必要はありません。 したがって、XNUMX人の参加者がブロックチェーンを使用して、自分だけが読み取ることができる情報を保存することは完全に有効ですが、他の参加者がそのデータの出所と特定の時点での存在にコミットするという利点も得られます。

対照的に、この性質の暗号化は、トークン化された資産の転送を表すトランザクションでは使用できません。 アリスとボブがトランザクションを暗号化した場合、問題のアセットはチェーンの他の参加者が安全に使用できません。これは、アセットが実際にどこにあるかを他の誰も知らないためです。 資産はチェーン上で集合的な意味を持たなくなり、ポイント全体が破壊されます。

金融セクターでは、プライバシーと流動性の間のこの対立は、資産を転送するためにブロックチェーンを使用することの核となる困難であり、この分野の多くの新興企業の期待を打ち砕きます。 ながら 技術的 ブロックチェーンを介してアセットを移動する可能性は、無数のパイロットプロジェクトによって証明されています。実際には、これにより、ピア間で明らかにされるアクティビティが多すぎます。 情報漏えいは、最善の場合には不利ですが、チェーンの参加者が激しい競争にさらされている場合、または規制によって禁止されている場合は、完全な目玉になります。

その結果、多くの著名な「分散型台帳」スタートアップは、オンチェーン決済の概念から離れ、「一般的なデータストレージ」パラダイムの下でブロックチェーン上で暗号化および公証される従来の二国間取引に戻りました。 これにより、紛争や二重支払いを防ぐことができますが、和解自体はチェーンの外部にとどまります。 ブロックチェーンはまだある程度の価値を提供していますが、当初の期待よりも変革的ではありません。 スタートアップとその投資家の間で、赤面した会議が数回以上あったことは間違いありません。

それでも、すべてがっかりした後、ようやく救いが手に入るかもしれません。 ゼロ知識ブロックチェーンを入力してください。

ゼロ知識の紹介

この新しいタイプのブロックチェーンについて説明する前に、ゼロ知識自体の原則を理解しておくと役に立ちます。 一般的な意味で、ゼロ知識証明とは、証明しようとしている以上の追加情報を明らかにすることなく、特定のステートメントの真実を実証するものです。

例を挙げると、XNUMXつのペンを所有している色覚異常の友人がいるとします。これらのペンは、XNUMXつが緑で、もうXNUMXつが青であることを除いて同じです。 私の友人はそれらを区別することができません、そして私はそれらが本当に異なっていることを彼女に納得させたいです。 もちろん、私が嘘をついているかどうかを彼女が評価できないので、単に彼女に色を伝えるだけではこれを行うことはできません。

じゃあどうすればいい? (少し時間を取って、自分で答えを考え出してみてください…)ええと、私は彼女に紙を取って、別の部屋でその上にXNUMX本の線を描くように頼むことができます。 これを行うとき、彼女は両方の線に同じペンを使用するか、それぞれにXNUMXつのペンを使用するかを自由に決定できます。 彼女の観点からは、結果はどちらの方法でも同じに見えます。 それから彼女は紙で戻ってきます、そして私は彼女に彼女が彼女にXNUMX本またはXNUMX本のペンを使用したかどうかを伝えます。 もちろん、ペンが同じ色だったら、私には分からないでしょう。 したがって、私が正しく理解しているという事実は、それらが異なることを証明しています。

まあ、完全ではありません。 このロジックには問題があります。 ペンが同じであっても、可能性は50つしかないため(彼女は5つまたは1つのペンを使用した)、正しい答えを出す可能性は32%です。 したがって、幸運な推測の10つは、何も証明しません。 私の主張を強化するために、ゲームは複数のラウンドにわたってプレイされなければなりません。 すべてのラウンドの後、一貫して正しいという私のチャンスは半分になります。 したがって、1ラウンドで、1024分の20の確率で偽造に成功します。 1ラウンドの場合は1048576にXNUMXつ、XNUMXラウンドの場合はXNUMXにXNUMXつ、つまりXNUMX万にXNUMXつです。 私の友人の退屈と疑いの相対的なレベルに応じて、彼女は絶対的な確実性は決してありませんが、彼女が望むあらゆる確率的なレベルの証拠に達することができます。

ヘビを連れてきて

ブロックチェーンのゼロ知識証明も同様の原則を適用しますが、もちろんペンの色についてではありません。 むしろ、彼らは、譲渡自体について重要なことを何も明らかにすることなく、「この資産の譲渡は有効である」という声明を証明することを目指しています。 Zcashは、zk-SNARKと呼ばれるゼロ知識証明のための比較的新しい手法を使用しています。 の完全な説明 (穏やかに言えば)この作品の範囲を超えています。 しかし、基本的な考え方は次のとおりです。任意の計算条件は、入力として一部のデータを受け取り、それに応じて「true」または「false」の答えを与える算術回路で表すことができます。 zk-SNARKは、この回路のモデルを使用して、入力自体を明らかにすることなく、真の応答を提供する入力を所有していることを、任意の程度の確実性で証明できるようにします。 少なくとも哲学的には、これはXNUMXつのペンが異なる色であることを証明するようなものであり、それらの色が何であるかを明らかにすることはありません。

zk-SNARKは、巧妙な小さなトリックを使用して、ゼロ知識証明に典型的な双方向性を回避します。この対話性では、懐疑的な当事者が主張を行う者に繰り返し挑戦を提示します。 私たちのペンの場合、この課題は、各ラウンドでXNUMX本またはXNUMX本のペンを使用するかどうかの私の友人の選択です。 課題を設定する信頼できる中央関係者がいないため、このタイプの対話性はブロックチェーンでは実行できません。 代わりに、zk-SNARKは、チャレンジが何らかのコードによって決定論的に作成される「ランダムオラクル」の近似を使用しますが、すべての意図と目的に対して、ランダムであるかのように動作します。 偶然ではありませんが、この決定論と予測不可能性の組み合わせは、ブロックチェーン自体を保護するのと同じ種類のハッシュ関数を使用します。

ゼロ知識証明はしばらく前から存在していましたが、zk-SNARKは、ブロックチェーンで使用できるようにする多くの革新を導入しています。 最も重要なことは、zk-SNARKは、プルーフのサイズと、プルーフの検証に必要な計算量を削減することです。 ブロックチェーンでゼロ知識証明を使用する以前の試みであるZerocoinには、45 kbのトランザクションが必要であり、各トランザクションのチェックにはXNUMX秒かかります( ホワイトペーパー Zcashのベース)。 これは、トランザクションのサイズが通常0.3 kbで、ミリ秒未満で検証できるビットコインよりも大幅に劣ります。 対照的に、Zcashトランザクションの重みは1kbで、6ミリ秒未満でチェックインできます。 これにより、Zcashはビットコインと同じスケーラビリティリーグになります。これは驚くべき成果です。 ビットコインの作成者に帽子を脱いだ場合は、靴下と靴を脱ぐ必要があります。

注意が必要です

すべてのビットコインをZcashに変換する前に、覚えておくべきいくつかの注意事項があります。 まず、Zcashの暗号化は、信頼できるセットアッププロセスに依存しています。このプロセスでは、ランダムに生成されたXNUMXつの秘密鍵からXNUMXつの長い公開鍵が取得されます。 この秘密鍵を所有している人は誰でも、システムが依存する証明を偽造できるため、この秘密鍵を破棄することは絶対に不可欠です。 Zcashの場合、秘密鍵は入念な式典で作成され、詳細に説明されています こちら。 セレモニーには、暗号通貨の世界でよく知られているいくつかのキャラクターが参加しました。各キャラクターは、秘密鍵を部分的にしか見ていませんでした。 つまり、これは、式典の参加者全員が悪意を持って共謀した場合にのみ、Zcashが危険にさらされる可能性があることを意味します。 彼らがそれについてどれだけ自信を持っているかを決めるのは読者次第です。

第二に、それは比較的速いですが 確認する 匿名のZcashトランザクション、 作成 これらのトランザクションはそれぞれ、深刻な計算負荷を伴います。 による Zcashスピードセンター、現在、ハイエンドサーバーでは48秒かかり、3GBを超えるメモリが必要です。 これにより、モバイルデバイスや古いデスクトップやラップトップから匿名で取引することは非現実的です。 Zcashは、通常の可視クリプトコイン(高速トランザクション)と匿名の「メモ」(低速のもの)の両方をサポートし、XNUMXつの間で変換するための組み込みメソッドを使用して、この制限を部分的に回避します。

第三に、基礎となる暗号化が健全であると仮定しても、Zcashコードに潜んでいるバグがあり、匿名のメモを空中から想起させる可能性があります。 これにより、Zcashのマネタリーベースが無制限に膨らみ、最終的に暗号通貨が無価値になります。 ビットコインのような透過的な暗号通貨とは異なり、Zcashのポイント全体がトランザクションを隠しているため、この壊滅的なイベントは検出できません。 それでも、ZcashのCEOであるZooko Wilcoxによると、解決策を見つけるための作業はすでに進行中であるため、それを楽しみにしています。

最後に、プルーフオブワークに基づく他の暗号通貨と同様に、51%の攻撃の可能性が残っています。 これは、ネットワークの計算能力の半分以上を持つ「マイナー」のグループが共謀して、他の誰もが完了したと思っていたトランザクションを取り消すことができることを意味します(悪いマイナーは、他の人の資金を盗むトランザクションを偽造することはできません)。 Zcashはスマートに依存しています エクイハッシュ、ビットコインのSHA-256とは異なるハッシュアルゴリズム。これは、既存のビットコインマイニングパワーの膨大な量をZcashに対して無効にすることはできないことを意味します。 Equihashは、ビットコインマイニングを寡占化した「ASIC」(特別な目的のマイクロプロセッサ)に対してより耐性があるように設計されていますが、ハードウェアエンジニアが回避策を見つけることができるかどうか、そしてどのようなコストで時間を知ることができます。

知識ゼロのプライベートブロックチェーン

これまでは、パブリックZcashブロックチェーンと暗号通貨に焦点を当ててきました。 しかし、プライベートまたは許可されたブロックチェーンと共有元帳を越えて移動する外部資産についてはどうでしょうか? 同じゼロ知識技術を使用できますか?

技術的なレベルでは、答えは間違いなくイエスです。 Zcashの根底にある理論的および技術的なツアーデフォースと比較して、チェーンで発行されたアセットをサポートするためにプロトコルを拡張することは簡単です。 必要なのは、zk-SNARKによって証明された条件を拡張して、単一の暗号通貨ではなく、複数の資産の保存を強制することです。 または、さらに簡単に言えば、単一のブロックチェーン上に複数の異なる匿名サブシステムを作成し、それぞれが異なるタイプのアセットを表し、現在のZcashとまったく同じように各サブシステム内でトランザクションを実行します。 このXNUMX番目の方法では、zk-SNARKをまったく理解する必要はありません。

このモデルでは、資産のライフサイクルはどのように見えますか? まず、信頼できるエンティティは、トークンの値を証明する目に見えるブロックチェーントランザクションを送信することにより、アセットを表すトークンを発行します。 次に、同じエンティティがXNUMX番目のトランザクションを実行し、表示されているトークンを匿名化されたZcashスタイルの「メモ」に変換して、資産を効果的に地下に移動します。 これらのメモは、発行者から他の人に、そしてチェーンの参加者の間で密かに転送することができます。 Zcashと同様に、転送トランザクションは、コンテンツを公開することなく、すべてのブロックチェーン参加者によって有効であると確認できます。 最後に、所有者がメモの引き換えを希望する場合、別のZcashスタイルのトランザクションを使用してメモを表示可能なトークンに変換し直し、それらのトークンを元の発行者に送信して、同等の実世界の資産を受け取ります。 また、メモを匿名で直接引き換えることを許可する場合もあります。その場合、ブロックチェーンの参加者は、流通している資産の量を知ることができません。

したがって、ゼロ知識トランザクションは、ブロックチェーンが金融セクターでの決済に使用されるのを妨げてきたゴーディアンノットを解くことを約束します。 要約すると、通常のブロックチェーントランザクションでは、アセットがXNUMXつの銀行から別の銀行に送信されると、そのトランザクションの詳細がチェーン上の他のすべての銀行に表示されます。 対照的に、ゼロ知識トランザクションでは、他の人は有効なトランザクションが行われたことだけを知っていますが、送信者、受信者、資産クラス(賢い場合)および数量については何も知りません。 トランザクションの量でさえ、参加者が自分自身に資産を送信する偽のトランザクションを定期的に作成することによって難読化される可能性があります。

プライバシーの観点から、これはある銀行から別の銀行にブリーフケースで移動する金の延べ棒と同じくらい優れていますが、金を物理的に移動するコストと時間はありません。 そして、すべてが進行しているのを見る単一の当事者さえいないので、カストディアン銀行などの信頼できる仲介業者を使用するよりも優れています。 初めて、ゼロ知識ブロックチェーンにより、資産の転送を完全な機密性でピアツーピアベースでデジタルで実行できるようになりました。

そのデータベースを捨てないでください(まだ)

Zcashの技術的ファンダメンタルズが健全であると仮定すると、開発者の関心と時価総額の点で暗号通貨のトップティアに到達することを完全に期待しています。 しかし、ゼロ知識トランザクションにも同様に明るい未来がありますか? プライベート ブロックチェーン? 彼らは実験室から生産品質のシステムに移行し、世界中で実際のお金を動かしますか?

もちろん、それを伝えるのは時期尚早です。 しかし、許可されたブロックチェーンの支持者がゼロ知識トランザクションを指し示し、勝利を勝ち誇って宣言する前に、答える必要のある質問がいくつかあります。

まず、そして最も重要なことに、これは安全ですか? 基盤となる暗号化とそのコード化された実装の両方が、悪意のある当事者が薄い空気から資産を生成するのを防ぐのに十分強力であると本当に確信できますか? 前述のように、透過的なブロックチェーンとは異なり、ゼロ知識ブロックチェーンのマネタリーベースが侵害されているかどうかを検出することはまだできません。 それでも、すべての人が見て攻撃できるオープンなパブリックブロックチェーンとしてリリースすることほど、このテクノロジーの確実なテストはありません。これはまさにZcashが行っていることです。 Zcashがスムーズに実行されているのを数年見てから、機関はゼロ知識ブロックチェーンが資産を真に保護できると確信するようになるかもしれません。 すべての問題のブロックチェーンと同様に、忍耐が必要です。

関連する問題は、ゼロ知識暗号自体の目新しさです。 通常のブロックチェーンが高度な暗号化、つまり非対称暗号化(公開/秘密鍵)と暗号化ハッシュ関数(デジタルフィンガープリント)に依存しているのは事実です。 また、ブロックチェーンプログラマーやアプリケーション開発者の大多数が、これらの手法の根底にある数学的原理を理解していないことも事実です。 しかし、より広いポイントはこれです:ブラックボックスとして扱われる場合、これらの方法は何十年もの間、膨大な数の開発者とユーザー(httpsを聞いたことがありますか?)によって広く採用されており、誰もがそれらが機能すると信じています。 対照的に、最近までゼロ知識証明は小さな学者コミュニティにしか知られておらず、インターネットやその他の場所で幅広いアプリケーションを持っていませんでした。 このあいまいさにより、少なくとも今後XNUMX年間は、銀行のCIOまたはリスク担当者がコアプロセスをゼロ知識ブロックチェーンに移行する意欲が低下することが予想されます。 そして、規制当局がこのように動き回る資産に慣れるのにどれくらいの時間がかかるかを想像することすら始めましょう。

規制について話すと、ゼロ知識ブロックチェーンに関する別の実際的な問題が発生します。 ブロックチェーン内の匿名トランザクションには、資産の譲渡と所有権に関するステートメントが含まれていますが、これらのステートメントは、選択した関係者(つまり、直接関係する関係者)にのみ表示されます。 ゼロ知識ブロックチェーンとその参加者のアイデンティティを規制当局に完全に可視化しても、内部で実際に何が起こっているのかを知る方法はありません。 もちろん、規制当局はすべての参加者に取引を特定して明らかにするように依頼することができ、Zcashスタイルの「表示キー」を使用してこれを効率的に行うことができます。 それにもかかわらず、特定の取引の当事者がそれを秘密にしておきたい場合、規制当局は立ち往生しており、誰に罰金を科すかわかりません。 全体像を把握できるカストディアン銀行はなく、執行の唯一の選択肢はチェーン全体を閉鎖することです。

それで、収益は何ですか? 少なくとも今のところ、パブリックZcashブロックチェーンの進捗状況を追跡して、それがどのように開発および成長するかを確認することをお勧めします。 の場合 イーサリアムの歴史 繰り返されると、貪欲な日和見主義者によって悪用されるのを待って、表面の下に潜んでいる驚きと脆弱性があります。 それにもかかわらず、長期的には間違いはありません。ゼロ知識トランザクションは、ブロックチェーンにとって画期的なブレークスルーです。 基礎となる暗号化の原則が適切であることが証明された場合、ブロックチェーンを適用できるユースケースの範囲が大幅に広がることを期待してください。

コメントを投稿してください LinkedInの上に.

タイムスタンプ:

より多くの マルチチェーン