區塊鏈已經進化出智能合約,DApp等新的技術,區塊鏈2.0、3.0時代也正在來臨。本文將詳細介紹智能合約是什么。 區塊鏈是分布式數據存儲項目系統: I8I合約2591開發3365部署、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。所謂共識機制是區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學算法。這套理論由中本聰在2008年提出,并在2009年發布了首個比特幣軟件。 比特幣基于Pow算法:通過與或運算,計算出一個滿足規則的隨機數,即獲得本次記賬權,發出本輪需要記錄的數據,全網其它節點驗證后一起存儲,以工作量證明其價值。雖然其完全去中心化的特點是區塊鏈的核心思想,也暴露出比特幣Pow共識算法的弊端:資源大量浪費、共識達成的周期較長和易分叉。 于是,以太坊以Pos+Pow相結合公式算法給出區塊鏈更大的發展空間,也應運而生出智能合約這一概念。 那什么又是智能合約呢? 首先,我們希望大家了解智能合約的本質。同時,在人們了解智能合約的時候,也解除大家對區塊鏈在法律上面的誤解。 智能合約不是一個新的概念!爸悄芎霞s”(smart contract)這個術語至少可以追溯到1995年,是由多產的跨領域法律學者尼克·薩博(Nick Szabo)提出來的。他在發表在自己的網站的幾篇文章中提到了智能合約。他的定義如下:智能合約(英語:Smart contract)是一種旨在以信息化方式傳播、驗證或執行合同的計算機協議。智能合約允許在沒有第三方的情況下進行可信交易。這些交易可追蹤且不可逆轉。 從編程角度而言,智能合約就是一段代碼。相比常規代碼,智能合約具有許多差別與限制,例如: 單線程執行 代碼執行會消耗資源,不能超出資源限制 目前難以獲取鏈外數據,例如取得天氣信息、比賽結果等 其他限制,如TPS 這些特點使得目前智能合約生態以鏈上資源的治理為核心。就像以太坊上各式各樣的ERC標準與治理方案;EOS上有各種資源模型,比如CPU、RAM、Rex、Bancor協議等。 顯然,就目前的生態而言,智能合約對現實世界的影響力有限。 但事物總是在發展的。目前,已有許多致力于突破這些限制的研究,典型的有Oracle(諭言機,但常被稱為預言機),它允許智能合約和鏈外進行交互,這樣就能大大提高智能合約的使用場景,彷佛一臺電腦通上了網;再比如那些突破鏈自身性能瓶頸的嘗試,例如支付通道、跨鏈、plasma、rollup,它們都從不同角度打破安全與性能的枷鎖。 毋庸置疑,智能合約將扮演著越來越重要的角色,將來隨著以太坊2.0的落地,也許會開啟新一個區塊鏈時代。 智能合約技術 以太坊采用了Solidity作為智能合約語言,Solidity是一門為實現智能合約而創建的高級編程語言,能在允許以太坊程序的節點上運行。該語言吸收了C++、JavaScript的一些特性,例如它是靜態類型語言,支持繼承、庫等。 //SPDX-License-Identifier:GPL-3.0 pragma solidity>=0.4.16<0.9.0; contract SimpleStorage{ uint storedData; function set(uint x)public{ storedData=x; } function get()public view returns(uint){ return storedData; } } |