Solidity

Oracle 的安全性如何?

  • February 2, 2022

我正在研究神諭。我看到了這個連結 - https://kndrck.co/posts/ethereum_oracles_a_simple_guide/

該程式碼有效,我對其進行了測試。但是對我來說有什麼問題,程式碼真的安全嗎?有人可以中斷從 client.js 到智能合約的消息並更改值嗎?

沒有任何 TLS,也沒有其他方法可以確認數據的正確性。

這是關鍵 js -

var OracleContract = require('./build/contracts/CMCOracle.json')
var contract = require('truffle-contract')

var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));

我不確定這是否會對您有所幫助。根據我的教授所說,oracle 只能從區塊鏈中讀取數據,您可以加密向 oracle 發送資訊的智能合約。在 oracle 上做更多的事情意味著你將擁有比乙太坊更多的隱私。:)

智能合約不能與外部世界互動,因為這會破壞確定性。如果難以解析,為了讓區塊鏈工作,每個節點現在和將來都需要能夠驗證整個鏈。沒有外部資訊來源可以保證在未來的任何時候重現今天的輸入,所以它是禁止的。

這個問題的常見解決方案是 Oracle 模式。在這種情況下,Oracle 是被授權在合約中寫入一些數據的實體。區塊鏈不會驗證該數據的真實性,但所有節點現在和將來都能夠就 Oracle 所說的以及這意味著什麼達成一致。

因此,整體安全性(在這種情況下,數據的完整性)僅與 Oracle 一樣好。因此,要證明系統的可信度,必須證明為什麼要信任 Oracle。

希望能幫助到你。

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