Lambda全球首次實現PoST時空證明算法並開源

2020-12-13 和訊

  從十年前到今天,比特幣從一個白皮書的構想逐漸成為全球最大的點對點網絡支付系統之一。隨著比特幣的發展,區塊鏈技術也受到越來越多的關注。


  其實,區塊鏈本質上就是一個分布式的應用軟體,而分布式系統首要問題就是解決一致性的問題,也就是要達成共識,所以說共識算法就是區塊鏈的「靈魂」。從BFT到PoW再到PoS,共識算法逐漸被被發明、改進和應用。今天在區塊鏈的核心領域——分布式存儲領域,Lambda團隊初步實現了該領域最為核心的算法,也就是PoST時空證明算法,並將該算法的核心類庫部分在GitHub上進行開源,開源協議遵守GPL V3。


  數據完整性驗證機制


  近些年,雲計算得到廣泛的普及和應用,其核心理念就是資源租用、應用託管和服務外包,其通過虛擬化技術將分布的計算節點組成一個共享的虛擬化池,為用戶提供服務。但是當用戶選擇將大量應用和數據部署到雲計算平臺中時,雲計算系統也相應地變為雲存儲系統,但高度集中的計算資源使雲存儲面臨著嚴竣的安全挑戰,這也是中心化服務先天具備的弱點。


  此前我們在《騰訊雲數據丟失事件思考:存儲的未來在哪裡?》一文中也提到,中心化的雲存儲在安全性、可靠性以及服務水平層面還存在很多問題亟待解決。企業數據放在雲存儲中,他們最關心的是數據是否完整無誤,如果出現故障,是否可以實現數據的恢復,而且能夠證明這些數據與原來數據完全一致。這就是去中心存儲中經常提到的「數據完整性驗證機制」。


  數據完整性驗證機制根據是否對數據文件採用了容錯預處理分為數據持有性證明PDP機制(PDP,Provable Data Possession)和數據可恢復證明POR機制(POR,Proofs of Retrievability)。PDP機制能快速判斷遠程節點上數據是否損壞,更多的是注重效率,而POR機制不僅能識別數據是否已損壞, 且能恢復已損壞的數據。這兩種機制有著不同的應用需求,PDP機制主要用於檢測大數據文件的完整性,而POR機制則用於確保重要數據的完整性,以及數據丟失之後的可恢復性。


  數據持有性證明PDP機制


  首先我們可以看看PDP方案的一個應用場景:


  (1)Alice要求Bob記憶一組信息;


  (2)Alice本身並不會記下這組信息;


  (3)Alice請Chris來確認Bob是否還記得這組信息;


  (4)Chris並不了解這組信息的內容。


  我們對這些角色進行代換:Alice即是用戶,Bob即為存儲曠工,Chris即為第三方審核者(以下簡稱TPA)。


  驗證流程如下:


  (1)用戶為待外包的每塊數據生成一個Tag,這個tag經由用戶進行籤名;


  (2)TPA隨機對用戶外包數據中一塊發起Challenge,這個Challenge中包含有TPA生成的隨機數;


  (3)存儲曠工根據被挑戰的數據塊內容、Tag信息、Challenge信息以及自己生成的一個隨機計算得到一個Proof;


  (4)TPA以challenge、proof及用戶公鑰為參數,通過映射函數e(u,v)雙線性性質檢驗存儲曠工是否持有數據。


  PDP的核心公式為:


  其中:


  時空證明:Proof of Space Time


  PoST,全稱是Proof of Space Time,是由FileCoin引入到區塊鏈領域的概念,「時空」的定義是衡量並計算存儲在網絡中的數據存儲時間及空間。 FileCoin和Lambda都是旨在提供去中心化的分布式存儲,礦工通過存儲及檢索過程獲得客戶的付費,並通過時空證明算法獲得出塊獎勵。由於整個網絡是沒有中心化節點的P2P網絡,因此需要某種機制保證用戶所存儲數據的完整性和可恢復性,因此誕生了這個領域的一些相關算法。


  時空證明PoST,它可以讓驗證者檢查存儲提供商是否在一段時間內存儲了他/她的外包數據。這對提供商的直接要求是:


  (1)生成順序的存儲證明來作為確定時間的一種方法。


  (2)組成遞歸執行來生成簡單的證明。


  其實,PoST算法是對POR的一種改進,POR算法是由Juels等人在一篇名叫《Proofs of Retrievability For Large Files》的論文中最早進行闡述,其核心是將文件分片存儲,並根據分片的標籤信息定期進行挑戰和證明。但通常學術界所定義的POR的運行依賴於中心化第三方節點,並且每次運行都要進行預處理,相對的SpaceTime(PoST)是一定時期內產生一個POR序列來證明有用存儲的保持時間。


  如下圖所示,PoST與PoR的主要區別在於重複挑戰的執行,而不重新運行初始化階段,這就大大提高了執行效率。


  關於 IPFS和 FileCoin


  現在,區塊鏈領域的很多人混淆了IPFS和FileCoin項目,以為IPFS項目已經解決了存儲數據的完整性問題,這是一個誤區。這些人錯誤的認為,IPFS對數據進行哈希之後,是可以保證數據的不可篡改的,這是一個錯誤的認識,對於任意IPFS網絡的節點來說,它們僅僅會存儲自己感興趣的數據,而不是用戶指定的數據。因此,需要一個激勵和檢查層來確保用戶指定數據的存儲和不被篡改。做一個簡單的比較,IPFS是類似於開源的Ceph軟體,FileCoin和Lambda則更類似於AWS的S3。沒有數字貨幣激勵的單純存儲系統,是不可能解決數據的持有性問題的。


  FileCoin關於時空證明PoST的定義為:


  * 時空證明PoST方案使得有效的證明人P 能夠說服一個驗證者V 相信 P 在一段時間內已經存儲了一些數據 D。PoSt其特徵是多項式時間算法的元組: (Setup, Prove, Verify)。


  * PoSt.Setup(1λ,D)->Sp,Sv,其中SP 和 SV 是P 和V 的特點方案的設置變量,λ 是一個安全參數。PoSt.Setup用來給予 P 和V 必要的信息來運行PoSt.Prove和 PoSt.Prove。一些方案可能要求證明人或者是有互動的第三方去運算PoSt.Setup。


  * PoSt.Prove(Sp , D, c, t) → πc,其中c 是驗證人V 發出的隨機驗證, πc 是證明人在一段時間內可以訪問數據D 的的證明。PoSt.Prove由P(證明人)為V(驗證者)運行生成 πc。


  * PoSt.Verify(Sv, c, t,πc)→ {0,1},用來檢測證明proof是否是正確。PoSt.Verify 由V運行和說服V 相信 P 在一段時間內已經存儲了R。


  從邏輯上來講,數據的持有性證明是一種由兩個角色和四個步驟完成的遊戲。第一個角色是Challenger,第二個角色是完成Proof的人,Challenger的第一步把文件和一些謎題生成之後,放到Server上;第二步生成某個Challenger的信息,需要的某些數據;第三步存儲節點完成了某個Proof,發回給Challenger;第四步就是Challenger用自己原來遺留的一些信息,生成一個Verify,用Verify跟Proof去驗證這東西是不是對的;這就是用兩個角色、四個步驟完成驗證。


  去中心化存儲項目需要解決的問題非常多,但是我們需要避免項目周期過長和設定過於龐大的目標。在軟體領域,有一本著名的書叫做《人月神話》,講述了一個著名的軟體項目失敗的過程。事實上,任何設計目標過於宏大的軟體都難逃失敗的命運,而正確的開發方式則應該是通過敏捷和迭代來進行完成。


  FileCoin作為一個歷史悠久的項目,其白皮書所採用的技術方案多次更改,核心共識算法PoST v1從最早的類PoW共識,到2017完全推翻V1的設計,改用類似於Algorand的VRF算法,到加入Poreps的VDE實現,到引入新的VDF算法,並且檢索市場、小額支付等問題也尚未有完善的設計方案,FileCoin涉獵了太多的技術及學術難題,使得開發周期變得非常不可控。


  Lambda的解決方案


  而Lambda的思路是,儘可能通過原型系統去迭代實現一個基於區塊鏈的PDP和POR系統,並實現PoST的所有優點,比如連續挑戰和鏈上隨機挑戰。Lambda認為,在非BlockChain情況下,在另外一種和POR不一樣驗證算法中,可以構造一個PDP算法,假設一個可信第三方,通過一定的概率,對於數據的持有性進行驗證,並且把驗證結果以顯式不可篡改的方式來存儲。那麼這個可信的第三方的審計,也就是所謂的TPA,一定可以把驗證結果通過上鏈來實現不可篡改,並且一個單點可信的驗證過程,也一定可以通過一組半可信Validator節點共識來完成。


  而對於Validator節點和角色的使用,是Lambda不同於FileCoin的主要特點,也因此讓Lambda項目的開發難度得以降低。今天,Lambda開放的使用Validator節點的PoST實現,給分布式存儲和區塊鏈存儲領域提供了新的思路和研究方向。


  Lambda的創始人何曉陽


  中國軟體著名技術專家,JVM社區成員,曾在BEA Systems和Oracle擔任研發工程師,何曉陽本人也被稱為「中國APM行業第一人」。


  Lambda的聯合創始人李沫南


  中國頂級程式設計師——Coreseek和Log Insight的創始人之一。

  作為搜尋引擎和文件系統、存儲系統、日誌系統專家,李沫南創作的CoreSeek中文分詞系統曾廣泛用於中文

