數(shù)字貨幣簡明講義系列-隔離驗證

定義

隔離驗證勺良,又稱隔離見證(segregated witness)是由Bitcoin Core(比特幣核心軟件)維護(hù)者之一Pieter Wuille提出的比特幣擴(kuò)展性方案,簡單來講尚困,這種方案就是通過改變比特幣交易結(jié)構(gòu)的方式蠢箩,將交易中簽名的部分單獨(dú)拿出來谬泌,放到另一個叫 witness 的結(jié)構(gòu)當(dāng)中掌实。
比特幣交易數(shù)據(jù)結(jié)構(gòu)是:
TxIn+交易簽名+TxOut
交易ID計算公式:TxId=hash(TxIn+交易簽名+TxOut)
現(xiàn)在的問題是贱鼻,簽名為什么要在這里宴卖,在這里有什么好處?
答案是:中本聰是這么設(shè)計的父丰,所以簽名在這里肝谭。好處嘛,沒什么好處蛾扇,不止是沒有好處攘烛,缺點(diǎn)卻還不少。
1镀首、由于這種設(shè)計医寿,比特幣的交易結(jié)構(gòu)中就憑空的隱藏了不少“秘籍”,比如說:未簽名交易其實就是用了另一個叫 ScriptPubKey 的內(nèi)容蘑斧,先占據(jù)著簽名所需的位置,然后對這個未簽名的交易做簽名须眷,再把簽名的結(jié)果替換進(jìn)去竖瘾。這其實是很麻煩的一件事,既不容易說清楚花颗,也很難用代碼去實現(xiàn)捕传。當(dāng)一個交易中有多個輸入(TxIn)的時候,又要有一套“秘籍”來依次準(zhǔn)備未簽名交易扩劝,依次把簽名替換回去庸论;而當(dāng)一個交易中又涉及到多重簽名的交易時,則有需要另一套約定好的規(guī)則來準(zhǔn)備未簽名交易棒呛,再進(jìn)行簽名后的數(shù)據(jù)替換工作聂示;如果一個交易既涉及多個輸入,又涉及多重簽名呢簇秒?那就是秘籍套秘籍鱼喉,反正是麻煩的要死;有興趣且有能力的童鞋們不妨去翻翻比特幣協(xié)議在各種語言中的實現(xiàn)部分趋观,就會發(fā)現(xiàn)扛禽,無論是 C++、Java皱坛、Python 等語言所編寫的比特幣協(xié)議庫编曼,通常都需要寫非常多的、混亂不堪的代碼來做上述的交易數(shù)據(jù)構(gòu)造工作剩辟,很頭疼掐场,寫過的都懂往扔。
2、將簽名放在交易結(jié)構(gòu)中刻肄,由于簽名的可塑性瓤球,使得交易也就有了可塑性,比如說敏弃,很早以前我就給大家講過的因為橢圓曲線的對稱性卦羡,s和s’都是能被驗證通過的簽名,這種情況下麦到,任何接收到你所廣播的交易的節(jié)點(diǎn)绿饵,都有能力用s’來替換掉s,然后重新廣播瓶颠,重新廣播的交易其實有著相同的內(nèi)容(輸入 TxIn 和輸出 TxOut)拟赊,但卻有著不同的 tx_id (tx_hash),這樣就能達(dá)到混淆視聽的目的粹淋,甚至影響到一些比特幣企業(yè)(如交易所)的服務(wù)吸祟。交易延展性不會直接導(dǎo)致您丟幣,但會影響到個人和企業(yè)對于比特幣交易狀態(tài)的判斷桃移,進(jìn)而可能導(dǎo)致可能出現(xiàn)的資產(chǎn)管理風(fēng)險屋匕。之前,bitcoin-core 在 BIP62 中進(jìn)行過一些試圖努力解決交易延展性問題的嘗試借杰,但從某種意義上來講过吻,交易延展性其實是無法徹底根治的,至少私鑰擁有者可以重新生成一個簽名蔗衡,交易不變但簽名變了纤虽,最終的 tx_id 也就變了,這種情形應(yīng)用于多重簽名的場合绞惦,甚至可能會影響到其它鑰匙的持有人對于交易的判斷逼纸,導(dǎo)致一些潛在的資產(chǎn)風(fēng)險,在當(dāng)前的交易結(jié)構(gòu)下济蝉,我們是無法徹底杜絕這種情況的發(fā)生的樊展;

3、當(dāng)我們需要對交易進(jìn)行簽名時堆生,對每個 TxIn 進(jìn)行簽署的 hash 都是不同的(參見上述的“秘籍”)专缠,所以對于“冷錢包”這種離線簽名的實現(xiàn)方式其實增加了很大的難度,無論是數(shù)據(jù)結(jié)構(gòu)還是代碼的層面淑仆;

也就是說涝婉,將簽名放在交易內(nèi)容中其實沒有任何好處,反而增加的結(jié)構(gòu)的復(fù)雜度和交易延展性的風(fēng)險蔗怠,這顯然是得不償失的墩弯。
那么吩跋,最合理的交易結(jié)構(gòu)到底應(yīng)該是什么樣子的呢?其實很簡單:
TxIns + TxOuts [簽名]
隔離驗證前后比特幣交易結(jié)構(gòu)對比


