區塊鏈商城dapp系統開發技術詳情丨區塊鏈商城dapp開發原始碼案例部署

xiaofufu發表於2023-02-21
  1. 概述

一般來說,參與到區塊鏈交易中的資料對鏈參與者都是公開的。而長安鏈隱私合約功能為區塊鏈提供在合約中處理敏感資料的能力,達到保護資料隱私的同時保證合約執行過程的可靠性(包括合約邏輯、資料的完整性)。長安鏈隱私合約採用可信計算技術,在可信執行環境中執行隱私合約。敏感資料以密文形式存在於區塊鏈賬本中,使用者使用時在可信執行環境中解密,而可信執行環境外無法獲得敏感資料明文。同時,可信執行環境的遠端證明保證合約邏輯不被篡改。如此,達到敏感資料在區塊鏈上的可用不可見,而資料處理流程仍然可以在區塊鏈上公開驗證的效果。

長安鏈支援Intel SGX作為執行隱私合約的硬體基礎。目前Intel SGX相對於其他可信計算硬體,具有相容性好、文件完善等優勢。

  1. 隱私合約設計方案

隱私合約功能由一個基於可信執行環境的隱私合約環境提供。這個隱私合約環境由可信執行環境Enclave和隱私計算閘道器組成。其中Enclave是執行在可信執行環境的邏輯,負責對合約進行驗證、編譯、執行,敏感資料密文只能在Enclave中解密。長安鏈的Enclave中實現了一套WASM邏輯,可以對任意資料處理邏輯進行編譯、執行。隱私計算閘道器負責將使用者、Enclave發出的資訊打包成區塊鏈的交易payload,並轉發給區塊鏈存證。

整個流程分為三個階段:可信執行環境的遠端證明、隱私合約的部署、隱私合約的呼叫。

遠端證明動作可以是一次性的。案例開發I35模式7O98詳細O7I8,在該階段,由使用者發起對隱私合約環境中Enclave的遠端證明,驗證該Enclave是否執行於可信執行環境中,以及該Enclave中的邏輯是否在部署後被篡改過。
隱私合約的部署發生在遠端證明之後,每個不同的隱私合約需要單獨進行一次部署。在這個階段中,使用者可以部署經區塊鏈共識接受的任意資料處理邏輯作為隱私合約,隱私合約會被存在區塊鏈上,其邏輯受到公開監管。不同於普通合約使用者直接將合約程式碼上傳到區塊鏈節點的部署方式,隱私合約需要使用者將合約上傳到隱私計算環境初始化後,由隱私計算環境透過閘道器將處理好的合約上傳到區塊鏈賬本中。
隱私合約的呼叫發生在部署之後。一個隱私合約部署後,使用者可以用相同或不同的資料為入參進行多次呼叫。

  1. 可信執行環境與遠端證明

可信執行環境是CPU的一個安全加固區域,可以保證其中的軟體邏輯和資料在機密性和完整性上得到保護。該區域的軟硬體環境可以看做是與外界隔離的一個反沙箱環境。在這個環境中執行的程式,外部包括作業系統無法讀取或寫入其記憶體,也無法干擾其程式碼執行邏輯。

遠端證明可以使驗證者辨別被驗證的可信執行環境上的軟體邏輯是否有變更。通常,遠端證明的被驗證方透過可信硬體生成一個證書,這個證書包含一個report資訊,這個資訊描述當前執行在可信執行環境中的軟體(程式碼度量)。驗證者透過驗證這個證書的合法性來驗證可信硬體上的軟體程式是否被修改過。

  1. Intel DCAP遠端證明(暫不支援,需搭配新款伺服器)

Intel提供的遠端證明機制。

信任Intel。在DCAP遠端證明模式中,Intel會作為根CA為SGX硬體提供認證。
需要在網路中維護一個PCCS服務提供對網路中的SGX硬體認證。PCCS服務是將Intel為SGX下發的類似二級證書的資訊快取到一個區域網路中。
5.自定義信任根的遠端證明(v1.2.0開始支援)
自定義信任根的遠端證明對DCAP做了一些改動,將對Intel的信任轉移到對任意選定的CA機構的信任上。

在可信執行環境初始化階段,可信硬體基於硬體固有金鑰生成一對簽名公私鑰對和一對加密公私鑰對,並向一個選定的CA機構申請證書。該證書中包含簽名公鑰和加密公鑰。這個過程類似於硬體出廠時向Intel註冊資訊。

在使用者發起對Enclave的遠端證明時:

使用者生成一個隨機挑戰(任意隨機字串),將其傳送到隱私合約環境,由隱私計算閘道器轉發到Enclave中。
Enclave對收到的隨機挑戰製作一個遠端證明。Enclave收到隨機挑戰後,呼叫SGX EREPORT指令獲取report。這個report包含當前執行中的軟體的程式碼度量和Enclave的其他資訊。Enclave將隨機挑戰與report拼接後,用簽名私鑰對其簽名,製作出包含隨機挑戰、report、Enclave簽名、Enclave證書4個元件的遠端證明。
Enclave透過隱私計算閘道器輸出遠端證明(包括隨機挑戰、report、Enclave簽名、Enclave證書)。
隱私計算閘道器會呼叫系統合約將遠端證明寫入區塊鏈存證。系統合約中包含驗證遠端證明合法性的邏輯,透過驗證的遠端證明會被寫入區塊鏈存證。
隱私計算閘道器會返回一份遠端證明給發起證明流程的使用者,使用者可以線下自行驗證遠端證明。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2936100/,如需轉載,請註明出處,否則將追究法律責任。

相關文章