Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Bitcoinだけでスマートコントラクト.pdf
Search
akatsukinewgrad
May 20, 2022
1.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Bitcoinだけでスマートコントラクト.pdf
akatsukinewgrad
May 20, 2022
More Decks by akatsukinewgrad
See All by akatsukinewgrad
2023/1/25_QAテスター meet up!
akatsukinewgrad
0
180
成果発表資料.pdf
akatsukinewgrad
0
2.2k
広大なフィールドを気持ちよく駆け抜けるための技術.pdf
akatsukinewgrad
0
690
正規表現とReDoS.pdf
akatsukinewgrad
0
660
Unityで大量のオブジェクト_を吹き飛ばしたい.pdf
akatsukinewgrad
0
720
新卒2年目が思う1年目の学び.pdf
akatsukinewgrad
0
650
障害訓練の取り組みについて.pdf
akatsukinewgrad
0
820
7分でわかるアカツキゲームス
akatsukinewgrad
0
670
齋田.pdf
akatsukinewgrad
0
1.3k
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
40k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Into the Great Unknown - MozCon
thekraken
41
2.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Color Theory Basics | Prateek | Gurzu
gurzu
0
440
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Ruling the World: When Life Gets Gamed
codingconduct
0
310
How to build a perfect <img>
jonoalderson
1
5.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
GitHub's CSS Performance
jonrohan
1033
470k
WCS-LA-2024
lcolladotor
0
810
Believing is Seeing
oripsolob
1
200
Transcript
Bitcoinだけで スマートコントラクト 23卒内定者 たかやま
高山 柊 crimeth.ink/profile しゅう
誤解 • Bitcoinはデジタルゴールド • Bitcoinは送金しかできない • スマートコントラクト = Ethereum上で動くプログラム
誤解 • Bitcoinはデジタルゴールド Bitcoinは通貨 • Bitcoinは送金しかできない BitcoinにはScriptという機能がある • スマートコントラクト =
Ethereum上で動くプログラム 原義は「当事者が契約を実行するためのプロトコルを含む、デジタル形式で指定された 一連の契約(contract)」(1996、ザボ)
BitcoinのScript
BitcoinのScript = コインを引き出せる者を定義するミニプログラム 例:入力を電子署名として解釈し、公開鍵Pに対応していたら引き出せる →Pの秘密鍵を持つ者がコインを引き出せる
BitcoinのScriptで可能なこと • ハッシュ演算 例:ハッシュ値0x1234……efに対応する原像を提出すると引き出せる • タイムロック 例:24時間後までは誰も引き出せない、24時間後からAliceが引き出せる • 条件分岐 例:0を入力するとAliceが、1を入力するとBobが引き出せる
BitcoinのScriptで不可能なこと • 前方ジャンプやループ 計算量 = O(スクリプト長) 特に停止性が保証される • ブロックハッシュなどの環境値の取得 信頼できる第三者を使えば可能
Bitcoinだけでギャンブルコントラクト
Bitcoinだけでギャンブルコントラクト 2人参加のコイントス型ギャンブル契約 1. AliceとBobはそれぞれ秘密の文字列c A ,c B を決める 2. c
A ,c B を同時に言う 3. c A ,c B がどちらも20文字以下またはどちらも20文字以上ならばAliceの勝ち、 そう でなければBobの勝ち 4. 勝者が掛け金を得る ↑これをBitcoinで実装
Bitcoinだけでギャンブルコントラクト 1. 秘密の文字列c A ,c B を決める 2. Hash(c A
),Hash(c B )を公開する 3. 掛け金を引き出せる者を次のようなScriptで定義: 入力1がHash(c A )の原像でなければエラー 入力2がHash(c B )の原像でなければエラー 入力がどちらも20文字以下またはどちらも20文字以上ならばAliceが、そうでなければBobが 引き出せる 4. c A ,c B を公開する 5. c A ,c B を用いて掛け金を引き出す
Bitcoinだけでギャンブルコントラクト Q. Aliceがサボってc A を公開しない場合は? A. 保証金を預けることとし、保証金を引き出せる者を次のようなScriptで定義: 入力がHash(c A )の原像であればAliceが引き出せる
入力がHash(c A )の原像でなくとも24時間後ならばBobが引き出せる →c A を公開しないと保証金が没収される
Bitcoinだけでギャンブルコントラクト Alice Bob
Bitcoinだけでギャンブルコントラクト Bob Alice