クリプト

zk-SNARKsとzk-STARKsの話

ton's icon'
  • ton
  • 2018/11/12 00:55
Content image

ご存知の方も多いかと思いますが、書きます。
一般の認知度ってどんなもんでしょう?

「zk-SNARK?聞いたことがあるような、無いような」

もっとご存知の方は
「zk-SNARKs、あー、ゼロ知識証明でどうのこうの、だよね。」

もっともっとご存知の方は
「zk-SNARKsはそのデータ秘匿性だけに焦点を当てるだけでは不十分。ETHでも応用を考えられている通り、スケーラビリティの向上に寄与するからだ。その点においてはMimbleWimbleにも目を向けておきたい。それの実装プロジェクトであるGrinもフォローしてしかるべきであろう。もっと言えば採用するプロトコルの選定が重要になる。それ次第では先日のZECハードフォークに見られるような大幅なパフォーマンス向上が見られる。(cf;pinocchio protocol)」

こんな感じでしょうか?

私は全く分かりません。新作のアイスか何かですか?zk-SNARKsがバニラでzk-STARKsがチョコみたいな。
なので今回はMWはおいておいて、zk-SNARKsとzk-STARKsについて書きます。


まずはzk-SNARKsからです。zk-SNARKsではゼロ知識証明を利用しています。

なので、ゼロ知識証明を説明します。

ゼロ知識証明とはある知識を持っていることを証明する事です。但し条件があります。何の情報も明らかにしないのです。

よくわかりませんね。

数学的(?)な表現をすると「f(x)=y」となる「xを知っている事」を証明する、となります。

こちらが面白い切り口ですので紹介します。
上記のたとえ話をざっくりまとめて引用します。

「私」は白と黒の区別がつきます。相手方は白黒の区別がつきません。その方に区別がつくという事を証明するのですね。
二つのボールを用意します。白のボールと黒のボールです。

1)相手がそれを両手にもち、「私」に一つを提示します。
2)背中越しに入れ替えるかもしれませんし、そのままかもしれません。相手は自分が行う事なのでそれを知っています。
3)相手が再度「私」に一つを提示します。
4)ここで、「私」は「白と黒の区別がつく」事を証明するために、1)と3)で提示されたボールが同じか否かを返答します。
5)相手は2)で入れ替えたかどうかは自分で区別がつくので、4)の答えが合っているか否かを判断できます。

1~5)は確率50%。一回ではまぐれ当たりかもしれません。なので繰り返し1~5)が行われ、正当性は確率的に確認されます。

wikipediaでも説明されています。

「洞窟の問題」が具体例としてはメジャーなのでご一読されておくといいかもしれません。

最後の

この例だと、そんな複雑な手続きをせずにVさんがPさんに「片方の道から入って反対の道から戻ってこい」とリクエストするだけで証明ができるようにも思えるが、そうすると、Pさんの合言葉がVさんに盗まれる可能性がある。つまり、VさんがPさんの跡をつけて合言葉を盗み聞きすることができる。VさんがPさんを追跡できないようにすることが、露出する情報を最小限にするために重要な点である。

という点が重要です。上記引用の具体例だと、Vさんが相手、Pさんが「私」、合言葉を盗み聞きする危険性は表現されていないように思います。(だからこそ、二つの具体例を紹介しました)

確率的なものですから複数回の試行が必要です。だから処理は重いです。

INGさんがゼロ知識範囲証明というものを発表しました。あれが早いのは「範囲」の証明で良いからです。
Aさんが世田谷区の○○に住んでいることの証明には相当慎重にやらなくてはいけませんが、Aさんが日本在住であることの証明はそれより簡単で良さそうです。


さて、zk-SNARKsに進みましょう。

トランザクションの内容は秘匿されたまま、それが正当なものであることだけをブロードキャストできます。情報の秘匿です。
さらには、オフチェーンの機械に承認計算を行ってもらい、その結果をもらうという項増にすることでスケーリングにも使えます。速度の向上です。

では、zk-STARKsとは何でしょう?
zk-SNARKsの問題を解決したものです。
zk-SNARKsの問題とは何でしょう?

こちらから見てみます。

1)仕組みを作る段階で信頼を確保しなくてはいけない
2)スケーラビリティ
3)量子コンピューターに対するぜい弱性。


1)仕組みを作る段階で信頼を確保しなくてはいけない

スマートコントラクトに必要なもの」で私が言う、「3)正しいプログラムであったとして、それが実行されているかという問題」だと私は認識しています。

zk-STARKsの場合は

In ZK-STARKs, there is no external trusted setup phase and the randomness used is public information.

