[翻譯] 拓展區(qū)塊(Extension Block)

綜述

不需要改變?nèi)魏维F(xiàn)存的共識(shí)規(guī)則,來增大比特幣的交易吞吐量急凰。

動(dòng)機(jī)

比特幣網(wǎng)絡(luò)的吞吐量與它重新定向和拒絕服務(wù)限制的共識(shí)規(guī)則相關(guān)药蜻。

比特幣的重新定向規(guī)則確保出塊時(shí)間大致在10分鐘喳瓣,該規(guī)則不可改變。關(guān)于其它大大提高交易吞吐量的方法一直存在爭(zhēng)議绢片,因?yàn)檫@些方法沒有證明它們自己是特別安全的共識(shí)層解決方案滤馍。

歷史

輔助塊,第一次被Johnson Lau在2013年提議底循。概述了使用特殊操作碼使資金進(jìn)入和退出附加塊的方法巢株。

拓展塊是最近的提案,也是Johnson Lau在2017年提出的熙涤,
它修訂了大量原始提案的想法阁苞。

規(guī)則

拓展塊在原始比特幣的區(qū)塊上設(shè)計(jì)了一個(gè)二層結(jié)構(gòu),在該拓展塊中灭袁,礦工將保證額外交易區(qū)塊的merkle根猬错。

拓展塊在opt-in,序列化,驗(yàn)證和網(wǎng)絡(luò)服務(wù)方面利用了BIP141茸歧, BIP143和BIP144的一些功能倦炒。拓展塊的規(guī)則可以認(rèn)為是這些BIP的拓展和修訂。拓展塊在當(dāng)前交易格式下不兼容BIP141软瞎,它需要一些小的附加規(guī)則逢唤。

拓展塊維護(hù)自己的UTXO集合,以免影響未升級(jí)節(jié)點(diǎn)中已存在的UTXO集合涤浇。這是一個(gè)棘手的問題鳖藕,它要求在當(dāng)前每個(gè)標(biāo)準(zhǔn)區(qū)塊的結(jié)尾都有一個(gè)決議交易。

本規(guī)則規(guī)定了一種欺騙未升級(jí)節(jié)點(diǎn)的方法只锭,使它們相信已存在的UTXO集合仍然以以前的規(guī)則在運(yùn)行著恩。不幸的是,這需要在升級(jí)后的節(jié)點(diǎn)上額外的記錄一些內(nèi)容。

承諾結(jié)構(gòu)

愿意包含拓展塊的升級(jí)節(jié)點(diǎn)的礦工將包含一個(gè)額外的輸出值為0的coinbase數(shù)據(jù)喉誊,輸出腳本如下:OP_RETURN 0x24 0xaa21a9ef[32-byte-merkle-root]

承諾結(jié)構(gòu)的序列化和發(fā)現(xiàn)規(guī)則遵循在BIP141中的規(guī)則定義邀摆。

merkle root是由merkle tree計(jì)算出來的,該樹由所有拓展塊和標(biāo)準(zhǔn)塊的普通交易和SW交易作為葉子伍茄。

任何包含拓展塊的區(qū)塊必須包含一個(gè)拓展的承諾輸出栋盹。

拓展塊的 opt-in

交易輸出可以通過使用SW程序腳本的信號(hào)進(jìn)入拓展塊(在BIP141規(guī)定),如果包含的腳本是最小編碼的P2PKH或P2SH腳本敷矫,則可以作為交易輸出用來退出拓展塊的信號(hào)例获。

拓展塊的輸出腳本的代碼中只包含SW程序,P2PKH和P2SH在拓展塊中被認(rèn)為是無效的曹仗。

決議解決

決議交易是一種記錄機(jī)制榨汤,用來維護(hù)拓展塊的UTXO集合的總價(jià)值。這些決議交易作為一個(gè)連續(xù)的OP_TRUE輸出贖回腳本整葡,它們處理拓展塊的入口和出口的UTXO集合件余。

每個(gè)區(qū)塊包含的進(jìn)入或退出拓展塊的輸出,必須包含一個(gè)最終的決議交易遭居。該決議交易花費(fèi)所有的試圖進(jìn)入拓展塊的輸出。這個(gè)決議交易必須作為標(biāo)準(zhǔn)塊的最后一個(gè)交易出現(xiàn)(以便正確掃描所有新創(chuàng)建的輸出)旬渠。這些資金將被發(fā)送到一個(gè)任何人都可以花費(fèi)的輸出(OP_TRUE)俱萍。除了另一個(gè)決議交易,任何花費(fèi)這種輸出的交易都會(huì)被共識(shí)規(guī)則禁止告丢。

