bitcoin 交易鎖定

交易的結(jié)構(gòu)

Version
Txin[]
    prevout : txID + index
    sig 
    nSequence
Txout[]
    value 
    scriptPubkey
LockTime

bitcoin交易的鎖定方法

bitcoin 交易提供了3種交易鎖定的方式

  • 通過交易的LockTime 字段鎖定交易
    • 通過該字段,用來鎖定一個交易荸频。
    • 如果該字段的值 小于LOCKTIME_THRESHOLD(500000000);則標(biāo)識該交易的鎖定高度
    • 如果該字段的值大于等于 LOCKTIME_THRESHOLD徙硅,則標(biāo)識使用高度鎖定。
  • 通過交易的nSequence 字段鎖定某個指定的交易輸入(使用BIP168進行檢測)
    • 通過該字段用來鎖住一個交易中的指定輸入
  • 通過鎖定腳本,鎖定某個交易輸出(添加了某個特殊的操作碼)
    • 通過添加操作碼脾猛,在鎖定腳本上鎖定一個交易的指定輸出。

在交易進交易池鱼鸠,打包區(qū)塊時猛拴,以及驗證區(qū)塊有效性時羹铅,都會判斷交易的成熟度。對于未成熟的交易愉昆,不允許進入進入交易池职员,不允許打包。

詳細(xì)解釋

在交易池中跛溉,交易的輸入分為兩種:來自于UTXO的輸出焊切,來自于交易池中其它未確認(rèn)交易的輸出。

如果一個交易的所有輸入都來自于UTXO:

如果要獲取該交易所有輸入 通過nSequence字段來標(biāo)識的鎖定時間戳芳室;
第一步:是先判斷該nSequence字段是否用來鎖定

  • 如果某個交易輸入的nSequence字段最高bit(1 << 31)位被設(shè)置专肪,標(biāo)識該字段沒有啟用鎖定功能;否則啟用了鎖定功能

第二步:判斷nSequence字段使用了哪種鎖定功能

  • 如果第22bit位被設(shè)置堪侯,則標(biāo)識啟用了時間戳鎖定的功能嚎尤;否則標(biāo)識啟用了高度鎖定的功能
    • 對于時間戳的鎖定功能:該交易輸入的鎖定時間為,它的父區(qū)塊的中位數(shù)時間戳 + 鎖定字段的值* (1<< 9) - 1
    • 對于高度鎖定功能:該交易輸入的鎖定高度為, 該輸入的 utxo高度 + 鎖定字段的值 - 1

第三步:依據(jù)這些依賴于 nSequence字段進行鎖定的交易輸入伍宦,記錄他們的高度芽死,并去除交易池中的交易輸入,獲取該交易剩下的 utxo集的最高的塊索引次洼,用來作為緩存关贵,可以標(biāo)識剛才計算的交易的鎖定時間和鎖定高度什么時候失效。

第四步:比較鎖定的時間戳和鎖定高度

  • 只有當(dāng)這個交易所有輸入的 最大鎖定時間和最大鎖定高度 大于當(dāng)前Tip區(qū)塊時滓玖,這個交易才被允許打包到下一個區(qū)塊中坪哄。

對于交易池中的交易,它的輸出形成的臨時utxo 在集合中的高度為 MEMPOOL_HEIGHT(0x7FFFFFFF)势篡,在計算鎖定時間和鎖定高度時翩肌,它的高度被臨時賦值為 Tip + 1;

