🔥 Gate Alpha 限時賞金活動第三期上線!
在 Alpha 區交易熱門代幣,瓜分 $30,000 獎池!
💰 獎勵規則:
1️⃣ 連續2日每日交易滿 128 USDT,即可參與共享 $20,000 美金盲盒獎勵
2️⃣ 累計買入 ≥1,024 USDT,交易量前100名可直領獎勵 100美金盲盒
⏰ 活動時間:8月29日 16:00 — 8月31日 16:00 (UTC+8)
👉 立即參與交易: https://www.gate.com/announcements/article/46841
#GateAlpha # #GateAlphaPoints # #onchain#
BEVM創始人:為什麼以及如何做BTC Layer2?
作者:Peter
序言
自2009年BTC的問世以來,經歷三次技術反覆運算的比特幣已經從簡單意義上的數位原生資產概念,發展成為具有複雜功能和應用的去中心化金融系統。
本篇文章則是由BEVM創始人編寫,**分享了他對BTC技術演進過程中鞭辟入里的見解,同時也詳細解答了作為BTC Layer2技術發展的一個關鍵里程碑的BEVM,是如何在技術層面實現BTC未來的去中心化生態繁榮。 **
通過本篇文章,您將詳細瞭解到:
1.BTC Layer2的必要性
2.如何實現BTC Layer2?
3.完全去中心化的BEVM解決方案
致敬BTC從誕生以來的3次偉大的革命技術反覆運算:
2009年:BTC誕生,首次用區塊鏈的結構打通了去中心化的貨幣應用。
2017年:BTC隔離見證升級,支援了最大4MB的存儲,解決了BTC的鏈上存儲問題。 這也為現在的爆火的Ordinals協議(發行資產)提供了依據。
2021年:BTC Taproot升級,支援了BTC門限簽名演算法,這給完全去中心的BTC Layer2 技術提供了底層支援。
一,為什麼要做BTC Layer2?
1.有需求:Bitcoin網络滿足了資產登記的需求,但仍有大量的資產需要進行鏈上結算(Layer2)
當前ETH的Layer2都只是ETH Layer1的Copy,沒有解決什麼Layer1解決不了,非得Layer2去解決的實際業務問題。
非得說ETH Layer2解決了ETH Layer1的問題是:Layer2解決了Layer1 Gas費用貴的問題。 也正因為這一需求,成就了ETH第一大Layer2 Arbitrum上的衍生品應用,如GMX。
而BTC的Layer2不像ETH Layer2一樣無關緊要。
因為BTC非圖靈完備的鏈上虛擬機只能給資產做登記 ,而不能做結算,所以BTC Layer1 必須需要圖靈完備的BTC Layer2來做BTC Layer1發行的資產的結算問題。
2.有能力:BTC能夠做成完全去中心化的Layer2
在2021年BTC Taproot升級前,能夠做到完全去中心化的BTC Layer2是不可能的。 但是在這次升級后,BTC門限簽名演算法可以讓BTC支援完全去中心化的Layer2計算層。
二,如何實現去中心化的BTC L2?
比特幣改進提案(BIPs)是為比特幣引入新功能和資訊的設計文檔,而taproot升級則是三個BIPs的彙編,這三個BIPs分別是Schnorr簽名(BIP 340)、Taproot(BIP 341)和Tap(BIP 342),這三個升級統稱為 BIP Taproot。
它將為比特幣帶來更高效、更靈活、更私密的傳輸方式,其核心在於使用了Schnorr簽名和Merkel抽象語法樹。
Schnorr 簽名是一種以其簡單性和安全性而聞名的數位簽名方案。 Schnoor簽名在計算效率、存儲和隱私方面具有多項優勢。
! [BEVM創始人:為什麼以及如何做BTC Layer2?] (https://cdn-img.panewslab.com//panews/2022/11/11/images/f2c90430573edf17b34bc2b81d6fba2e.)
用戶通過公鑰確認簽名者身份,通過數據確認契約內容,從而來認證數位契約的有效性。
Schnorr 聚合簽名可以將多個簽名數據壓縮合併成單個聚合簽名。
驗證者通過所有簽名的相關數據和公鑰組成的清單對單個聚合簽名進行驗證,若驗證通過,其效果等同於對所有相關簽名進行獨立驗證且全部通過。
! [BEVM創始人:為什麼以及如何做BTC Layer2?] (https://cdn-img.panewslab.com//panews/2022/11/11/images/c7ed182df952263f95cd6b5da86e5aa3.)
當前大多數區塊鏈都是採用ECDSA多簽演算法,針對區塊數據,每個節點用自身私鑰生成獨立的數字簽名,並廣播給其他節點。 其他節點會驗證該簽名,並將其寫入下一區塊數據中。
使用這種方式,當共識節點數較多時,會導致每輪共識區塊存儲的簽名數據不斷增加,佔用存儲空間。
每當新節點加入網路,需要同步歷史區塊時,大量簽名數據會對網路頻寬造成很大的挑戰。
使用聚合簽名技術後,每個節點會收集其他節點廣播的聚合簽名名片,然後將簽名分片聚合保存,如圖2.
這樣,當新節點加入時,同步歷史區塊只需下載聚合后的簽名數據,大大減少對網路頻寬的佔用,同時減少交易費用的支出。
此外,金鑰聚合還使所有的Taproot輸出看起來類似。 **無論是多重簽名輸出、單簽名輸出或者其他複雜智慧合約在區塊鏈上看起來都長得一樣,所以許多區塊鏈分析將不可用,從而為所有Taproot使用者保留隱私。 **
! [BEVM創始人:為什麼以及如何做BTC Layer2?] (https://cdn-img.panewslab.com//panews/2022/11/11/images/187dbc4fe20ec85e558eb12132a2a850.)
MAST(Merkle Abstract Syntax Tree)是使用默克爾樹來加密複雜的鎖定腳本,其葉子是一系列相互不重疊的腳本(比如,多重簽名或時間鎖)。
支出時,只需披露相關腳本以及從該腳本通向默克樹根的路徑。 如圖3,要使用1,只需披露1、2以及hash3即可。
MAST的主要優點包括:
1)支持複雜的支出條件
2)不用披露未被執行的腳本或未被觸發的支出條件,提供更好的隱私保護
**3)壓縮交易大小:隨著腳本數量的增加,非MAST交易大小是線性增長,而MAST交易大小是對數增長。 **
然而,在Taproot升級中有一個問題,那就是P2SH與常見的支付到公鑰的哈希(Pay-to-Public-Key-Hash,P2PKH)在表現上不一樣,仍然有隱私保護問題。
有沒有可能讓P2SH和P2PKH在鏈上看起來一樣?
為此,Taproot提出了一套解決方案,對於有限數量簽名者的腳本,可以分解成兩部分:
第一部分是多重簽名,所有簽名者都同意某一支出結果,稱為「協作式支出」。
第二部分稱為「非協作式支出」,可以有非常複雜的腳本結構。
這兩部分是「或」的關係。
如圖3,3是一個2-of-2型多重簽名,需要Alice和Bob兩人都簽名才有效,是「協作式支出」,1和2是「非協作式支出」。
「協作式支出」和「非協作式支出」,都能夠花費這筆輸出,其中:
1)對“非協作式支出”腳本,採取上述MAST的方式,用MerkleRoot表示默克樹根。
2)對「協作式支出」腳本,採取基於Schnoor簽名的多重簽名演算法。 用Pa和Pb分別表示Alice和Bob的公鑰,用Da和Db分別表示Alice和Bob的私鑰。
因此,聚合公鑰是P=Pa+Pb,對應的私鑰是Da+Db。
3)將「協作式支出」與「非協作式支出」合在一起表示成P2PKH形式,其公鑰是:PP+H(P||MerkleRoot)G;對應的私鑰是Da+Db+H(P||MerkleRoot)。
4)當 Alice 和 Bob 同意「協作式支出」,他們用 Da+Db+H(P||MerkleRoot)只需他們中的一個人在自己的私鑰上加上 H(P||MerkleRoot)即可。
在鏈上,這表現得如同 P2PKH 交易一樣,有一個公鑰和對應的私鑰,而不需要披露底層的 MAST。
三. 我們的完全去中心化的BTC layer2 方案:
3.1 BTC輕節點+分散式門限簽名合約
! [BEVM創始人:為什麼以及如何做BTC Layer2?] (https://cdn-img.panewslab.com//panews/2022/11/11/images/d6ddaf08422a0b02bc25e45cd2f5d947.)
在本方案中,選取n個(n可以取值為BEVM上所有的驗證人)固定的驗證人完成分散式門限簽名的BTC鏈上聚合託管合約。
BEVM layer2 中的每個驗證人的出塊私鑰 同時衍生出BTC 的門限簽名的聚合私鑰的一部分, n個驗證人的 門限私鑰組合成 BTC的聚合簽名合影位址。 **n的最大取值範圍可以到 1000 甚至更多。 **
1)當使用者 A 想將 BTC 跨鏈到 BEVM,只需要使用者向 Bitcoin 聚合託管合約發送 BTC,使用者就能在 BEVM layer2 上收到 BTC。
2)相應地,使用者 A 進行提現操作時,只需要 n個驗證節點中組成聚合簽名中的m個自動完成分散式門限簽名合約互操作,就能在 Bitcoin 上完成從託管合約到使用者 A 的轉帳,轉帳完成的同時,會在 BEVM上進行 BTC 的銷毀。
3.2 實現BTC 作為原生Gas費用且兼容EVM 的 Layer2
1) EVM 原理
乙太坊虛擬機是以太坊智慧合約的運行時環境。 它不僅是沙盒封裝的,而且實際上是完全隔離的。
這意味著在EVM中運行的代碼無法訪問網路、檔案系統和其他進程。 甚至智慧合約之間的訪問也是受限的。
乙太坊底層通過EVM模組支援合約的執行與調用,調用時根據合約位址獲取到合約代碼,載入到EVM中運行。 通常智慧合約的開發流程是用solidlity編寫邏輯代碼,再通過編譯器編譯成位元組碼,最後再發佈到乙太坊上。
! [BEVM創始人:為什麼以及如何做BTC Layer2?] (https://cdn-img.panewslab.com//panews/2022/11/11/images/2d2d923b8ae9ff718bac8dedbf6a9314.)
2)EVM 主要部分
! [BEVM創始人:為什麼以及如何做BTC Layer2?] (https://cdn-img.panewslab.com//panews/2022/11/11/images/67f265774f666ae9ab031a29230b5b8d.)
3)EVM 代碼
EVM代碼是以太坊虛擬機代碼, 指乙太坊可以包含的程式設計語言的代碼。 與帳戶相關聯的EVM代碼在每次消息被發到這個賬戶的時候被執行,並且具有讀/寫存儲和自身發送消息的能力。
4)Mchine狀態
Mchine State是執行evm代碼的地方,包含程式計數器、堆棧和記憶體。
5)貯存
Storage是一個可讀、可寫、可修改的持久存儲的空間,也是每個合約持久化存儲數據的地方。 Storage是一個巨大的map,一共有2256個插槽,每個插糟有32byte。
6)以BTC作為Gas費用
讓從Bitcoin 網路轉過來的 BTC 作為EVM的上交易執行的 Gas費用計算貨幣。