Mining
系統如何強制正確執行智能合約?
如果我理解正確,智能合約是由礦工執行的。礦工們有什麼激勵措施來正確執行智能合約?是什麼阻止了惡意礦工改變結果,或者只是懶惰的礦工進行更簡單的計算?
在比特幣中,工作量證明很難計算但很容易驗證。我不希望這適用於所有契約。
每個完整節點都將使用相同的輸入執行相同的合約(目的是檢查輸出)。
因此,當礦工執行合約並在已發布的區塊中記錄其執行時,每個完整節點都會為自己執行相同的合約(具有相同的輸入),以驗證礦工的輸出。如果輸出不同,則拒絕該塊。
因此,礦工的激勵是,如果礦工沒有正確或惡意處理合約 - 共識過程,該區塊將被拒絕!
每個完整節點都會驗證每個合約的執行,因此它們不會中繼無效塊,並且礦工不會在無效塊之上進行探勘。
這確實意味著乙太坊上的計算效率相對較低,因為計算必須由每個節點執行,但是有一些技術可以以安全的方式將計算移出區塊鏈。