編輯

共用方式為


多方運算架構設計

Azure Blob 儲存體
Azure Kubernetes Service (AKS)
Azure SQL Database

多方運算或隱私權保留計算可讓商務關係中的合作對象共用數據、執行計算,並達成相互結果,而不需要透露其私人數據。 Azure 服務可協助您建置多方運算解決方案。 解決方案可以包含雲端式和內部部署資源。

多方運算具有下列屬性:

  • 涉及多個公司或組織。
  • 雙方是獨立的。
  • 雙方不會彼此信任其所有數據。
  • 各方都會存取常見的運算和數據儲存平臺。
  • 某些程序對於涉及的一些合作物件而言,必須是私用的。

供應鏈是涉及多方之工作流程的範例。 原材料從原點流向製造。 來自製造商的貨物通過運送合作夥伴到配送中心。 從中樞,貨物會送到零售店。

圖表顯示供應鏈成員作為美工圖案影像的進展。

此程式讓公司合作。 這些各方包括原材料供應商、製造商、航運公司、倉庫運營商和零售店。 產品會在供應鏈期間變更數次。 不同合作對象必須在所有階段追蹤產品。

多方運算技術

多方運算包含不同的技術,可讓合作物件透過網路安全地交易。

圖表顯示要實作為機密運算、Azure Kubernetes Service、虛擬機或合作夥伴供應專案的總帳。

其中一個選項是分散式總帳。 區塊鏈是一個範例。 區塊鏈是一種數據總賬,可在所有各方信任總賬數據的獨立合作對象之間共用。 交易會在區塊中收集,每個區塊鏈接至上一個區塊。 某些分散式總賬不會使用區塊。 每個交易都可以連結至總賬上的上一筆交易。

多黨運算的另一種可能性是使用 CPU 本身的硬體保護記憶體。 這些區域稱為 安全記憶體保護區,會受到密碼編譯保護。 這種方法表示,即使具有伺服器完整存取權的特殊許可權系統管理員也無法查看這些安全記憶體保護區內的進程或數據。

由於安全記憶體保護區能夠從遠程證明自己到其他記憶體保護區,因此您可以設計多個組織網路,讓系統從記憶體保護區執行。 此方法稱為 受信任的執行環境

Azure 機密總賬 是一項 Azure 受控服務,可讓您在安全記憶體保護區上執行區塊鏈模型。

最後,您可以選擇集中式系統,以提供不變性和可信賴性。 Azure SQL 資料庫 總帳提供關係資料庫中多方運算所需的信任。 您可能不需要分散式共識,但只是總賬的不變性層面。

區塊鏈網路模型

若要判斷區塊鏈是否適合商務程式,請考慮下列問題:

  • 此商務程式是否跨越信任界限?
  • 多方是否共用及更新數據?
  • 是否有任何媒介控制單一真理來源?
  • 此程式是否涉及低值手動驗證步驟?

如果這些問題的解答是 肯定的,則商務程式是區塊鏈式方法的良好候選專案。 即使有些答案不是,區塊鏈可能仍然有意義。 在決定之前,請仔細查看其他多黨運算選項。

有各種區塊鏈網路可解決您的業務需求。 其中一個特性是參與網路的準則。 如果網路已全部開放,則稱為 公用區塊鏈網路。 您只要下載用戶端並加入即可。 大部分的加密貨幣都以這種方式運作。

替代方法是 具有許可權的區塊鏈網路,您需要來自現有網路成員的許可權才能加入。 此模型適用於處理已知組織的企業。 例如,超級商店可能想要為其供應鏈參與者擁有封閉且許可的區塊鏈網路。

商務程式可能只需要防竄改或防竄改數據,而不需要區塊鏈。 如果您的程式可以集中執行,或所有合作物件都信任彼此的數據,則區塊鏈可能也不必要。

Azure 多方運算

本節說明使用 Azure 服務提供的多方運算選項。

使用 Azure 虛擬機器 進行區塊鏈

您可以使用 Azure 虛擬機器 來執行總賬軟體。 視需要建立多個虛擬機,並在區塊鏈網路中加以連線。

部署您自己的虛擬機可讓您自定義解決方案。 此方法包括管理額外負荷,例如更新、高可用性和商務持續性需求。 您可能有多個組織和多個雲端帳戶。 連接個別節點可能會很複雜。