這個(gè)決議交易的輸出必須包含額外的用于試圖退出拓展塊的輸出枪蘑。

coinbase輸出不能包含隔離見證數(shù)據(jù),由于先前存在的共識(shí)規(guī)則岖免,他們不能被決議交易所處理岳颇。

一個(gè)決議交易的第一個(gè)輸入必須引用以前的決議交易的首個(gè)輸出。

費(fèi)用是從拓展塊傳播進(jìn)決議交易颅湘,換句話說话侧,決議交易的金額一定要等于拓展塊的總的金額。

引導(dǎo)

為了引導(dǎo)拓展塊的激活闯参,一個(gè)創(chuàng)世的決議交易必須在首個(gè)激活的塊中被挖掘瞻鹏,用來包含一個(gè)拓展塊的承諾結(jié)構(gòu)以及輸入輸出,這個(gè)決議交易是唯一一個(gè)存在的不需要引用以前的決議交易鹿寨。

這個(gè)創(chuàng)世決議交易的首個(gè)輸入可以包含一個(gè)1-100個(gè)字節(jié)的腳本新博,包含一個(gè)單一的push操作碼,這使得挖掘創(chuàng)世決議交易的礦工可以添加一個(gè)特殊的信息脚草。這個(gè)輸入腳本必須執(zhí)行成功(沒有格式錯(cuò)誤的push數(shù)據(jù)赫悄,沒有OP_RESERVED 操作碼).

決議交易的規(guī)則:

決議交易的首個(gè)輸出必須含有個(gè)一個(gè)值等于:(previous-resolution-value + entering-value - exiting-value) - ext-block-fees.

接下來的輸出腳本和值必須精確的復(fù)制拓展塊的退出輸出(以在拓展塊中出現(xiàn)的相同的順序)。

決議交易的版本必須被設(shè)置為uint32的最大值(2^32 -1).規(guī)則激活后,這個(gè)版本號(hào)被共識(shí)規(guī)則禁止與任何在標(biāo)準(zhǔn)鏈或拓展鏈上的交易一起使用埂淮,這是對(duì)于決議交易簡(jiǎn)單的非上下文識(shí)別所必須的嚼贡。

進(jìn)入拓展區(qū)塊:

任何隔離見證程序的輸出都被視為一個(gè)opt-in,用來將資金發(fā)送至拓展塊的UTXO集合的公鑰哈贤耄或者腳本哈希上粤策。
示例:

Transaction #1 (coinbase):

Output #0:
    - Script: P2PKH
    - Value: 12.5
Output #1:
    - Script: OP_RETURN 0xaa21a9ef[merkle-root]
    - Value: 0
-------------------------------

Transaction #2 (extension block funding transaction):
Output #0:
    - Script: P2WPKH (will enter the extension utxo set)
    - Value: 5.0

Output #1:
    - Script: P2PKH (stays in the canonical utxo set)
    - Value: 2.5
-------------------------------
  • 該決議交易可以贖回任何隔離驗(yàn)證的輸出;
Transaction #3 (resolution transaction):

Input #0:
  - Outpoint:
    - Hash: previous-resolution-txid
    - Index: 0

Input #1:
  - Outpoint:
    - Hash: Transaction #2 TXID
    - Index: 0

Output #0:
  - Script: OP_TRUE
  - Value: 5.0
  • 在這個(gè)例子中误窖,一個(gè)花費(fèi)者要贖回tx2的0號(hào)輸出叮盘,對(duì)應(yīng)的拓展塊的存在形式可能如下:
Transaction #4 (redeemer of transaction #2):

Input #0:
  - Outpoint:
    - Hash: Transaction #2 TXID
    - Index: 0

Output #0:
  - Script: P2WPKH (this output remains in the ext. block)
  - Value: 5.0

退出拓展塊

為了確保在拓展鏈和拓展區(qū)塊上的一對(duì)一交換霹俺,必須拓展區(qū)塊上存在的輸出提供出口。

在隨后的交易中愈魏,tx2的輸出的花費(fèi)者希望獲得一個(gè)輸出出口來獲得他們的金額。

Transaction #5 (coinbase):

