Transactions

礦工是否必須驗證區塊?

  • December 10, 2020

我想知道乙太坊底層是否需要礦工驗證區塊?

出現這個問題的原因是我最近一直在思考一個區塊鏈交易驗證的場景:如果在智能合約中呼叫chainLink提供的api,需要合約地址有足夠的代幣進行支付。當包含該交易的區塊被廣播時,其他礦工將驗證該區塊中的交易。當礦工驗證新區塊中的交易時,他需要呼叫智能合約。如果合約地址沒有足夠的代幣怎麼辦?礦工會繼續驗證這筆交易嗎?

希望您能給我一些幫助,謝謝!

簡短的回答是否定的,但他們會。

有關該過程的更深入解釋,請參閱https://ethereum.stackexchange.com/a/45187/405

但正如所解釋的,這是因為他們會冒太多的風險來驗證區塊中的每筆交易。是博弈論。如果礦工通過不驗證交易來推送包含無效交易的區塊,則其他人將檢測到該區塊,並且該區塊將被網路拒絕。礦工將白白開採,而白白開採正在賠錢。

所以是的,為了好玩,您可以嘗試在推送塊之前不進行驗證。似乎有些人這樣做是因為他們押注 tx 大部分時間都是有效的。但這很危險,也不值得 IMO,因為驗證部分顯然不是消耗大量能量的部分(只有幾百毫秒)。

在您的情況下,礦工可能會在執行該交易後立即拒絕該交易,並且由於該塊號的地址餘額較低而引發錯誤。礦工不會為新區塊選擇交易,而是從池中添加另一個交易。

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