成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

智能合約初探:概念與演變

區塊鏈
智能合約與區塊鏈的結合,普遍被認為是區塊鏈世界中一次里程碑式的升級。第一個結合了區塊鏈與智能合約技術的平臺--以太坊的誕生,被認為是開啟了"區塊鏈 2.0"時代。

[[323236]]

前言

自 2009 年比特幣開啟區塊鏈時代以來,近 10 年里,隨著技術與生態的發展,基于區塊鏈的分布式應用(dapp)呈現出井噴的趨勢,而支撐著 dapp 的底層技術就是“區塊鏈+智能合約”。

智能合約與區塊鏈的結合,普遍被認為是區塊鏈世界中一次里程碑式的升級。第一個結合了區塊鏈與智能合約技術的平臺--以太坊的誕生,被認為是開啟了"區塊鏈 2.0"時代。

什么是智能合約

1996 年,Nick Szabo 在文章《Smart Contracts: Building Blocks For Digital Markets》中提出了智能合約的概念。

所謂“合約Contract”,就是條文、合同一類的東西,里面記錄了發生的條件與對應執行的條款,以支持確權等操作;所謂“智能Smart”,就意味著自動化、可編程。

所以,智能合約就是可編程的合同,也可以理解為一段自動執行的條文合同,在計算機中,就是一段自動執行的程序片段。它更易于合約保存,并且由確定的算法運行,給定輸入,就得到對應的輸出,極大保障了合約的執行力。

以自動售貨機做類比,可以幫助我們更好地理解智能合約的核心特征。

當使用者選擇好要購買的貨物并完成支付,出貨邏輯就會被觸發,用戶就能得到想要的貨物,而這個過程不需要人工介入,節省了售賣貨物的人力成本。如果要破壞這個合約,就得物理破壞售賣機。像 POS 刷卡機、EDI(電子數據交換)等,也可作此種類比。

智能合約與區塊鏈

智能合約在上世紀被提出,而區塊鏈 2009 年才誕生,就定義而言,智能合約與區塊鏈關系不大。

那為什么在這 10 年中,智能合約與區塊鏈卻產生了如此緊密的關聯?因為區塊鏈可以保證智能合約的不可篡改,不僅合約內容不可篡改,每次調用記錄亦不可篡改。

智能合約產生價值的最基本前提是有一個強有力的底層介質用于儲存,讓其不可被物理破壞。

然而,智能合約的本體是一份代碼,非常容易被篡改,如何為其提供強力的存儲介質就成了問題。這正好是區塊鏈擅長解決的——通過比特幣的實踐,證明了區塊鏈可以在分布式環境下讓電子記錄不可被篡改。

與此同時,智能合約也在反哺著區塊鏈,它極大地擴展了區塊鏈的業務場景。

與智能合約結合后,區塊鏈不再服務于單一的貨幣支付,可以延申到生活中的方方面面。豐富的應用場景也對區塊鏈的能力產生了新的挑戰。

區塊鏈 2.0:以太坊的誕生

2009 年誕生的比特幣,運用區塊鏈等技術來保證生態,開創了區塊鏈 1.0 時代。

用戶可以通過腳本代碼來定制一些內容,例如如何解鎖一筆資金。這些腳本代碼會隨著交易一起保存,從而享有不可篡改的特質,并且是確定性的。所以從某種角度來說,這些腳本也可看作智能合約。可是它們并不好用。

首先,這些腳本代碼不是圖靈完備的,這限制了實現的功能;其次,開發門檻較高,編寫復雜邏輯的體驗會很差,好比用 JVM 字節碼來寫程序。

2013 年,一個青年 V 神提出了以太坊,其核心是通過世界狀態對區塊鏈數據進行更新和驗證。以太坊與比特幣最大的不同在于可通過智能合約執行復雜的邏輯操作。

在以太坊上,智能合約的語言是 Solidity,它是圖靈完備且較為上層的語言,極大地擴展了智能合約的能力范疇,降低了智能合約編寫難度。

