【TokenGazer深度研究】Lambda:主鏈落地存疑,有一定風險(1)區塊鏈
1. 投資要點 云存儲是目前增長很快的行業,大多采用中心化解決方案,去中心化目前沒有大規模應用。 現有區塊鏈存儲項目SiaCoin已經落地...
1. 投資要點
2. 產業背景
2.1 云存儲行業
近年云基礎設施服務(IaaS)發展迅速,其中云主機、云存儲是需求最大的兩個領域。云存儲通常采用中心化解決方案,大企業有亞馬遜,微軟,阿里等。
數據來源:Gartner
2.2 去中心化存儲
提到去中心化存儲,可能會想到eMule和BT,兩者都是利用P2P網絡進行文件傳輸,eMule有客戶端軟件能夠搜索文件;BT僅是一個協議,通過BT種子和文件資源建立鏈接。eMule和BT價值在于利用用戶的閑置帶寬,需要一個文件在多人電腦上存儲,作用是分享資源,主要用于視頻資源。而個人網盤,企業網盤,數據庫等資源沒有其他用戶愿意備份在自己設備上,不適合采用BT、eMule等去中心化模式,目前以中心化解決方案為主。
2.3 區塊鏈去中心化存儲項目對比
目前區塊鏈存儲項目有Sia、Storj、FileCoin、Lambda等
表:區塊鏈存儲項目特點
Sia無眾籌,為挖礦幣種,總量無上限,目前供應量360億,進入緩慢挖礦階段。Storj為眾籌幣種,是Storj項目的以太坊代幣,流通量1.35億,總量4.25億。
數據來源:CoinMarketCap,2018.8.29
3. 技術分析
3.1 多層鏈結構
Lambda采用多層鏈設計,包括一條主鏈,多條同構工作鏈。多層鏈設計主要目的是方便完成數據庫設計,主鏈(MainChain)實現基本功能作為總賬本,WorkChain(虛擬層,WorkChain0到 WorkChainN)實現特定功能,多層鏈設計的目的是讓數據庫設計更容易,數據庫的更新升級只需要調整工作鏈,無需變動主鏈。任意一條WorkChain都是由MainChain指派的驗證人節點負責交易的打包和出塊。
工作鏈根據需求進行分片,例如驗證子鏈節點不能所有節點(幾千個)同時去驗證一個文件,這是極大的資源浪費。為了使Lambda中主賬本與分片賬本相互驗證形成網狀的互驗證結構,每個MainChain的新區塊中包含了ShardChain所有新區塊的哈希(除非部分Shard-Chain在超時時間內未出區塊),ShardChain的新區塊包含了上一個MainChain的區塊的Hash。
3.2 共識機制
Lambda三個角色的設計分別是提名人、驗證人和釣魚人:
3.2.1 驗證人:
– 負責打包出塊;
– 抵押token可推舉驗證人;
– 硬件環境必須符合要求;
– 驗證節點被隨機分配到不同的WorkChain和ShardChain;
– 主鏈和子鏈都是每間隔5秒出一個塊,每過1024個節點輪換;
– WorkChain,ShardChain節點驗證存儲證明,訪問控制等是否合法;主鏈節點驗證子鏈簽名是否合法。
3.2.2 提名人:
提名人是一個擁有權益的群體,推舉驗證人,將安全性押金委托給驗證人。
3.2.3 釣魚人:
釣魚人和區塊打包的過程并不相關,他們的角色類似于現實世界中的“賞金獵人”,發現并舉報有存在非法行為的參與方(有抵押的參與方),舉報后會進行更嚴格的驗證,成功舉報非法行為可以獲得獎勵。
3.3 區塊鏈存儲項目如何完成文件去中心化驗證
區塊鏈存儲項目涉及去中心化文件系統和去中心化數據庫。去中心化文件系統是去中心化數據庫基礎。現有區塊鏈項目大多只實現了去中心化文件系統,本質上是去中心化網盤。
表:區塊鏈存儲項目涉及的關鍵問題
數據持有證明(PDP)需要做到:1)文件無備份認證,在保存少量認證元數據的情況下驗證數據是否完好無損;2)文件公開認證,認證元數據公開的情況下完成數據認證。
復制證明(PORep):確保文件被存儲多個副本。
3.3.1 Storj通過Merkle tree實現無備份認證
Storj用戶將要存儲的文件分成若干塊[m1 ,m2 …mn ],以Merkle Tree的形式建立文件索引,將本地保留Merkle Tree,文件塊的Hash值作為認證元數據集(Key),文件[m1 ,m2 …mn ]上傳到遠程服務商(證明者)。用戶定期向服務商提交驗證請求,要求服務商返回指定數據塊[mi ],用戶比對:
H[mi ]=?Key
由于Hash能夠將可變長度數據轉化為固定長度數據,用戶存儲少量證據可以完成數據持有證明。
Storj是一個基于以太坊ERC20發行的token,嚴格說Storj不是區塊鏈項目。而是一個中心化的獎勵機制,即每個月storj官方根據各礦工每月的存儲量來發放獎勵。
Storj是一個基于以太坊ERC20發行的token,嚴格說Storj不是區塊鏈項目。而是一個中心化的獎勵機制,即每個月storj官方根據各礦工每月的存儲量來發放獎勵。
3.3.2 SiaCoin實現文件公開驗證
SiaCoin實現了文件公開驗證(實際上SiaCoin項目要早于Storj),區塊鏈網絡自動完成數據持有證明,任何礦工都可以驗證服務商是否存儲了文件F。用戶公開文件索引的Hash值作為證據,礦工完成驗證,做法和本人驗證相同,最后對驗證結果數字簽名后放到鏈上。服務商需要提交原文件進行驗證,由于Hash逆向計算是非常難的, 如果服務商知道Hash不知道原文件是無法通過驗證的。鏈上驗證解決兩個問題:1.用戶可能說謊,有可能驗證通過用戶聲稱未通過;2. 用戶不可能實時在線。
SiaCoin是一個早期區塊鏈項目,采用POW機制,10分鐘出一個塊,沒有考慮區塊鏈擴容問題,客戶端同步很慢,TokenGazer在測試時用了2天時間完成同步。
3.3.3 FileCoin
FileCoin是基于IPFS的一激勵層,最主要特點是復制證明和時空證明,概念有點抽象,在此盡量通俗解釋。
復制證明:用戶要求服務商存儲一份文件F,為了安全要求存儲F的n個副本, 服務商存儲少于n個副本也難以發現。解決方案是對文件F進行加密,形成n個不同的副本,分別要求服務商存儲,相當于存儲了多個不同文件。
時空證明:服務商可能完成驗證后刪除文件,不斷進行復制證明可以實現時空證明。FileCoin時空證明之所以復雜,是因為FileCoin計劃利用時空證明實現POW機制。
3.3.4 Lambda驗證方案BLS-PDP基于BLS同態簽名算法
Lambda驗證流程和SiaCoin相似:鏈上節點存儲認證元信息(Key),每過一定時間向服務商發起挑戰。
圖:lambda驗證流程
每次驗證需要提交一部分文件數據,通訊量仍然較高,容易泄露隱私。Lambda驗證方案中的BLS-PDP基于BLS同態簽名算法,由于BLS簽名機制具有同態特性,可以將多個簽名聚集成一個簽名。這兩點好的特性使得基于BLS簽名的PDP機制可以獲得更少的存儲代價和更低通信開銷來實。證明者可以將多個認證數據塊相加產生一個數據塊返回給證明者(黃色標記部分),通過這種方式大幅降低通訊量,并且有一定隱私保護功能。
缺點是要進行umi 計算,計算上難以實現。項目方計劃將數據塊映射為大素數,實現通訊量和計算量兩方面都可控,由于項目方沒有公布實施細節,安全性和計算量方面TokenGazer團隊目前還沒辦法評估。
另外Lambda采用POS和分片機制,預計TPS會遠高于SiaCoin,能夠更頻繁進行存儲驗證。
3.3.5 數據可恢復證明(POR)
Lambda和Storj都聲稱實現了數據可恢復證明(POR),數據可恢復證明(POR)不僅能識別數據是否損壞,而且能在數據損壞程度低于某一閾值的情況下恢復文件,認證過程和PDP差別是,數據損壞低于某一閾值時通過認證。
Storj白皮書POR章節偷換概念寫了數據持有證明(PDP),Lambda白皮書也沒有介紹POR如何實現。TG認為POR是服務商自己考慮的問題,并且也有比較成熟的存儲協議來完成數據恢復,鏈上只需要服務商證明數據的完整性。
3.4 數據布局算法
3.4.1 CCHDP異構系統解決方案
數據布局算法解決如何將文件分配到不同的存儲節點,目前,大部分布局算法面對同構系統,而互聯網設備主要是異構設備,為了便于理解,在此僅考慮磁盤大小,存儲項目需要根據調整不同設備寫入數據的規模,通常解決方案是運行虛擬機,比如性能最差的設備運行一臺虛擬機,性能好的運行多臺虛擬機,這樣將異構系統虛擬化成同構系統,但運行虛擬機越多浪費系統資源越高,這就要求集群中設備性能盡量相似。
Lambda使用的CCHDP(clustering-based and consistent hashing-aware data placement)算法。CCHDP的概念最早于2010年提出,由陳濤、肖儂、劉芳以及付長勝所撰寫的論文《基于聚類和一致Hash的數據布局算法》發布在軟件學報網站,大概思路是將異構系統中性能相近的設備歸為一類,每個集群有性能相近的設備組成,達到同構系統的效果,這種做法在中心化系統中是一個可行的方案,但白皮書沒有寫明去中心化系統如何實現CCHDP算法。
3.4.2 虛擬節點
每個集群內部布局機制使用一致 hash 方法進行數據的再次分配,將數據布局到具體的設備上。Lambda DB構造了一個特殊的邏輯結構,所有組成單元連接在一起形成一個固定長度的環,環的 最大值單元和最小值單元連到一起。節點加入一個數據庫集群時,根據Hash(key)值加入環中。
Lambda DB系統中的每一個節點在剛剛加入集群時,會被分配一個隨機的位置,由于算法的隨機性可能會導致不同節點處理的范圍有所不同,最終每一個節點的負載也并不同。為了解決這個問題,Lambda DB使用了一致性哈希算法的變種,將同一個物理節點分配到環中的多個位置,成為多個虛擬節點。
3.4.3 數據庫和區塊鏈關系
Lambda DB是一個分布式對等網絡節點系統,每一個節點從邏輯上都含有一個ShardChain(WorkChain2)的賬本和一個數據庫系統的運行時系統。數據庫節點之間按照一定規則組成小網絡集群,集群的種子路由信息存在鏈上,路由表本身在存在P2P系統之上。客戶端在使用系統的時候,通過區塊鏈系統完成繳費,并獲得數據庫系統的訪問權限。由此,整個MainChain鏈本身是一個低頻交易系統,WorkChain1是一個持續計費的高TPS系統,數據庫是一個兼顧高頻和低頻的數據訪問系統,數據庫本身通過WorkChain2對數據的響應進行統計,并在檢查點的時候對請求和響應信息進行對賬。從思路來說,鏈提供的是類似于公有云的計費系統,并提供了跨越多個物理IDC的信息連接能力。
3.4.4 哪些信息放到WorkChain鏈上
1. 節點信息
2. 路由信息
3. 底層文件哈希
4. 持有性驗證和完整性驗證
……
3.5 基于屬性加密的訪問控制
數據庫系統需要進行訪問控制,然而區塊鏈上的數據都是公開可訪問的,這極大限制了數據的使用場景,為了擴展使用場景,Lambda提供了基于多授權機構屬性加密的訪問控制方案。屬性基加密(attribute-based encryption,簡稱ABE)機制以屬性為公鑰,將密文和用戶私鑰與屬性關聯,滿足某些屬性的用戶可以訪問數據庫,能夠靈活地表示訪問控制策略,從而極大地降低了數據共享細粒度訪問控制帶來的網絡帶寬和發送結點的處理開銷。
項目方沒有披露ABE方案,但基于屬性的加密是非對稱加密算法的變種,計算開銷一般是對稱加密的N(密鑰長度)倍,1024位的密鑰就是對稱加密計算開銷的1024倍,并且隨屬性數量增加,因此ABE不適合長消息加密,也不適合頻繁加密解密。面對以上的挑戰, Lambda采用了一個在線- 離線的多授權機構屬性基加密(Online/Offline Multi-Authority Attribute BasedEncryption,簡稱OO-MA-ABE)方案,其主要思想是把用戶端在線計算代價轉移到離線階段或者云服務器上。
BLS-PDP數據持有證明,基于屬性加密的訪問控制(ABE),應用CCHDP數據布局算法是項目的技術特色。BLS-PDP計算上難以實現,ABE計算上可實現但計算量很大。白皮書沒有披露CCHDP數據布局算法如何上鏈。
4. 生態分析
4.1 代幣經濟
Lambda的經濟系統的角色由以下幾類組成:
鏈節點:
鏈節點上又分為驗證人、提名人和釣魚人,第三章已經介紹;
存儲節點:
存儲節點,也是云服務商;
存儲節點的主要收入來自用戶支付的費用;
存儲節點需要預先質押一部分資金,并獲得POS的分成受益;
存儲節點需要定期向驗證人發送心跳信息,其中的幸運者可以獲得一些獎勵,這個設計主要是為了激勵存儲節點的在線;
用戶:
用戶是采購并使用存儲節點的人,通常來說,會是其他應用鏈和Dapp;
投資人:
投資人投資于Lambda項目,并分享LAMB上漲帶來的收益;
交易所:
數字貨幣交易所;
4.2 項目啟動
存儲節點:通過礦工招募可完成,目前設備和資源過剩,無存儲類合適幣種可挖礦
驗證節點:基金會孵化一部分,另外通過社區競選產生,驗證節點的收益比較客觀,社區成員有動力參加競選。
釣魚人:加入門檻低,加入規則公開。
SiaCoin項目存儲節點提供4.0PB容量,用戶只使用了1.77TB。同樣1TB數據,亞馬遜需要需要6美元/月,SiaCoin只需要0.3美元/月,TokenGazer認為無法應用的一大原因是慢,TG團隊嘗試使用了SiaCoin客戶端,10小時同步了45%。可以說目前區塊鏈存儲項目都沒有規模化應用,Lambda后發優勢比較明顯。
注:由于本篇報告篇幅較長,故分為兩篇報告上傳,其他內容見下一篇內容。
責任編輯:ToeknGazer
?本文為TokenGazer原創內容,轉載請注明出處。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。