什麼不是雙向錨定
質押託管合同(BEC)是位元股上建立的一種方法,這種方法可以讓比特幣(或法定貨幣)在一個智慧支付平臺上建立和平臺本身不同的代幣(如 bts)進行交易。這種方法也適應於其他平臺。這種方法可以在平臺上鎖定發行者的當地貨幣或比特幣來發行債券,一般來說鎖定的貨幣或比特幣價值要超過他們建立的債券價值,或等值,然後他們就可以建立債券白條在平臺上銷售。平臺監控比特幣的實時價格可以實現發行的債券總量的動態調整。顯然,這種方法不是雙向錨定,因為這種方法建立了新的“比特幣”,並且沒有等量的比特幣在比特幣區塊鏈上被鎖定。質押託管合同(BEC)的安全性通常是弱於雙向錨定(2WP)的,因為使用者必須信任沒有對應利益關係的記賬方,他們可能沒有獲得高額的獎勵,但使用者卻必須信任他們是誠實的。並且,因為本地代幣市場價格的波動性,讓持有債券的參與方几乎只有很少甚至沒有經濟利益。
任何雙向錨定系統只是一個投票系統
當第二層區塊鏈最終沒有清算,我們可以將任何雙向錨定系統簡化,並且看出雙向錨定系統就相當於有一組保管人投票來決定鎖定比特幣和傳送已經鎖定的比特幣。投票可以以數字簽名、雜湊算力(工作量證明 PoW)、儲存空間(儲存空間證明 Proof of space),或者加密數字貨幣權益(股權證明 POS),或者其他任何已有區塊鏈的共識系統。我們可以調整每一個參與方的投票權,調整可投票的參與方數量,調整某個參與方在某種情況下是否被允許投票,可以設定多個允許投票條件,等等,但我們無法改變這個系統的投票本身。
雙向錨定設計
我們目前已經有的最常見的雙向錨定設計是:側鏈,驅動鏈和多重簽名監管和混合設計。為了簡化說明,我們將從比特幣區塊鏈轉移到第二層區塊鏈的代幣稱為第二層鏈代幣(secoins)
單一保管人
雙向錨定的一種可實現形式是建立一個交易所擔保託管鎖定比特幣和執行監管解鎖等量第二層鏈代幣。在第二層區塊鏈代幣沒有被鎖定前需要鎖定比特幣,可以由交易所手動執行,也可以透過軟體協議來執行操作。這個操作過程可用下圖來描述:
多重簽名聯邦
雙向錨定的一個更好的實現方式是建立由一組公證人控制的多重簽名,其中大部分公證人被批准執行資金解鎖。這種設定方式要比由單個組織來控制資金更合理,但控制權依然有可能中心化。為了實現真正的去中心化,需要仔細選擇公證人,讓他們分佈在不同的司法管轄範圍,不同的地理位置,並且每一個人都要擁有良好的聲譽和足夠好的保密性。他們不能太少,也不能太多。這個操作過程可用下圖來描述:
側鏈
為了不讓更多第三方參與雙向錨定,每個區塊鏈可以透過協議來實現強制執行的共識。一個區塊鏈系統效能能夠理解其它區塊鏈的共識系統,能夠實現在獲得其它區塊鏈系統提供的鎖定交易證明之後,自動釋放比特幣。可以用下圖來描述:
區塊鏈糾纏有以下幾個缺點:
· 它阻止了第二層區塊鏈以比比特幣更高的速率建立區塊,因為在錨定前,區塊鏈分支的接受情況存在不確定性。有可能出現描定的是一條短鏈,而不是錨定在最長鏈嗎?
· 在比特幣交易中嵌入了第二層區塊鏈的交易時,第二層區塊鏈的所有使用者都需要處理兩個鏈的交易。
· 區塊鏈糾纏解決了最終結算方案的某方面問題,但沒有解決第一層區塊鏈中被鎖定的比特幣的監管問題。
驅動鏈
驅動鏈將被鎖定比特幣的監管權交給比特幣礦工,並且允許比特幣礦工們投票決定何時解鎖比特幣和將解鎖的比特幣傳送到哪裡。礦工使用比特幣區塊鏈投票,使用區塊裡的某些欄位來實現投票(例如 coinbase 欄位)。越多的誠實礦工參與進來投票,則安全性就越高。下圖是對驅動鏈的描述:
混合型
迄今為止所提出的所有設計都是對稱的:用於解鎖第二層鏈代幣的方法與解鎖比特幣的方法是相同的。但第一層區塊鏈和第二層區塊鏈有本質的不同:第一
9層區塊鏈主要是在發行貨幣,而第二層鏈則不發行貨幣。這在安全性方面存在巨大的隱患,它表明了對稱的雙向錨定模型可能是不夠完善的。混合雙向錨定是對兩邊使用了不同的解鎖方法,例如在第二層區塊鏈上使用側鏈而在第一層區塊鏈網路上使用驅動鏈。
根鏈(RSK)案例
根鏈(RSK)是很特別的。根鏈基於這樣一種基本的設計選擇:必須與比特幣聯
合挖礦。因此,我們必須分析出最佳設計。我們要考慮到:
• 哪一方控制著被鎖定的比特幣
• 攻擊的成本是什麼
• 攻擊的後果是什麼
• 參與的激勵機制是什麼
我們發現,如果幾乎全體的比特幣礦工都加入到聯合挖礦中,當監管者是比特幣礦工時,參與各方可以被激發出最高的誠實性,但只有當幾乎所有礦工都參與其中。在聯合挖礦的情況下,驅動鏈和側鏈都完全依靠比特幣礦工的誠實,兩者的安全性是相同的。然而,側鏈在比特幣一側實現起來要複雜得多,所以在比特幣這一側,根鏈的最佳選擇是使用驅動鏈。而在根鏈這一層,我們使用側鏈的方式來實現。所以從這一點來說,根鏈是採用混合型設計方案,可以被稱為驅動鏈/側鏈。
當礦工參與聯合挖礦的程度比較低時,“驅動鏈/側鏈”的安全性是很低的。因此,我們建議採用這樣一種混合模型,其中被鎖定比特幣的安全性是基於驅動鏈外加一組公證人。礦工和公證人(擁有不同的權重)共同投票決定解鎖哪些比特幣。公證人使用數字簽名進行投票,而礦工則在他們的 coinbase 交易中寫入一個特殊的標記進行投票。這是中心化和安全性之間的一種權衡。最終的根鏈雙向錨定設計可以被稱為“驅動鏈 +公證人/側鏈”。我們會基於比特幣全體礦工參與到聯合挖礦的程度來動態調整投票權重。在初期,只有公證人才有投票權,使用傳統的多重簽名交易。在中期,當驅動鏈功能被載入到比特幣時,公證人和礦工將一起參與投票。從長遠來看,當 90%以上的礦工參與了聯合挖礦時,公證人的投票權將被刪除,屆時只有礦工才有投票權。這個演變的過程可以用來圖來描述:
在本質上,我們建議將鎖定的比特幣的安全性建立在礦工和一組公證人身上,但是這兩者之間的投票權重會因全體礦參與聯合挖礦的程度而動態調整。
在之後文章中,我們將展示驅動鏈+公證人的設計是如何在比特幣上實現的,只需要在比特幣上植入一個單一的操作碼 OP_CHECK_VOTES_MULTISIG_VERIFY 。這個操作碼很容易理解,程式設計實現也很簡單,並且可以以軟分叉的方式在比特幣網路上部署。