《使用智能合約實作異構區塊鏈之間的安全互操作性 》論文筆記
- 一、期刊及作者資訊
- 二、研究背景
- 1.研究現狀(區塊鏈相關研究)
- a.側鏈、軟體連接器和互操作性
- b.區塊鏈作為訪問控制
- c.隱私和資料存盤
- 2.研究目的
- 三、方案介紹
- 1.解決方案概述
- 2.私有區塊鏈中的檔案注冊
- 3.患者對檔案的訪問請求
- 4.智能合約的結構
- 三、總結與討論
Gaby G.Dagher, Chandra L. Adhikari, and Tyler Enderson. “Towards Secure Interoperability between Heterogeneous Blockchains using Smart Contracts.” no. November (2017).
一、期刊及作者資訊
作者資訊:
- Gaby G. Dagher 博伊西州立大學,
- Chandra L. Adhikari 博伊西州立大學,
- Tyler Enderson 博伊西州立大學,
期刊資訊:Future Technologies Conference(FTC),
二、研究背景
區塊鏈是一項新興的技術,人們正在研究其相關概念,以求擴展區塊鏈的使用方式,
1.研究現狀(區塊鏈相關研究)
a.側鏈、軟體連接器和互操作性
通過側鏈實作多個區塊鏈之間的互操作性是擴展可能實作的研究領域之一,固定側鏈1,它允許在鏈之間直接雙向轉移資產,即代幣或加密貨幣,而不需要交換,側鏈通過發送到特殊地址的交易從父鏈接收資產,鎖定父鏈上的資產以在側鏈上使用,固定側鏈隨后能夠利用父鏈協議的修改版本來利用資產,并且可以自由的將資產轉移回父鏈,這種型別的區塊鏈互操作性是有限的,只有資產以1對1的關系轉移,而總資產的數量卻沒有增加,
作者在文章2中,研究區塊鏈技術是否適合作為軟體連接器,即不同組件(如管道或插座)之間的互動機制,此外,還確定了區塊鏈特定鏈上和鏈外組件的設計決策,這影響了訪問控制或資料存盤等需求的可用性,
b.區塊鏈作為訪問控制
區塊鏈已經看到了許多通過交易或智能合約合并各種訪問控制方法的建議,這些交易或智能合約是基于傳統的訪問控制系統,或與傳統的訪問控制系統互動,有趣的是,作為一種使用訪問控制的機制,區塊鏈也被描述為物聯網身份驗證的解決方案,通常,在將區塊鏈用于訪問控制的提案中,交易或智能合同用于在發送方和接收方之間傳遞模糊的對稱密鑰,
c.隱私和資料存盤
隨著互聯網世界中越來越多的個人和私人資料可用,有必要創建保護隱私的存盤系統,雖然有一些方法可以回傳維護隱私的資料查詢,匿名技術可以發布資料,同時通過例如匿名或多樣性來保護隱私資訊,但使用區塊鏈存盤資料可以通過消除可能失敗的第三方集中式可信機構來進一步保護隱私,
MedRec3是一個由麻省理工學院媒體實驗室發布的專案,涉及公共區塊鏈和多個智能合同,以保護和管理電子健康記錄(EHR),
Quorum4是由摩根大通銀行組織的開源專案,
本文提出的解決方案在這些研究領域取得了進展,并通過部署公共和私有區塊鏈上的合同來維護,以執行自主任務,如添加到檔案的鏈接、注冊患者或更改檔案讀取權限,作者在下表中總結了與作者建議密切相關的作業的比較資訊,

