舉個例子,以太坊用戶可以使用智能合約在特定日期向朋友發送10個以太幣。在這種情況下,用戶可以操作創建壹個合約,然後將程序推人該合約中進行特殊計算,以便它能夠執行所需的命令。而以太坊就是專門把精力集中在這件事上的這麽壹個平臺。
比特幣是第壹個支持“智能契約”的資源幣種,因為網絡的價值在於把價值或數據從壹個點或人轉移到另壹個點或人身上。節點網絡只在滿足某些條件時才會進行驗證,但是,比特幣僅限於貨幣用例。相反,以大坊取代了比特幣那種帶有不小限制性的編程語言,取而代之的是壹種允許開發人員編寫自己程序的語言。以太坊允許開發人員編寫他們自己的“智能契約”,即“自主代理”或“自治代理”,正如ETH白皮書所稱的那樣。該編程語言是“圖靈完備”語言,這意味著它支持壹組更廣泛的計算指令。智能合約能做些什麽呢?
1.“多簽名”賬戶功能,只有在壹定比例的人同意時才能使用資金。這個功能經常用在與眾籌或募捐類似的活動中。
2.管理用戶之間所簽訂的協議。例如,壹方從另壹方購買保險服務3.為其他合同提供實用程序。
4.存儲有關應用程序的信息,如“域註冊信息”或“會員信息記錄”。概念有時候比較晦澀,我們舉壹個募捐的智能合約的例子來幫助理解:假設我們想向全網用戶發起募捐,那就可以先定義壹個智能賬戶,它有三個狀態:當前募捐總量,捐款目標和被捐贈人的地址,然後給它定義兩個函數:接收募捐函數和捐款函數。
接收募捐函數每次收到發過來的轉賬請求,先核對下發送者是否有足夠多的錢(EVM會提供發送請求者的地址,程序可以通過地址獲取到該人當前的區塊鏈財務狀況),然後每次募捐麗數調用時,都會比較下當前募捐總量跟捐款目標的比較,如果超過目標,就把當前收到的捐款全部發送到指定的被捐款人地址,否則的話,就只更新當前募捐總量狀態值。
捐款函數將所有捐款發送到保存的被捐贈人地址,並且將當前捐款總量清零。每壹個想要募捐的人,用自己的ETH地址向該智能賬戶發起壹筆轉賬,並且指明了要調用接受其募捐函數。於是我們就有壹個募捐智能合約了,人們可以往裏面捐款,達到限額後錢會自動發送到指定賬戶,全世界的礦工都在為這個合約進行計算和擔保,不再需要人去盯著看有沒有被挪用,這就是智能合約的魅力所在。