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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
shigeyuki azuchi
February 27, 2024
Technology
130
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
FORS
azuchi
0
13
クラスターmempool
azuchi
0
32
W-OTS+
azuchi
0
36
Shorのアルゴリズム
azuchi
0
59
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
43
Fiat-Shamir変換と注意点
azuchi
0
230
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
55
BIP-374 離散対数の等価性証明
azuchi
0
74
BIP-353 DNS Payment Instructions
azuchi
0
91
Other Decks in Technology
See All in Technology
AIが当たり前の組織で エンジニアはどう育つか
nishihira
1
950
AI工学特論: MLOps・継続的評価
asei
4
680
AIエージェントがあれば技術書なんてすぐ書けるでしょ→無理でした
watany
2
170
インシデント事例と パッケージの全量解析に学ぶ ソフトウェアサプライチェーンの守り方 / supply-chain-attack-defense
flatt_security
0
880
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
360
AI時代のYAGNI:「爆速で無駄になった機能」からの学び / 20260720 Naoki Takahashi
shift_evolve
PRO
3
520
AI x 開発生産性を取り巻く予算戦略と投資対効果
i35_267
7
2.8k
現場との対話から始める “作る前に問い直す”業務改善
mochico50
1
200
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
450
Jitera Company Deck
jitera
0
270
VPCセキュリティ対応の最新事情
nagisa53
1
220
クラウドを使う側から、作る側へ / 大吉祥寺.pm 2026前夜祭
fujiwara3
4
1.1k
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
340
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Evolving SEO for Evolving Search Engines
ryanjones
0
240
ラッコキーワード サービス紹介資料
rakko
1
4M
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
190
Everyday Curiosity
cassininazir
0
260
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
190
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
A designer walks into a library…
pauljervisheath
211
24k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
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以上である必要がある。