• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 自媒體 查看內容
    • 3261
    • 0
    • 分享到

    Genaro黃皮書解讀:“區塊鏈+分布式存儲”集大成者

    2018-8-1 20:27

    來源: cc-value


    通讀此文,不僅能對Genaro項目在技術層面上有個較完整的理解,而且能對當前最熱門的云計算、區塊鏈以及分布式存儲技術有個大致的了解。


    作者:古千峰

    編輯:七七


    昨天,Genaro項目技術黃皮書發布,筆者在第一時間下載(網址:https://genaro.network/en/documentation/Genaro%20Network%20Yellow%20Paper_zh),在仔細閱讀后,受益匪淺。建議廣大區塊鏈技術工作者可以看看。篇幅雖然不多,僅14頁,但幾乎涵蓋了80%的當前流行的分布式存儲與區塊鏈技術。


    通讀此文,不僅能對Genaro項目在技術層面上有個較完整的理解,而且能對當前最熱門的云計算、區塊鏈以及分布式存儲技術有個大致的了解。


    之所以有以上評價,源于Genaro本身就是一個集區塊鏈技術與分布式存儲于一身的特殊項目。打個不恰當的比方:Genaro=以太坊+IPFS。


    因此,要解讀Genaro的技術黃皮書,得分兩個部分,分別是分布式存儲區塊鏈。


    下圖是筆者整理的白皮書思維導圖,將根據這個思維導圖進行下一步解讀。



    一、Kademlia


    分布式存儲技術的基礎是P2P網絡,之前BT網絡、eMule、VeryCD等等,都是P2P網絡。P2P技術經過這些年的發展,已經相當成熟。比較有代表性的算法有Kademlia DHT,以及由其派生出的Coral DSHT和S/Kademlia DHT等等。不僅僅是上述提到的P2P網絡,IPFS和Genaro也都使用了Kademlia分布式哈希技術。因此,大致了解下什么是Kademlia很有必要。


    Kademlia算法要解決的問題就是在沒有中心化索引目錄的情況下,如何在保存了不同文件的節點上,快速找到需要的文件。Genaro的黃皮書中用了大量篇幅來介紹Kademlia,但技術性太強。筆者用一個算法例子來解釋下Kademlia。


    假設一個學校某一天決定把中心化圖書館拆了,把圖書交給每個學生,同學之間互相借閱,那么怎么才能快速找到需要借的書在誰手里呢?


    比如:Alice同學(學號00000110)想找《分布式算法》,她首先需要把書名進行哈希計算,得到該書名的哈希值為 00010000。那么Alice就知道她需要找到 00010000 號同學(命名為Bob同學)或學號與Bob鄰近的同學。


    那么怎么才能找到Bob呢?Bob的學號 00010000 與Alice的異或距離(不是物理距離)為 00010110,距離范圍在[24, 25),所以Bob可能在k-bucket 5中,即第五區中。


    然后Alice看看自己的k-bucket 5(通訊錄的第五區,請注意,該“通訊錄”一般只占極小部分,否則便成為了中心化索引)中有沒有Bob,這里有兩種情況:


    1.如果有,那就直接聯系Bob借書;


    2.如果沒有,在k-bucket 5(第五區通訊錄)里隨便找一個同學B(注意是任意同學,它的學號第5位肯定與Bob相同,即他與Bob的距離會小于24,相當于比Bob、Alice之間的距離縮短了一半以上),Alice請求同學B在它自己的通訊錄里按同樣的查找方式找一下Bob:


      a.如果B知道Bob,那就把Bob的手機號(IP地址)告訴Alice;


      b.如果B也不知道Bob,那B按同樣的搜索方法,可以在自己的通訊錄里找到一個離Bob更近的同學C(Bob、C之間距離小于23),把C同學推薦給Alice;Alice請求C同學進行下一步查找。


    如此下去,直到找到為止。

    ?


    Kademlia的這種查詢機制,有點像是將一張紙不斷地對折來收縮搜索范圍,保證對于任意n個學生,最多只需要查詢log2(n)次,即可找到獲得目標同學的聯系方式。如果是1000萬個節點的話,只需要尋找最多log2(10000000) = 23.25次,即可找到需要的內容。

    ??


    這也是目前絕大多數分布式存儲網絡都采取Kademlia算法為數據發現的原因,因為檢索效率很高。

    (以上案例節選于《易懂分布式 | Kademlia算法》一文)


    二、可搜索加密技術


    該技術屬于加密技術在云計算領域的應用。


    顧名思義,就是基于密文進行搜索查詢的方案,用密碼學來保障用戶的數據隱私信息。


    用戶不需要將所有加密文件全部下載到本地,然后在進行檢索,從而節約了大量的帶寬消耗和磁盤空間消耗。通過在線的加密搜索,可以直接檢索加過密的數據,并根據需要下載。


    Genaro使用了可搜索加密技術中的一種,即:搜索對稱加密(SSE: searchable symmetric encryption)


    三、代理重加密


    該技術也屬于加密技術在云計算領域的應用。


    代理重加密技術可以解決用戶在數據共享方面的不便。


    代理重加密實質上是一種用于密文之間的密鑰轉換機制。在代理重加密過程中,服務商得不到數據的明文信息。


    具體流程是授權人A透過代理者產生針對被授權人B的轉換密鑰。代理者利用該密鑰,將原本由授權人A的公鑰加密的密文轉化為由用戶B的公鑰所加密的密文。


    這樣就在很大程度上解決了用戶A與用戶B需要共享公鑰的問題,被授權人B只需要使用自己的私鑰就可以獲取密文對應的明文。從而實現了用戶之間的安全的數據共享。


    四、I/O流協議


    作為區塊鏈和分布式存儲混合型項目,如何打通區塊鏈的鏈上與分布式存儲的鏈下數據,是個非常重要的問題。讓以分布式存儲的鏈下數據也同樣具備鏈上數據的可信度,是I/O流協議需要解決的問題。


    GSIOP 就是通過加密的方式保證了鏈下存儲可靠性的協議方案。這種方案的最終目的是解決數據上鏈問題,也就是目前的區塊鏈技術一直以來無法解決的Oracle(預言機)問題。希望Genaro的區塊鏈+分布式存儲方案能在這個問題上有所突破。


    以上四項技術屬于分布式存儲,接下去來看下Genaro項目的區塊鏈部分。


    首先,Genaro的區塊鏈部分是基于以太坊做的修改,在以太坊的虛擬機EVM中,增加了和文件存取相關的指令opcode。同時在Solidity語言中,也相應的增加了相關開發語法,形成了自身的GVM虛擬機。這種設計,將對現在主流的DAPP開發者-以太坊社區有利,能快速基于Genaro開發DAPP應用。


    其次,在共識機制上,為了提升以太坊共識效率。同時,為了保證加密分享的文件本身是可以被證明存儲完整性的,而不是存儲后無法找回。Genaro對早期IPFS的PoR(復制證明)算法上做了改進,提出了SPoR算法,并與以太坊Casper的POS算法進行融合,提出了POS+SPoR的混合共識算法。


    PoR算法也是幾乎所有分布式存儲的通用算法,最近PoR算法有了新的突破,斯坦福大學的Ben Fisch最新的關于PoR算法研究論文出爐,見 https://web.stanford.edu/~bfisch/porep.pdf,筆者將對此報告做另行解讀。



    對Genaro的解讀至此,通過以上文字,讀者可以看出,Genaro在整合一些成熟的技術的基礎上,做了新的改進。這種整合與改進也是正是比特幣、以太坊、IPFS等項目采取的方式。這種“積木式”開發,不僅僅在互聯網行業非常流行,即使在底層公鏈上,也是如此。


    作者簡介


    古千峰,美國區塊鏈媒體BTC Media亞太區CTO,Ripple早期開發者,分布式商業實踐者與顧問,柚子杯黑客馬拉松巡回賽發起人,武谷社區創始成員,IPFS原力區創始成員,哈希說區塊鏈課程顧問,上海軟件業協會首批認證區塊鏈架構師。

    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频