極簡入門:什麼是智能合約?

「智能合約」一詞是由Nick Szabo在1997年首次提出的,比比特幣的出現要早很多。他是位計算機科學家、法學學者,還是個密碼譯解專家,所以我還是替他跟你「講人話」好了。

簡而言之:他想用分佈式記賬技術來保存合同。如今的智能合同,就如現實世界中的合同一樣。唯一的區別只不過是它們完全是數碼形態的。事實上,一個智能合同,其實只是存儲在區塊鏈中的一個小小的計算機程序。

智能合同如何工作?

那咱們舉個例子來看看智能合同是如何運作的。你可能聽說過眾籌鼻祖Kickstarter。如果各團隊想要製造某種產品,他們可以上Kickstarter網站,建立項目內容,制定資金籌集目標,然後就可以開始等著從那些相信他們理念的人們那裡收錢就可以了。

Kickstarter說到底是一個處在產品產出團隊和資金支持者之間的第三方。這就是說,雙方都只得相信Kickstarter能正確的按照他們的意願處理他們的錢。如果某個項目成功地籌到了錢,產品項目方就應該從Kickstarter那裡拿到這筆錢。在資金支持者那方面,如果款子籌齊了,他們要求錢可以給到項目方。如果款子最終沒籌齊,則應該被退還給他們。項目方和資金方都只得信任Kickstarter。

但有了智能合同,我們就不需要類似Kickstarter這樣的第三方,也可以建立類似系統了。那麼我們就來做一個智能合同來看看。

我們用編程設定這個智能合同必須持有所有收到的款項,直到達到已設定的目標款項。這些對項目投資的人,就可以把他們的錢轉到這個智能合同裡。如果本項目達到要籌集的目標值,智能合同就自動的把錢轉給項目設立人。反之,如果項目最終沒有達到籌集資金的目標值,這筆錢又會自動的轉回給資金支持者們。挺厲害的吧!

而且,由於智能合同是存儲於區塊鏈當中的,因此所有信息都是分佈式的用這個技術,沒人能對這筆錢說了算。

智能合同真的安全嗎?

誒,等下!可我們憑什麼相信智能合同啊?

那是正是由於智能合同是存儲在區塊鏈上的,它們因此而自然具有的一些有趣的屬性,即不可更改性和分佈式的特性。

不可更改性是指,智能合同一旦成立,則不可被更改。因此,沒人能揹著你篡改你智能合同裡的代碼。而分佈式的特性是指,智能合同輸出的結果是被所在網絡中所有的人確認過的。因此,單個人是無法強迫智能合同放款的。因為所在網絡的其他人一定會發現這企圖,然後標記此行為無效。篡改智能合同幾乎成為不可能。

不僅是眾籌,智能合同的應用可以涉及很多領域。銀行可以用智能合同放貸或自動付款。保險公司可以用智能合同來處理一部分索賠。郵遞公司可以用它來做到付等。

看到這裡,我相信你應該知道智能合同到底是什麼了吧。

目前,只有幾個支持智能合同的區塊鏈,其中一個就是以太坊。它的成立、設計,都是專門針對支持智能合同的。編輯這些智能合同使用的是特別的編程語言,Solidity 這個編程語言是專為以太坊創設的,其語法類似於JavaScript。值得注意的是,比特幣也支持智能合同,儘管它相對以太坊而言還是非常有限的。

智能合約的應用平臺:以太坊

以太坊(Ethereum)是一個開源的有智能合約功能的公共區塊鏈平臺。從這個對於以太坊的定義中,我們可以得出幾個關鍵詞。第一,以太坊是一個區塊鏈。第二,以太坊具有智能合約功能。所以簡單地說,使用以太坊可以讓我們快速地起草以一份智能合約。

要使用以太坊起草智能合約,首先需要下載一個叫做「Ethereum Wallet」的應用程序,可以通過下面的鏈接獲取:Releases · ethereum/mist · GitHub

當安裝完成之後,該應用程序會自動下載以太坊區塊鏈的所有節點,將其存儲在本地。截止到我寫這篇文章的時候,一共有577萬個區塊,這份數據大概有2G的大小,所以可能會消耗比較長的下載時間。

極簡入門:什麼是智能合約?

下載完成之後,通過「File」-> 「New Account」菜單創建一個以太坊的賬號。

極簡入門:什麼是智能合約?

創建賬號之後記得備份一下 keystore 文件夾,這個相當於一個秘鑰。這個沒有了,你裡面的所有財產可就都沒了。

賬號創建完成之後,點擊進入賬號,可以看到賬號的相關信息。

極簡入門:什麼是智能合約?

點擊「create a wallet contract」再創建一個「以太坊錢包」。

極簡入門:什麼是智能合約?

這裡我選擇了「SINGLE OWNER ACCOUNT」,點擊「Create」之後會進入創建合同頁面。它需要你輸入賬號密碼進行交易。我們輸入密碼之後點擊「SEND TRANSACTION」進行交易。

極簡入門:什麼是智能合約?

正常來說會提示你沒有足夠的資金可以創建合同。

極簡入門:什麼是智能合約?

這是因為創建合同是需要消耗計算能力的,而計算能力是一種資源。在以太坊中,我們用以太幣來描述這種資源的價值。到了這裡,如果你還想繼續玩一玩以太坊,那麼你需要自己有一條機器去挖礦或者用我們的人民幣去購買。

下一篇文章,我們將說說如何挖礦獲取以太幣。


分享到:


相關文章: