很多朋友都有以太坊區塊鏈上轉賬失敗的經歷,由於鏈上轉賬不可逆的特點,結果會造成重複轉賬等損失。
當你看到一筆轉賬交易,在區塊流浪器上顯示轉賬失敗的時候,通常是由以下三種原因造成的:
1、Out of gas(Gas 不足)
什麼是Gas,我想需要解釋一下,就是你轉賬時候消耗的礦工費,這是以太坊智能合約設定好的機制,對技術安全之類的這裡就不多說了,通俗的說,Gas就類似你開車上路時候燃燒的汽油。

如果你要進行一筆轉賬,就要為這筆轉賬設置一個Gas。如果你設置的過低,就會交易失敗。失敗原因就是out of gas(汽油不足)。
2、Bad instruction(指令錯誤)
Bad instruction 的英文翻譯過來就是指令錯誤,可以說是智能合約代碼本身的邏輯存在問題。從而導致轉賬合約在執行的過程中,出現指令錯誤。

以太坊區塊鏈也是計算機程序機制,這就像一台壞了的機器,你輸入一個指令,機器是不能正常運作的。這時候,轉賬也會失敗。
3、Reverted(回退)
reverted回退也是導致以太坊鏈上轉賬失敗的又一種原因,那麼reverted回退又是是什麼情況呢? reverted 其實是一個函數,用於立即中止合約的執行,並且把狀態回滾。雖然是智能合約,比一般的合約更聰明,但是有些合約在執行的過程中還是會犯錯的。

比如,你到飲料自助販賣機買一瓶可樂,如果按合約執行,當你輸入金額,你可以得到一瓶可樂。但是這個合約並沒有檢查販賣機裡是否有足夠的可樂。當販賣機裡沒有可樂的時候,後面來的人,即使它輸入金額,也不能得到可樂。這時候,你原本的合約,即輸入金額就會得到一杯可樂的合約就會失敗,它會發出錯誤的信息並回滾到當前的交易狀態。
最後,關於以太坊鏈上轉賬失敗的原因您理解了嗎?
