Multiparty-Computation
惡意對手存在時MPC理想協議的正確性
在多方計算的理想協議中存在惡意對手,誠實方如何獲得正確的輸出?即,受損方修改他們的輸入並提供給受信任方。受信方通過獲取誠實方的輸入和損壞方的修改輸入來計算函式,從而導致錯誤的輸出。
如果誠實方對惡意方的輸入或這些輸入的誠實方生成的[封裝]有承諾,則可以修改函式以檢查這些。否則,根據定義,受信任方“採用誠實方輸入
和受破壞方的修改輸入”計算的值會導致正確的輸出。
傳統的 MPC 正確性定義沒有輸入正確性的概念。傳統的 MPC 正確性屬性處理輸出,即如果協議正確,則 $ y $ 在哪裡 $ y=f(x_1,x_2,\dots,x_n) $ 保證輸出。什麼 $ x_1,\dots,x_n $ 值完全取決於輸入方。
因此,如果您想檢查輸入是否“正確”,首先您必須定義“正確”的含義。如果有一個特定值是“正確的”,那麼該值似乎不再是私有的,那麼為什麼要使用 MPC。正如 Ricky 建議的那樣,也許您對每一方的輸入都有一個承諾(或封裝),您可以通過 MPC 進行檢查。如何產生這些承諾是另一個問題。如果您不信任一方輸入正確的價值,您如何信任他們創造正確價值的承諾?另一個選項可能是您可以檢查可接受的輸入範圍(例如,該值始終大於 10 且小於 100)。
最後,要回答您的問題,您必須首先定義“輸入的正確性”是什麼意思,因為 MPC 通常不處理這種情況。然後定義理想協議如何處理它很容易。