BUSINESS LIFE TECHNOLOGY ETHEREUM

仮想通貨で利用されるゼロ知識証明とは【zk-SNARK,zk-STARK,Bulletproofs】

悩んでいる人

仮想通貨で利用されるゼロ知識証明を教えて!

こういった悩みにお答えします.

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++Solidity/Vyper,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

ゼロ知識証明

ゼロ知識証明(ZKP:Zero Knowledge Proof)とは,1985年にShafiらが提案した「ある人が自分の持っているある命題が真であることを,他の人に真であること以外の知識を何も教えずに証明する手法」です.

ゼロ知識証明は,以下の3つを満たす必要があります.

  • 完全性(completeness):条件が真であれば,正直な検証者(つまり,プロトコルに正しく従っている者)は,正直な証明者によってこの事実を確信できること.
  • 健全性(soundness): ステートメントが偽である場合,不正な証明者は,小さな確率を除いて,それが真であると正直な検証者を納得させることはできないこと.
  • ゼロ知識性(zero-knowledge): 条件が真であれば,検証者はその文が真であるという事実以外には何も学ばない.言い換えれば,証明者が秘密を知っていることを示すシナリオを想像するには,(秘密ではなく)文を知っていれば十分であること.すべての検証者が,証明されるべき声明だけが与えられれば(そして,証明者にアクセスできなければ),正直な証明者と問題の検証者との間で正常なコミュニケーションができたような記録を作成できること.

ゼロ知識証明は,大きく分けて以下の2つになります.

  • 対話式ゼロ知識証明:証明したい人と,確認したい人の間で何度かデータのやりとりをすることで納得する証明方法
  • 非対話ゼロ知識証明:データを一度提示するだけで相手に納得する証明方法

ゼロ知識証明の解説は,こちらの動画がわかりやすいです.

2021年12月に「イーサリアムのスケーリングソリューションとして注目を集めるポリゴン(Polygon)が,ゼロ知識証明の開発を行うスタートアップ「Mir」を買収することに合意した」とのことです.

ポリゴンを知りたいあなたはこちらからどうぞ.

ポリゴン
【イーサリアムのレイヤ2技術】仮想通貨ポリゴン(Polygon)とは【買い方】

こういった悩みにお答えします. 目次1 ポリゴン(Polygon)2 ポリゴンの買い方3 ポリゴンの特徴4 ポリゴンを含むイーサリアムのレイヤ2技術の統計情報5 2021年9月:イーサリアムのレイヤ2 ...

続きを見る

代表的な非対話ゼロ知識証明

代表的な非対話ゼロ知識証明として以下が挙げられます.

  • zk-SNARK:zero-knowledge Succinct Non-Interactive ARguments of Knowledge
  • zk-STARK:zero-knowledge Scalable Transparent ARgument of Knowledge
  • Bulletproofs:信頼できる設定を必要としない短い非対話的なゼロ知識証明

zk-SNARKとzk-STARKの解説動画はこちらです.

zk-SNARKを最初に実装した仮想通貨はZcashです.

Zcashを知りたいあなたはこちらからどうぞ.

Zcash
仮想通貨Zcashとは【買い方】【zk-SNARK】

こういった悩みにお答えします. 目次1 仮想通貨Zcash2 Zcashの買い方3 まとめ 仮想通貨Zcash Zcash(ジーキャッシュ)は,ゼロ知識証明を利用する仮想通貨です. ゼロ知識証明を知り ...

続きを見る

Bulletproofsは,信頼できる設定を必要としない短い非対話的なゼロ知識証明です.

Bulletproofsは,暗号化された平文がうまく形成されていることを検証者に納得させるために使用されます.

例えば,暗号化された数字が所定の範囲内にあることを,その数字について他には何も明かすことなく証明します.

SNARKと比較すると,Bulletproofsは信頼できる設定を必要としません.

しかし,Bulletproofsの検証は,SNARK証明の検証よりも時間がかかります.

Bulletproofsの解説動画はこちらです.

Bulletproofsを利用する仮想通貨としてモネロが挙げられます.

モネロを知りたいあなたはこちらからどうぞ.

モネロ
仮想通貨モネロ(Monero)とは【買い方】【リング署名,Bulletproofs】

こういった悩みにお答えします. 目次1 仮想通貨モネロ(Monero)2 モネロの買い方3 まとめ 仮想通貨モネロ(Monero) モネロ(Monero)とは,仮想通貨バイトコイン(Bytecoin) ...

続きを見る

ゼロ知識証明の代表的なライブラリ

ゼロ知識証明の代表的なライブラリを紹介します.

C++言語:libsnark

libsnarkは,計算の完全性をゼロ知識で証明・検証する暗号手法であるzk-SNARKを実装するC++言語のライブラリです.

libsnarkは,SCIPR Labという簡潔な完全性とプライバシーを提供する暗号証明システムの実用化を目指す研究者による複数機関にわたる学術共同体により開発されました.

Go言語:gnark

gnarkは,ゼロ知識証明zk-SNARKの高レベルのAPIを提供するGo言語のライブラリです.

gnarkは,ドキュメントやベンチマークの結果等が充実しています.

まとめ

仮想通貨で利用されるゼロ知識証明を紹介しました.

また,ゼロ知識証明を利用している仮想通貨を解説しました.

仮想通貨を取引したいあなたは,まずは国内取引所のCoincheckを開設しましょう!

Coincheck

Coincheckが扱っていない仮想通貨を取引したい場合や低い手数料で取引したい場合は,海外取引所を開設する必要があります.

しかし,海外取引所は日本円が使えないので,国内取引所から仮想通貨を送る必要があります.

そこで,以下のおすすめの仮想通貨取引所(主に海外)で開設して,Coincheckからビットコインやイーサリアムを送りましょう!

-BUSINESS, LIFE, TECHNOLOGY, ETHEREUM
-, ,