Quorum

仲裁中的私人交易驗證

  • July 15, 2019

我正在瀏覽法定人數文件,並偶然發現私人交易如何在法定人數中進行驗證。以以下範例為例,其中有四個節點 - 節點 A、節點 B、節點 C 和節點 D。考慮以下步驟 -

1.節點 A 與節點 B 進行私有交易(假設 TX1)。此時節點 A 和節點B 更新他們的私人嘗試以反映私人交易。

  1. 節點 B 使用 TX1 的輸出並與節點 C 進行私人交易。由於節點 C 最初不知道 TX1,它如何驗證 TX1 是實際有效的交易?

節點 B 是否將 TX1 的未加密有效載荷發送到節點 C,以便它可以驗證交易?如果是,那麼在這種情況下節點 A 的身份是否會洩露?如果不是,那麼節點 B 可以通過使用 TX1 的輸出發送來欺騙節點 C,首先將其發送到節點 D,然後進行雙花並在發送到節點 D 後將其發送到節點 C。私人交易鏈得到驗證?

在 Quorum 中,從 v2.2.4 開始,私有狀態 txns 不被區塊鑄幣者驗證。在您的場景中,除非有一個監管者/上帝節點可以查看所有交易,否則很難保證私有狀態的一致性/同步,因為每個節點對於節點私下通信的私有合約具有不同的狀態。

我們確實提供了一些工具,可以更輕鬆地保持同步或找出問題所在,並且有一些很好的範例說明如何正確使用 quorum。首先,我們看到的最佳範例是基於 quorum-examples 的 5NodeRTGS 範例:https ://github.com/bacen/quorum-examples/tree/master/examples/5nodesRTGS 。

對於同步驗證,Quorum 公開了一個新的 API,允許比較合約的狀態根。API 被稱為 eht_storageRoot 並記錄在這裡:http ://docs.goquorum.com/en/latest/Getting%20Started/api/#json-rpc-privacy-api-reference

希望這會有所幫助,並隨時停止我們的 Slack 以獲得更深入的解釋。

引用自:https://ethereum.stackexchange.com/questions/72905