Go-Ethereum
Metamask 外掛向哪些遠端乙太坊節點發送簽名交易?他們是否面臨拒絕服務攻擊?
所以 Metamask 允許在它的 UI 中連接到不同的乙太坊網路(公共/測試網)。
- 誰在維護這些同行?
- 我可以相信這些同行嗎?
- 如果是這樣,我可以在我的機器上設置類似的服務,而不會使我的機器受到 DOS 攻擊並影響我的機器嗎?我怎樣才能做到這一點?
- INFURA ( https://infura.io/ ) 維護這些遠端節點。
2)您可以信任這些節點有兩個原因:正常執行時間和簽名交易的中繼(而不是將您的私鑰保存在我們的伺服器中)。我們努力保持 100% 的正常執行時間(這是我們的最新記錄)。交易方面,是您在本地機器上使用您的私鑰簽署交易。這樣您就不必擔心我們會出於惡意目的使用您的帳戶。INFURA 所做的只是將該交易轉發到要開采的網路。
3)每個人都可以在他們的機器上設置相同的服務。您只需要執行一個本地節點並將其與您想要的網路同步,然後打開 RPC 以僅從 127.0.0.1接收交易,這意味著只有您的機器可以向該節點發送簽名交易和讀取請求。如果您將 RPC 功能設置為偵聽0.0.0.0,您將受到來自外部的攻擊。
其他安全建議,但更高級的實施,將設置防火牆以接收到您的機器的傳入請求到 RPC 埠,並留在您的家庭路由器後面(在大多數情況下這已經足夠了)。
TLDR:INFURA 是 metamask 背後的遠端服務。INFURA 不會保留您的私鑰,您發送的內容是唯一被轉發的內容。INFURA 的核心能力是保持網路中的節點同步,讓使用者不必擔心這個問題。
更具體地說,元遮罩連接到那些infura的節點:
const MAINET_RPC_URL = 'https://mainnet.infura.io/metamask' const ROPSTEN_RPC_URL = 'https://ropsten.infura.io/metamask' const KOVAN_RPC_URL = 'https://kovan.infura.io/metamask' const RINKEBY_RPC_URL = 'https://rinkeby.infura.io/metamask' global.METAMASK_DEBUG = 'GULP_METAMASK_DEBUG' module.exports = { network: { mainnet: MAINET_RPC_URL, ropsten: ROPSTEN_RPC_URL, kovan: KOVAN_RPC_URL, rinkeby: RINKEBY_RPC_URL, }, }
如果您選擇一個本地節點,則元遮罩將連接到它。