生命之花(Flower of Life)是基于生命數據的大健康公鏈,利用一主鏈三側鏈(永久存儲鏈、臨時存儲鏈、計算鏈)的四鏈結構解決生命數據的存儲、分析、預警、交易問題。FOLI 核心功能有健康數據存儲、疾病分析、基于大數據的預警和健康數據的查詢、搜索和交易。
由于生命數據的珍貴、隱秘和多樣性特點,FOLI 采用去中心化設計,集成優化 P2P 網絡和 IPFS 的優點,保證了文件存儲的有效性。同時采用多級訪問權限證明,保證了整個區塊鏈的健壯和穩定性。
生命數據種類多樣、數量龐大,其數據的挖掘需要巨大的計算能力來支撐,因此我們將使用 Dadoop(Distributed Hadoop) 來提供計算服務。挖掘算法,可以從永久數據鏈讀取生命數據,發送計算任務到分布式計算鏈,中間結果存儲到臨時數據鏈,結果回存到永久數據鏈,有效的經驗將被系統應用為 EAAS(Experince As A Service),并開放給用戶使用。
FOLI 提供了一個隱私分類的數據分享和交易協議,把用戶的生命數據分為普通級、秘密級和隱私級,分別提供不同的訪問權限,支持靈活的數據交換。
同時,FOLI 是一個開放的泛健康公鏈,基于生命數據的隱私分級,結合智能合約和開放接口,可以實現主體、數據、價值、適配、信任、場景六維基礎的連接。
本文介紹了 FOLI, 它是一個是以計算和存儲為中心的去中心化生命數據區塊鏈網絡,基于健康行業數據隱私性強、計算量大的特點,提出以下創新:
1. 隱私分級和同態加密;
2. 永久數據鏈、臨時數據鏈、計算鏈和主鏈,四鏈合一;
3. 引入 Dahoop(Distributed Hadoop) 來協同大數據計算,滿足生命數據分析需求;
4. 基于 FOLI 的存儲和計算架構,為健康數據提供獨特支持 , 既能滿足 B 端用戶需求,又能滿足 C 端用戶需求。
FOLI 技術架構
FOLI 整個系統被設計成一個健康數據生態平臺,通過數據標準化采集,在去中心化的健康數據存儲的基礎上,提供基于生命數據的大數據查詢、分析和計算服務。數據查詢和分析任務可以在授權的范圍內使用,這些數據也可以在 FOLI 中進行交易和存儲。FOLI 將連接智能硬件、個人計算機、專用的礦機來促成低成本、去中心化的健康數據收集、存儲和計算。
FOLI 提供四個主要的功能:健康數據采集、數據存儲、數據計算和數據交易。通過標準化數據采集和激勵機制的引入,獲取巨量的數據,通過去中心化存儲來保證存儲的容錯性要求,通過分級的隱私數據管理,各種分析算法將直接作用于海量的數據而生成有用的結果,數據的產生者也可以通過交易的形式獲取相應的回報。
1、FOLI 設計理念
FOLI 整個系統設計的理念在于使用激勵的機制為健康產業提供廉價的存儲和計算功能,并利用存儲和計算為泛健康生態服務基礎,把醫生的經驗直接以 Experience As A Service(經驗即服務)的形式呈現。
FOLI將使用Hadoop作為計算引擎,IPFS作為存儲引擎,FoundationDB作為索引數據引擎。計算鏈負責數據計算,臨時存儲鏈負責存儲非持久性臨時數據,永久數據鏈存儲用戶健康數據,主鏈負責側鏈之間的協調和記賬功能。
2. 多鏈結構
2.1 FOLI 設計為四鏈結構
其滿足三個主要屬性:
1. 主鏈和側鏈結構;
2. 主鏈和永久存儲側鏈不可更改,計算側鏈和臨時存儲側鏈可以更改;
3. 存儲數據結構化。
第一個屬性確定了整個網絡的主從結構,第二個屬性可以解決系統的拓展性、容量和延遲問題,第三個屬性確定數據的統一接口和應用標準。在 FOLI 鏈中,主鏈負責交易,側鏈負責計算和存儲,根據數據存儲的性質,又細分為了永久存儲側鏈和臨時存儲側鏈。
2.2 永久存儲側鏈
IPFS、Storj 是流行的分布式存儲協議,我們在 IPFS 的基礎上,針對高頻文件和長尾文件區別對待,以最大化的優化存儲的效率,實現線上數據和線下存儲的辯證統一。
2.3 臨時存儲側鏈
在 FOLI 框架下,將產生大量的中間結果和狀態,這些數據并不需要保證長期的一致性,針對這種特殊的需求,我們將把可改變數據,可交換數據存儲在臨時存儲側鏈上。
2.4 計算側鏈
大多數常見的區塊鏈用于記賬,其計算都是非常簡單的,包括以太坊在內的圖靈機完備語言 Solidity 也僅限于簡單的應用,這些計算對資源的要求很低。但在健康領域內的數據挖掘和數據查詢,人工智能都需要非常多的計算機資源,因此對于 FOLI 我們設計更通用的數據查詢SQL 和 Pig/Hive 任務。要存儲所有的計算狀態顯然是不可能的,所以計算側鏈的共識我們將通過隨機驗證和驗證博弈算法來實現。
2.5 數據查詢
數據的查詢是非常重要的一個功能,我們將提供多語言的 API 和Driver 給上層應用服務。
3、FOLI 架構設計
Bitcoin 作為第一代區塊鏈的代表,Ethererum 作為第二代區塊鏈的代表,都使用的單鏈結構,其應用場景相對比較簡單,比特幣主要是貨幣屬性,以太坊可以執行簡單的代碼,但由于其單鏈結構的設計,其性能受到了很大的制約。FOLI 在比特幣、以太坊和 EOS 基礎上,提出了主鏈和側鏈相結合的模式,主鏈負責記賬和協調,側鏈負責執行。
3.1 FOLI 系統架構
最 早 的 共 識 機 制 是 工 作 量 證 明 (POW),Cynthia Dwork 和 MoniNaor 于 1993 年提出,中本聰在 2009 年首次應用到比特幣中。POW 的特點是安全性高、去中心化程度高,最大的缺點是性能差,而且消耗大量的資源用于保證安全性。
為解決 POW 的問題,Sunny King 提出了另一類共識機制——權益證明 (POS)。POS 需要每個礦工抵押虛擬代幣以保證其不作弊,挖礦的難度和其擁有的貨幣數量成反比。通過這樣的設計,系統的速度可以得到提升,不過這種提升是通過犧牲安全性得到的,因為下一個出礦節點被預測的概率大大增加。
2013 年 ,BM(Daniel Larimer) 提 出 了 代 理 權 益 證 明 的 共 識 機 制(DPOS)。DPOS 大大減弱了去中心化機制,通過代理來驗證交易。這些代理節點是通過一幣一選票的形式產生。EOS 是典型的基于 DPOS 的區塊鏈網絡。DPOS 的優點是速度快,缺點是中心化,這是由其代理節點的生成機制和驗證機制決定的。21 節點架構的 EOS 很容易被操控,滋生腐敗。
FOLI的主鏈設計基于Verifiable Random Function (VRF) 的DPOS機制,類似于Algorand(https://people.csail.mit.edu/nickolai/papers/gilad-algorand.pdf ),在保證安全性的同時又解決了性能問題。
永久數據側鏈 (PDSC Permanent Data Side Chain) 是建立在 P2P存儲網絡上,用以存儲永不刪除的生命數據。
臨時數據側鏈 (TDSC Temporary Data Side Chain) 也是建立在P2P 網絡上,用于存儲中間計算狀態、結果以及臨時高頻訪問數據。
計算側鏈 (TSC Task Side Chain) 是用于解決實際問題的計算任務( 例如智能醫生診斷,計算基因缺陷,分析對比血液元素等),這些實際任務將在 FOLI 虛擬機上運行(FVM)。
生命數據存儲在永久數據鏈上,計算側鏈讀取生命數據并運行算法,臨時結果存儲在臨時數據側鏈,當數據被確認后,存入永久數據鏈,運行的過程中,側鏈負責把 Cost 和交易相關數據發到主鏈,主鏈負責Token 的最后確認。
如圖 2 所示,在生命之花網絡中,主鏈負責管理所有的交易和協調其他三條側鏈。主鏈通過智能合約驅動計算和存儲,側鏈的引入可以提高整個系統數據存儲和計算的效率。每條側鏈擁有其單獨的共識機制,計算側鏈是用可驗證數據計算共識,臨時存儲側鏈是用 PoST(時空證明),永久存儲側鏈則是使用 rPoST( 更新版的 PoST)。主鏈的操作不受側鏈的影響,而在其上運行的智能合約也可以分為四類:
1. 不需要訪問存儲和計算側鏈的合約(例如轉賬,錢包操作,創建自己的虛擬貨幣等);
2. 只需要訪問存儲的智能合約(例如訪問病人的病歷信息);
3. 只需要訪問臨時存儲和計算的智能合約(例如對自有的數據進行醫學模型驗證);
4. 需要臨時存儲、永久存儲和計算的智能合約(病情分析,病情預警等)。
圖 3 就是一個時序圖,簡單的敘述了合約的執行過程。
3.2 主鏈
FOLI 主鏈區塊生產的流程如圖 4 中描述的過程。首先在每一輪中 會 由 一 個 隨 機 泉(Random Spring) 產 生 一 個 隨 機 數(Random value)。這個隨機數有兩個作用,一個是選出這一輪的區塊生產人(Block Makers),二是選出這一輪的區塊公證人(Notary)(圖中的 1 過程)。在區塊生產人被選出以后,提議這一輪的新區塊然后提交給區塊公證人(圖中 2 過程)。區塊公正人接收提議區塊后將其公證(只有最終被公正的區塊才能作為新區塊加入區塊鏈),然后將公證的區塊向全網廣播(圖中 3 過程),一個新的區塊正式生成。在隨機燈塔收到經過公證的區塊后,產生下一輪的隨機數,然后重復上一過程。
通過引入 VRF 的 DPOS 機制,在保證安全性的基礎上,大大的提高了交易的確認速度和性能。側鏈使用和主鏈一樣的 Token, 也可以使用單獨的 Token,按照一定比率進行兌換。
3.3 數據側鏈
數據側鏈是基于 P2P 存儲網絡 IPFS。鏈本身只作為激勵層,不負責數據存儲本身,FOLI 使用時空證明 PoST 作為數據的共識機制。PoST 是去中心化分布式存儲的基礎,其優勢包括閃電交易速度、高隱私、低交易費等優點。
根據數據的持久狀態,FOLI 數據鏈分為兩類:一個是持久數據側鏈,此側鏈的數據是長期保存的數據,具有持久性、長尾性,但對穩定性有很高的要求。另一個是臨時數據側鏈,合約執行的臨時數據或者具有時效性的數據,將存儲在臨時數據側鏈,此側鏈上的數據要求訪問速度快,訪問頻繁。
臨時數據側鏈對應于傳統的 Cache 緩沖層,持久數據側鏈對應于數據庫 Persistent 層。
3.4 計算側鏈
計算側鏈結構和數據側鏈類似,當客戶端通過 SDK 發送到網絡,請求存儲在鏈上,鏈充當一個任務分發池的功能,每一個礦工都可以從任務池中獲取任務,當任務完成以后,任務的狀態信息將發送到計算鏈來更新狀態和獲取激勵。
計算側鏈不僅具有 MapReduce Miner,通過構建無狀態點對點數據庫,它同樣可以實現數據查詢的任務。FOLI DB 基于 Orbit DB,使用 IPFS 作為數據存儲層,IPFS PubSub 來自動同步數據庫。這里MapReduce 和 DB Miner 在同一個容器中,可以分開調度和管理,也可以聯合調度和管理。
3.5 跨鏈通信
在 FOLI 鏈,有幾種不同類型的跨鏈通信:
1. 主鏈,計算鏈(純計算任務,無中間存儲,適用于自包含數據任務);
2. 主鏈,永久存儲鏈(純存儲任務,醫療數據,健康數據上傳,下載);
3. 主鏈,計算鏈,永久存儲鏈 ( 無中間存儲,結果直接作用于永久存儲鏈);
4. 主鏈,計算鏈,永久存儲鏈和臨時存儲鏈。
圖 8 展示了 FOLI 跨鏈協議在最復雜的四鏈的情況下的交互,其他類型的跨鏈通信只是四鏈通信的子集。
跨鏈通訊流程:
⑴ 。 任務或者查詢發起人,通過任務和查詢接口,提交查詢 / 任務到主鏈。主鏈負責:
①驗證區塊狀態;
②驗證跨鏈合約正確性;
③鎖定賬戶余額;
④任務或者查詢發送到計算鏈。
⑵ 。 根據任務類型,任務的執行者和驗證者都會把合約代碼和數據導入生命之花虛擬機,并在 FVM 中執行計算和驗證。計算鏈主要負責如下功能:
①解析合約代碼和查詢代碼,并分解執行;
②讀取寫入數據鏈,包括臨時和永久數據鏈,合約代碼中會指定存 儲類型,類似于緩存和磁盤結構;
③在需要的時候,把必要的數據傳回主鏈。
⑶ 。 數據存儲鏈,主要是為了提供基礎的數據存儲功能,臨時數據鏈重在訪問速度和效率,永久存儲鏈重在可用性和完整性。存儲鏈主要功能:
①驗證區塊格式;
②保證底層數據存儲的可用性,完整性和安全性;
③通知主鏈有關數據讀寫的消息,確保賬號余額足夠支付存儲費用。
⑷ 。 當任務完成后,任務結果返回給執行人,主鏈記錄狀態變成完成狀態,主鏈和不同側鏈的礦工得到回報。
4、 計算驗證模型和共識機制
健康產業需要一系列的計算能力和查詢能力,FOLI 鏈的核心是提供去中心化的計算、查詢和存儲平臺。在拜占庭環境下,我們必須要構建一套驗證機制來保證計算的可驗證性來避免惡意節點通過偽造結果來獲利。針對不同的任務類型,我們使用了『計算 - 挑戰 - 仲裁』模型和『概率可驗證計算』來保證計算的可驗證性。
在 FOLI 鏈中,因為任務的多樣性,對準確性和速度都有不同的要求,我們通過調整任務人的個數和驗證的個數來優化系統。
4.1『計算 - 等待窗口 - 挑戰 - 仲裁』模型
在中心化平臺,一般的任務不需要多臺機器同時執行,因為結果是可預知的,而且平臺本身保證了數據的正確性,在去中心化平臺中,為了防止礦工作惡,我們提出了『計算 - 窗口 - 挑戰 - 仲裁模型』,模型的運行過程如下:
1. 用戶提交計算任務;
2. 礦工獲取并提交計算結果;
3. 進入窗口等待期,如果沒有挑戰,則直接獲取回報;
4. 如果有挑戰,挑戰人提交核對結果;
5. 仲裁人比較結果,在結果矢量中獲取第一個不同的結果,計算出正確答案,仲裁結束。
4.2『概率可驗證計算』模型
要驗證某個單一計算的正確性是非常困難的,所以在 FOLI 網絡中,我們通過多個節點的計算,來獲得統計上的正確性,結合計算 - 等待窗口 -挑戰 - 仲裁模型,我們可以提高作惡的成本,降低作惡成功的概率。
假設在網絡中有 N 個活躍節點,M 個惡意節點 。 我們定義規則為:
1. 鏈上保存一個計數器;
2. 當出現 W 個結果而且結果都一樣的時候認定為正確結果并把結果返回給調用者;
3. 如果出現任意一個結果不符,重置計數器重新分發;
4. 所有的礦工在提交任務結果前都需要繳納一筆抵押金,如果任務結果確認,押金返還,否則會被系統沒收并分發給網絡中貢獻者。
根據上述規則定義,系統返回錯誤結果的概率為 W 可以由應用層指定,默認值由系統根據活躍節點數動態調整。
5、差分隱私保護
5.1 隱私分級和保護策略
為了保護用戶隱私,我們把系統中的數據分為幾個級別:
1. 絕密(隱私,只有私鑰才可解鎖);
2. 秘密 ( 基于私鑰的令牌機制 );
3. 普通(可搜索)。
FOLI 使用以下策略來保證數據的隱私保護:
1. 數據鏈數據的分段,每一個文件在一臺機器上只有片段;
2. 數據合成查詢的時候,使用同態加密技術;
3. 對于私密文件,用戶在上傳時直接采取個人加密技術。
5.2 同態加密技術
顧名思義,同態加密是一種加密的形式。在不對稱情形下,它可以接受完全可讀的文本,然后基于“公鑰”將其轉變為亂碼。更重要的是,它可以基于“私鑰”將亂碼轉回同樣的文本。理論上,除非你有“私鑰”,你無法解碼加密后的亂碼。
同態加密是一種特殊形式的加密。它允許某人在無法閱讀信息的前提下以特定的方式修改加密信息。例如,同態加密可以應用于數字上,讓加密過的數字可以進行乘法和加法運算而無需解密數字。FOLI 中大量使用同態加密技術來保證數據的隱私性和可計算性。
生命之花(FOLI)應用
在未來的若干年中,生命之花將與全球大健康產業各節點、機構合作并落地一批區塊鏈項目。未來,生命之花將深耕生命科學領域,為更多的應用場景提供堅實的區塊鏈基礎設施,提升行業效率,降低業務運營成本,提升各級數據的私密性。
生命之花將從生命科學、社會、經濟等維度構建區塊鏈普世的應用網絡,結合人工智能、大數據、虛擬現實、機器人、物聯網、云服務等新科技,在基因工程、抗癌研究、科學實驗、藥品追溯、醫療數據、醫療器械、醫療金融、有機農業、食品、醫院、藥店、公益慈善等方面推廣落地應用。
1、大病互助
特指大病醫療互助。每個生命都有生存的價值和意義。現實生活中,太多家庭或者個人因為大病、重病不能及時籌集資金而失去最佳治療時機,或者因為治病而從此過上貧困生活,更多病患無法及時尋找適配的治療方案或者治療機構而耽誤時機。
生命之花在大病醫療互助上,將會率先對癌癥、艾茲病等提供技術、數據及金融方案的服務。區塊鏈技術讓醫療慈善更加透明、公正與可監控。
2、產品溯源
藥品、營養品、健康產品的溯源是生命之花的重要應用之一。生命之花通過對藥材種養殖、原料基地、收集加工、生產過程、包裝、運輸、倉管等多個環節提供基于物聯網的溯源與分布式賬本技術,對藥品、營養品、護理產品等健康產品進行溯源。
3、醫藥研究
人類對生命科學的探索從未停止,特別是癌癥、糖尿病、阿茨海默癥等重大疾病。制藥公司在證明其藥品價值方面面臨著越來越大的壓力。根據行業估計,每年約有 3000 億美元的藥物因沒能提供預期的效果而被浪費,同時也使患者遭受了藥物帶來的不良副作用。因此,制藥行業必須轉向以病人為中心的藥物開發模式,以實現未來的靶向治療。在科學的解決數據加密的前提上,提供公平的、系統的、充足的數據支持科學家的研究,將會大大促進對生命密碼的解釋。
區塊鏈技術以其完善的安全基礎設施可以實現健康數據的無縫交換,推動更大規模的基因組學研究,從而促進精準醫療的發展。隨著藥物開發行業不斷在精準醫療上押注,基于區塊鏈的、不可變的記錄可能會消除臨床試驗數據校正的負擔和成本,并促進研究成果的共享。
4、醫學教育
利用區塊鏈技術實現分布式醫學教育,是全球大健康的重要事件。讓有知識、有經驗、有教學能力的教師或者醫生在科學傳播知識、實現知識即價值的同時,讓更多的學生多維度的獲取醫學知識與經驗,可以更大程度的提升醫療水平。
5、健康科普
讓民眾掌握更多健康知識,是減少疾病的重要環節。利用區塊鏈技術,可以讓民眾更方便、科學的掌握正確的健康知識。通過對每個健康知識傳播者進行鏈上記錄,確保科學、正確的健康知識被更多人了解,同時讓虛假的、不準確的健康知識被隔離。
6、共享設備
日常健康檢測設備的缺乏,導致民眾無法精準掌握自身健康的重要環節。通過共享健康檢測設備,確保大部分民眾方便、快捷、系統的掌握自身健康數據,及時了解健康狀況,并作出準確的記錄。
7、智慧醫療
面對廣大民眾的健康需求,有高超醫術的醫生永遠都是稀缺的,而這些醫生因為地域和時間的限制,能受益的人群有限。通過智能合約機制,讓優秀的醫生診斷經驗更方便、快捷地讓民眾收益,是生命之花利用區塊鏈解決的重要一環。利用大數據與醫生經驗,開啟智慧醫療的加速,是生命之花的核心使命。
8、健康檢測(皮膚、基因、血液、蛋白質、維生素)
為各類檢測方向提供數據存儲與加密技術,是生命之花的基礎。利用去中心化的方式,為體檢設備生產商、機構提供大數據存儲、計算與加密技術。不同于現有的安全系統,區塊鏈使用內置的密碼學技術在分布式網絡上運行,技術保障了數據的不可修改性。健康醫療數據的共享不僅僅是信息交換,而是兩個或兩個以上的系統或實體之間基于彼此的信任來使用共享的問責性信息,生命之花可提供一個不可變的、受信任的工作流。
9、數據安全(生命盾)
不同于現有的安全系統,區塊鏈使用內置的密碼學技術在分布式網絡上運行,技術保障了數據的不可修改性。由此醫療系統、醫療設備制造商以及醫療技術公司可以利用區塊鏈技術增強其設備識別管理功能,對病人生成的健康數據提供選擇性的訪問權限。
評論
查看更多