Output #0:
  - Script: P2PKH
  - Value: 12.5

Output #1:
  - Script: OP_RETURN 0xaa21a9ef[merkle-root]
  - Value: 0
----------------------------

Transaction #6 (resolution transaction):

Input #0:
  - Outpoint:
    - Hash: previous-resolution-txid
    - Index: 0

Output #0:
  - Script: OP_TRUE
  - Value: 2.5

Output #1:
  - Script: P2PKH (duplicated from the exited output below)
  - Value: 2.5
--------------------------------
  • 拓展區(qū)塊
Transaction #7:

Input #0:
  - Outpoint:
    - Hash: Transaction #4 TXID
    - Index: 0

Output #0:
  - Script: P2WPKH (this output will remain in the ext. block)
  - Value: 2.5

Output #1:
  - Script: P2PKH (note that this causes an exit!)
  - Value: 2.5

退出贖回交易

如上所述想际,交易輸出通過決議交易從拓展塊回到主鏈上培漏。在拓展塊上創(chuàng)建的輸出不得在任何鏈上花費(fèi)胡本,而退出輸出必須從決議交易創(chuàng)建的端點(diǎn)來花費(fèi)。

退出的成熟度要求

類似于coinbase交易侧甫,在鏈重組的情況下珊佣,決議交易也可以被永久的取消。這可能使所欲退出輸出所包含的花費(fèi)無效披粟,同時(shí)導(dǎo)致該花費(fèi)交易不可再被傳播,不可再在主鏈上被挖掘惑艇。由于這個(gè)原因胸梆,需要退出的成熟度。

金額

從拓展塊收集的金額傳播到對(duì)應(yīng)的決議交易上碰镜,決議交易的金額必須與拓展塊上收集的金額相等。

在共識(shí)層秽荤,交易費(fèi)通過交易成本以及由于進(jìn)入或退出輸出而添加到標(biāo)準(zhǔn)區(qū)塊的 額外的字節(jié)來計(jì)算(size/legacy-sigops).
在前面的例子中,tx2的花費(fèi)者的輸出應(yīng)該添加一點(diǎn)費(fèi)用窃款。

Transaction #5 (coinbase):

Output #0:
  - Script: P2PKH
  - Value: 12.501 (reward + fee)

Output #1:
  - Script: OP_RETURN 0xaa21a9ef[merkle-root]
  - Value: 0
---------------------------
Transaction #6 (resolution transaction):

Input #0:
  - Outpoint:
    - Hash: previous-resolution-txid
    - Index: 0

Output #0:
  - Script: OP_TRUE
  - Value: 2.499 (fee is subtracted)

Output #1:
  - Script: P2PKH (from the exited output below)
  - Value: 2.5
  • 拓展塊
Transaction #7:

Input #0:
  - Outpoint:
    - Hash: Transaction #4 TXID
    - Index: 0

Output #0:
  - Script: P2WPKH (this output will remain in the ext. block)
  - Value: 2.499 (fee is subtracted, this propagates up)

Output #1:
  - Script: P2PKH (note that this causes an exit!)
  - Value: 2.5

驗(yàn)證

驗(yàn)證拓展塊的交易晨继,應(yīng)當(dāng)強(qiáng)制執(zhí)行所有目前部署的軟分叉規(guī)則,以及額外的類似BIP141的規(guī)則集合紊扬。

拓展塊中的交易集合可以包含一個(gè)使用BIP141規(guī)則序列化后的隔離驗(yàn)證交易集合。

應(yīng)該使用VERIFY_WITNESS規(guī)則對(duì)拓展交易執(zhí)行驗(yàn)證檀葛。

拓展交易一定不可以訪問任何標(biāo)準(zhǔn)區(qū)塊的UTXO集合腹缩。

如果一個(gè)拓展區(qū)塊的共識(shí)檢查失敗,則升級(jí)的節(jié)點(diǎn)必須認(rèn)為整個(gè)區(qū)塊是無效的润讥。

BIP141規(guī)則變化

  • 除了決議交易之外伙判,隔離驗(yàn)證的輸出只可以從一個(gè)拓展區(qū)塊贖回。
  • 隔離驗(yàn)證的交易只能包含隔離驗(yàn)證的輸入宴抚。
  • BIP141嵌套P2SH的功能不再可用菇曲,并且不再是共識(shí)規(guī)則。
  • block weighttransaction weight的概念將被移除常潮。
  • sigops cost的概念繼續(xù)存在,用于將來的軟分叉和可升級(jí)的DoS限制.

