智能合約是區(qū)塊鏈技術首創(chuàng)的嗎?
不是。
早在1993年,計算機科學家、加密大師尼克薩博(NickSzabo) 就提出了“智能合約“(Smart contract)這一概念。1994年他的《智能合約》論文,給智能合約進行詳細的定義:
一個智能合約是一套以數字形式定義的承諾,包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議。
所以,智能合約主要包括兩個方面:
1. 承諾、合約可以用數字量化
2. 協(xié)議可以被自動執(zhí)行 (使用程序自動運行)
2015年4月13日,以太坊的創(chuàng)始人Vitalik Buterin(V神)發(fā)表了題為《:Visions, Part 1: The Value of Blockchain Technology》的博文,重新定義了區(qū)塊鏈:
A blockchain is a magic computer that anyone can upload programs to and leave the programs to self-execute, where the current and all previous states of every program are always publicly visible, and which carries a very strong cryptoeconomically secured guarantee that programs running on the chain will continue to execute in exactly the way that the blockchain protocol specifies.
“區(qū)塊鏈就是一臺任何人都可以上傳程序,并且程序能夠自動執(zhí)行的神奇電腦。每個程序的當前狀態(tài)和過去狀態(tài)都是公共可見的。同時,強大的密碼經濟學保證了程序能按照其區(qū)塊鏈協(xié)議中定義的方式持續(xù)運行。”
智能合約被V神正式引入區(qū)塊鏈。區(qū)塊鏈2.0時代到來!
智能合約有什么作用?
區(qū)塊鏈1.0,比如比特幣,只是簡單的”數字黃金“,用做貨幣進行交易。而結合智能合約的區(qū)塊鏈2.0, 將區(qū)塊鏈擴展成了一個開發(fā)平臺。
ETH建立了一個圖靈完備的、可編程的區(qū)塊鏈平臺。
在這個平臺上,我們可以:
生產各類數字資產(發(fā)幣)、查看各個區(qū)塊鏈資產賬戶的狀態(tài)(是不是白名單用戶)、實現以太坊和其他數字資產的自動兌換(ICO)等等。
在這個平臺上,我們能結合區(qū)塊鏈,開發(fā)各種應用(Dapp),用于日常生活中,比如游戲,云養(yǎng)貓游戲CryptoKitTIes。
總之,ETH一小步,區(qū)塊鏈一大步,智能合約讓各種去中心化應用變得可能。
智能合約如何構建?
包括以下三步:
首先,用戶共同制定一份智能合約,就是若干if-else(如果。..,那么。..), 編寫程序,分別放入各自的私鑰,并簽名。
其次,合約通過區(qū)塊鏈P2P網絡擴散,并存入區(qū)塊鏈。
最后,智能合約自動執(zhí)行。
智能合約和普通的電腦程序有什么不同?
首先,智能合約可以直接持有、發(fā)送和接收資金,表現形式就是持有、發(fā)送和接受代幣,比如ETH。
再也不需要像蘋果APP store里那樣,需要刷信用卡購買APP里的服務。
或者,通過微信和支付寶支付買游戲道具了。
其次,智能合約是分散的,它不在中央服務器上運行,而是在區(qū)塊鏈上運行。
這個講過很多次啦。
第三,智能合約是不可變的,你不能像更改正常程序代碼那樣,修改或更新它們。
我們知道區(qū)塊鏈的不變性,阻止了雙重支付的發(fā)生。
而智能合約的不變性,建立了信任的基礎。智能合約開源的,誰都可以在網絡上找到它,閱讀它。智能合約是不變的(有些鏈上的智能合約是可以改變的),不能被篡改,所以它是可信的。我們相信它會按照預期執(zhí)行,從而使用它取代中間商。
當然,智能合約不可變,也給程序員帶來了巨大的壓力,因為你不能寫錯代碼,合約里不能有致命的bug!因為,一旦發(fā)布,你的錯誤代碼,就不能修改了。
應用場景
在西方國家,遺產繼承,需要法律文件、公正、手續(xù)繁瑣。而運用智能合約,可以輕松做到。
比如:某壕父親請人編寫一個智能合約,包括:自己的ETH錢包地址,幾個子女的錢包地址。
規(guī)定,當自己三個月沒有訪問錢包,就自動將10萬枚ETH,按比例轉入各個子女的ETH錢包中。(合約內容)
父親將合約寫入區(qū)塊鏈。
父親去世三個月后,智能合約自動執(zhí)行,ETH自動轉入子女賬戶。
雖然這個例子有點憂傷,但比起昂貴的律師費用和遺產稅,ETH轉賬費用只是零頭的零頭吧。