- 1 Zcashの開発の歴史と問題点
- 1.1 Sapling次期大型アップデート
- 1.2 ZアドレスとTアドレス
- 1.3 Saplingでの変更とその影響
- 2 SaplingのZアドレス移行時の問題と懸念
- 2.1 Zcashのトランザクションタイプごとの匿名性
- 2.2 ZECのトランザクションの仕組み
- 2.3 ZアドレスとTアドレス間の送金とスケーリング問題
- 3 Sapling TurnstileのZアドレス送金問題
- 3.1 新規アドレスへの移行推奨の理由
- 3.2 非匿名化の過程におけるリスク
- 4 ゼロ知識証明
- 5 イーサリアムテクニカル分析
- 6 ビットコインの動きに注意
Zcashの開発の歴史と問題点
ゼロ知識証明をもとに開発し、匿名送金が可能なZcashは、10月28日に2度目の大型アップデート”Sapling”を行う予定です。
2度目ではあるものの、元々はSaplingが初のアップデートとなる予定でしたが、移行準備段階となるOverwinterを経てサードパーティのテストを行い、大型アップデートを迎えた形です。
アップデートはビットコインやイーサリアムと同様にフラッグデイ、つまり特定のブロックからのハードフォークを行うので、今回はブロック #419200でのアップデートとなります。
Overwinerはブロック #347,000 で6月26日に実装しました。
Sapling次期大型アップデート
Saplingが公に公開されたのは2017年2月で、2016年10月28日のメインネットローンチからのネットワークが安定してからの発表でした。
つまり、ZcashはこのSaplingアップデートで2周年ということになります。
当初の予定では、イーサリアムのERC20トークンのようにZcashベースの独自トークンを発行できるのをメインとし、モバイルウォレットなどのライトウォレットが使用できない匿名送金を可能にするPayment off-loadingやZcashとイーサリアム間の取引をプロトコル上で行えるクロスチェーン取引(イーサリアム側ではZcash on Ethereumとして現在のバージョンビザンチウムで実装済み)となっていました。
しかし今回のアップデートでは、匿名送金の改善を主としています。
ZアドレスとTアドレス
Zcashの送金はあまり知られていませんが、通常の送金自体は匿名ではなく公に公開されているのです。
Zcashにはt-address(Transparent address)透明性を持つアドレス、つまり送金がわかる通常のアドレスと、z-address(Shielded address)つまり匿名送金ができるアドレスの2つを持ちます。
このShielded Addressでは、zk-SNARKsを使用してトランザクションが有効なものであるかどうかを検証するものです。
zk-SNARKは「Zero-Knowledge Succint Non-Interactive Argument of Knowledge」の略で、ゼロ知識証明、つまり
「AがBにある解Xを伝えることなく、XがYの解であるということを正であると証明」
ことができる証明をベースに作られた暗号理論になります。
このzk-SNARKによる匿名送金はZECの特徴ですが、ZECを利用しての匿名送金は全体の10%ほどしか行われていません。
理由としては、現在のZアドレスではメモリーを1.5GBもの容量を必要とし、トランザクション生成だけに40秒もの時間を必要とします。つまり、ZECは全てのトランザクションを匿名送金で送ることは不可能に近いという問題を抱えているということになるわけです。通常のコンピュータのメモリーが、OSとその他ソフトウェアを動かすのに4~8GBであることから、1.5GBがいかに大きいものであるかということがわかるでしょう。
Zcashカンパニーは「全てのトランザクションをデフォルトで匿名にすること」を目指しており、今回のSaplingで大幅な改善を行います。
Saplingでの変更とその影響
今回のSaplingによって、メモリー使用量は現在の97.3%削減となる40MB、トランザクション生成はわずか7秒になるといいます。また既存のアドレスより短くなることも大きな変更点でしょう。この変更には既存のzk-SNARKsより早くするため、楕円曲線BLS12-381をもとに構築しています。
BLS12-381の学術的詳細(英語):https://z.cash/blog/new-snark-curve/
つまりこの変更は匿名送金のスケーリング(増える需要に対応する能力)を実現とするものであり、ZECチームの目指す「匿名送金のデフォルト」へ近づいていると言えます。また、この変更は技術的にとても理解しやすい変更であるため、技術的に難しいことからなかなか理解されにくい、というZECの問題にとらわれないファンダメンタル的にプラス要因だといえるでしょう。
またSaplingにより、現在のZアドレスから新規Zアドレスへと移行することになるのですが、ZECチームは既存のアドレスもサポートするとしているので、ハードフォークではあるものの、後方互換を持つということになります。
サポートはするものの、新規Zアドレスへの移行を推奨しており、ここが問題となっている点です。
SaplingのZアドレス移行時の問題と懸念
上記で説明したように、ZECにはZアドレスとTアドレスの2つが存在し、お互いに送金が可能となっています。ではここで、