正因為此,以太坊的誕生,也標志著區塊鏈2.0時代開啟。隨后,智能合約技術逐步滲透了溯源、存證、供應鏈等多個業務場景。

智能合約的現狀與前景

從編程角度而言,智能合約就是一段代碼。相比常規代碼,智能合約具有許多差別與限制,例如:

  • 單線程執行
  • 代碼執行會消耗資源,不能超出資源限制
  • 目前難以獲取鏈外數據,例如取得天氣信息、比賽結果等
  • 其他限制,如 TPS

這些特點使得目前智能合約生態以鏈上資源的治理為核心。就像以太坊上各式各樣的 ERC 標準與治理方案;EOS上有各種資源模型,比如 CPU、RAM、Rex、Bancor 協議等

顯然,就目前的生態而言,智能合約對現實世界的影響力有限。

但事物總是在發展的。目前,已有許多致力于突破這些限制的研究,典型的有 Oracle(諭言機,但常被稱為預言機),它允許智能合約和鏈外進行交互,這樣就能大大提高智能合約的使用場景,彷佛一臺電腦通上了網;再比如那些突破鏈自身性能瓶頸的嘗試,例如支付通道、跨鏈、plasma、rollup,它們都從不同角度打破安全與性能的枷鎖。

毋庸置疑,智能合約將扮演著越來越重要的角色,將來隨著以太坊 2.0 的落地,也許會開啟新一個區塊鏈時代。

智能合約技術

以太坊采用了 Solidity 作為智能合約語言,Solidity 是一門為實現智能合約而創建的高級編程語言,能在允許以太坊程序的節點上運行。該語言吸收了 C++、JavaScript 的一些特性,例如它是靜態類型語言,支持繼承、庫等。

除了 Solidity,每個平臺的智能合約技術也有所不同,接下來將從公有鏈、聯盟鏈作為切入,介紹其他平臺所采用的技術。

公有鏈

首先,不妨先認識三大公鏈的智能合約技術。

 

聯盟鏈

除了公鏈,聯盟鏈也是重要的區塊鏈類型。比之公鏈,聯盟鏈共識的復雜度被大大縮減,因此具有更高的執行效率。

聯盟鏈受企業級機構青睞,一般而言,相關機構之間會形成聯盟,通過聯盟鏈來共享數據。聯盟鏈可覆蓋供應鏈金融、司法存證、溯源等多種場景,未來還會與 IOT、AI 等技術結合。

在當今聯盟鏈生態中,除去采用 chaincode 的 Fabric,大部分平臺都采用 Solidity 作為智能合約語言,FISCO BCOS 即是如此。

時下,Solidity 可謂占據了智能合約的 C 位,掌握 Solidity 是學習智能合約和區塊鏈的重要一環。后面系列也將對如何用 Solidity 編寫、運行以及測試智能合約作深入介紹解析,敬請關注。

除了 Solidity、WebAssembly、Libra 的 Move 等一些智能合約語言也在發展中,可以保持關注。

智能合約運行分析

下面將分享一個基礎的智能合約:HelloWorld

  1. pragma solidity 0.4.22;
  2.  
  3. contract HelloWorld{
  4.  
  5. uint private _num;
  6. function store(uint256 num) public {
  7. _num = num;
  8. }
  9.  
  10. function get() public view returns (uint256){
  11. return _num;
  12. }
  13. }

這段 Solidity 代碼的功能是存取 _num 字段。該字段被稱為“狀態變量”,會由區塊鏈持久存儲。 

用戶可以將這段代碼部署在以太坊或類似的區塊鏈上,部署成功就意味著該智能合約不可再被修改,只要底層區塊鏈不被銷毀,這段合約就一直存在。任何人都可通過“合約地址”來調用該合約接口,每次調用信息都會被記錄在鏈上。

在講解這段代碼如何運行之前,我們先回顧下傳統 Java 程序的運行方式。

首先,用戶編譯完 Java 代碼后,會以字節碼的形式保存在磁盤上;然后用戶會調用程序,這由 JVM 來托管執行;程序執行期間可能會通過日志來記錄調用參數,也可能會和磁盤進行 IO。