2.研究目的
在保持安全訪問的同時實作資料機密性和隱私在包括醫療部門在內的各個領域都是至關重要的,區塊鏈技術的去中心化和以太網智能合約的出現,這兩大特性可以用來創建靈活、安全和更加可靠的新型資料共享和訪問系統,作為概念證明,作者提出并實施了醫療資料記錄管理系統,其中對醫療服務提供者資料庫的訪問通過私有區塊鏈進行管理,僅對醫療服務提供者可用,患者通過公共區塊鏈訪問他們的醫療記錄,此外,作者還為每個區塊鏈開發了一套智能合同,以控制訪問、管理存盤并實作兩個區塊鏈之間的互操作性,
在文章中,作者研究了在異構區塊鏈之間使用智能合約來實作資料共享和訪問控制的安全互操作性,需要一種記錄管理系統,該系統足夠靈活,能夠普遍訪問檔案,保護隱私,提供對個人資訊的完全控制,并使患者能夠確定哪些記錄是可見的,
因此,作者提出并實施了醫療資料記錄管理系統,其中對醫療服務提供者資料庫的訪問通過私有區塊鏈(僅對醫療服務提供者可用)進行管理,患者通過公共區塊鏈訪問他們的醫療記錄,直接存盤在區塊鏈的資料(如檔案鏈接)是加密的,因此只有授權用戶才能訪問,此外,作者還為每個區塊鏈開發智能合同,以控制訪問和管理存盤,每個智能合約可以在可互操作的公共和私有區塊鏈上自主執行其他智能合約,以完成任務,納入這種型別的記錄管理有助于加強系統安全性,以便只有獲得批準的各方才有權查看資料,
三、方案介紹
在這篇文章中,作者探討了如何利用以太坊的區塊鏈技術來實作智能合約進行安全檔案訪問的協議,該解決方案由智能合約組成,這些合約將敏感的輸入資料從公共區塊鏈傳遞到私有區塊鏈,反之亦然,該方案利用私有區塊鏈來防止未經授權的用戶訪問私有網路,為了實作安全性,方案創建了智能合約,例如確認合約(Verify Contract),它在允許訪問指定檔案之前運行多重驗證程序,交易的結構和以太坊的交易標準相同,輸入資料欄位是必須的,而不是可選的,輸入資料欄位用于傳遞各種加密訊息和敏感資訊,
1.解決方案概述
該設計和結構采用了以太坊的公共和私有區塊鏈、智能合約和本地資料庫,為患者提供安全的電子健康記錄訪問,該方法允許患者通過區塊鏈向其提供者的系統發送請求,以太坊區塊鏈上的智能合約用于自動執行任務和實作訪問控制,
假設一個簡單的案例,患者試圖訪問其醫療記錄檔案,案例流程圖如圖,提供者和患者都已在此系統中注冊,步驟如下:
- 提供者創建一個新報告,
- 將改報告插入到本地檔案存盤庫(本地資料庫),
- 對于要鏈接的檔案,將使用結構化引數呼叫檔案連接器(File Linker)智能合約,(注:對于單個檔案,每個鏈接都是唯一生成的,檔案聯結器成功執行后,將創建一個包含輸入資料的交易,)
- 患者請求訪問該檔案,
- 生成檔案訪問請求,并呼叫請求驗證(Request Validator)智能合約,
- 然后呼叫位于私有區塊鏈中的驗證請求(Verify Request)智能合約,該請求會呼叫驗證請求(Verify Request)智能合約,并執行一個三步驗證程序的演算法來驗證,
- 一旦通過驗證,就會呼叫公共區塊鏈上的通知合約(Notifier contract),將加密訊息傳遞給請求者,這個加密訊息包含指向該檔案的實際鏈接,
- 成功執行通知合約(Notifier contract)后,將創建具有輸入資料的交易,一旦交易到達公共區塊鏈,用戶將通過其以太錢包收到通知,然后以太錢包將解密加密鏈接,以獲得指向檔案的實際鏈接,

圖片描述:所有帶圖案的綠色矩形都表示智能合約,橙色矩形表示交易,每個藍色框表示鏈接到鏈中的前一個塊的塊,淺黃色方框代表公有區塊鏈,粉色方框代表私有區塊鏈,淺灰色框表示用戶(患者)節點,淺綠色框表示提供者(醫生)節點,
2.私有區塊鏈中的檔案注冊
在患者請求查看檔案之前,該檔案需要先通過交易在私有區塊鏈上注冊,創建此交易時,提供者需要指定默認權限以及實際檔案,以太地址用于標識初始權限,例如,如果為患者P生成新的醫療檔案,則提供者將利用P的以太地址為P設定查看該檔案的有效許可,所有敏感資訊(如檔案名和下載鏈接)在作為輸入資料傳遞到檔案聯結器(File Linker)智能合約之前都會被加密,
下圖中所示的本地資料庫屬于提供者的節點,其中保存了患者的檔案名f,檔案鏈接l和以太地址,提供者的介面負責使用公鑰密碼系統(例如ElGamal5)來生成映射到檔案f的加密檔案鏈接.
提供者的介面獲得患者的公鑰并使用它生成密文i.此外,使用單向散列函式(即SHA-256)對檔案名f進行散列,以生成256位(32位元組)散列,屬于患者的報告是通過使用他/她的以太公共地址來確定的,該地址是交易輸入資料的一部分,這些文本片段被格式化為單個資料片段,格式如下:[userEthAddress][File Link][hashOfFileName], userEthAddress是患者的以太地址,FileLink是檔案的安全鏈接,hashOfFileName是檔案名f的哈希散列,輸入資料被傳遞到檔案連接器(File Linker)智能契約中,從而產生與所提供的輸入資料的交易,這個向交易中傳入加密輸入的程序被認為是創建了一個可由患者請求搜索的記錄,

