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

明けましておめでとうございます。
クリプトスタディ(クリスタ)の水野です。
今年も、「くりぷと知っ得情報」を通じて、暗号通貨を中心に情報発信ができればと思いますので、よろしくお願いします。
さて、今年のスタートは、昨年からの続き、プライバシー重視の暗号通貨、「ジーキャッシュ(Zcash)」について書いていきます。

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

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

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

について、具体的な

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

について、書きました。
 

前号までのおさらい

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

①見えない送金の正しさ‥‥楕円曲線暗号(ECC)
②ペアリング暗号

くりぷと知っ得情報12月17日号

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

くりぷと知っ得情報12月24日号


今回は、その続き、

テクノロジーの裏側の概念について

核心に迫ります。

「ジーキャッシュ(Zcash)」の凄さは、

見せない残高
見せない送金額
見せない送金者・送金先

でした。

そもそもの疑問。

見えないのに、どうやって二重払いを防ぐのか?

UTXO(Unspent Transaction Output)=「未使用トランザクション出力」=「使いきりのお金のかたまり」について、くりぷと知っ得情報12月3日号で書きました。
 

UTXOとは、

コインの動きは「見える」
↓
使ったコインはUTXOとして消える
↓
同じコインをもう一度使おうとすると‥‥
みんなにバレる

ビットコイン(BTC)の場合は、残高、金額、送金元〜送金先まで、透明に公開されます。

ですが、「ジーキャッシュ(Zcash)」の場合、中身が見えないのにどうやって「もう使ったかどうか」をどう判断するのか?

と言う点が、そもそもの疑問です。

二重払いを防ぐNullifier(ヌリファイア)

「Nullifier(ヌリファイアー)」は、「何かを無効にする人、または無効化する装置・物」を意味し、動詞「nullify(無効にする、取り消す)」から派生した言葉です。
 

ジーキャッシュ(Zcash)は、その「Nullifier(ヌリファイアー)」を使って、二重払いを阻止している?
そもそも、「Nullifier(ヌリファイアー)」って、どこからきた概念なの?

Nullifier(ヌリファイア)の正体

🔶「Nullifier(ヌリファイアー)」は「暗号通貨で突然生まれた概念」ではありません。
🔶元は「ゼロ知識証明」(ZKP:Zero-Knowledge Proof)と匿名投票・電子現金の研究分野で育った考え方です。
🔶それを暗号通貨に本格導入したのがジーキャッシュ(Zcash)で、

中身を明かさずに、”使用済み”であることだけを示す印

として、導入されています。

ルーツは1990年代の研究「電子現金(e-cash)」

1990年代から研究されていた課題として、
🔹匿名で支払いたい
🔹でも二重払いは防ぎたい
と言う、匿名性と二重払い防止は矛盾しやすい課題がありました。
そこで出てきた発想として、

取引内容は匿名、でも、使ったら必ず「同じ印」を残す

と言うもので、
🔹「double-spending tag(重複使用タグ)」
🔹「serial number(秘密の通し番号)」
といった、「Nullifier(ヌリファイアー)」の原型が生まれました。
 

その、匿名システム全般の設計として、著名な人物がいます。

David Chaum(デヴィッド・チャウム)氏

匿名電子現金という分野を“最初に理論化し、実装し、体系を作った人物”

David Chaum(デヴィッド・チャウム: 1955年生まれ)氏は、アメリカの計算機科学者・暗号学者で、「デジタルキャッシュの発明者」として広く知られています。(公式 X)


オンライン匿名性や電子投票など、現代のプライバシー技術と暗号理論の基礎を築いた先駆的存在です。
何が凄かったかというと‥‥

銀行を通さず、身元を明かさずに支払える“電子のお金”を作ろうとした最初の本格研究

にあります。

🔶各電子コインには「秘密の番号」があって、

🔶支払い時に番号を提出。

🔶銀行は、「この番号、前に使われてない?」だけ確認し、

🔶同じ番号が2回出たら、「❌不正」。

これが「Nullifier(ヌリファイアー)」の原型になっています。

ゼロ知識証明(ZKP)との融合(2000年代)

2000年代に入って「ゼロ知識証明」(ZKP:Zero-Knowledge Proof)の研究が進むと、こう考えられるようになります。

🔶「私は正しいコインを持っている」

🔶「それを初めて使う」

🔶「でもどのコインかは教えない」

🔶 “条件だけを満たしている”証明が可能

ここで

🔶秘密から計算され

🔶公開しても正体が分からず

🔶同じ秘密なら必ず同じ値になる

という、「Nullifier(ヌリファイアー)」的性質が確立したと言うわけです。

まとめ

ジーキャッシュ(Zcash)が、二重払いを防いでいる方法は、

コインごとに“秘密の番号”を1回だけ提出させ
同じ番号が2回出たら不正と判定する

映画館の「半券」

例えで言うと、映画館の「半券」みたいなものです。

映画館の受付で、

🔹チケット本体は見せない(匿名)

🔹半券だけをもぎる。

🔹同じ半券が2回出たら

👉「不正入場!」

この「半券」が、秘密番号。

不正ができないように「残高チェック」を暗号化して行っていることで、二重払いが起きないようになっているんですね。

おわりに

今回は、ジーキャッシュ(Zcash)の、テクノロジーの裏側の概念、歴史について書きました。
お読みいただきありがとうございました。