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のタイムロックの仕組み
Search
shigeyuki azuchi
February 27, 2024
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Bitcoinのタイムロックの仕組み
GBECの解説動画のスライドです。
https://goblockchain.network/2024/02/timelock/
shigeyuki azuchi
February 27, 2024
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
Hyper Tree
azuchi
0
6
FORS
azuchi
0
21
クラスターmempool
azuchi
0
38
W-OTS+
azuchi
0
43
Shorのアルゴリズム
azuchi
0
65
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
51
Fiat-Shamir変換と注意点
azuchi
0
240
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
62
BIP-374 離散対数の等価性証明
azuchi
0
81
Other Decks in Technology
See All in Technology
Kiro入門|仕様駆動開発で変わるAI時代の開発スタイル
cmkudo
0
320
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
4
26k
AIで変わるエンジニアの働き方(仮)
naoinaoi
0
390
DDDのエッセンスを取り入れたAIでの開発
ak2ie
0
210
ハッカソンで入賞した話 @ Findy LT
asari194617
0
1.5k
20260817_生成AIの動向と中学校・高等学校での活用を考える_v1.00_公開用
doradora09
PRO
0
190
AI時代に、人は何を、どう学ぶのか #pbl_pub / What and How Do We Learn in the AI Era?
takaking22
1
240
Rust×eBPFでEDRっぽいものをつくる
sunlife3
2
810
AIのためのEthernet技術動向 (SerDes)
markunet
1
300
AI-DLC実践録_フルサイクル開発への挑戦
miyuc
0
360
型落ちシンクライアント端末のPoEモジュールを自作したかった話
logica0419
0
310
フィジカルAIの知識ゼロの僕でも AIを使えばここまでできた
tatsuya1970
0
140
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
500
How to Ace a Technical Interview
jacobian
281
24k
4 Signs Your Business is Dying
shpigford
187
23k
We Have a Design System, Now What?
morganepeng
55
8.3k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Mobile First: as difficult as doing things right
swwweet
225
10k
sira's awesome portfolio website redesign presentation
elsirapls
0
340
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
400
WENDY [Excerpt]
tessaabrams
11
39k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
The Cult of Friendly URLs
andyhume
79
7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Transcript
Bitcoinのタイムロックの仕組み
1 Bitcoinで利用可能なタイムロック • 絶対的時刻(ブロック高)指定によるタイムロック
• 相対的な時刻(ブロック高)指定によるタイムロック OP_CLTV UTXO OP_CSV UTXO タイムロックされたUTXOは、予め決められた時間になるまで使用できない。 タイムロックされたUTXOは、このUTXOのTxがブロックに格納された後、 予め定められた時間が経過するまで使用できない。
2 nLocktimeを使用したタイムロック Tx Version Inputs Outputs nLocktime 0 < nLocktime
< 0xffffffffの値が設定された場合、 その値になるまでTxをブロックに格納できない。 • 値が500,000,000未満であれば、ブロック高として解釈され • それ以上であれば、ブロック時間として解釈されれる • BIP-113(Medial Time Past)適用前は、ブロックのタイムスタンプ • 適用後は、Median Time Past: 直近11ブロックのタイムスタンプの中央値 ※ ブロックのタイムスタンプの順序を強制するコンセンサスルールはないため、 MTPによりマイナーが意図的にタイムスタンプを調整するのを防止 ※ 基本的には、ブロック高を採用することが多い
3 OP_CHECKLOCKTIMEVERIFY Tx Version Inputs Outputs nLocktime OP_CLTV UTXO nLocktime
の機能だけでは、UTXOをタイムロックできない (nLocktimeが設定されていないTxを作れば使えてしまうため) BIP-65:OP_CHECKLOCKTIMEVERIFY opcodeの導入 https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki OP_CLTV opcodeは、TxのnLocktimeが スクリプトスタックの<ロックタイム>の値以上であることを強制する。 (かつ、インプットのnSequence != 0xffffffff→ロックタイムの無効化設定) ※ 2015年にソフトフォークでBitcoinに導入される。 … <ロックタイム> OP_CHECKLOCKTIMEVERIFY … スクリプトインタプリターはTx内のデータしかチェックできないため、 OP_CLTVによるnLocktimeの設定値の制御+nLocktimeのルールの組み合わせにより コンセンサスレベルでのUTXOのタイムロックが機能する。
4 相対時間によるタイムロック Tx Version Inputs Outputs nLocktime TxIn OutPoint scriptSig
nSequence 相対的ロックタイムを組み込むためには、そのロックタイムの値を 設定可能なnLocktimeと同様のフィールドが必要 nSequenceは元々Txを置換する際に使用されていたフィールド BIP-68:Relative lock-time https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki このbitがセットされていれば時間ベース、 セットされてなければブロックベース Relative lock-timeの設定値 1年ちょっとまでのlock-timeが設定可能 • 時間ベースの場合は、設定値×512秒 • ブロックベースの場合は、ブロック数 残りの16bitは将来の拡張のため確保 Disable Flagがセットされていれば、 タイムロックは無効
5 OP_CHECKSEQUENCEVERIFY nSequence の機能だけでは、UTXOをタイムロックできないため、 OP_CLTVのように相対的なタイムロックを強制するopcodeが必要
BIP-112:OP_CHECKSEQUENCEVERIFY opcodeの導入 https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki OP_CSV opcodeは、インプットの nSequenceが スクリプトスタックの<ロックタイム>の値以上であることを強制する。 ※ 2016年にMTP、BIP-68と一緒にソフトフォークでBitcoinに導入される。 … <ロックタイム> OP_CHECKSEQUENCEVERIFY … Tx Version Inputs Outputs nLocktime TxIn OutPoint scriptSig nSequence OP_CSV UTXO スクリプトインタプリターはTx内のデータしかチェックできないため、 OP_CSV(BIP-112)+ BIP-68の組み合わせにより、 コンセンサスレベルでのUTXOのタイムロックが機能する。 この機能を有効にするために、 TxのVersionは2以上である必要がある。