什麼是智慧合約? 智慧合約初學者指南
Nick Szabo提出了“智慧合約”的概念,其目的是將POS(銷售點)等電子交易方式的功能擴充套件到數字領域。 智慧合約可以避免第三方中間商的服務,幫助您以透明、無衝突的方式交換財產、股份或任何有價值的東西。
以下是我們討論智慧合約相關內容:
什麼是智慧合約?
智慧合約是一種在滿足特定條件時,自動執行的計算機程式。
使用智慧合約,您可以無衝突、透明的方式和陌生人分享任何有價值的東西。
您也可以將智慧合約當做基於區塊鏈的自動售貨機。 類似於自動售貨機根據您存放的物品設定相應的錢一樣,智慧合約使用ether作為燃料來執行預先配置規則的程式碼。
我們為什麼需要使用智慧合約?
我們可以在區塊鏈上籤訂合同來實現許多解決方案的自動化,這樣使得這個事情變得簡單而高效。 接下來我們比較智慧合約和傳統合約,在哪些方面更具有優勢,如下圖所示:
智慧合約:它的複雜程度和案例有關
智慧合約的複雜性是與區塊鏈上編碼的案例相關聯的。 下圖將使您更清楚地瞭解智慧合約的複雜性。
使用各種情景的智慧合約,不僅實現自動化的公司,而且可以形成分散的自治政府
我們通過下面案例瞭解智慧合約的工作方式。
智慧合約案例:醫療行業
病人資料管理:當醫療行業涉及病人資料管理時,存在兩個主要問題:
- 首先,每位病人都是唯一的,獲得完整的醫療記錄對於治療和提供針對病人護理很重要。
- 其次,在醫療界共享資訊是具有重大挑戰的。
現在,使用區塊鏈上的智慧合約功能可以解決上述問題。
智慧合約案例:物業轉讓
問題:目前,財產所有權轉讓是通過中央權力部門進行的。 這不僅檔案管理耗時、需要很多額外的費用,而且還會增加檔案管理的負擔。因為系統是集中的,所以欺詐的可能性是存在的。
解決方案: 利用智慧合約這項技術,讓所有各方(銀行、經紀人、政府官員、買家和賣家)都能看到房地產交易的細節。
智慧合約的優勢
智慧合約的優勢,如下圖所示:
編寫智慧合約的區塊鏈平臺
儘管以太坊是寫合約最常用的平臺,但它並非唯一的平臺。 以下是其它用於編寫智慧合約平臺:
比特幣:比特幣使用功能有限的指令碼處理文件。 指令碼是專門用於處理比特幣交易的。
Hyperledger Fabric:在Fabric中,Chaincode是部署在網路上的程式設計程式碼,在共識過程中,它通過鏈式驗證器執行和驗證。
NXT:這是一個公共區塊鏈平臺,其中可以選擇有限的智慧合約模板。 你必須使用已經存在的內容而不能編寫屬於自己的程式碼。
側鏈
編寫和部署智慧合同的工具
- Mist瀏覽器 - 這是使用dApps的工具。 它是一個獨立的瀏覽器,可用於瀏覽dApp並與其互動。
- Truffle框架 - Truffle是以太坊流行的開發框架。 它內建了智慧合約編譯,連結,部署和二進位制管理。
- Metamask - MetaMask是現在的人們在瀏覽器中訪問未來的分散式Web的橋樑。 它允許使用者在瀏覽器中執行Ethereum dApps,而無需執行完整的以太坊節點。
- Remix - Remix是一個基於Web瀏覽器的IDE,允許使用者編寫Solidity智慧合約,然後部署和執行智慧合約。
編寫以太坊智慧合約的程式語言
Solidity&Serpent是編寫以太坊智慧合約的兩種主要語言。
Solidity:它是一種面向契約的高階語言,其語法類似於JavaScript,它主要用於以太坊虛擬機器(EVM)。
Serpent:Serpent是一種設計用於編寫以太坊合同的高階語言。 它與Python非常相似。但是到2017年9月為止,Solidity是以太坊開發人員首選的開發語言。
雖然Solidity是目前智慧合約最受歡迎的語言,但是即將要推出的一些智慧合約語言也很重要。
即將推出的程式語言
- Viper:Viper有一個類似Python的縮排方案。 它側重於安全性、語言性以及編譯器的簡單性。
- Lisk:Lisk使用JavaScript作為智慧合約語言,開發人員更容易編寫應用程式。
- Chain:Chain使用流行語言(如Ruby,Java和NodeJS)生成的SDK為企業級區塊鏈基礎架構。
現在,因為Solidity是編寫以太坊智慧合約的最廣泛使用的程式語言,下面將描述用Solidity編寫的合同。
您可以看到,[智慧合約]改變社會方面的潛力是巨大的。