網際網路

BBS社區。


  據了解,Lambda核心團隊的大部分合伙人都是技術出身,都具有多年的基礎軟體研發和參與開源項目的經驗,曾向Apache基金會旗下多個項目貢獻過代碼,如Camel、Akka、Druid等等,所以Lambda的開源基於非常濃厚,本次也是該團隊第一次在區塊鏈領域貢獻自己的開原始碼。


  END


  參考文獻


  * 解析V神文章《達到99%容錯共識算法》


  * Lambda聯合創始人高海強:去中心化存儲中數據完整性證明是關鍵


  * 騰訊雲數據丟失事件思考:存儲的未來在哪裡?


  * Filecoin中文白皮書


  * 在解決數據可用性挑戰上,我們和V神做了同樣的選擇


  關於Lambda

  Lambda是一個高速、安全、可擴展的區塊鏈基礎設施項目,通過對Lambda Chain和Lambda FS的邏輯解耦和分別實現,向去中心化應用提供可無限擴展的數據存儲能力。Lambda 獨特之處在於,通過驗證節點的共識完成數據的持有性證明(Provable Data Possession)和可恢復性證明 (Proofs of Retrievability),從而保證了存儲在「非可信存儲節點」上數據的完整性和可恢復性。Lambda宣布獲得真格基金、大都會資本、Dfund、泛城資本、策源數字基金、BlockVC、INBlockChain、時戳資本、NGC、DATA基金會、星耀資本、紅岸基金、Bluehill等頂級機構領投的數千萬美金融資。

