web3を構成する要素 zk-STARKs

今日も昨日に引き続き、paji.ethさんのツイートから『zk-STARKs』についてDAぜぇ。
先ずはzkの発音について。
これは「ゼットケー」と呼ぶのではなく「ズィーキー」と発音するんDAぜぇ。

zkとは Zero Knowledge のお頭文字でゼロ知識の事。
ゼロ知識証明(ZKP)とは1985年に初めて登場した暗号学の技術で具体的には自分の持っている情報が『正しい』ことを、正しいという情報以外を伝える事なく証明する技術

証明者と検証者がいたとして、トンネルをイメージすると分かりやすい。
トンネルの真ん中には鍵がかけられており、入り口から入った人は真ん中の鍵を開けないと出口に出れない。
証明者は鍵の情報を検証者に伝えることなく正しい情報を持っている事を証明したい場合、入口から入って出口から出てくれば良いってワケ!
トリビアとして、このゼロ知識証明(ZKP)を最初にブロックチェーンに実装したプロジェクトが『Zcash』と言うんDAぜぇ。

そして本題 zk-STARKs について。
zk-STARKsとは Zero Knowledge の Scallable Transparent Argument of Knowledge のお頭文字。
Scallable(拡大できる)Transparent(透明な)Argument of Knowledge(知識の論証)って事。

実は zk-STARKs の前に zk-SNARKs ってものあったんDAぜぇ。
SNARKsとは Succinct(簡潔な)Non-interactive(やり取りのない)Argument of Knowledgeのお頭文字。
これは情報を暗号化して簡潔にして、証明者と検証者のやり取り不要で知識証明するって技術。
ただしSNARKsには弱点があり、このやり取りを行う前に"証明者"と"検証者"の間で信頼をベースとしたセットアップ(設定)が必要だった。
これをその名の通り『Trusted Setup』という。

この設定は双方の信頼をもととしているため、この時点で不正が行われていた場合後から取り返しのつかない事になっちゃう。
そんなの良くねぇなぁとアップデートされたのが zk-STARKs ってワケ!

zk-STARKsの方は Trusted Setup を必要としない。
大規模な計算をオフチェーンで行い、検証の一部の計算のみをオンチェーンで行う。
最初のTrusted Setupを不要とするため、パブリックなランダム性を取り入れてる。
ただし、SNARKsと比べると簡潔さを欠いているためデータサイズが大きいってワケ!

完全な補足だが、2020年にはzk-SNARKsの応用StarkWareのレイヤー2であるSTARK EXというのも出ている。
これは「Validity Rollups」だったり「zk-Rollups」とも呼ばれてるんDAぜぇ。

ということで本日は zk-STARKs の勉強だったぜぇ。
最後に一言。
NFTはおもしれぇ!
NFTはおもしれぇんDAぜぇ。

この記事が気に入ったらサポートをしてみませんか?