作者:ZKBase(前 ZKSpace);來源:Medium
本設(shè)計(jì)的主要目標(biāo)是為比特幣區(qū)塊鏈建立一個(gè)專門定制的Layer2網(wǎng)絡(luò)。比特幣Layer2網(wǎng)絡(luò)旨在滿足比特幣生態(tài)系統(tǒng)內(nèi)日益增長的對更快速、更高效交易的需求。通過將某些交易處理任務(wù)從主網(wǎng)上釋放,旨在緩解比特幣主網(wǎng)的擁堵問題并大幅減少交易確認(rèn)所需的時(shí)間。
鑒于比特幣虛擬機(jī)(VM)計(jì)算能力的固有限制,我們的設(shè)計(jì)使用了BitVM,它展示了在兩層網(wǎng)絡(luò)之間執(zhí)行智能合約的潛力。通過利用挑戰(zhàn)和響應(yīng)方案,BitVM展示了一種比特幣網(wǎng)絡(luò)可編程性的新方法,打破了傳統(tǒng)的限制。
為了增強(qiáng)比特幣Layer2網(wǎng)絡(luò)的安全性和完整性,該設(shè)計(jì)通過集成零知識證明(ZK)技術(shù)來實(shí)現(xiàn)狀態(tài)驗(yàn)證。這些先進(jìn)的加密技術(shù)允許比特幣主網(wǎng)可以有效驗(yàn)證Layer2網(wǎng)絡(luò)的狀態(tài),而不會損害底層交易的隱私和機(jī)密性。零知識證明能夠驗(yàn)證信息而不泄露交易的具體細(xì)節(jié),從而在保護(hù)隱私的同時(shí)確保Layer2網(wǎng)絡(luò)的完整性。
總體而言,該設(shè)計(jì)旨在通過Layer2網(wǎng)絡(luò)、采用BitVM進(jìn)行智能合約執(zhí)行以及集成零知識證明技術(shù)進(jìn)行狀態(tài)驗(yàn)證,提高比特幣網(wǎng)絡(luò)的可擴(kuò)展性、速度和效率,同時(shí)保持底層交易的隱私和安全性。
Layer2區(qū)塊鏈采用賬戶模型。整個(gè)區(qū)塊鏈的狀態(tài)是通過基于Halo2證明系統(tǒng)的zkVM來驗(yàn)證的。Layer2狀態(tài)與比特幣主網(wǎng)絡(luò)進(jìn)行同步,并且所有Layer2狀態(tài)都由BitVM實(shí)現(xiàn)的零知識證明(ZKP)驗(yàn)證器進(jìn)行驗(yàn)證。 我們使用一個(gè)UTXO來追蹤所有的Layer2狀態(tài)。此外,我們還使用了一個(gè)可信的預(yù)言機(jī)來確保只有鎖定/解鎖腳本的輸入/輸出遵循Layer2協(xié)議。
由一組被選中的用戶組成的Layer2委員會負(fù)責(zé)監(jiān)督Layer2網(wǎng)絡(luò)的整體運(yùn)行狀況。在出現(xiàn)協(xié)議問題時(shí),委員會可以介入并停止協(xié)議,保護(hù)所有用戶的資產(chǎn)。可信預(yù)言機(jī)對于驗(yàn)證輸入/輸出UTXO和腳本的正確性非常重要。
在比特幣網(wǎng)絡(luò)上創(chuàng)建一個(gè)單一的Taproot地址來表示Layer2協(xié)議。當(dāng)創(chuàng)建一個(gè)UTXO并將其轉(zhuǎn)移到Taproot地址時(shí),相應(yīng)的UTXO實(shí)際上是從比特幣主網(wǎng)“充值”到Layer2。
協(xié)議或委員會賬戶專門處理所有“充值”到Layer2的UTXO資產(chǎn)的“轉(zhuǎn)移”權(quán)限。只有協(xié)議、可信預(yù)言機(jī)或委員會賬戶可以更改存入U(xiǎn)TXO的所有權(quán)??尚蓬A(yù)言機(jī)確保所有權(quán)轉(zhuǎn)移交易中包含正確的輸出UTXO腳本。
所有Layer2網(wǎng)絡(luò)的狀態(tài)以區(qū)塊的形式同步到比特幣主網(wǎng)。對于一個(gè)區(qū)塊,應(yīng)提供以下信息:
· 一個(gè)特定區(qū)塊中的交易;
· 應(yīng)用這些交易后的新賬戶狀態(tài);
· 當(dāng)前區(qū)塊狀態(tài)下的新UTXO(即使協(xié)議被破壞,也始終準(zhǔn)備好);
· 比特幣網(wǎng)絡(luò)的區(qū)塊信息;
· 零知識證明(證明從上一個(gè)區(qū)塊到當(dāng)前區(qū)塊的狀態(tài)轉(zhuǎn)換是正確的) 所有這些比特幣主網(wǎng)的狀態(tài)都記錄在一個(gè)UTXO交易歷史中。
零知識證明被用來驗(yàn)證Layer2的正確性。試圖證明以下內(nèi)容:
· Layer2的區(qū)塊交易被正確簽名。
· 所有賬戶的新狀態(tài)被正確處理。
· 在比特幣主網(wǎng)的某個(gè)特定區(qū)塊之前的所有充值交易被正確處理。
· 對于當(dāng)前狀態(tài),所有UTXO的分配都被正確創(chuàng)建。
為了確保比特幣主網(wǎng)中指定的區(qū)塊信息的正確性,我們使用了一個(gè)挑戰(zhàn)和響應(yīng)方案。證明者可以通過指出在鎖定時(shí)間段內(nèi)特定區(qū)塊之后還存在N個(gè)區(qū)塊來證明區(qū)塊信息的準(zhǔn)確性。
正如BitVM論文所示,ZKP驗(yàn)證可以表示為一個(gè)二進(jìn)制電路,可以由兩個(gè)參與方進(jìn)行挑戰(zhàn)。通過預(yù)簽名交易,可以發(fā)送挑戰(zhàn)以獲取電路的比特承諾。如果揭示0和1,則挑戰(zhàn)成功。為了使用BitVM來驗(yàn)證ZKP,需要注意以下兩點(diǎn):
相同的二進(jìn)制電路承諾只能使用一次。也就是說,如果相同的電路承諾用于多個(gè)區(qū)塊,可能會揭示一個(gè)比特承諾的0和1。
對于ZKP驗(yàn)證,除了電路的滿足性外,還應(yīng)檢查“公共輸入”。
為了處理這兩個(gè)缺點(diǎn),對于Layer2的每個(gè)區(qū)塊,創(chuàng)建一個(gè)唯一的二進(jìn)制電路,并且固定“公共輸入”。比特幣腳本用于處理公共輸入的哈希和檢查。正確的公共輸入比特承諾由可信的預(yù)言機(jī)進(jìn)行檢查。就電路滿足性而言,委員會內(nèi)的任何成員都有權(quán)利提出挑戰(zhàn)。
資產(chǎn)可以通過兩種方式從Layer2移動(dòng)到比特幣主網(wǎng):提現(xiàn)(withdrawal)和強(qiáng)制提現(xiàn)(force-withdrawal)。 提現(xiàn)交易是從Layer2觸發(fā)的,ZKP電路確保交易按預(yù)期進(jìn)行處理。強(qiáng)制提現(xiàn)交易是從比特幣網(wǎng)絡(luò)發(fā)起的。
從Layer2觸發(fā)的提現(xiàn)交易使用ZKP電路進(jìn)行驗(yàn)證,以確保正確處理交易。從比特幣網(wǎng)絡(luò)發(fā)起的強(qiáng)制提現(xiàn)交易必須包含在下一個(gè)區(qū)塊狀態(tài)更新中。
當(dāng)一個(gè)區(qū)塊的狀態(tài)更新時(shí),UTXO分配會進(jìn)行同步。在協(xié)議停止的情況下,可以應(yīng)用所有UTXO以確保所有用戶資產(chǎn)的安全。在這些UTXO中,只有提現(xiàn)或強(qiáng)制提現(xiàn)的UTXO由協(xié)議簽名。
一旦ZKP未經(jīng)驗(yàn)證,委員會必須停止并退出協(xié)議。如果協(xié)議停止,委員會會為Layer2最新區(qū)塊狀態(tài)中指定的所有UTXO分配進(jìn)行簽名。憑借這些簽名,用戶可以從Layer2提現(xiàn)而不會有任何損失。