Slide 1

Slide 1 text

Bitcoin Script を用いた クイズキャンペーン Team G コブサラダ (Cobb Salad) 荒川 貴将 (Avocado) 小渕 周 (こぶシュー)

Slide 2

Slide 2 text

プロダクト作成の背景(課題解決) 企業がキャンペーンで先着10,000名に〇〇プレゼントなどやっているが、 本当に送っているのか疑問 ビットコインを用いた透明性で解決できないか? ユーザがクイズに正解するとすぐに賞金のBCHをもらえる リアルタイム性がアピールポイント

Slide 3

Slide 3 text

ビットコイン技術周り クイズ「TeamGのチーム名は何でしょうか?」  答え:「コブサラダ」 そのままでは使えないので、ASCII変換”b3d6b5e9c0” b3d6b5e9c0 dcb7e17a... OP_Hash160 Unlock Script Lock Script コブサラダ ASCII変換の HASH160 dcb7e17a... dcb7e17a... OP_EQUAL TRUE

Slide 4

Slide 4 text

発展させたい ● 先ほどの方法では一人が受け取ったら終わり ● 先着100名など複数の人に賞金を渡したい ● 泥臭いが、P2SHのUTXOを複数用意してあげれば良い

Slide 5

Slide 5 text

P2SH UTXOを複数用意 管理者がセットしたUTXOはTXIDは全部同じ、VOUTが0からN-1まで 賞金をあげる人 (管理者) 賞金をもらう人(ユーザ) 各自の端末からではなく、 キャンペーンWebサイトから 回答 Webサイトは、VOUTの大き いものから使っていき、 utxoinfo.txtの「VOUTの MAX」を-1 1000 BCH 1000 BCH 1000 BCH 1000 BCH ・ ・ ・ P2SH UTXO セット VOUT 0 VOUT 1 VOUT 2 VOUT N-1 utxoinfo.txt ・TXID ・設定賞金額 ・VOUTのMAX

Slide 6

Slide 6 text

拡張後のビットコイン技術周り 答え:「コブサラダ」 ASCII変換:”b3d6b5e9c0” + VOUT(例えば1) b3d6b5e9c01 HASH160⇒ 8ff3f8a62aa85c24cbbe85b9a60cb299f66bf260 8ff3f8a62aa... be2b33b6a... OP_Hash160 Unlock Script Lock Script be2b33b6a... OP_EQUAL TRUE be2b33b6a... be2b33b6a...

Slide 7

Slide 7 text

inputString + i “クイズの答え” + シーケンスNo. for文でOUTPUTをTXに加えていく cashAdress: 管理者自身のアドレス change: お釣り

Slide 8

Slide 8 text

stringHash HASH160(“クイズの答え” + シーケンスNo.) 複数あるUTXOでUnlock Scriptが異なる 生成規則・答えがバレない限り、 ブロックチェーン上では Unlock Script は推測不可能

Slide 9

Slide 9 text

DEMO

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

今後の展望・課題 ● 企業が100名分の賞金を用意したということはエクスプローラで言えるが、自作自 演で管理者側に送っていたり、内部犯行は見抜けない ● キャンペーンの簡単なクイズには応用できるが、ビットコインを用いるなら、もっとト ラストレスな場面でも使えるようにしたい