Timelock
A 'Timelock' 'は、指定された将来の時間またはブロックの高さまでのビットコインの消費を制限するスマートコントラクトプリミティブの一種です。 Timelockは、Payment channelsや[Timelock Haselock Contracts | Timelock Contracts]など、多くのBitcoin スマートな契約で目立っています。また、投資として保持されているビットコインを数ヶ月または数年間固定するために使用することもできます。タイムロックは、手数料の狙撃の収益を下げるためにも使用されます。
目次
プリミティブ[編集]
nLockTime[編集]
主要記事:nLockTime
元のBitcoin実装の一部であり、nLockTimeはトランザクションを有効なブロックに追加できる最も早い時刻を指定するフィールドです。後のBitcoinソフトフォーク{必要な}}は、nLockTimeに最低ブロック高を指定することを許可し、トランザクションを有効なブロックに追加することができます。
すべてのトランザクションにnLockTimeフィールドが含まれていますが、最近までのすべてのウォレットはnLockTimeを0に設定しました。つまり、トランザクションは任意のブロックで有効でした。 Bitcoin Core 0.11.0から、自動的に生成されたすべての通常のトランザクションは、仮説fee snipingの収益性が低い<ref name = "anti_fee_sniping" /となるように、最近のブロックの高さに設定されたnLockTimeを含むようになりました。 >;同じように他の財布が推奨されています。
CheckLockTimeVerify[編集]
2015年後半に、BIP65ソフトフォーク[1]はNOP2オペコードをCheckLockTimeVerify(CLTV)オペコードとして再定義し、トランザクション全体の出力ではなくトランザクション出力をタイムロックでエンコードしました。 CLTVオペコードが呼び出されると、トランザクション上のnLockTimeがCLTVオペコードに渡された時間パラメータ以上でない限り、スクリプトは失敗します。トランザクションはnLockTimeが過去のものである場合にのみ有効なブロックに含めることができるため、トランザクションが有効なブロックに含まれる前にCLTVベースのタイムロックが期限切れになることが保証されます。
CLTVは現在、CLTV形式の支払いチャネルで使用されています。
相対ロック時間[編集]
2016年半ば、BIP68 / 112/113ソフトフォークは、すべてのトランザクション入力の一部であるnSequenceフィールド[2]内のいくつかの値に対してコンセンサス実施された意味を与え、相対ロック時間 "テンプレート:必要な引用。これにより、入力がその入力によって費やされた時間がブロックチェーンのブロックに含まれていた時間に基づいて、ブロックに追加できる最も早い時間を指定することができました。
CheckSequenceVerify[編集]
また、BIP68 / 112/113ソフトフォークの一部には、[CheckSequenceVerify] opcode [3]がありました。これはCLTVが絶対ロックタイムに提供する機能と同じ相対的ロック時間を提供します。 CSVオペコードが呼び出されると、トランザクションのnSequenceが、CSVオペコードに指定されたパラメータと等しいかそれ以上の相対ロック時間を経過したことを示さないかぎり、スクリプトが失敗します。相対ロック時間が満了した場合にのみ有効なブロックに入力が含まれるため、有効なブロックにトランザクションが含まれる前にCSVベースのタイムロックが期限切れになります。
CSVはLightning Networkの取引で使用されます。
将来のロック[編集]
ビットコインネットワークが変化する危険性があるため、ビットコインを遠くの将来にロックすることはお勧めしません。たとえば、ECDSAまたはRIPEMD160アルゴリズムのブレークがあって、数カ月のCPU時間で消費可能なコインを作成した場合、ネットワークは移行後の古い未使用コインの移動を禁止する必要があるかもしれませんが、ロングティムドコインは、 。
OP_CheckSequenceVerifyは、最大で65535ブロック(約455日)または最大で65535 * 512秒(約388日)までロックすることを許可します。 OP_CheckLockTimeVerifyは、何世紀にもわたってコインを固定するために使用できます。
関連項目[編集]
- タイムロックビットコインウォレットを作成するためのcoinb.inのタイムロックページ JavaScriptページ。
- [1]
参考文献[編集]
<リファレンス>
<ref name = "bip65"> BIP65:OP_CHECKLOCKTIMEVERIFY
Peter Todd
検索された2016-04-12 < ref>
<ref name = "bip68"> BIP68:コンセンサス強制シーケンス番号を使用した相対ロック時間
Mark Friedenbach、BtcDrak 、Nicolas Dorier、kinoshitajona
検索された2016-04-12 </ ref>
<ref name = "bip112"> BIP112:CHECKSEQUENCEVERIFY
BtcDrak、Mark Friedenbach、Eric Lombrozo
検索された2016- 04-12 </ ref>
<ref name = "anti_fee_sniping"> Bitcoin Core 0.11.0リリースノート Bitcoin.org - 取得済み2016-11-06 </ ref >
</リファレンス>