Contract-Invocation
Quorum 如果節點知道合約地址和 ABI,非許可節點可以更改私有合約的狀態嗎?
我已經執行了 quorum-example,部署了一個私人契約。 https://github.com/jpmorganchase/quorum-examples/tree/master/examples/7nodes
我按照自述文件中編寫的命令進行操作。但是,我很困惑為什麼 node4 可以修改這個私人合約的狀態。
執行時
私人.get()
node1 得到 42,node7 得到 42,node4 得到 0。
但是在node4執行之後
private.set(7,{from:eth.coinbase,privateFor:
$$ “ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc=” $$});
node1 仍然得到 42,node4 得到 0,只有 node7 得到 7。
這是node1和node7之間的私人合約,所以我想知道為什麼node4可以將狀態從42更改為7
從 Quorum v2.2.3/Tessera 0.9 開始,這確實是可能的條件,也是智能合約級別需要額外安全/驗證的原因之一,例如,驗證地址訪問方法是否在允許的地址列表中。
Tessera 的下一個主要版本將通過在私有事務管理器級別強制訪問來解決此問題(如果選擇)(這意味著,它將是一個切換/選項)