イーサリアムに導入されたzk-SNARKsとは?その技術の仕組みを解説

▼おすすめの取引所ランキング

本記事ではイーサリアムにおけるzk-SNARKsについて解説してます。

zk-SNARKsとは匿名通貨Zcashに用いられている技術であり、これによってイーサリアムはトランザクションにおけるプライバシー情報を隠して取引の正当性を証明出来ます。

「zk-SNARKs」とは?

zk-SNARKsとは?一言で表すと…

ゼロ知識証明を用いてトランザクションにおける情報を機密化させること

zk-SNARKs(Zero Knowledge-Succint Non-interactive ARgument of Knowledge)とは匿名仮想通貨Zcashで使用されている技術であり、ゼロ知識証明を駆使して取引相手に情報内容を公開をする事なく、その中身の正当性を相手へ証明する技術です。

この技術はイーサリアムでも実装されましたが、それによってブロックチェーンにおけるトランザクション内でのプライバシーを保護する事が出来ます。

では、以下よりzk-SNARKsについて詳しく見ていきましょう。

イーサリアムのプライバシー問題

イーサリアムではその取引量の増加と共にトランザクションの遅延が起こってしまうといった「スケーラビリティ問題」がありましたが、同様にイーサリアムのブロックチェーン内では取引の「プライバシー保護の問題」も懸念されています。

ブロックチェーン上ではそのユーザーのアドレスは透明化されているものの、個人を特定する事は出来ないという特別な仕組みです。

しかし、そこで完全な匿名取引であるかと言われるとそうとも言えず、急速な技術発展によっていつ利用ユーザーのプライバシー情報が割かれるかはわかりません。

このように取引の透明性が高い事はブロックチェーンを活用するメリットなのですが、それに伴い取引ユーザーの情報プライバシーの問題も抱えているのです。

イーサリアムの匿名化取引の実現

イーサリアムのようなユーティリティ機能を持った仮想通貨ではスマートコントラクトを駆使して様々な個人情報を記述する場面があります。

そこで場合によっては第三者に公開し難いようなプライベート情報を保護する必要が出てきます。

そのようにイーサリアムには「匿名取引の実現」が求められているのです。

一見、匿名の取引は最近コインチェックで匿名通貨が上場廃止となったように、「あまり良いものではないのではないか」と考えてしまいそうですが、これは見方を変えると「プライバシーの保護」にも繋がります。

一般に、ビットコインに対するイメージとしては、匿名性が高く、テロやマネーロンダリングに利用されるという印象があるかも知れません。 しかしながら、実

それはイーサリアムの普及にとって非常に重要なポイントであり、今後のスマートコントラクトの実装に伴ってあまり公開させたくないプライベートな取引も出てくる事が考えられるからです。

そこで、上述したプライバシーの問題を解決するのがzk-SNARKsです。

zk-SNARKsの特徴や仕組み

では、zk-SNARKsの仕組みについて見ていきましょう。

このzk-SNARKsはトランザクションにおける匿名化のプロセスを短縮化させる事が出来るのですが、まずそれを知るにあたり前提となるのが「ゼロ知識証明」です。

ゼロ知識証明とは?

ゼロ知識証明とは、大まかに言うと取引をする当事者の間でその情報が何であるかを明かさずに、「その取引は不正はなく真実である」という事実を証明する手法です。

これを一言で言うと「情報の中身を隠したまま不正がない事を伝える」と表す事が出来ます。

これは難しい概念ですが、ゼロ知識証明の仕組みを簡単に表すと以下の通りです。

  • 真実の証明者は取引の承認者に対してハッシュ値に関する知識の証明をする
  • 次にその承認者が証明者に対してハッシュ値に関する問いかけをし、証明者が正確な回答を出来るかどうか検証する
  • 証明者からの回答を確実に得るために、これを複数回繰り返す

このようにゼロ知識証明のプロセスにおいては証明者(prover)と承認者(verifier)が存在しており、情報の中身は秘密の状態を保ったまま正当な取引を証明する為には両者で複数のコミュニケーションを取る必要があります。