DoS Limits

DoS限制應(yīng)該通過拓展塊的字節(jié)大小以及新定義的交易輸入和輸出的規(guī)則來執(zhí)行楷力,拓展塊的退出輸出會(huì)影響標(biāo)準(zhǔn)塊的DoS限制喊式,因?yàn)橥卣箟K增大了字節(jié)大小和標(biāo)準(zhǔn)的操作碼萧朝。

MAX_BLOCK_SIZE: 1000000 (unchanged)
MAX_BLOCK_SIGOPS: 20000 (unchanged)
MAX_EXTENSION_SIZE: TBD
MAX_EXTENSION_COST: TBD

拓展塊的最大字節(jié)應(yīng)該是提高的。區(qū)塊的平均情況是真正受到輸入輸出成本的限制献联。

未來的字節(jié)大小和計(jì)算的可擴(kuò)展性可以通過軟分叉來添加新的隔離見證程序來實(shí)現(xiàn)。在未升級(jí)的節(jié)點(diǎn)里逆,未知的隔離見證程序作為一個(gè)交易輸入和輸出來計(jì)算。新的隔離見證程序含有較低的實(shí)現(xiàn)成本胁镐,以便允許未來通過軟分叉來改變DoS的限制诸衔。

拓展交易的成本

拓展塊利用BIP141的可升級(jí)腳本行為來實(shí)現(xiàn)可升級(jí)的DoS限制。

計(jì)算交易輸入的成本

隔離見證的key哈希的v0等于1宠能,乘以系數(shù)8.

隔離見證的script哈希v0等于贖回腳本中準(zhǔn)確計(jì)算的操作碼個(gè)數(shù)磁餐,乘以系數(shù)8.

未知的隔離見證程序等于1,乘以系數(shù)1.

為了減少贖回腳本中加入垃圾數(shù)據(jù)的機(jī)會(huì)羞延,只允許垃圾數(shù)據(jù)在隔離見證交易中存在脾还,序列化后的每73個(gè)字節(jié)隔離見證的交易等于增加一個(gè)額外的點(diǎn).

為以后7次軟分叉升級(jí)留出了余地,以減輕DoS限制嗤谚。

計(jì)算輸出成本

當(dāng)前定義的v0版本的隔離見證程序每個(gè)都等于8點(diǎn)怔蚌。未知的隔離見證程序輸出等于1點(diǎn),任何退出輸出也一直等于8點(diǎn)椅野。

為以后7次軟分叉升級(jí)留出了余地籍胯,以減輕DoS限制。

灰塵閾值

現(xiàn)在在拓展塊內(nèi)強(qiáng)制執(zhí)行灰塵共識(shí)閾值炼蛤。

拓展塊中交易輸出值小于500聰是無效的本刽。這包括輸入和輸出赠涮,但是不包括退出輸出暗挑。

額外的閃電網(wǎng)絡(luò)的安全規(guī)則

閃電網(wǎng)絡(luò)面臨者當(dāng)前某些系統(tǒng)性的攻擊(在閃電網(wǎng)絡(luò)白皮書中有定義)。

如果在拓展塊中交易的版本號(hào)第30bit被設(shè)置為1垃它,在區(qū)塊中的交易空間額外的700字節(jié)被保留烹看。【注意:交易空間和操作數(shù)的花費(fèi)尚未定義】

交易空間可以被預(yù)先申請(qǐng)酱吝,并且被在相同區(qū)塊中的兩筆交易所使用(每個(gè)交易的最大字節(jié)為350)土思,它們滿足以下定義的特殊約束條件。
第一個(gè)分配只能由崎岂,直接花費(fèi) 版本號(hào)30bit被設(shè)置的交易的首個(gè)交易輸出的交易來花費(fèi)闪湾。

第二個(gè)分配只能由這些交易的首個(gè)輸出來花費(fèi),該交易屬于存在于過去2016個(gè)區(qū)塊江醇,并且版本號(hào)30bit被設(shè)置何暇。

如果分配未被其它交易使用,該交易將消耗額外的空間,并且減少區(qū)塊的可用空間多達(dá)700字節(jié)辐烂。
這是拓展區(qū)塊的共識(shí)規(guī)則,并且不適用于標(biāo)準(zhǔn)區(qū)塊胳嘲。