Azure 上有適用於虛擬機大部分區塊鏈總賬的部署範本。

Kubernetes 上的區塊鏈

由於大部分區塊鏈總賬都支援部署至容器,因此您可以使用 Kubernetes 來管理容器。 Azure Kubernetes Service (AKS) 是一種 Azure 受控 Kubernetes 服務,可用來部署和設定區塊鏈節點。

AKS 實作隨附支援 AKS 叢集之虛擬機的受控服務。 不過,您的組織仍然必須管理您的 AKS 叢集,以及您架構中的任何網路或記憶體選項。

Azure 上有適用於 AKS 之大部分區塊鏈總賬的部署範本。

區塊鏈即服務

Azure 支援 在 Azure 上執行總賬軟體的第三方服務。 服務提供者會管理基礎結構。 他們會處理維護和更新。 高可用性和聯盟管理包含在服務中。

ConsenSys 在 Azure 上提供仲裁。 仲裁是支援 Ethereum 型應用程式的開放原始碼通訊協定層。

未來可能會有其他供應專案。

Azure 機密總帳

Azure 機密總帳 是以機密聯盟架構為基礎的受控服務。 它會在 Azure 機密運算中實作節點的許可權區塊鏈網路。 機密總帳是以現有的加密為基礎。

  • 現有的加密
    • 待用資料。 將非使用中資料儲存在 Blob 記憶體或資料庫中時加密。
    • 傳輸中的資料。 加密在公用或專用網之間流動的數據。
  • 機密運算
    • 使用中的數據。 加密使用中的數據,同時在記憶體中和計算期間。

機密運算允許加密主要記憶體中的數據。 機密運算可讓您處理來自多個來源的數據,而不需向其他合作對象公開輸入數據。 這種類型的安全計算支援多方運算案例,其中數據保護在每個步驟中都是強制性的,例如洗錢偵測、詐騙偵測,以及醫療保健數據的安全分析。

儲存在機密總賬中的數據是固定的,且僅附加總賬中有防竄改。 總賬也可以獨立驗證。 機密總賬會針對分散式區塊鏈網路使用安全記憶體保護區,而且需要最少的信任運算基礎。

Azure SQL Database 總帳

Azure SQL 資料庫 總賬可讓參與者驗證集中存放數據的數據完整性,而不需要區塊鏈網路的網路共識。 對於某些集中式解決方案信任很重要,但不需要分散式基礎結構。 這種方法可避免這類基礎結構的複雜度和效能影響。

圖表顯示資料庫總賬架構。

總賬會為您的資料庫提供竄改辨識項功能。 這些功能可讓您以密碼編譯方式證明您的數據尚未遭到竄改。

總賬可協助保護數據免於任何攻擊者或高許可權使用者,包括資料庫、系統和雲端系統管理員。 會保留歷程記錄數據。 如果在資料庫中更新數據列,則會在歷程記錄數據表中維護其先前的值。 這會提供保護,而不需要任何應用程式變更。

總賬是 Azure SQL 資料庫 的一項功能。 它可以在任何現有的 Azure SQL 資料庫 中啟用。

比較選項

機密總帳和 Azure SQL 資料庫 總賬

下表比較機密總賬與 Azure SQL 資料庫 總帳。

SQL Database 總帳 機密總帳
需要竄改辨識的集中式系統 No
需要數據防竄改的分散式系統 No Yes
保護關係型數據免於竄改 No
防止非結構化數據遭到竄改 No Yes
在區塊鏈中保護鏈結數據的鏈結存放區 No
保護從區塊鏈參考之檔案的鏈結存放區 No Yes
關係型數據可查詢 No
非結構化預存數據可查詢 No Yes

機密總帳和 Azure Blob 儲存體

Azure Blob 儲存體 的不可變儲存功能可確保寫入它的數據可以讀取,但永遠不會變更。 下表比較這項技術與機密總帳。

機密總帳 不可變儲存體
機密硬體記憶體保護區 No
僅限附加的數據完整性 Yes 是,限制為間隔
使用中的數據加密 No
區塊鏈總賬證明 No

多方運算決策

此圖表摘要說明使用 Azure 服務進行多方運算的選項。

圖表摘要說明選擇多黨運算選項的決策。

下載此架構的 Visio 檔案

下一步