Greetings! New to Zcash?
The Zcash network is young, but evolving quickly! Sign up and we'll be in touch with monthly highlights on ecosystem growth, network development and how to get started with Zcash!

言語

Pay-to-sudokuのおさらい

Sean Bowe | Jun 08, 2017

昨年私は pay-to-sudoku という世界初の ゼロ知識の決済 (ZKCP)を取り入れたプロジェクトを立ち上げました。ZKCPsは2011年に Gregory Maxwell氏によって発明された、ブロックチェーン上で自動的に情報や価値の交換を可能にするスマートな暗号技術です。さらにGregory氏は親切にもFinancial Cryptography 2016というイベントでの デモ の手助けをしてくださいました。

pay-to-sudokuでは、ある人 (買い手) が相手 (売り手) に数独パズルを解いてもらうために支払いをすることができます。売り手はパズルを解いてその答えを鍵で暗号化しハッシュ化します。 ゼロ知識証明を使って(この場合libsnarkを使ったzk-SNARK) 売り手は暗号化されたパズルの答えを持っているという証明を作り出し、SHA256の特定のハッシュによって復号することができるようになっています。

買い手は支払いをブロックチェーンで行い、売り手は代金の一部を受け取る代わりにSHA256の原像(鍵)を明かします。売り手がこれを行うことで、買い手はパズルの答えを復号して見ることができます。

これをzk-SNARKで行うには、買い手は 売り手が証明を評価するためのcommon reference string (CRS) をつくらなければなりません。 Campanelli、Gennaro、Goldfeder そして Nizzardoはpay-to-sudokuがlibsnarkに導入されたPGHRを使う方法における欠点を特定した 新しい論文 を発表しました。 これはCRSが 正しい代数構造を持つことを前提とし、結果として買い手が何も払わずに答えを手に入れるためにゼロ知識を破る隙を得るとの結論に至っています。

仮に全てのMPC参加者が嘘をついていたとしてもマルチパーティー計算トラ ンスクリプト がCRSの正しさを保証できるお陰で、Zcashの公開されたパラメーターはこのような悪意のある環境にも耐えることができます。これについても論文の中で言及されています。

第三者CRSを使う場合はマルチゲートのステップがいくつかあります。Zcashの公開パラメーターと同じようにマルチパーティー計算プロトコルを使ってパラメーターが正しく作られていることができます。CRSの不正なストラクチャを禁止し論文で指摘されるような特定の攻撃から守ることができます。さらにこれを作った後に証明を承認することでさらに安全性を高めることができます。

さらにこの論文はZKCPの概念の延長となるものや、(数独パズルの答えのような)デジタルなモノではなくデジタルなサービスの購入など面白いアイデアを提案しています。

ZKCP, cryptography, zkSNARKs | 全てのタグを見る