暗号通貨ジーキャッシュ(Zcash)について⑦くりぷと知っ得情報12月24日号

クリプトスタディ(クリスタ)の水野です。
シリーズでプライバシー重視の暗号通貨、「ジーキャッシュ(Zcash)」について書いてます。

🔶ジーキャッシュ(Zcash)の概要くりぷと知っ得情報11月12日号🔶ビットコイン(BTC)とジーキャッシュ(Zcash)の共通点くりぷと知っ得情報11月19日号🔶秘密の中身を見せなくても正しいと証明できる魔法の技術「zk-SNARKs」
くりぷと知っ得情報11月26日号🔶ビットコイン(BTC)が「ゼロ知識証明」の概念を採用しない理由くりぷと知っ得情報12月3日号🔶「zk-SNARKs」が信用・信頼を勝ち取っている背景①くりぷと知っ得情報12月10日号🔶「zk-SNARKs」が信用・信頼を勝ち取っている背景②くりぷと知っ得情報12月17日号

前号では、ジーキャッシュ(Zcash)がどうやって、

「zk-SNARKs」を安全に、また、その信用・信頼を勝ち取っているのか?

について、具体的な

超強力な数式そのもの=テクノロジー

について、書きました。

前号のおさらい

前号では、「zk-SNARKs」の土台である

①見えない送金の正しさ‥‥楕円曲線暗号(ECC)

②ペアリング暗号

について書きましたが、

今回は、その続きです。

③裏側の超重要な下ごしらえ‥‥QAP(Quadratic Arithmetic Programs)

はい、また難しい💦

 

🔹Quadratic(クアドラテティック)‥‥二次の
🔹Arithmetic(アリスメティック)‥‥算術
と言うことで、QAP(Quadratic Arithmetic Programs)は、直訳すると、「二次計算プログラム」になります。

「二次計算プログラム」って、何?

シンプルに考えましょう。
「ゼロ知識証明」でやりたいことは?

「この計算、ちゃんと正しくやりました」
でも

「途中の計算内容は一切見せたくない」

と言う点にあります。
つまり、「ゼロ知識証明」を叶えるためには、コンピュータの計算プロセスを明かさずに、結果についての「信用」をチェック可能な形に変換する技術が必要だったわけです。
そこで登場したのが、QAPです。
送金元・送金先・金額を一切見せずに“正しい取引だ”と証明できるこのQAPですが、2012〜2013年ごろ、「zk-SNARKs」研究が一気に進んだ時代に生まれました。

「QAP」開発の中心人物

、🔹Eli Ben-Sasson(エリ・ベン=サッソン)
イスラエルの暗号学者であり、ブロックチェーン技術企業StarkWare Industriesの共同創業者兼CEO(会長を兼任)。
(公式X)
🔹Alessandro Chiesa(アレッサンドロ・キエーザ)
理論計算機科学と暗号学の分野で活躍する研究者・教授。
ゼロ知識証明「zk-SNARKs」技術の開発における主要人物の一人として知られ、プライバシー保護型暗号通貨技術の基盤を築いた。
🔹Matthew Green(マシュー・グリーン)
アメリカの暗号研究者で、ジョンズ・ホプキンス大学のコンピュータ科学准教授。
現代の暗号理論および実用的セキュリティ技術の発展において重要な役割を果たしている人物。

開発者が求めた答え

どんな計算でも、“証明しやすい数学の形”に変換できないか?

これが、開発者たちの答えで、それがQAPでした。

QAPは、テストの「採点用マークシート」⁉️

マークシートテストの解答をイメージします。

正しく解いただけを確認するマークシート

計算の途中は見ない。でも、マークシートのチェックが正しければ、ちゃんと解いたと認める。

 この「特別なマークシート」が QAPです。

QAPは何をしている⁉️

結論から‥‥
QAPがやっていること、役目、それは、、

「計算がちゃんと正しく行われたか」を、答えを見せずにチェックできる形に変換

する役目です。
普通のプログラム(足し算・掛け算・条件分岐(※)など)を、「たくさんの二次式(かけ算の形)」に書き直します。
その式が 「全部同時に成立しているか? 」を確認する仕組みが、QAP(Quadratic Arithmetic Programs)です。

(※)条件分岐とは、プログラムにおいて「もし○○○ならば、×××する」というように、特定の条件が見た刺されるかどうかに応じて、実行する処理(プログラムの流れ)を「枝分かれ」させる制御構造のことです。
おなかが空いたらご飯を食べる」と同じ考え方で、プログラミングでは「if」文などの構文を使って記述されます。

例えば‥‥

あなたが先生で、
生徒が「むずかしい計算を正しく解いた」と言ってきたとします。

でも、

🔹解き方は見れない

🔹答えも見れない

とします。

そこで、QAPは、こうします。

この3つのチェックポイントが全部合っていたら、正しく計算計算たことにしていいよ

という特別なチェック式を作ります。
そうすると、先生(検証者)はその
🔹「チェック式」だけ確認
🔹中身の計算は一切見ない
それでも「正しい」ことが一瞬でわかる。
 

これが、QAP(Quadratic Arithmetic Programs)で、

計算を“検証用の形”に変換する翻訳機

であり、

zk-SNARKSの心臓部

になります。

QAPだけでは、まだ足りない?

でも、QAPだけだと、問題がありました。

それは、

数式が重すぎて、そのまま全部チェックすると時間がかかる

 

ことです。
ここで登場するのが、前号でも触れました、

ペアリング暗号

です。
ペアリング暗号は、

巨大な数式チェックを、超短時間でできる数学的トリック

で、例えば
先述の、あなたが先生で、
生徒が「むずかしい計算を正しく解いた」と言ってきた例で例えると‥‥
🔹生徒は、長ーい計算ノートを出す
🔹先生は全部読まない
🔹代わりに 「赤外線スキャナー」を当てる
🔹正しければ「ピッ」、間違っていれば「エラー」

この赤外線スキャナーがペアリング暗号

になります。

まとめ

QAPとペアリング暗号について、全体像としてまとめます。

役割

何をしている?

例え

QAP

計算を「検査できる数式」に変換

問題をテスト用シートに書き直す

ペアリング暗号

その数式が正しいか一瞬で確認

魔法のスキャナー

zk-SNARKs

両方を組み合わせた仕組み

見ずに正解がわかる検定

といったところでしょうか😊

QAPだけだと正しいのはわかるがチェックが重い。

 

ペアリング暗号があると、

数式を見なくても、一瞬で改ざん不可能な形で正しさだけを確認できる

「ゼロ知識」+「高速」+「安全」が成立するわけです。
 

おわりに

今回は、ジーキャッシュ(Zcash)の

超強力な数式そのもの=テクノロジー

の一つ、QAPとペアリング暗号について、解説しました。
お読みいただいてありがとうございました。