則當(dāng)交易池中某交易依賴于交易池中其他交易的輸出

  • 且該輸出還使用nSequence字段進行時間戳鎖定時禁悠,它的鎖定時間的計算相當(dāng)于當(dāng)前Tip區(qū)塊的中位數(shù)時間 + 鎖定字段的值 * (1 << 9) - 1;所以它肯定在當(dāng)前正在打包的區(qū)塊中成熟念祭,所以不會在當(dāng)前區(qū)塊時被打包。
  • 該輸出使用nSequence字段進行高度鎖定碍侦,它的鎖定高度相當(dāng)于當(dāng)前正在打包的區(qū)塊高度 + 鎖定字段的值 - 1
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末粱坤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子瓷产,更是在濱河造成了極大的恐慌站玄,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,185評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件濒旦,死亡現(xiàn)場離奇詭異株旷,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,445評論 3 385
  • 文/潘曉璐 我一進店門晾剖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锉矢,“玉大人,你說我怎么就攤上這事齿尽」了穑” “怎么了?”我有些...
    開封第一講書人閱讀 157,684評論 0 348
  • 文/不壞的土叔 我叫張陵循头,是天一觀的道長绵估。 經(jīng)常有香客問我,道長贷岸,這世上最難降的妖魔是什么壹士? 我笑而不...
    開封第一講書人閱讀 56,564評論 1 284
  • 正文 為了忘掉前任磷雇,我火速辦了婚禮偿警,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘唯笙。我一直安慰自己螟蒸,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,681評論 6 386
  • 文/花漫 我一把揭開白布崩掘。 她就那樣靜靜地躺著七嫌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苞慢。 梳的紋絲不亂的頭發(fā)上诵原,一...
    開封第一講書人閱讀 49,874評論 1 290
  • 那天,我揣著相機與錄音挽放,去河邊找鬼绍赛。 笑死,一個胖子當(dāng)著我的面吹牛辑畦,可吹牛的內(nèi)容都是我干的吗蚌。 我是一名探鬼主播,決...
    沈念sama閱讀 39,025評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼纯出,長吁一口氣:“原來是場噩夢啊……” “哼蚯妇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起暂筝,我...
    開封第一講書人閱讀 37,761評論 0 268
  • 序言:老撾萬榮一對情侶失蹤箩言,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后焕襟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陨收,經(jīng)...
    沈念sama閱讀 44,217評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,545評論 2 327
  • 正文 我和宋清朗相戀三年胧洒,在試婚紗的時候發(fā)現(xiàn)自己被綠了畏吓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片墨状。...
    茶點故事閱讀 38,694評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖菲饼,靈堂內(nèi)的尸體忽然破棺而出肾砂,到底是詐尸還是另有隱情,我是刑警寧澤宏悦,帶...
    沈念sama閱讀 34,351評論 4 332
  • 正文 年R本政府宣布镐确,位于F島的核電站,受9級特大地震影響饼煞,放射性物質(zhì)發(fā)生泄漏源葫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,988評論 3 315
  • 文/蒙蒙 一砖瞧、第九天 我趴在偏房一處隱蔽的房頂上張望息堂。 院中可真熱鬧,春花似錦块促、人聲如沸荣堰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,778評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽振坚。三九已至,卻和暖如春斋扰,著一層夾襖步出監(jiān)牢的瞬間渡八,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,007評論 1 266
  • 我被黑心中介騙來泰國打工传货, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留屎鳍,地道東北人。 一個月前我還...
    沈念sama閱讀 46,427評論 2 360
  • 正文 我出身青樓损离,卻偏偏與公主長得像哥艇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子僻澎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,580評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 也許很多人都會有這樣的感覺窟勃。想要一間獨立的房子祖乳,放滿了自己真心喜歡的書,小玩意秉氧,寵物眷昆,或者其他。總之完全是按照自己...
    用他的歌閱讀 593評論 0 1
  • 人各有命亚斋,富貴在天作媚,人的一生中會發(fā)生什么事,會遇到什么人帅刊,這些都無法預(yù)定纸泡,如果走在一條沒有人生目標(biāo)的道路上,那活...
    人生便是一本書閱讀 236評論 0 1
  • 不知道是因為工作了五年的倦怠還是因為現(xiàn)公司近半年的狀況突然讓我覺得十分疲憊,經(jīng)過了一個月的全面思考與調(diào)整之后栏饮,決定...
    噠子桑閱讀 773評論 0 1
  • 感恩一林的婚禮讓我們?nèi)蚁嗑郯赏茫裉於愫吞妹萌叶紡耐獾刳s來為一林慶賀婚禮。晚上一家人團聚在一起袍嬉,我們家的七個孩子...
    歸韻閱讀 403評論 1 6
  • “人之初境蔼,性本善”,這句話耳熟能詳冬竟,沒錯欧穴,幼兒園就開始接觸三字經(jīng),到現(xiàn)在也就這句話記得最清楚泵殴。 小時候不知道這句話...
    藍(lán)沐沐同學(xué)閱讀 288評論 0 0