Rand.crypto

Rand.crypto

@a3fRohV9LFvogfS1

(;;)

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 w7pxv2ehf

-100

Purchased this article gsin2e088

-100

Purchased this article s446bamho

-1000

Purchased this article gsdez9mxr

-100

Purchased this article buoyh5q9g

-100

Purchased this article glgruacrd

-100

Purchased this article 016g91i28

-100

Purchased this article j7srfsrx6

-100

Sent a tip egby4k400

-1000

Purchased this article e0sqm4s7v

-1000

Boost mined

-100

Boost mined

-100

Boost mined

-100

Boost mined

-100

Boost mined

-100

Purchased this article 6tezoc1ym

-100

Rand.crypto tipped you

50000

Purchased this article ps4699x8j

-10000

Rand.crypto tipped you

4000

Purchased this article 32u6bi6tf

-10000

Archives