這個(gè)提案的目的是確保在沒有礦工的協(xié)調(diào)下扣草,對(duì)于系統(tǒng)的攻擊成本將會(huì)異常高颜屠。因?yàn)閴K的空間是預(yù)先分配給礦工的甫窟,用來包含懲罰閃電網(wǎng)絡(luò)交易蛙婴,并且由于雙方必須同意閃電網(wǎng)絡(luò)中的承諾交易的版本位,所以該規(guī)則被強(qiáng)制執(zhí)行浇衬。這是閃電網(wǎng)絡(luò)中的一個(gè)opt-in 功能餐济,交易費(fèi)用更高,從而提高了罰款的可用性醉冤。架設(shè)在大部分不正確的廣播情況下滚朵,懲罰將通過第二次分配包含在同一個(gè)塊中,并為第一次分配中的其它交易留出空間辕近。

遷移和采用的點(diǎn)

大多數(shù)的比特幣系統(tǒng)移宅,當(dāng)前都可以很好的處理BIP141升級(jí)后的規(guī)則。

對(duì)于目前支持BIP141的錢包漏峰,遷移應(yīng)當(dāng)是不重要的浅乔。

對(duì)于全節(jié)點(diǎn)的服務(wù),API可能會(huì)變靖苇,以便將拓展塊的交易透明的提供給客戶端贤壁,就好像它們出現(xiàn)在標(biāo)準(zhǔn)塊中一樣。當(dāng)然脾拆,這不包含任何礦工API。

錢包的關(guān)注點(diǎn)和遷移

當(dāng)前支持BIP141的錢包必須修改一點(diǎn)關(guān)鍵的地方绰上,以便實(shí)現(xiàn)兼容拓展區(qū)塊。

  1. 當(dāng)創(chuàng)建交易時(shí)运吓,錢包必須選擇一條鏈去花費(fèi)(無論是標(biāo)準(zhǔn)鏈還是拓展鏈疯趟,但不能同時(shí)選擇兩條鏈)信峻。換句話說,交易必須含有所有的隔離見證輸入盹舞,或者非隔離見證輸入。對(duì)于支持兩條鏈的錢包癣亚,如果用戶沒有明確指定获印,幣值選擇器可以自動(dòng)的選擇使用哪條鏈。
  1. 支持拓展區(qū)塊的錢包必須忽略決議交易的輸入玻孟△⒄鳎可以通過簡(jiǎn)單的檢查交易的版本號(hào),類似于錢包已經(jīng)忽略的coinbase交易輸入匣掸。這是阻止錢包錯(cuò)誤的看到雙花的必要條件氮双。
  2. 支持標(biāo)準(zhǔn)區(qū)塊和拓展區(qū)塊資金的錢包必須忽略拓展區(qū)塊中的退出輸出。這是阻止錢包錯(cuò)誤的多次索引相同輸出的必要條件。

后兩條僅適用于直接監(jiān)控區(qū)塊鏈的錢包(即類似于官方bitcoind自帶的錢包)造挽,監(jiān)測(cè)錢包通常觀察區(qū)塊鏈并為它們的交易和輸出建立索引。

交易池的關(guān)注點(diǎn)

交易池的變化是最小的嵌器。盡管實(shí)現(xiàn)的細(xì)節(jié)可能有所不同谐丢,但一個(gè)合格的交易池必須禁止兩條鏈的交叉(兩條鏈的混合輸入),以及跟蹤退出輸出的交易讥珍。這些輸出不可以被花費(fèi)在交易池中(它們必須從下個(gè)決議交易贖回窄瘟。)

礦工的關(guān)注點(diǎn)

額外的字節(jié)和操作數(shù)計(jì)算

注意:當(dāng)內(nèi)部創(chuàng)建塊模板,并為標(biāo)準(zhǔn)區(qū)塊分配大小時(shí)氏义,節(jié)點(diǎn)必須考慮進(jìn)入拓展塊的交易和退出拓展塊的輸出交易图云。一個(gè)攜帶進(jìn)入輸出或退出輸出拓展塊的交易為標(biāo)準(zhǔn)區(qū)塊添加了字節(jié)數(shù)。

在決議交易中克婶,進(jìn)入拓展塊的輸出以交易輸入的形式添加字節(jié)帕翻。(此處翻譯有些問題)

