本文作者
周蓉,江哲
來自趣鏈科技數據網格實驗室BitXHub團隊,主要負責區塊鏈賬本互操作技術相關研究工作。
導讀:本文是Polkadot系列文第三篇。
說到Polkadot,估計大家聽到它的最大的優點就是它給平行鏈提供的共享安全性,共享安全性保障了不因區塊鏈網絡分片而降低安全性。那么共享安全性到底是如何實現的呢?
本文主要從Polkadot為平行鏈提供的的有效性和可用性兩個保障幫你深度理解共享安全性。
文末福利:Polkadot系列文全覽
回顧
首先還是先來回顧一下前文提及過的Polkadot四種角色:
驗證人
它是中繼鏈全節點,中繼鏈會在驗證人池中通過隨機分組把驗證人指定給不同的平行鏈。驗證人會接受來自收集人打包的區塊并進行有效性驗證,然后結合共識算法對收集人提交的區塊進行確認。
收集人
它是平行鏈的全節點,負責收集和執行平行鏈的交易并產生候選區塊,將區塊和證明提交給驗證人,并通過收集交易獲得手續費。收集人類似于PoW共識區塊鏈當中的礦工。
提名人
Polkadot中數字貨幣DOT的持有人,它會選擇自己所信任的驗證人進行DOT質押,然后分享驗證人的收益。
以太坊測試網Sepolia更改為8月21日進行升級:8月19日消息,以太坊開發者Tim Beiko更新以太坊核心開發者會議內容表示,以太坊測試網Sepolia原計劃8月17日在區塊高度1735371進行升級,由于一些驗證者離線,現在預計在8月21日左右升級。
此前消息,以太坊測試網Sepolia將于區塊高度1735371(預計在8月17日)進行合并后的執行層(EL)升級。本次升級會導致執行層上尚未轉換為PoS的客戶端斷開連接,節點運營者需要在此之前升級執行層客戶端。
以太坊基金會表示,一旦Goerli和以太坊主網過渡到PoS,預計將進行類似的升級。[2022/8/19 12:35:42]
釣魚人
它也是平行鏈全節點,監控驗證人的非法行為,若驗證人作惡,釣魚者可以向其他驗證人舉報并獲得相應報。
有效性驗證
有效性驗證指的是區塊鏈系統對賬本狀態變更的合法性校驗,實現全網的共識。
一條普通的區塊鏈,比如以太坊,每出一個區塊,區塊會廣播到全網的以太坊節點,這些節點會對區塊中的交易進行驗證和執行,確保最后生成的狀態根等信息和區塊頭中的信息一致。在Polkadot中,對平行鏈的區塊共識需要進行以下三個級別的有效性驗證:
第一級有效性驗證由平行鏈的驗證人實現,可以防止收集人作惡。
Polymarket上線NFT地板價市場,可對地板價進行多空交易:9月9日,據Polymarket官方推特消息,預測市場平臺Polymarket近日上線NFT地板價市場,允許用戶在不持有NFT的情況下,對CryptoPunks、Blitmap、Bored Ape Yacht Club和Loot等NFT項目的地板價進行多空交易。沒有最低標準限制,收取0.1%交易手續費用。[2021/9/9 23:11:40]
每隔一段時間,中繼鏈會通過隨機分組把驗證人池中的驗證人指定給不同的平行鏈,每個平行鏈會分配到多個驗證人。
平行鏈區塊上的收集人收集交易,產生區塊B以后,將區塊B、有效性證明和一些相關數據發送給當前平行鏈的驗證人。這些平行鏈的驗證人收到區塊和數據后,驗證區塊,如果區塊無效,忽略該塊;如果區塊有效,則將收到的內容分成多個部分,構造一棵默克爾樹,然后將每一份內容、默克爾證明以及區塊信息組合,進行簽名并分發給其他驗證人驗證。
第二級有效性驗證由釣魚人保證,可以防止平行鏈驗證人作惡以及平行鏈驗證人和收集人聯合作惡。
釣魚人一般都是平行鏈的全節點。它首先需要在中繼鏈上放置押金,然后持續從收集人節點收集區塊,并驗證有效性。如果區塊中包含了無效交易,釣魚人將提交報告。如果事實證明它的判斷是正確的,它將獲得豐厚的獎勵,但如果它判斷錯誤,它將失去自己的押金。
Polkastarter發布第三季度路線圖,將實現POLS質押等新功能:跨鏈去中心化Launchpad?Polkastarter近日發布第三季度路線圖,具體如下:
-動態代幣銷售:這項新功能將賦予IDO項目更大的靈活性,并使它們能夠更新代幣發行日期/時間、錢包額度等參數。該功能將分階段發布,第一個階段即將推出。此外,項目還可以選擇退出先到先得(FCFS)機制。
-基于簽名的白名單:正在開發的新白標白名單機制將使Polkastarter智能合約更加精簡,顯著降低每個人的交易成本,并將項目的白名單成本降低99%。此功能還消除任意限制,并允許項目將更多錢包列入白名單。
-項目頁面+目錄:Polkastarter網站將為每個即將進行的IDO項目提供一個專用頁面,包括項目描述部分、社交網站鏈接等。
-白名單申請表:新的項目頁面將使用戶能夠快速了解即將到來的IDO,并找到任何給定IDO項目白名單申請過程所需的所有信息。
-POLS質押:Polkastarter一直在努力開發這項新功能,用戶很快就可以質押自己的POLS。除此之外,用戶還可以臨時參與IDO,即使尚未持有POLS 7天。現在用戶將在接下來的7天內鎖定POL。
-更加去中心化:Polkastarter的長期目標是完全去中心化。為了實現這一目標,Polkastarter將增加一個目錄,使Polkastarter理事會更加透明,這樣用戶就可以了解更多關于理事會成員的信息。Polkastarter還將探索增加新功能,例如支持/反對DAO提案的鏈上投票和其他措施,使Polkastarter更接近純粹的DAO。[2021/7/12 0:43:42]
第三級有效性檢查是非平行鏈驗證人執行的。
加密交易平臺OKcoin已經集成Polygon PoS主網:官方消息,加密交易平臺OKcoin已經集成Polygon PoS主網,以降低提幣gas費。目前用戶可以將包括ETH、USDT、USDC、DAI在內的11種資產直接從OKcoin提幣到Polygon。[2021/6/8 23:22:21]
這些驗證人選擇過程是非公開的,且驗證人數量由釣魚人給出的無效報告和收集人給出的不可用報告的數量確定。如果檢測到無效的平行鏈區塊,則為其簽名的驗證人將會受到懲罰,它的押金將會部分或全部扣除。
上面三個級別的有效性驗證中,釣魚人的有效性驗證比較好理解,因為它本身就是平行鏈的全節點,擁有平行鏈的所有狀態數據,只需將收到的區塊交易重新執行一遍,便可以得到新的狀態數據和狀態根來驗證區塊的有效性。
可是驗證人是中繼鏈的全節點,它如何做到能夠驗證平行鏈的區塊呢,難道它維護所有平行鏈的狀態數據?這顯然是不可能的。
下面就重點介紹一下
Polkadot驗證人到底是如何驗證平行鏈的區塊的
平行鏈接入Polkadot時,需要向中繼鏈注冊一段webassembly代碼,叫做STVF,驗證人將用STVF對平行鏈有效性進行驗證。
假設某個平行鏈PC上個已經確認的區塊是B
0,當前待出的區塊是B
Cere將通過Republic,DAO和Polkastarter推出80倍超額認購后的公募:據官方消息,去中心化數據云(DDC)平臺Cere Network宣布在Republic(4月8日)、DAO Maker(4月15日)和Polkastarter(4月19日)上公開發售。
Cere此前已經從一系列知名VC包括Binance Labs、OKEx、Republic Labs、Arrington XRP Capital、Kenetic Capital、Fenbushi Capital和AU21 Capital等籌集了1000萬美元。最近一次500萬美元的融資獲得了80倍的超額認購,并在Republic上公開發行前完成。
據悉,Cere于2019年推出,Cere Network得到包括Gate.io、ZB exchange、Ankr、Ledger Prime、Woodstock fund、JRR Capital、Spark Capital、LD Capital、NGC Capital、QCP Capital、Monday Capital、G1 Ventures等在內的風投財團和生態系統合作伙伴的支持。[2021/4/1 19:36:19]
1,上個區塊經由中繼鏈確認后,在中繼鏈上區塊R
0
B上記錄了B
0的相關信息,如該平行鏈執行完B
0以后的狀態根R
0。之后平行鏈收集人C打包了區塊B
1,得到該區塊的向其他平行鏈的跨鏈消息M,并生成有效性證明π以及一些元數據(PC.id,H(B
0),H(R
0
B),R
in,R
out,...)。這里的R
in是區塊B
1執行之前的平行鏈的狀態根,R
out是執行以后的狀態根,H(B
0)表示平行鏈區塊B
0的哈希,H(R
0
B)表示中繼鏈區塊R
0
B的哈希。
生成有效性證明的過程實質就是執行區塊中的交易,將執行過程中讀寫的狀態數據記錄下來,并結合區塊執行前后的兩個狀態根生成證明。
如果使用*xz表示組成默克爾根x中的葉子z的SPV證明,那么區塊B有效性證明數據就可以如下表示:
π
B?=U{*R
inx|Breadsx}?∪?{*R
outx|Bwritesx}
舉個例子,假設平行鏈提交的區塊B中包含兩筆交易:
1.????A給B轉賬50
2.????C給D轉賬10
執行過程中需要讀寫A、B、C、D四個賬戶的狀態。假設區塊執行之前該平行鏈中這四個賬戶的余額都是100,那么有效性證明包含的便是下面兩張圖中標有顏色的這些數據,其中黃色部分是哈希值。
可以看到,不管平行鏈本身的狀態數據有多少,由于區塊的有效性證明數據都是由該區塊的交易涉及的狀態讀寫集的SPV組成,因此它的大小是有限的。
之后收集人C將區塊B
1、交易的有效性證明π、該平行鏈的出隊列中的消息集合M以及元數據一起發給其中一個驗證人,驗證人再將這些信息分發給這條平行鏈的其他驗證人。每個驗證人加載該平行鏈的STVF對收到的平行鏈區塊進行有效性驗證。
STVF的核心也是執行平行鏈區塊中的交易,過程中需要讀取證明數據中的讀集合,同時會產生寫集合,并最后生成的寫集合和證明數據中的內容進行比對;此外還可以通過收到的元數據中的信息進行一些其他的驗證,如根據H(R
0
B)查找到該區塊中保存的B
0的狀態根R
0,將R
0和收到的R
in進行比較。若這些信息都符合,則該區塊通過驗證。
最初收到平行鏈區塊的那個驗證人將生成一個CandidateReceipt,里面會記錄該平行鏈區塊B
1相關的信息,如平行鏈PC的id、收集人C的id、區塊B
1的哈希、區塊B
1執行前后的狀態根等,簽名并廣播給中繼鏈所有節點。當這個CandidateReceipt最終被中繼鏈出塊確認以后,平行鏈PC的區塊B也被最終確認了。
這種有效性驗證方法可以保證平行鏈單個區塊的狀態轉換是有效。如果平行鏈從第一個區塊開始,都由中繼鏈進行有效性驗證并確認區塊,那么可以保證平行鏈整條鏈的有效性。
可用性保障
可用性保障指的是區塊鏈系統在部分節點作惡的情況下,依然可以對業務系統提供可用服務保障。
在Polkadot中,假設這么一種場景:平行鏈收集人打包了區塊B并提交給了驗證人,驗證人收到了該區塊,通過了有效性驗證,并且區塊最終被中繼鏈確認了。
但是該收集人節點作惡,沒有把區塊廣播給平行鏈的其他節點,那么該平行鏈的其他節點無法得到該區塊,無法更新本地的狀態數據,該平行鏈也就無法出塊了。
為了防止這種情況發生,通過驗證以后,驗證人會將平行鏈區塊PC和有效性證明通過糾刪碼技術分成n個片段,并將這些片段廣播給全網的所有驗證人,每個驗證人獲得一個片段并會保存一段時間。
之后只需要得到n/3的片段,便可以恢復出原始數據。這種情況下,即使收集人節點作惡,平行鏈其他節點依然可以從中繼鏈的驗證人中獲得上個區塊的糾刪碼片段并恢復出區塊。
總結
通過上面對Polkadot有效性和可用性的介紹可以看到,中繼鏈提供了種種措施來保障平行鏈的安全:隨機分配的平行鏈驗證人進行區塊的驗證、釣魚人的監督、非平行鏈驗證人的再次驗證、中繼鏈對平行鏈區塊數據的備份……。
這種設計方式在保障整個區塊鏈系統橫向擴容分片的過程中不會降低某單一分片的安全性。對平行鏈來說,它享受了中繼鏈提供的安全性,僅需安心關注自己的區塊鏈業務即可,極大便利了區塊鏈業務的開發,降低了單一平行鏈對安全的額外投入。
參考文獻:
?????AvailabilityandValidity,
https://research.web3.foundation/en/latest/polkadot/Availability_and_Validity.html
???ThePathofaParachainBlock,
https://polkadot.network/the-path-of-a-parachain-block/
??J.Burdges,A.Cevallos,P.Czaban,R.Habermeier,S.Hosseini,F.Lama,H.K.Alper,X.Luo,F.Shirazi,A.Stewart,andG.Wood.Overviewofpolkadotanditsdesignconsiderations.arXivpreprintarXiv:2005.13456,2020.
Tags:POLPOLKDOTADOpolygon幣價格PolkaCipherdot幣挖礦polkadotteddonkey
自新冠肺炎爆發以來,全球14家最大的銀行市值蒸發了6353.3億美元。這是當前比特幣市值的三倍多,幾乎是所有加密貨幣市值的兩倍.
1900/1/1 0:00:00摘要 Uniswap自入夏以來呈現爆發式增長,上月占DEX總成交量的58%。TheBlock采訪了Uniswap的創始人HaydenAdams,講述了該公司在協議升級方面的工作,以及其在競爭中保.
1900/1/1 0:00:00轉自:中國信通院CAICT8月30日下午,“工業互聯網標識主題論壇”作為2020工業互聯網大會的主題論壇之一,通過20余家直播平臺在云端成功舉辦.
1900/1/1 0:00:00翻譯:IPFS原力區 來源:https://filecoin.io/blog/announcing-sr2-slingshot/祝賀所有參加太空競賽的人!這真是一個令人震驚的事件.
1900/1/1 0:00:00本文來源:證券日報 作者:邢萌?見習記者?張博近日,北京市首臺運用區塊鏈等新技術的政務服務終端亮相海淀區政務服務中心,為辦事企業和群眾提供自助政務服務.
1900/1/1 0:00:00現在Fortnite游戲公司正在同蘋果和谷歌進行法律訴訟。Fortnite為了避免向蘋果和谷歌應用商店支付30%的收入,在自己的游戲中嵌入了應用內的支付功能.
1900/1/1 0:00:00