(責任編輯:李顯傑 )

相關焦點

  • 阿里雲計算能力實現多項突破 BigBench規模全球首次被拓展至100TB
    BigBench全球首次達到100TBTPCx-BigBench是大數據端到端真實複雜的業界領先測試基準,目前,TPC官網公布的測試最大規模為10TB,最佳性能是1491.23BBQpm。當天,阿里雲與Intel合作,在最新的Intel硬體上,基於公共雲發布的BigBench On MaxCompute+PAI,全球首次將規模拓展到100TB,達到7000 BBQpm,也是首個基於公共雲服務的Benchmark。
  • 中國科大首次實現線性方程組量子算法
    最近,由中國科學技術大學潘建偉院士領銜的量子光學和量子信息團隊的陸朝陽、劉乃樂研究小組,在國際上首次成功實現了用量子計算機求解線性方程組的實驗。該研究成果發表在6月7日出版的《物理評論快報》上。線性方程組廣泛地應用於幾乎每一個科學和工程領域,包括數值計算、信號處理、經濟學和計算機科學等。
  • 2018年,你最應該跟蹤的全球十大開源AI項目 - 技術專區_人工智慧...
    其提供多種算法以實現分類、回歸、聚類、降維、模型選擇以及預處理等等。其用戶包括Spotify、Evernote、OKCupid以及Change.org等等。其最初屬於谷歌Summer of Code項目,並在隨後的發展當中得到了多個組織機構的資助——具體包括INRIA、Paris-Saclay數據科學中心、紐約大學、Télécom Paristech、哥倫比亞大學、Alfred P.
  • HYCON實現世界首次成功開發了DAG∙ SPECTRE共識算法
    2018年11月23日,HYCON團隊宣布,已成功開發了DAG SPECTRE共識算法,這是全球範圍內首次成功開發!運用該技術,HYCON處理速度將升至3000TPS以上,預計實現與VisaNet相當的處理速度。
  • IPSE POST:從1.0到2.0,技術升級實現生態賦能
    IPSE作為全球首個分布式存儲與搜索網絡引擎,極大地賦能區塊鏈與分布式經濟時代的到來。在全球經濟遭遇「黑天鵝」,下滑衰退的大環境下,依然保持高速成長的勢頭。進入2月以來,項目發展高度活躍,利好不斷。國際頂尖資本金沙江數字基金向IPSE POST追加1000萬美金,Brock Pierce正式加入IPSE POST成為戰略顧問,以及各大投資機構和全球節點社區的熱切追蹤標誌著全球科技產業與投資界對IPSE POST的高度關注。
  • Java 8 Lambda 的實現原理及源碼剖析
    在沒有深入分析前,讓我們先想一想,Java 8中每一個Lambda表達式必須有一個函數式接口與之對應,函數式接口與普通接口的區別,可以參考前面的內容,那麼你或許在想Lambda表達式是不是轉化成與之對應的函數式接口的一個實現類呢,然後通過多態的方式調用子類的實現呢,如下面代碼是一個Lambda表達式的樣例:@FunctionalInterfaceinterface
  • 微軟開源用於 Azure 數據壓縮的算法、硬體和源碼
    微軟正在向 OCP(開源計算項目,Open Compute Project)發布 「Project Zipline」 數據壓縮算法
  • 挑戰目標跟蹤算法極限,商湯開源SiamRPN系列算法解讀
    商湯科技智能視頻團隊首次開源其目標跟蹤研究平臺 PySOT。PySOT 包含了商湯科技 SiamRPN 系列算法,以及剛被 CVPR2019 收錄為 Oral 的 SiamRPN++。此篇文章將解讀目標跟蹤最強算法 SiamRPN 系列。
  • ...工程學院盧策吾團隊在人工智慧《自然》子刊提出時空概念提取算法
    更進一步,時空信息概念的分離也讓 「概念編輯」成為了可能。概念編輯有了時空分離的能力,SCS將可以初步做到「概念編輯」。比如,通過編輯空間概念且保留時間概念,我們可以讓一個原本用於預測狗的運動軌跡的模型做到預測貓的軌跡。這樣將以比較小的代價實現模型的泛化,同時也擴寬模型的使用場景與部署難度。如圖6.
  • 員工竊取前東家算法,還拿到 PyTorch 開源?Facebook 被 MIT 教授...
    在擔任技術總監期間,茲拉特斯基有權限獲得公司所有的商業機密、專有信息和商業計劃,關鍵是他能夠接觸到同時也協助編寫了編譯器核心算法的原始碼。2019 年 7 月,茲拉特斯基離開神經魔法,加入 Facebook,並表示不會涉及到此前參與的編譯器工作。神經魔法也選擇信任他,因為有相關的保密協議,同時預期的工作內容也並不涉及編譯器相關工作。結果證明這種信任是錯誤的。
  • Face.com API替代版:Lambda Labs推出開源Face API
    趁此就會,舊金山一家初創公司Lamba Labs推出了開源版Face API作為Face.com API的替代品。當該技術還處於開發階段時,文章作者有幸採訪了Lambda Labs聯合創始人Stephen Balaban。據Stephen透露,公司想要走開源路線,並最終通過向一些大客戶收費來盈利,這是開源公司採用的慣常做法。
  • Excel發布LAMBDA功能,實現圖靈完備
    如果能在其基礎上進行自主定義和編程是一個很大使用場景,現在這個願望可以達成了,使用LAMBDA可以基於公式實現可自定義可重用函數的能力。概述簡而言之,LAMBDA允許用戶將Excel的公式語言來定義自己的自定義功能。
  • 算法聖經《算法導論》第三版習題答案開源!
    》——一本每個程式設計師都會接觸的算法經典教材!不論你是寫 Java、C++、Python;也無論你是做前端還是 AI 人工智慧,都或多或少地接觸算法。《算法導論》這本書,可以稱作是算法學習領域的聖經了。今天給大家收集了一份非常不錯的資源,就是《算法導論》第三版的習題答案完整版!祝你事半功倍~書籍介紹:
  • 目標跟蹤最強算法開源:商湯SiamRPN系列解讀
    雷鋒網(公眾號:雷鋒網) AI 科技評論消息,日前,商湯科技智能視頻團隊首次開源其目標跟蹤研究平臺 PySOT。PySOT 包含了商湯科技 SiamRPN 系列算法,以及剛被 CVPR2019 收錄為 Oral 的 SiamRPN++。此篇文章將獨家解讀目標跟蹤最強算法 SiamRPN 系列。
  • FM+FTRL算法原理以及工程化實現
    前言上一篇文章講了LR+FTRL算法原理以及工程化實現。在實際的項目開發中,常常使用的是LR+組合特徵+FTRL的方式進行建模。這種方式需要人工組合特徵,非常考驗經驗,而且存在線下組合的有效特徵線上不一定有效、當前有效的特徵未來也不一定有效,所以逐漸被其它的可以自動組合特徵的模型取代。業界常用的兩種組合特徵的方式是:FM系列以及Tree系列。
  • 易觀OLAP算法大賽結果揭曉,開源組黑馬放大招!
    6組算法新人王誕生本次易觀OLAP算法大賽分為商業組和開源組兩個組別進行,從7月開放報名到10月正式環境跑benchmark。用bitmap快速過濾和基於時間戳序列匹配的算法,利用Apache Spark、Alluxio等開源框架快速落地實現,使用了一系列工程優化方法,在每日數百億條日誌和百萬屬性的數據集上,實現有序漏鬥的秒級查詢。在易觀正式數據環境中,在26億數據,400萬用戶,幾十個屬性的場景下,美團點評團隊均實現了快速查詢。
  • 10 個頂尖的 Linux 開源人工智慧工具
    官方網站:http://caffe.berkeleyvision.org/H20 是一個開源的,快速的,可擴展和分布式的機器學習框架,還有框架配備的算法。MLlib 還附帶分類、回歸、推薦、聚類、生存分析等等的算法集合。重要的是,它可以用於 Python、Java、Scala 和 R 程式語言。
  • GitHub 標星 20000+,國產 AI 開源從算法開始突破|專訪商湯聯合...
    從2018年開始,奔著「開源、統一、可復現」的目標,商湯開始建設人工智慧算法的開源體系。當時,商湯聯合創始人林達華教授則主導發起了OpenMMLab項目,今年商湯將其升級為商湯的算法開放體系。然而為何商湯選擇先開源 OpenMMLab,而不是 SenseParrots,背後是出於什麼考慮?會有開源的規劃嗎? 8月,在蘇州舉行的全球人工智慧產品應用博覽會上,CSDN 與林達華教授一起聊了聊商湯的開源規劃,以及產學研結合的那些事。
  • Java 8裡面 lambda 的最佳實踐
    算法中引入鎖不但容易出錯,而且消耗時間。人們開發了java.util.concurrent包和很多第三方類庫,試圖將並發抽象化,用以幫助程式設計師寫出在多核CPU上運行良好的程序。不幸的是,到目前為止,我們走得還不夠遠。那些類庫的開發者使用Java時,發現抽象的級別還不夠。處理大數據就是個很好的例子,面對大數據Java還欠缺高效的並行操作。
  • 谷歌開源了量子算法框架Cirq,「軟硬兼施」擁抱量子霸權時代
    谷歌的計劃是,5年實現量子技術的商業化。當然,這個計劃裡不能只有硬體,算法也要跟上。開源框架,為NISQ而生於是,谷歌開源了Cirq框架,這是專為NISQ算法打造的框架。這個框架,經Apache 2.0協議許可,可以修改,可以嵌入任何開源/付費的軟體包。