Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
SLH-DSA (SPHINCS+)
azuchi
0
7
Hyper Tree
azuchi
0
18
FORS
azuchi
0
30
クラスターmempool
azuchi
0
42
W-OTS+
azuchi
0
49
Shorのアルゴリズム
azuchi
0
69
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
54
Fiat-Shamir変換と注意点
azuchi
0
250
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
69
Other Decks in Technology
See All in Technology
消えない 動かない 効かない
yama3133
1
120
AIで仕事のやり方を変える
matsu7874
3
1.1k
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
330
あるけみー式LTスライド作成術
alchemy1115
1
200
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
700
ASTを使って影響範囲を特定する
nealle
0
180
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
170
OpenTelemetryのメトリクスをCloudWatchに送ってPromQLで見てみた
ota1022
0
130
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
200
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
120
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
180
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
It's Worth the Effort
3n
188
29k
Tell your own story through comics
letsgokoyo
1
1.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
270
Skip the Path - Find Your Career Trail
mkilby
1
230
The SEO Collaboration Effect
kristinabergwall1
1
550
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以上である必要がある。