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
SwiftでBitcoinのscriptを書いてみよう
Search
Shun Usami
September 18, 2018
Programming
2
340
SwiftでBitcoinのscriptを書いてみよう
Swiftで書かれたBitcoinKitを使用して、10行以内でBitcoinの受け取りから送金まで、そしてScriptを書いていく方法を説明しています。
Shun Usami
September 18, 2018
Tweet
Share
More Decks by Shun Usami
See All by Shun Usami
Let's Write Bitcoin Script #TokyoBitcoinHackathon
usatie
7
7.9k
Bitcoin Basic OP_CODEs
usatie
1
280
CustomCellのためのProtocol
usatie
0
470
Other Decks in Programming
See All in Programming
テスト自動化失敗から再挑戦しチームにオーナーシップを委譲した話/STAC2024 macho
ma_cho29
1
1.3k
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
260
バグを見つけた?それAppleに直してもらおう!
uetyo
0
180
Keeping it Ruby: Why Your Product Needs a Ruby SDK - RubyWorld 2024
envek
0
180
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
180
php-conference-japan-2024
tasuku43
0
270
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
110
創造的活動から切り拓く新たなキャリア 好きから始めてみる夜勤オペレーターからSREへの転身
yjszk
1
130
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
3
270
From Translations to Multi Dimension Entities
alexanderschranz
2
130
快速入門可觀測性
blueswen
0
350
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
130
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
33
1.5k
Code Review Best Practice
trishagee
65
17k
The Cost Of JavaScript in 2023
addyosmani
45
7k
Making Projects Easy
brettharned
116
5.9k
Agile that works and the tools we love
rasmusluckow
328
21k
Navigating Team Friction
lara
183
15k
Documentation Writing (for coders)
carmenintech
66
4.5k
Building Your Own Lightsaber
phodgson
103
6.1k
Embracing the Ebb and Flow
colly
84
4.5k
We Have a Design System, Now What?
morganepeng
51
7.3k
Unsuck your backbone
ammeep
669
57k
Typedesign – Prime Four
hannesfritz
40
2.4k
Transcript
BitcoinͷscriptΛ ॻ͍ͯΈΑ͏ @usatie Yenom, Inc.
None
とびきりやさしいビットコイン・ウォレットアプリ
はじめてビットコインを使う 友達や家族にオススメなのが Yenomです!
なぜ初⼼者向き? ・セットアップなし ・秘密鍵を意識せずに使える ☺ ・専⾨⽤語なし #
どれくらいカンタンなの? DL後のフローを説明します。
1. 「同意して続ける」をタップ
✅ 完了
\ 最近リリースしました /
BitcoinKitのインストール FDIPHJUIVCZFOPN#JUDPJO,JU$BSUpMF DBSUIBHFVQEBUFQMBUGPSNJ04
今⽇はなすこと 3. ビットコインを送⾦する 1. ビットコインの鍵を⽣成する 2. ビットコインを受けとる 4. ビットコインスクリプトを書いてみる
今⽇はなすこと 3. ビットコインを送⾦する 1. ビットコインの鍵を⽣成する 2. ビットコインを受けとる 4. ビットコインスクリプトを書いてみる
そもそもビットコインとは? 2 ビットコインとは? P2Pタイムスタンプサーバー =改ざんできないDB 何を保存してる? 錠がかかったコイン 2 " "
+
ビットコインの鍵とアドレスの関係 秘密鍵 公開鍵 アドレス ‑ ‑ ੜͰ͖Δ ੜͰ͖Δ
ビットコインの鍵とアドレスの関係 秘密鍵 公開鍵 アドレス ‑ ‑ ٯແཧ ٯແཧ
秘密鍵、公開鍵、アドレスの⽣成
今⽇はなすこと 3. ビットコインを送⾦する 1. ビットコインの鍵を⽣成する 2. ビットコインを受けとる 4. ビットコインスクリプトを書いてみる
Walletの設定、残⾼の更新/確認
今⽇はなすこと 3. ビットコインを送⾦する 1. ビットコインの鍵を⽣成する 2. ビットコインを受けとる 4. ビットコインスクリプトを書いてみる
Bitcoinの送⾦
今⽇はなすこと 3. ビットコインを送⾦する 1. ビットコインの鍵を⽣成する 2. ビットコインを受けとる 4. ビットコインスクリプトを書いてみる
Bitcoin Script
BitcoinのScript Lock Script この2つだけ!✌ Unlock Script :コインに錠をかけるための スクリプト :コインの錠を外すための スクリプト
Bitcoinのアンロック 1. Unlock Script を実⾏ 結果、TRUE が返ってくれば そのコインはアンロック成功 ! 2.
Lock Script を実⾏
Bitcoinの所有権 ・所有権は存在しない ・あるのは 鍵 のみ(公開されている) ・もし@usatieにしかアンロックできない錠が あれば、 実質 @usatieが所有していると⾔える
Bitcoinの所有権 ・所有権は存在しない ・あるのは 鍵 のみ(公開されている) ・もし@usatieにしかアンロックできない錠が あれば、 実質 @usatieが所有していると⾔える @usatieにしかアンロックできない錠
Bitcoinの所有権 ・所有権は存在しない ・あるのは 鍵 のみ(公開されている) ・もし@usatieにしかアンロックできない錠が あれば、 実質 @usatieが所有していると⾔える @usatieにしかアンロックできない錠
= 秘密鍵と公開鍵で実現できる !!
コインの送⾦ @Yenomに送⾦する場合 あるコインに 「@Yenom にしか開けられない錠 」 をセット
Bitcoinはスタックマシン (Ethereumもそうです)
スタックマシンとは 1. 左から順番にコードを実⾏する 2 3 5 add
スタックマシンとは 2. スタックに値を⼊れたり出したりする 2 3 2 3 2
Ex. 2 3 5 Add 2 3 2 5 Add
Ex. 2 3 5 Add 2 3 2 3 2
5 Add
Ex. 2 3 5 Add 2 3 2 3 2
5 5 3 2 Add
Ex. 2 3 5 Add 2 3 2 3 2
5 5 3 2 Add 8 2
Ex. 3 20 8 Add 3 8 20 3 28
3 Mul 84 Mul 20 8 Add
Bitcoinのアンロック 1. Unlock Script を実⾏ 結果、TRUE が返ってくれば そのコインはアンロック成功 ! 2.
Lock Script を実⾏
Bitcoinのアンロック 1. Unlock Script を実⾏ 結果、TRUE が返ってくれば そのコインはアンロック成功 ! 2.
Lock Script を実⾏ TRUE が返ってくれば
Bitcoinのアンロック 1. Unlock Script を実⾏ 結果、TRUE が返ってくれば そのコインはアンロック成功 ! 2.
Lock Script を実⾏ TRUE が返ってくれば スタックの最後に 残っている値が TRUE であれば =
おさらい Unlock Script Lock Script スタックに TRUE が残ればコインの解錠成功! 次は具体例へ! ①
② の順に実⾏し、
5 Unlock Script 2 Lock Script 3 Add Equal 5
3 5 3 2 5 5 5 TRUE 2 Add Equal ① ②
5 Unlock Script 2 Lock Script 3 Add Equal ①
②
Scriptの実⾏
None
# ビットコインしろ
9/22 - 9/23 @渋⾕
# Congrats! " :yusho:
ありがとうございました。 ハッカソンの申し込みはこちらから!