当然その中でもしも証明者が事実とは違う証言をした場合は承認者は承認しません。

このプロセスによって、証明者が正しい証言をしているかを承認者は確認出来るのです。

zk-SNARKの3つのアルゴリズム

さて、zk-SNARKsは「G」「P」「V」といった3つのアルゴリズムで構成されています。

  • 「G」は証明用の鍵と承認用の鍵を生成するアルゴリズム
  • 「P」は証明者が正当な証明を生成する為のアルゴリズム
  • 「V」は承認者が証言者の発言を不正か正当化判断して承認する為のアルゴリズム

このzk-SNARKsはゼロ知識証明で正当な証明を承認する為に行われていた証明者と承認者との間の複数回のメッセージを省略する事ができます。

それがzk-SNARKの「Non-interactive」に当たる部分です。

上述したゼロ知識証明では証言者と承認者の間で複数回コミュニケーションが必要でしたが、zk-SNARKsによってゼロ知識証明に必要な承認の作業を短縮してプロセスを進める事が出来るのです。

Zcashで活用されている

上述した通りこのzk-SNARKsは匿名通貨Zcashで開発されたものであり、Zcashではこれによってアドレスや送金額といった、トランザクションにおいてプライバシーに関わる部分を隠したままその取引が真実である事を証明出来ます。

zk-SNARKsのメリット

不要な個人情報の開示が必要無くなる

これによってイーサリアムのプライバシー問題が解決される事となれば、スマートコントラクトを利用した投票システムや予測市場システムなどで、個人の必要以上の情報開示をしなくて済み、IPアドレスからの特定の位置情報なども不要であれば開示する必要がなくなります。

また、競合が存在するビジネスの場などでも他に個人や企業の情報などを不必要に開示せずに済むようになります。

承認時間の短縮

上述の通り、zk-SNARKsの実装によってゼロ知識証明に基づく取引の承認プロセスを短縮して迅速に実行する事ができます。

これによって、匿名取引を効率化する事ができ、トランザクションの機密化に役立ちます。

イーサリアムには既にzk-SNARKsが導入されている?

このようなzk-SNARksは、2017年10月に行われたイーサリアムのアップグレードの3段階目である「メトロポリス」の中の「ビザンチウム」によりイーサリアムに実装されることになりました。

また、2017年11月に行われた「DevCon3」という開発者向けのカンファレンスにおいて、「The Open Vote Network」というシステムが公開されました。このシステムはゼロ知識証明を用いることで、イーサリアムプラットフォーム上で匿名投票を行うことを可能にします。

例えば、0か1かを投票する機会において、別の数字を暗号化して投票されていた場合、賛成が本当に過半数を超えているかといった判断をし難くなります。

そこで、ゼロ知識証明を用いれば、実際の投票内容を明らかにすることなく、その数字が0か1であることを証明することができます。これによって、投票者が1と0のどちらに投票したか不明であっても、1か0のどちらかに投票しているということが確認できます。

そしてスマートコントラクトにzk-SNARKsが実装される事となったのですが、まだその機能を駆使したDappsはあまり開発されておらず、今後の技術開発の進捗を追う必要があるでしょう。

まとめ

本記事を要約すると以下です。

  • zk-SNARKsはゼロ知識証明を用いてトランザクションにおけるプライバシー情報を保護する
  • イーサリアムではプライバシー保護の問題を抱えている
  • zk-SNARKsを実装する事で個人の不要な情報開示が必要なくなる

以上がzk-SNARKsについてでしたが、これが本格的に稼働すればイーサリアムのスマートコントラクト上でのプロセス全体を表示せず、一部だけを開示して全プロセスの正当性を主張する事も可能となるでしょう。

メトロポリスの第二段階「コンスタンチノープル」は2018年内に行われると言われています。

今後スマートコントラクトの活用は個人から企業のビジネス活用などその用途は様々でしょうが、その中でもプライバシーの問題からは目を背けられません。

スケーラビリティの問題と同様にプライバシー保護に関しても、今後の健全な市場発展の為に議論と開発を進めていくべきでしょう。


イーサリアム (ethereum)