什么是DataAvailability
大家都知道,區塊鏈技術的一個特點就是:存放在鏈上的數據是安全可靠的,不可篡改的。那數據可用性是指的什么呢?難道區塊鏈的共識不能保證數據的安全了嗎?顯然不是,區塊鏈數據的安全性,是大家都認可的,也是區塊鏈一直持續發展的一個動力之一。那么DA層是什么,我們先來看看下面幾種情況。
一個節點如果想驗證某一筆交易或者某一個區塊,這個節點需要下載所有的區塊和交易數據。由于區塊鏈的持續運行,區塊和交易數據會持續增長,這個節點的成本也會越來越高。以至于越來越多的節點只能選擇運行輕節點。這些輕節點,沒有下載所有的交易數據,它們不能對交易和區塊進行驗證,只能相信它們選擇的共識節點。因此,實際上這些輕節點是不知道獲得的數據是否可用。
同時區塊鏈網絡為了提高效率,一直在嘗試進行擴容。以太坊的L2就是以太坊的一種擴容方案,從而提高以太坊的吞吐量。但L1和L2在本質上還是兩個網絡,L1是不會參與L2的共識,也不會驗證和執行L2的交易,同理L2也不會參與L1的共識,亦不會驗證和執行L1的交易。但是在此時,L1與L2之間其實是有信任問題的,例如:Rollup要求將所有交易數據都記錄到以太坊的交易中,那么Rollup的用戶為了驗證自己的交易是否存入以太坊,他還需要運行一個以太坊的全節點嗎?
ENS將推出區塊鏈原生的、可通過域名解析系統路由的頂級域名.box:6月7日消息,ENS開發者nick.eth發推稱,ENS將推出區塊鏈原生的、可通過域名解析系統路由的頂級域名.box。該域名系統中所有注冊和轉移都將在鏈上進行,NFT的所有者將同時擁有DNS和ENS域名。
據悉,.box域名可用于DID配置文件和錢包、去中心化的網站和消息傳遞、Web2網站和電子郵件、收藏與交易等。[2023/6/7 21:21:43]
從目前區塊鏈的工作機制當中我們可以知道,當一個節點不參與共識的時候,特別是沒有存儲所有交易數據的時候,對于它自己獲得的數據是否有效它是無法驗證的,這些節點目前都只能相信自己連接的共識節點不會欺騙自己,或者多連接幾個共識節點,做一個小小的容錯。
因此DA層解決的問題是,在不參與共識、以及不用存儲所有交易數據的情況下,依然能夠對交易進行驗證,從而證明這個交易是否可用。
Celestia
在上面先介紹了什么是DA,接下來,我們再來看看Celestia項目是打算如何來解決這個問題的。
Celestia項目圍繞二維Reed-Solomon糾刪碼,設計了一套隨機抽樣來驗證數據、以及恢復數據的方案從而確保數據可用。
當一個全節點發現輕節點收到有問題的數據時,會構建一個欺詐證明并發送給這個輕節點,輕節點收到欺詐證明之后,從網絡中通過隨機抽樣的方式,獲得需要的數據,來驗證這個欺詐證明是否有效,從而能夠明確的知道自己之前獲得的數據是否可用。輕節點不需要信任給自己發送數據的節點,也不需要信任給自己發送欺詐證明的節點,這是因為輕節點是通過隨機抽樣的方式,來獲取進行此次驗證所需要的數據,因此安全性能是由整個網絡來提供的。這樣也使得DA層的安全等級,能夠接近共識層的安全等級。
Beosin:Avalanche鏈上Platypus項目損失850萬美元攻擊事件解析:2月17日,據區塊鏈安全審計公司Beosin旗下Beosin EagleEye安全風險監控、 預警與阻斷平臺監測顯示,Avalanche鏈上的Platypus項目合約遭受閃電貸攻擊,Beosin安全團隊分析發現攻擊者首先通過閃電貸借出4400萬USDC之后調用Platypus Finance合約的deposit函數質押,該函數會為攻擊者鑄造等量的LP-USDC,隨后攻擊者再把所有LP-USDC質押進MasterPlatypusV4合約的4號池子當中,然后調用positionView函數利用_borrowLimitUSP函數計算出可借貸余額,_borrowLimitUSP函數會返回攻擊者在MasterPlatypusV4中質押物品的價值的百分比作為可借貸上限,利用該返回值通過borrow函數鑄造了大量USP(獲利點),由于攻擊者自身存在利用LP-USDC借貸的大量債務(USP),那么在正常邏輯下是不應該能提取出質押品的,但是MasterPlatypusV4合約的emergencyWithdraw函數檢查機制存在問題,僅檢測了用戶的借貸額是否超過該用戶的borrowLimitUSP(借貸上限)而沒有檢查用戶是否歸還債務的情況下,使攻擊者成功提取出了質押品(4400萬LP-USDC)。歸還4400萬USDC閃電貸后, 攻擊者還剩余41,794,533USP,隨后攻擊者將獲利的USP兌換為價值8,522,926美元的各類穩定幣。[2023/2/17 12:12:32]
接下來,我們來了解一下Celestia具體是如何工作的。由于Celestia項目還處于開發測試階段,因此這里采用的都是現階段的白皮書的介紹方案,可能會與實際的解決方案有出入。
Etherscan現支持以太坊域名服務ENS反向解析:5月12日消息,以太坊域名服務(Ethereum Name Service,簡稱ENS)發推稱,Etherscan目前支持ENS反向解析。ENS反向解析可使用戶的ENS域名成為跨DApp的以太坊賬戶的便攜式用戶名。除Etherscan外,使用此功能的其他DApp包括Uniswap、Opensea、Aavegotchi和Snapshot Labs等。目前,要使用該服務,用戶必須手動啟用反向解決,之后將更改為自動啟動;DApp須在其UI代碼中使用PR。
注:正向解析(Forward resolution,FR)是將一個ENS域名解析到以太坊地址等資源,反向解析(Reverse resolution,RR)是指將一個以太坊地址解析到一個ENS域名。[2021/5/12 21:52:40]
準備
欺詐證明的驗證,必須是高效的,并且不需要全部的交易數據,也不需要執行具體的交易,因此Celestia對于自己區塊的數據,進行了一些擴展。
1.stateRoot
狀態的稀疏默克爾樹的根,這種默克爾樹的葉節點,是一個key-value對。
定義了一種變量,狀態見證(w):是一些key-value對,以及他們在默克爾樹中的證明,組成的集合:
動態 | 基于共治鏈的共治根域名解析架構發布:據光明網消息,在日前由國家互聯網信息辦公室指導、中國互聯網絡信息中心(CNNIC)主辦的中國互聯網基礎資源大會上,中國互聯網絡信息中心主任曾宇發布了基于共治鏈的共治根域名解析架構。中國互聯網絡信息中心(CNNIC)作為我國國家頂級域名注冊管理機構,負責國家網絡基礎資源的運行管理和服務,從2016年開始,開展區塊鏈技術在域名領域應用的研究,驗證了運用區塊鏈技術進行域名數據管理的可行性。在此基礎上,聯合多家單位設計了基于共治鏈的共治根新型域名解析系統架構。[2019/7/3]
定義了一個函數,rootTransition:可以通過狀態根、交易、以及這些交易的狀態見證,轉換得到交易執行后的狀態的根。也就是每個交易執行后的狀態的默克爾根stateRoot`可以通過rootTransition(stateRoot,t,w)得到
2.dataRoot
將交易,以及這些交易執行的中間狀態根,組合成一個固定大小與固定格式的shares。這些所有的交易的shares,按照二維RS糾刪碼,進行擴展,最后得到一個默克爾樹的根,即dataRoot。
動態 | EOSCanada 解析 B1 源代碼解釋相關期權兌現計劃:據 IMEOS 報道,EOSCanada 發布文章解析 B1 源代碼,以解釋相關期權兌現計劃。文中經過源代碼分析得出結論,截至2019年1月1日,Block.one 可以贖回共計5879120個代幣。分析結果認為,如果 Block.one 想要以小于其全部權重的票數進行投票,則他們必須贖回當前最大數量的代幣。然后,他們必須將這些代幣轉移到一個單獨的帳戶,抵押,然后投票。截至撰寫該文時(2019年3月中旬),這筆金額約為785萬美元。因此,雖然 Block.one 以外的任何人都不知道他們投票的想法或他們想要用他們的代幣做什么,但我們現在都能理解實際存在的限制。[2019/3/21]
具體步驟
將初始的交易數據,按照shares的大小與格式進行封裝。
將shares放入一個k×k的矩陣,如果數量不夠,則填充補齊。
然后應用RS糾刪碼,按照行和列進行3次補齊,最終得到一個2k?2k的矩陣。
對這個矩陣的每一行和每一列,都構建一個默克爾樹,得到2?k個行根和2?k個列根。
最后將這4?k個根,組成一個默克爾樹,得到根dataRoot。
shares
shares是Celestia項目定義的一個固定大小和格式的數據結構。主要內容是交易,以及執行這些交易的中間狀態根。
由于沒有具體規定多少交易,需要生成對應的中間狀態根,項目方設定了一個Period變量,作為最大限制周期,這個限制可以是最大多少交易之內必須生成中間狀態根,也可以是多少字節,或者多少GAS。
還定義了兩個函數來幫助驗證:
parseShares函數:輸入shares,得到消息m,可以是中間狀態根,也可能是交易。
parsePeriod函數:輸入消息,得到前狀態根,執行后狀態根,以及交易列表。
固定256字節
0-80:開始的交易
81-170:包含的交易
171-190:中間狀態根
191-256:下一批開始的交易
設定的格式舉例
白皮書中,介紹了兩種欺詐證明,下面將分別對此進行介紹:
3.狀態轉換無效的欺詐證明
這是一個針對stateRoot的一個欺詐證明。全節點利用dataRoot中的shares,來幫助輕節點驗證收到的區塊頭中的stateRoot是否有效。
狀態轉換無效的欺詐證明的組成:
對應塊的blockhash
相關的shares
這些shares在dataRoot對應的默克爾樹中的默克爾證明
這些shares包含的交易的狀態見證。
證明的驗證:
驗證blockhash,確定是對于哪個區塊的欺詐證明。
驗證證明中的每個shares的默克爾證明是否有效。
通過shares的兩個解析函數,可以正確得到對應的交易列表,以及這批交易的執行前狀態根和執行后狀態根。并且如果執行前狀態根為空,則第一個交易一定是塊的第一筆交易;同時如果執行后狀態根為空,則最后一筆交易一定也是塊的最后一筆交易。
根據rootTransition函數,來驗證得到的兩個狀態根。
4.錯誤生成擴展數據的欺詐證明
這是一個針對shares在網絡傳播時,當一個全節點從網絡中收到shares恢復的數據,與自己的數據不匹配時,會向網絡回應欺詐證明。
錯誤生成擴展數據的欺詐證明的組成:
錯誤的shares所在行或列的默克爾根。
這個行或列的默克爾根,在dataRoot對應的默克爾樹中的默克爾證明。
這足夠恢復這一行或列的shares。
每個shares在dataRoot對應的默克爾樹中的默克爾證明。
證明的驗證:
驗證blockhash,確定是對于哪個區塊的欺詐證明。
驗證證明中行或列的默克爾根的默克爾證明是否有效。注:VerifyMerkleProof(行或列的默克爾根,行或列的默克爾根的默克爾證明,dataRoot,長度,位置索引)其中前面2個數據是證明攜帶的數據,后面3個是本地數據。
驗證證明中每個shares的默克爾證明是否有效。注:VerifyShareMerkleProof(shares,shares的默克爾證明,dataRoot,長度,位置索引)其中dataRoot是本地數據,另外數據都是從證明中獲得。
通過收到的shares,恢復這一行或列的所有數據,并驗證其默克爾根是否等于自己之前收到的對應行或列的默克爾根。
數據可用性
通過2維RS糾刪碼,Celestia的輕節點通過隨機抽樣的方式,來獲取區塊數據,以及驗證欺詐證明的相關數據。同時隨機抽樣的數據,并在網絡中傳播,當達到一定的數量時,也可以幫助網絡恢復區塊數據。下面介紹一下具體的工作流程:
輕節點從任意一個連接的全節點中獲取一個新區塊的塊頭,以及2k個行和2k個列的默克爾根。先用這些默克爾根與區塊頭中的dataRoot進行初步校驗。如果錯誤則拒絕這個區塊頭。
在這個2k×2k的矩陣中,輕節點隨機挑選一組不重復的坐標,將這些坐標發送給與自己相連的全節點們。
如果一個全節點擁有這些坐標所對應的所有數據,就會將這個坐標對應的shares,以及shares的行或列的默克爾證明,回應給輕節點。
輕節點對于每一個收到的shares,都會驗證其默克爾證明是否有效。注:VerifyMerkleProof其中前面2個數據是證明攜帶的數據,后面3個是本地數據。
如果一個全節點沒有回應某一個坐標的shares,輕節點則會將自己收到的對應的shares、以及它的默克爾證明發送給這個全節點,這個全節點也會將收到的數據轉發給相連的其他全節點。
如果步驟4中的驗證都沒有問題,并且步驟2中抽樣的坐標都有收到回應,同時在一個設定的時間段內沒有收到關于這個區塊的欺詐證明,則輕節點認為這個區塊是數據可用的。
Tags:RESAREHARESHARestore Truth TokengxsharesIntelliShareSHEESHA價格
事件:5月19日,美國商務部國際貿易管理中心發布《發展加密資產技術競爭力框架》征求意見稿。回應年初總統令.
1900/1/1 0:00:00今日凌晨,Optimism與加密貨幣做市商Wintermute透露,2000萬個Optimism代幣被黑客盜取.
1900/1/1 0:00:00圖中可以看到,紅色線距離通道下軌仍有一段距離,通過歷史走勢能看到,2014年和2018年熊市均是收線收至下軌下方才會見底,目前BTC再次沖高回落,前期已提示短期內跌多了就會出現階段性反彈反抽.
1900/1/1 0:00:00@LensProtocol是web3的一種開放社交圖譜協議。我們很多人都聽說過Lens。但是Lens是如何工作的-主要組成部分是什么?如何在Lens之上構建?我總結了Lens的文件要義如下.
1900/1/1 0:00:00本文為萬向區塊鏈“區塊鏈+”技術部負責人屠文慧在長三角商業創新研究院舉辦的“區塊鏈技術下的產業數字化變革——疫路同行分享會第8期”上的分享內容。根據速記修改,略有不影響原意的刪改.
1900/1/1 0:00:00AuroraEngine什么是AuroraEngineAuroraEngine是Near上用Rust寫的一組智能合約.
1900/1/1 0:00:00