在決議交易中,退出拓展塊的輸出以復(fù)制輸出的形式添加字節(jié)和原始操作碼紫岩。

交易排序和選擇算法必須考慮這些內(nèi)容睬塌。

拓展 getblocktemplate(BIP22)

除了傳統(tǒng)交易的數(shù)組之外,合格的實(shí)現(xiàn)必須包含一個(gè)拓展交易的數(shù)組勋陪。該拓展數(shù)組包含BIP22中定義的交易硫兰,以及BIP145對(duì)getblocktemplate的拓展。

合格的實(shí)現(xiàn)违孝,必須將決議交易做為普通交易數(shù)組的一部分。該決議交易必須含有一個(gè)額外的屬性叫resolution,它是一個(gè)bool值喇喉,被設(shè)置為true校坑。直接在傳統(tǒng)交易數(shù)組中包含決議交易是為了與現(xiàn)有的挖礦客戶端進(jìn)行向后兼容。

default_witness_commitment已被重命名為default_extension_commitment,并被包含在拓展區(qū)塊的承諾腳本中膏斤。

一個(gè)額外的mutable字段在resolution中被定義制妄。如果傳統(tǒng)交易在可變數(shù)組中耕捞,resolution允許拓展塊可變,前提是客戶端能正確的更新決議交易俺抽。

除了resolution的可變字段磷斧,還定義了resolution capabilities字段,以便客戶端聲明它可以更新決議交易冕末。

對(duì)于處理過期挖礦客戶端的節(jié)點(diǎn)侣颂,將拓展塊本地存儲(chǔ)在commitment-hash->extmap結(jié)構(gòu)中,此處區(qū)塊數(shù)據(jù)可能是必須的(除了調(diào)用submitblock期間的一個(gè)重新序列化)

數(shù)據(jù)遷移的關(guān)注點(diǎn)

為了標(biāo)識(shí)該UTXO屬于哪條鏈,該功能的實(shí)現(xiàn)可能需要在每個(gè)存儲(chǔ)的UTXO上添加一個(gè)額外的位藻肄。依據(jù)實(shí)現(xiàn)的UTXO序列化和壓縮格式,這可能需要數(shù)據(jù)遷移嘹屯。

激活

  • 版本位:2
  • 部署名字:extblk(在GBT作為非extblk出現(xiàn))
  • 開始時(shí)間:TBD
  • 超時(shí)時(shí)間:TBD

作用

礦工可以通過第28bit(BIP9 軟分叉位)來對(duì)拓展塊的功能作用進(jìn)行投票从撼。功能部署的開始時(shí)間在拓展塊開始3年以后,且礦工激活閾值達(dá)95%呆馁。最小的鎖定時(shí)間必須至少為每年26次。

到此為止,未來的拓展塊規(guī)則集貌似已開發(fā)完畢气堕,這在功能集合和拓展性方面是優(yōu)越的。這使以最小技術(shù)包袱進(jìn)行長(zhǎng)期可擴(kuò)展解決方案揖膜,來支持功能鏈成為可能梅桩。

功能激活后宿百,社區(qū)期望仍然可以從拓展區(qū)塊退出,并且根據(jù)尚未設(shè)計(jì)的軟分叉條款來確保安全垦页,但是在拓展區(qū)塊內(nèi)的資金的進(jìn)入和轉(zhuǎn)移將不再被允許痊焊。
提出了兩種可能的功能激活方案,將在本文件的最終版本中選擇一種辕羽。

方案1

在第28bit被激活時(shí)垄惧,這個(gè)決議交易的輸出在當(dāng)天將作為一個(gè)任何人都可以花費(fèi)的輸出被返回。BIP9的第28 bit(或另一個(gè)BIP9位)可以被重載用來啟用軟分叉酌毡,以防止該交易在未來實(shí)際上成為任何人都可以花費(fèi)的交易蕾管,該功能允許不需要使用硬分叉代碼來啟用未來的拓展塊功能。

按照社會(huì)契約的理解旭蠕,拓展塊中的資金在下面的去激活設(shè)計(jì)中仍然是可用和可贖回的。如果在條款中沒有正確的激活和安全的取款操作佑稠,用戶和交易所可以使用bit位設(shè)置軟分叉來拒絕該區(qū)塊旗芬。