圖片描述:提供者在私有區塊鏈上注冊檔案的程序,首先創建一個新檔案并將其存盤在本地資料庫中,步驟2、3、4、5、6和7準備向檔案聯結器智能合約的輸入資料,一旦用輸入資料呼叫檔案聯結器,它將在私有區塊鏈上以交易的形式創建一條記錄,指向指定的檔案鏈接映射到指定患者的以太地址,在驗證患者的請求時,此記錄將是可搜索的,
3.患者對檔案的訪問請求
患者對檔案進行訪問請求時,為了驗證患者是否被授權和注冊,患者需要產生一個檔案名的散列,然后使用其私鑰對該散列進行簽名,簽名和檔案名的散列合并在一起,為請求驗證(Request Validator)智能合約創建輸入資料,通過其以太網錢包,患者呼叫請求驗證來生成一個交易,該交易將作為請求記錄放在公共區塊鏈,請求驗證合約呼叫私有區塊鏈中的驗證請求合約,并將輸入資料傳遞給它,此呼叫將在每個私有和公共區塊鏈中產生一個交易,驗證檔案名的簽名和散列是在智能合約內部進行的,
一旦所有步驟都得到驗證,驗證請求合同將向通知器智能合約發送加密訊息,從而在公共和私有區塊鏈中創建了一個交易,然后,通知器合約將會執行并創建一個涉及患者以太坊地址和由驗證請求合約傳遞的訊息的交易,該傳遞的訊息包含訪問使用ElGamal加密系統加密的檔案的安全鏈接和患者的公鑰,患者將會被告知請求的許可狀態,

此圖按時間順序顯示了用戶請求訪問系統中檔案的流程,在這個階段,該檔案應該已經存放(注冊)在私有區塊鏈中,首先,患者將使用他的私鑰來生成檔案名散列的簽名,完成步驟1到4后,將創建請求驗證的輸入資料,一旦請求驗證合約呼叫驗證請求合約,步驟3將開始,加密訊息將被發送到通知器合約,無論請求是否有效,訊息都將由通知器合約發送到用戶的以太地址,最后,用戶的API負責檢查新訊息,并通知用戶請求結果,
4.智能合約的結構
為了實作互操作性,該方案共使用了五個智能合約:其中三個位于私有鏈,兩個位于共有鏈,私有鏈上有 注冊(Enroller)、請求驗證(Request Validator)、檔案鏈接(File Linker)智能合約,公有鏈上有 驗證請求(Verify Request)和 通知(Notifier)智能合約,