とある通り、信頼されるべき外部の準備段階は存在しないのだそうです。


2)スケーラビリティ

zk-STARKsの方が早い、ということですね。


3)量子コンピューターに対するぜい弱性。

私は量子コンピューターを二つに分けて認識しています。一つは何でもかんでもできるすごいコンピューター。もう一つはある特定おアルゴリズムにおいて、すごい性能を発揮するコンピューター。

現状の暗号は「現状のコンピューターでは現実的な時間で解けないように作られているから安全」なのですね。
だから、その解読が1億年から1分になるのであれば暗号技術に頼るのが危険な事になってしまいます。

zk-STARKsはその耐性があるという事のようです。
耐性について説明しずらいのですが、暗号化技術が違うから、という理解です。
(zk-SNARKsのようなnon-interactiveではないからという理由も)

も読んでみました。

Zk-STARKs, on the other hand, are Post-Quantum systems, meaning that even if Quantum-Computers become powerful and ubiquitous they will not have an advantage, compared to classical computers, in breaking ZK-STARKs (at least with our current knowledge of Quantum algorithms).

暗号化技術の違いであり、相対的に耐性があるというもののようです。

ZK-STARKs are scalable, transparent, have universal application, and currently quantum resistant.

と、いろいろと良い事があるようですが

Currently, ZK-SNARKs are available in the cryptocurrency Zcash, as well as the library libSNARK to build ZK-SNARK programs that can be leveraged in blockchains. ZK-STARKs are a newer technology, and not deployed in production capacity as of 6/2018.

のように、普及していません。

また、

There is a downside to ZK-STARKs, however, in that the proof size is some orders of magnitude larger than for ZK-SNARKs.

プルーフサイズが大きいことが現状のZK-STARKsの欠点のようです。

それは

こちらでも指摘されています。(toxic-waste-freeというのは、本記事でいえば1)に対する耐性です)


普及度合い、実際に使われているという点を加味して、今はzk-SNARKs。

今後はセットアップや耐量子という事でZK-STARKsと言いたいところですが、客観的な第三者による証明を許してもらえるのであればtoxic-waste-freeは解決しうる話ですし、スケーラビリティも冒頭で引用したように改善されてきています。耐量子という事であれば、だめになる仮想通貨はたくさんありそうですので、仮想通貨界隈として解決策を模索するものになるのではないでしょうか?


補足

2018/11/15 Bulletproofについても書きました。



参考

DIGITAL IDENTITY, PRIVACY, AND ZERO-KNOWLEDGE PROOFS (ZK-SNARKS)

zk-SNARKs — A Realistic Zero-Knowledge Example and Deep Dive

ZK-STARKs — Create Verifiable Trust, even against Quantum Computers

大手銀行INGが独自の「ゼロ知識範囲証明」を開発、通常の証明に比べ高性能かつ幅広い応用が可能に

theory and practice of zk-snarks

Zcash and the Art of Security Theater

Personal notes on ZK-STARKs

Creating fake zkSNARK proofs

2018-02-02-andrew-poelstra-bulletproofs


ではでは

----------------------------------------------------------
かんがえる、かがんでいる人 
Steemit 
Twitter 
----------------------------------------------------------

公開日:2018/11/12
獲得ALIS:15.94
ton's icon'
  • ton
  • @ton
かんがえるひと

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

Polygon(Matic)で、よく使うサイト(DeFi,Dapps)をまとめてみた

Like token Tip token
236.30 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

Like token Tip token
18.92 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
クリプト

2021年1月以降バイナンスに上場した銘柄を140文字以内でざっくりレビュー(Twitter向け情報まとめ)

Like token Tip token
38.10 ALIS
Eye catch
クリプト

【DeFi】複利でトークンを運用してくれるサイト

Like token Tip token
54.01 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS
Eye catch
クリプト

【初心者向け】JPYCを購入して使ってみました!

Like token Tip token
30.03 ALIS
Eye catch
クリプト

【初心者向け】$MCHCの基本情報と獲得方法

Like token Tip token
32.32 ALIS
Eye catch
クリプト

Uniswap(ユニスワップ)で$ALISのイールドファーミング(流動性提供)してみた

Like token Tip token
59.99 ALIS
Eye catch
クリプト

CoinList(コインリスト)の登録方法

Like token Tip token
15.55 ALIS
Eye catch
クリプト

【第8回】あの仮想通貨はいま「テレグラム-TON/Gram」

Like token Tip token
69.90 ALIS
Eye catch
クリプト

コインチェックに上場が決まったEnjin Coin(エンジンコイン)コインを解説

Like token Tip token
21.49 ALIS