可以通過使用在BIP9第28bit激活的相同的輸出結(jié)合另一bit位的新規(guī)則來直接升級(jí)拓展區(qū)塊(例如:第27bit在第28bit被激活的情況下有條件的激活新的鏈,來創(chuàng)建一個(gè)直接遷移到新的拓展塊而不需要在主鏈上進(jìn)行新的交易)幔嫂。

可以被理解為誊薄,這個(gè)軟分叉可以重載取款或贖回資金的強(qiáng)制限制呢蔫,以便在取款時(shí)可以解析腳本的條款。

方案2

在第28bit被激活時(shí)绽昏,拓展區(qū)塊內(nèi)不允許進(jìn)一步的交易處理定鸟,只允許通過merkle協(xié)議退出主鏈。

這就要求merkle協(xié)議的退出代碼和規(guī)范必須在當(dāng)天被規(guī)范和激活啼县。

通過merkle樹協(xié)議的取消激活

從舊的拓展塊到主鏈和新的拓展塊的贖回沸久,可以通過未來設(shè)計(jì)的merkle協(xié)議來進(jìn)行移植。通過對(duì)UTXO merkle根進(jìn)行硬編碼作為一個(gè)共識(shí)規(guī)則來使資金導(dǎo)入至新的拓展塊子刮,并通過merkle路徑來驗(yàn)證導(dǎo)入的資金窑睁。

要啟用導(dǎo)入担钮,節(jié)點(diǎn)只需要當(dāng)前拓展塊的32字節(jié)的merkle root的拷貝。

這移除了全節(jié)點(diǎn)存儲(chǔ)所有UTXO集合拷貝在硬盤上的必要性箫津,并且可以在未來贖回時(shí)進(jìn)行較大的鏈上交易。另一種是使所有的客戶端保持UTXO集合的記錄饼拍,并且在內(nèi)存中保持所有的位域师抄。

由于UTXO設(shè)置是靜態(tài)的(僅僅是未花費(fèi)或花費(fèi)的改變),因?yàn)樗菑男碌妮敵鲋衼砑せ畹模@比當(dāng)前提出的用于改變UTXO的設(shè)計(jì)更簡(jiǎn)單叨吮。

動(dòng)機(jī)

雖然作用看起來有些缺點(diǎn)挤安,但本規(guī)范的主要優(yōu)點(diǎn)是不帶有BIP141規(guī)則集的拓展塊丧鸯。相反,該體系將為處理拓展塊奠定基礎(chǔ)围肥。使未來的比特幣協(xié)議可以包含使用不同規(guī)則集的多種不同的拓展塊蜂怎。

引用實(shí)現(xiàn)

https://github.com/bcoin-org/bcoin-extension-blocks

引用

原文地址:https://github.com/tothemoon-org/extension-blocks/blob/master/spec.md


本文由 Copernicus團(tuán)隊(duì) 姚永芯翻譯杠步,轉(zhuǎn)載無需授權(quán)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末朵锣,一起剝皮案震驚了整個(gè)濱河市甸私,隨后出現(xiàn)的幾起案子皇型,更是在濱河造成了極大的恐慌,老刑警劉巖绞吁,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寡键,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡员舵,警方通過查閱死者的電腦和手機(jī)马僻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來措近,“玉大人女淑,你說我怎么就攤上這事鸭你。” “怎么了袱巨?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵愉老,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我焰盗,道長(zhǎng)劝贸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮件甥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瓣颅。我一直安慰自己譬正,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布健民。 她就那樣靜靜地躺著贫贝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪稚晚。 梳的紋絲不亂的頭發(fā)上崇堵,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音客燕,去河邊找鬼鸳劳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛也搓,可吹牛的內(nèi)容都是我干的棍辕。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼还绘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了拍顷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤塘幅,失蹤者是張志新(化名)和其女友劉穎昔案,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體电媳,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡踏揣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匾乓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捞稿。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拼缝,靈堂內(nèi)的尸體忽然破棺而出娱局,到底是詐尸還是另有隱情,我是刑警寧澤咧七,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布衰齐,位于F島的核電站,受9級(jí)特大地震影響继阻,放射性物質(zhì)發(fā)生泄漏耻涛。R本人自食惡果不足惜废酷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抹缕。 院中可真熱鬧澈蟆,春花似錦、人聲如沸歉嗓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鉴分。三九已至哮幢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間志珍,已是汗流浹背橙垢。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伦糯,地道東北人柜某。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像敛纲,于是被迫代替她去往敵國(guó)和親喂击。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349