系統中所有合同之間的互動,所有指向合約的黑色箭頭表示它正被位于箭頭起點的另一個合約呼叫,所有紅色連接器都表示由于兩個合約之間的呼叫而發生的交易,每個紅色箭頭要么進入公共區塊鏈,要么進入私有區塊鏈,這表明交易將駐留在指定的區塊鏈上,由于顯示的合約之間的呼叫,總共有兩筆交易進入公共區塊鏈,另外五筆交易進入私有區塊鏈,
- 注冊合約(Enroller Contract):該注冊合約是當提供者將新患者注冊到他們的系統中時執行的初始合約,每次呼叫注冊器合約都將在私人區塊鏈上發布一個交易,使其對私人區塊鏈的成員可見,該交易在輸入資料部分包括加密的患者敏感資訊,這使得在需要時能夠進行有效的搜索,由于交易位于在私人區塊鏈,它比公共區塊鏈更安全,防止公眾查看私人交易詳細資訊,
- 檔案連接合約( File Linker Contract):此合約的目的是確保新的安全鏈接映射到指定的檔案,該合約的輸入可以表示為P1、P2和P3,其中P1指的是患者的以太坊地址,P2代表鏈接的加密文本,P3是要鏈接的檔案名的散列,在本合約成功執行后,將向包含P1、P2和P3的私有區塊鏈發出交易,我們使用此資訊搜索交易串列,以驗證是否有有效用戶請求訪問,當提供程式鏈接檔案時,每個檔案都將使用每個安全鏈接,
- 請求驗證合約(Request Validator Contract):這是一份在公有鏈所執行的全球合約,所有執行該合約的用戶需要是以太坊公共網路中的一個節點,驗證請求合同負責將輸入資料安全地傳遞到位于我們系統的專用網路中的另一個合同,安全傳遞的輸入資料的格式如下: 《signature》《hashOfFile》,簽名驗證的目的是驗證發送請求的患者,檔案的散列將用于搜索私有區塊鏈中的交易,
- 驗證請求合約(Verify Request Contract):這是另一份位于私有區塊鏈中的合約,用于加強系統安全性,該合約負責驗證所有輸入,并通過檢查所請求檔案的權限來確定請求的有效性,它采用兩個引數:患者傳遞的檔案名的簽名和其散列,然后使用一個使用三步驗證程序的演算法:
(1)簽名驗證(Signature Validation):使用患者的公鑰和檔案名的散列進行驗證通過的簽名,以確認它確實是由該特定患者發送的,
(2)注冊驗證(Verification of Registration):簽名驗證成功后,驗證請求合約將呼叫注冊者合約,該合約將驗證地址是否已在私有網路中注冊,
(3)交易搜索(Transaction Search):此步驟包括通過掃描輸入資料部分尋找以太地址和檔案散列匹配,搜索位于私有區塊鏈中的交易,最初,當提供者將檔案插入系統時,會根據特定患者的以太地址授予查看該檔案的權限,如果沒有包含患者正在查找的檔案名的散列及其地址的事務,那么這僅僅意味著系統中沒有檔案,因此,該請求將失敗,但是,如果有一個交易具有檔案名的散列和患者的正確地址,則驗證請求合約將回傳加密的安全鏈接,一旦找到交易,它就被視為有效的請求,并且該檔案的加密安全鏈接將作為引數被發送到位于公共區塊鏈中的通合約, - 通知合約(Notifier Contract):該合約部署在公有區塊鏈中,目的是在雙方之間傳遞訊息,它以接收者的地址和訊息作為引數,當任何合約將訊息與目的地址一起傳遞時,該合約將通過使用公共區塊鏈上的輸入資料創建交易來執行其任務,在這種情況下,請求者必須使用一個介面,該介面持續檢查公有區塊鏈,并在涉及患者的交易到達時通知患者,在該系統中,發布在公共區塊鏈上的實際訊息是加密的,并作為交易輸入資料存盤,通知合約從請求驗證合約中獲取加密的訊息,并創建一個交易,將該訊息作為輸入資料傳遞,任何人都可以看到該加密訊息,但只有擁有合適私鑰的患者才能解密該訊息并獲得檔案鏈接,患者打開通知后,他/她將能夠使用他的介面解密鏈接,并按照解密的鏈接訪問檔案,
三、總結與討論
在本文中,使用了兩個異構區塊鏈:私有和公共,以提供可互操作和安全的資料共享和訪問控制,然而,這些區塊鏈都是以太坊的區塊鏈,文章提供的解決方案不支持混合系統,例如位元幣區塊鏈和以太坊區塊鏈,因為這些平臺使用不同的協議,并且位元幣不支持智能合約,該方案要求使用相同型別的區塊鏈,這個要求限制了當前不兼容的區塊鏈之間的應用,此外,該方案的系統將資料存盤在提供商的本地資料庫中,這是區塊鏈之外的一個單獨的層,我們假設這個本地資料庫存盤了檔案名、安全鏈接、患者的以太網地址和患者的公鑰,只有在添加新檔案和根據患者的有效請求檢索安全鏈接時,提供者才會使用該資料庫,
對于未來的作業,作者的目標是改進建議的系統,使其與 HIPAA6關于資料共享的規則兼容,此外,為了提高解決方案的健壯性和適應性,接下來將研究如何消除額外的資料層,即提供商的資料庫,并將資料記錄直接存盤在私有區塊鏈上,
A. Back, M. Corallo, L. Dashjr, M. Friedenbach, G. Maxwell, A. Miller, A. Poelstra, J. Timón, and P . Wuille, “Enabling blockchain innovations with pegged sidechains,” URL:http://www.opensciencereview.com/papers/123/enablingblockchain innovations-with-pegged-sidechains, 2014. ??
X. Xu, C. Pautasso, L. Zhu, V . Gramoli, A. Ponomarev, A. B. Tran,and S. Chen, “The blockchain as a software connector,” in Software Architecture (WICSA), 2016 13th Working IEEE/IFIP Conference on.IEEE, 2016, pp. 182–191. ??
A. Ekblaw, A. Azaria, J. D. Halamka, and A. Lippman, “A case study for blockchain in healthcare:medrec prototype for electronic health records and medical research data,” 2016. ??
Quorum whitepaper [Online] . Available:https://github.com/jpmorganchase/quorum-docs/blob/master/Quorum%20Whitepaper%20v0.1.pdf ??
T. El Gamal, “A public key cryptosystem and a signature scheme based on discrete logarithms,” in Advances in Cryptology, 1985, pp. 10–18. ??
Health insurance portability and accountability act (hipaa). [Online].Available: https://www.hhs.gov/hipaa/ ??
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/237709.html
標籤:區塊鏈
上一篇:div
下一篇:NacosException:failed to req API:xxxx:8848/nacos/v1/ns/instance/beat. code:500 msg: java.net.Connect
