Purchased this article w7pxv2ehf
(;;)
No posts yet
ゼロ知識証明によるビットコインの条件付き支払い
ゼロ知識証明は昨今のブロックチェーンのバズワードとなっており、興味を持つ方も多いと思います。イーサリアムではZK-SNARKなどゼロ知識証明を使ったアプリケーションの開発が進んでいます。ビットコインでもゼロ知識証明を活用したアプリケーションの提案も少しずつ出てきています(OP_ZKPやValidity rollups)。イーサリアムにはゼロ知識証明の検証をするためのプレコンパイルされたコントラクトが導入されています(EIP196, EIP197)が、ビットコインにはこのようなOPコードは存在しないので、ソフトフォークによる導入が必要になってきます。しかし、ビットコインでもゼロ知識証明をブロックチェーン外で行うことで、任意のプログラムを実行させて、その結果に対して支払をすることができます。今回紹介するのはゼロ知識証明による条件付き支払い(Zero-Knowledge Contingent Payment, ZKCP)で、これはGMaxwellによって2011年に提案され2016年に実際にビットコイン上で証明されました。なんと10年以上前からビットコイン上でのゼロ知識証明の活用が提案されていたのです。このZKCPの引用元は以下になります。https://en.bitcoin.it/wiki/Zero_Knowledge_Contingent_Payment 以下の図は数読パズルの正解をBuyerがSellerから購入するというシナリオになっています。本例ではトラストセットアップのZKSNARKを使っていますが、Buyerがゼロ知識証明の検証をするため、自身でそのセットアップをすることに問題はありません。 Buyerは数読パズルの正解が正しいかを判定する数読チェッカーを作成し、トラストセットアップをします。 Sellerは数読パズルの正解Xを見つけ、ランダムな値Kを選び、KでXを暗号化してExを得ます。そして下図のProgram(K, Ex, H())をプルーフへ変換してBuyerへ送付します。 Buyerはプルーフを検証して問題なければ、下図のP2SHアドレスへ支払いをします。このアドレスは、Sellerが数読パズルの正解Xを公開することでSellerは支払いを回収できると同時にBuyerは正解Xを復号するためのKを得ることができる、ようなアトミックスワップに使われるスクリプトと同類のものです。 SellerはKを公開することで支払を回収し、BuyerはKからXを復号し数読パズルの正解を得ることができます。 <img src="https://s3-ap-northeast-1.amazonaws.com/spotlight-s3-001/article/20230710045144mceu_68066159621688

Purchased this article gsin2e088
Purchased this article s446bamho
Purchased this article gsdez9mxr
Purchased this article buoyh5q9g
Purchased this article glgruacrd
Purchased this article 016g91i28
Purchased this article j7srfsrx6
Sent a tip egby4k400
Purchased this article e0sqm4s7v
Boost mined
Boost mined
Boost mined
Boost mined
Boost mined
Purchased this article 6tezoc1ym
Rand.crypto tipped you
Purchased this article ps4699x8j
Rand.crypto tipped you
Purchased this article 32u6bi6tf