image.png

隔離驗證其實就是把原來的比特幣交易中簽名的部分單獨(dú)拿出來放到另一個叫 witness 的結(jié)構(gòu)中渔工,實現(xiàn)交易ID僅僅與交易內(nèi)容有關(guān)锌钮,解決了同一交易,會有不同ID問題引矩,隔離驗證實施后梁丘,交易ID算法變?yōu)?TxId=hash(TxIn+TxOut) 。

簽名就是要用來進(jìn)行“驗證”的數(shù)據(jù)旺韭,放在另一個地方就是要“隔離”出來氛谜,所以給這件事情起名為“隔離驗證”也就再合理不過的了。

隔離驗證的好處

交易是交易区端,簽名是簽名值漫,對于交易來說,只關(guān)心 TxIn 和 TxOut 就好了织盼,我們都清楚一個比特幣交易其實就是花一筆之前收到的錢杨何,也就是說要用之前收到的 TxOut 作為這一筆交易的 TxIn 然后發(fā)給后續(xù)的 TxOut,隔離之后的交易結(jié)構(gòu)使得當(dāng)您決定好花哪一筆錢沥邻、要花給誰的時候危虱,交易的內(nèi)容就已經(jīng)是確定了的,交易的數(shù)據(jù)就不會再發(fā)生改變了谋国,最終的 tx_id 也就是不變的了。想要驗證簽名迁沫?那就去 witness 里找到對應(yīng)的簽名數(shù)據(jù)驗證一下合法性即可芦瘾,又簡單、有沒有交易延展性的問題集畅。

總結(jié)

隔離驗證其實是對之前不太合理的比特幣交易結(jié)構(gòu)的一次優(yōu)化近弟,開發(fā)者們試圖用一種影響盡可能小的、盡可能向下兼容的挺智、“軟分叉”的方式來實現(xiàn)祷愉,這種改進(jìn)本身(就像是“壓縮格式的公鑰”一樣)是非常合理的,與塊大小之爭沒什么直接的關(guān)系赦颇。

參考資料:

  1. http://www.8btc.com/what_is_segwit
  2. http://www.reibang.com/p/94ad9f6f34ba

請關(guān)注我的微博:瑞波支付
加入我的QQ群:56937187
我的數(shù)字貨幣小密圈邀請鏈接二鳄,http://t.xiaomiquan.com/N7UNvRV
或者微信掃描小密圈二維碼加入

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市媒怯,隨后出現(xiàn)的幾起案子订讼,更是在濱河造成了極大的恐慌,老刑警劉巖扇苞,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欺殿,死亡現(xiàn)場離奇詭異寄纵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)脖苏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門程拭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棍潘,你說我怎么就攤上這事恃鞋。” “怎么了蜒谤?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵山宾,是天一觀的道長。 經(jīng)常有香客問我鳍徽,道長资锰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任阶祭,我火速辦了婚禮绷杜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘濒募。我一直安慰自己鞭盟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布瑰剃。 她就那樣靜靜地躺著齿诉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪晌姚。 梳的紋絲不亂的頭發(fā)上粤剧,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機(jī)與錄音挥唠,去河邊找鬼抵恋。 笑死,一個胖子當(dāng)著我的面吹牛宝磨,可吹牛的內(nèi)容都是我干的弧关。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼唤锉,長吁一口氣:“原來是場噩夢啊……” “哼世囊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起窿祥,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤茸习,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后壁肋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體号胚,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡籽慢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了猫胁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箱亿。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖弃秆,靈堂內(nèi)的尸體忽然破棺而出届惋,到底是詐尸還是另有隱情,我是刑警寧澤菠赚,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布脑豹,位于F島的核電站,受9級特大地震影響衡查,放射性物質(zhì)發(fā)生泄漏瘩欺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一拌牲、第九天 我趴在偏房一處隱蔽的房頂上張望俱饿。 院中可真熱鬧,春花似錦塌忽、人聲如沸拍埠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枣购。三九已至,卻和暖如春擦耀,著一層夾襖步出監(jiān)牢的瞬間棉圈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工埂奈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留迄损,地道東北人定躏。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓账磺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親痊远。 傳聞我的和親對象是個殘疾皇子垮抗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

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

  • 作者 Kevin 簡介:“比特幣技術(shù)進(jìn)階”由知名比特幣技術(shù)專家Kevin原創(chuàng)的三篇文章《比特幣交易構(gòu)成》、《時間...
    西部之歌閱讀 998評論 0 0
  • 所有貨幣都需要一些方法來控制供應(yīng)碧聪,并強(qiáng)制執(zhí)行各種安全屬性以防止作弊冒版。在法定貨幣方面,像中央銀行這樣的組織控制貨幣供...
    Nutbox_Lab閱讀 3,102評論 1 3
  • 韻味與運(yùn)維逞姿。中國字同音不同字辞嗡,字不同捆等,意不同。
    taoza閱讀 252評論 0 0
  • 工作效率飆升的三大秘訣 現(xiàn)在很多人续室,無論是在工作栋烤、學(xué)習(xí)還是生活中,我們都在極力追尋提高效率的方法和經(jīng)驗挺狰。 我自己工...
    彭先生的雜貨鋪閱讀 657評論 2 14