#Binance #crypto2023 #smartcontracts #BTC #ETH
智能合約能做什麼?
假設我們打賭明天的天氣情況。我賭明天會晴天,你賭明天會下雨。我們約定輸的人必須給贏的人 100 英鎊。那麼我們如何確保輸的人會信守承諾呢?有三種常見的方法:
1. 相互信任
最簡單的方法就是互相信任。如果我們是多年的朋友,彼此很瞭解,那麼很容易互相信任。但如果我們是陌生人,那就麻煩了。我們很難互相信任。
2. 簽署法律協議
另一種方式是簽署賭注協議。協議詳細規定了賭注的條款,包括如果輸的一方違反協議會發生什麼。
協議可以確保敗訴方向勝訴方賠償,但這並不現實,因爲通過法律手段達成協議的成本比打賭還要高。
3. 向共同的朋友尋求幫助
我們也可以找一個彼此信任的朋友,讓這個朋友保管100英鎊。當答案揭曉時,給獲勝者支付100英鎊。但如果這個朋友卷錢跑了怎麼辦?
現在我們有三種不同的方法,但每種方法都有缺點。陌生人之間很難相互信任。法律協議成本高昂,朋友之間也可能無法完全信任彼此。
這時候,以太坊的智能合約就派上用場了。智能合約相當於雙方的共同朋友,是用代碼編寫的。以太坊允許我們編寫軟件,讓雙方支付價值 100 英鎊的以太幣,第二天用天氣 API 查看天氣,然後向獲勝者轉出價值 200 英鎊的以太幣。智能合約一旦編寫完成,就無法編輯或修改。因此,無論合約中規定了什麼,都會執行。
簡單來說,智能合約是一種去中心化平臺上的計算機程序或交易。
但智能合約是如何執行的?它和區塊鏈有什麼關係?
智能合約和區塊鏈有什麼關係
智能合約在執行時,會將執行信息以交易的形式記錄在區塊上。以太坊上的交易是這樣的:其中,“數據”用於記錄智能合約的創建和執行,這些數據被稱爲交易。以太坊區塊鏈上的任何區塊都可以包含以下三種類型的交易:
1. 用戶之間的以太幣交易
這是網絡內常規的比特幣式交易。如果你將以太幣發送給朋友,數據字段將被清除。
2. 沒有接收者的 ETH 交易
如果交易中沒有接收者,則表示交易的目的是利用“數據”字段的內容在網絡中創建智能合約。“數據”字段中包含的軟件代碼將與網絡中其他用戶保持一致
3. 用戶與智能合約之間的以太幣交易
當用戶或者智能合約想要執行某個智能合約的時候,必須與智能合約進行交易,把執行指令放置在數據場中。
和其他區塊鏈一樣,只要發送上述任何交易,它們都會被廣播到整個網絡,讓每個節點進行記錄。此外,每個節點還會執行指示的智能合約,以使其 EVM 狀態與網絡保持同步。
每次執行都會永久存儲在區塊鏈中。
什麼是 Gas 費?
上面提到,用戶在執行智能合約時必須支付一定的費用,這部分費用會支付給消耗內存、電力、存儲、計算的節點,費用的單位叫做gas,最後按照匯率把gas換算成Ether。
在執行智能合約時,必須定義最多需要消耗的 gas 數量,當執行完成或者達到 gas 值時,執行就會停止,這是爲了避免智能合約死循環,防止程序卡死無法繼續執行。
結論
以太坊不僅僅是一種可交易的加密貨幣,它的真正價值在於其用途和可擴展性,然而,還有其他加密貨幣,如比特幣、Ravencoin 或 Alephium,它們有望提高效率。不過,這還有待確定。


