第一個問題的解決措施
第二個問題的解決措施
問題
正確性
完備性
零知識性
同態密碼是一類保持密文延展性的加密方案, 支援將密文操作對映到原始資料上,具有天然的數 據隱私性保護。以場景為例,參與方 A 擁有資料 {x1, …, xn},參與方 B 擁有計算邏輯 f(·),二者想共 同計算 f(x1, …, xn)。定義 E(·)/D(·) 為一組同態加密 方案的加 / 解密演演算法。首先,A 分別對資料進行加密, 將加密結果 {E(x1), …, E(xn)} 傳送給 B。此時 B 按照 f 的計算邏輯執行運算得到 = f(E(x1),…,E(xn)),將 返回給 A。這時,A 使用解密演演算法對結果進行解密, 就可以獲得計算結果 f(x1, …, xn)。 在這個過程中,B 僅擁有密文且無法獲知 A 的資料,有效保證了資料的隱私性。區塊鏈隱私保護中常用 的同態密碼技術有 Pedersen 承諾和 Paillier 加密。
Monero 基於機密交易機制保 證交易資料的隱私性,該機制使用 到的核心技術之一就是 Pedersen 承 諾。在機密交易中,交易金額提交 到區塊鏈前首先由隨機盲化因子進 行承諾。在交易驗證過程中,由 於 Pederson 承諾的同態性,可以分 別計算交易的輸入和輸出密文的總 和,通過驗證「所有輸入輸出的總 和是否為關於 0 的承諾」來驗證交 易金額的有效性。此時交易發起者 僅需要證明他知道承諾對應的亂數,這個證明可以使用一個標準的零知識證明來實 現,整個過程不會洩露交易的實際金額或其他交易 資料。
Paillier 是基於複合剩餘類基本假設的同態加 密方案,它的加 / 解密形式簡單,且密文無噪聲。 Wang 等學者 [14] 使用 Paillier 加密方案構造了針對比 特幣的隱私交易系統,其中交易金額使用 Paillier 進 行隱蔽性保護,零知識證明用於檢查加密後金額的 有效性(即確保交易金額為正,並驗證輸入之和等 於輸出之和)。這些交易就像密封的資產信封,可 以合併、分離或使用,並且保持金額不可見。 另一個基於 Paillier 構造的區塊鏈隱私計算工程 是由矩陣元公司推出的計算平臺 PlatON。該平臺重 點針對以太坊的餘額模型進行資料隱私保護,設計 並部署基於 Paillier 的使用者賬戶餘額的密態更新,並 提出一種新的非互動式零知識證明方案 [15],用於驗 證密態交易資料的合法性。然而,這種方案解密的 時候需要求解橢圓曲線離散對數問題,在交易金額較大的時候解密性比較差。