Solidity 的執行與此類似。不同的是介質由硬盤換成了區塊鏈,由單機變為分布式。

代碼部署后,以字節碼的形式存儲在每一個節點上。當用戶要求調用某個函數時,調用請求將會被囊括在交易中,并被打包到某個區塊上,一旦全網對該區塊形成共識,就意味著調用是合法的。

接下來,EVM 會來調用字節碼,它負責存取底層的狀態變量,好比傳統編程的 IO。

 

光從代碼來看,合約開發似乎不過如此,單個合約只需要圍繞著字段進行操作,對于很多簡單業務而言,不過是 CRUD 而已。

但其復雜性也恰恰在于此,合約在區塊鏈環境上執行,是不可修改的。

所以如果出現了 bug,就必須部署新的合約,這對于合約的可維護性提出了挑戰。并且,一旦業務復雜起來,容易出現安全漏洞,導致鏈上資產損失。同時,還要考慮完成代碼編寫、邏輯執行、數據存儲的成本問題。

綜上所述,寫合約不難,但寫好合約,卻需要一定功底。

結 語

本文介紹了智能合約的概念與歷史演變。

智能合約是上世紀提出的技術,在區塊鏈浪潮下煥發出了新的生機。反之,智能合約廣泛的應用場景,又極大的促進了區塊鏈發展。

學習智能合約,推薦選擇 Solidity 語言,因為其具備一些傳統語言的特征,同時,執行環境完全基于區塊鏈,實際業務開發的體驗與以往的編程體驗會有所差別。

讀者可以嘗試基于 FISCO BCOS 快速搭建區塊鏈環境,部署一個最簡單的合約,熟悉部署、調用方式,再進一步走入 Solidity 的世界。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2021-04-14 09:33:58

Kubernetes通信網絡模型

2021-05-06 09:42:24

Truffle部署智能

2021-11-02 10:25:19

區塊鏈智能合約

2018-12-26 15:15:45

智能制造ICT人工智能

2022-05-12 16:03:42

智能建筑樓宇自控物聯網

2021-03-18 23:04:41

Solidity開發智能

2023-05-12 09:14:34

2020-04-29 12:50:29

Solidity智能合約區塊鏈

2020-12-17 08:00:00

區塊鏈數據以太坊

2021-04-23 10:59:07

區塊鏈貨幣私鑰

2021-04-20 12:53:34

Polkadot部署合約

2024-05-07 07:00:00

智能機器人工業機器人人工智能

2022-02-13 23:05:23

加密貨幣比特幣貨幣

2023-07-04 20:15:00

2018-09-30 00:00:00

2022-05-29 10:19:08

區塊鏈智能合約編程語言

2018-08-15 08:48:18

2023-03-06 16:44:41

編程語言開發編碼

2025-06-10 08:26:00

2021-08-12 10:25:55

人工智能AI人工智能技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品99久久久久久久vr | 伊人久久精品一区二区三区 | 成人一区二区电影 | 亚洲天天 | 免费一级毛片 | 欧美久久久久久 | 91成人免费电影 | 视频一区二区中文字幕日韩 | 日本一卡精品视频免费 | 热99| 国产精品亚洲一区 | 天天插天天操 | 日韩中文字幕一区 | 欧美激情黄色 | 伊人超碰 | 亚av在线 | 97超碰在线播放 | 三级免费毛片 | 国产高清在线 | 免费视频久久 | 久久88| 国产精品久久毛片av大全日韩 | www成年人视频 | 国产精品99久久久精品免费观看 | 欧美久久精品一级c片 | 日本中文字幕在线视频 | 天天操人人干 | 成人久久18免费网站图片 | aa级毛片毛片免费观看久 | 精品成人一区二区 | 国产乱码一区 | 五月天国产视频 | 国产精品特级毛片一区二区三区 | 国产乱码精品一区二区三区忘忧草 | 99精品热视频 | 欧美久久久久久久 | 国产电影一区二区 | 女女百合av大片一区二区三区九县 | 免费在线观看黄网站 | 在线观看国产 | 韩日一区二区三区 |