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
18
Hyper Tree
azuchi
0
19
FORS
azuchi
0
31
クラスターmempool
azuchi
0
43
W-OTS+
azuchi
0
50
Shorのアルゴリズム
azuchi
0
71
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
58
Fiat-Shamir変換と注意点
azuchi
0
260
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
70
Other Decks in Technology
See All in Technology
分析AIエージェントを育てる、動く環境を育てる
codatum
0
140
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
220
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
420
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
4
1.1k
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
520
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
0
3.5k
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
850
3つのアプローチで目指す チームを強くするAI駆動開発
thkt
0
120
LLM機能を自作して分かるSnowflake Cortex AIの強み
nayuts
0
310
購入ドメインでの課題と取り組み
ykagano
0
150
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
130
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
270
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Product Roadmaps are Hard
iamctodd
55
13k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Fireside Chat
paigeccino
43
4.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
Making Projects Easy
brettharned
120
6.8k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
The Mindset for Success: Future Career Progression
greggifford
PRO
0
530
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
570
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以上である必要がある。