【區(qū)塊鏈】什么是智能合約?

根據(jù)谷歌趨勢(shì)數(shù)據(jù)顯示牵署,目前漏隐,程序員對(duì)智能合約編程的興趣已經(jīng)處于歷史最高水平,其中中國高居全球榜首奴迅,隨著區(qū)塊鏈技術(shù)的發(fā)展青责,相信日后智能合約將會(huì)與我們的生活密切相關(guān),今天就為大家介紹一下什么是智能合約取具。

1.智能合約基本概念

智能合約英文名稱Smart Contract脖隶,90 年代由跨領(lǐng)域法律學(xué)者尼克·薩博(Nick Szabo)博士首次提出,幾乎與互聯(lián)網(wǎng)同齡暇检。但由于缺少可信的執(zhí)行環(huán)境产阱,智能合約并沒有被應(yīng)用到實(shí)際生活中,然而由于區(qū)塊鏈的誕生他開始重新走入人們視野块仆,并逐步開始得到重視和應(yīng)用构蹬。

不同于法律意義上的合約概念,區(qū)塊鏈領(lǐng)域的合約表達(dá)的是可以“自治自理”的 計(jì)算機(jī)協(xié)議悔据,這套協(xié)議具有自我執(zhí)行庄敛、自我驗(yàn)證的屬性。

如果完全從技術(shù)角度來看科汗,智能合約等價(jià)于一段事先就被規(guī)定好邏輯和條款的計(jì)算機(jī)代碼被激活運(yùn)行的狀態(tài)藻烤,同時(shí),智能合約也提供了通用的用戶接口头滔,用戶可以通過接口與用戶交互怖亭。

從定義中我們可以得知,智能合約由多個(gè)協(xié)議組成坤检,這些協(xié)議包含了用戶接口兴猩,能表達(dá)用戶的承諾,它可以安全有效地確定公共網(wǎng)絡(luò)上的關(guān)系缀蹄。

換句話說峭跳,智能合約是一個(gè)由計(jì)算機(jī)處理膘婶、可執(zhí)行合約條款的交易協(xié)議,其總體目標(biāo)是滿足協(xié)議既定的條件蛀醉,例如支付悬襟、抵押、保密協(xié)議拯刁。這可以降低合約欺詐造成的損失脊岳,降低仲裁和強(qiáng)制執(zhí)行所產(chǎn)生的成本以及其他的交易成本。

我們舉個(gè)實(shí)際的例子解釋一下垛玻,今年 4 月 9 日割捅,上海某建設(shè)銀行支行開放了“無人銀行”,銀行中充斥了眾多機(jī)器和顯示屏帚桩,智慧柜員機(jī)亿驾、VTM 機(jī)、外匯兌換機(jī)账嚎、VR 設(shè)備和兩臺(tái)機(jī)器人代替了傳統(tǒng)的柜臺(tái)莫瞬。

這里的智慧柜員機(jī)、外匯兌換機(jī)器人眾多電子設(shè)備都可以認(rèn)為是智能合約的一種表現(xiàn)形式郭蕉,用戶在辦理銀行業(yè)務(wù)時(shí)疼邀,如辦理大額匯兌業(yè)務(wù),業(yè)務(wù)流程和邏輯依據(jù)已經(jīng)定在程序中召锈,用戶只需要按照操作一步一步進(jìn)行旁振,辦理完成后即可獲得單據(jù)。

這里“既定的業(yè)務(wù)流程涨岁、機(jī)器人模樣的人機(jī)交互界面拐袜、雙方同意承諾”組成了智能合約的概念,它甚至具有一定的法律效力卵惦。

薩博提出的是智能合約的概念阻肿,以及我們舉的例子瓦戚,都是廣義的智能合約概念沮尿。智能合約具有多種實(shí)踐形式,而在區(qū)塊領(lǐng)域所說的智能合約概念较解,我們其實(shí)是指 Blockchain-based 這種形式畜疾。

在薩博的智能合約概念中提到了開放式網(wǎng)絡(luò),而我們知道開放式網(wǎng)絡(luò)的基本要求就是拜占庭容錯(cuò)印衔,通過前面文章的講解我們知道啡捶,區(qū)塊鏈天然具有拜占庭容錯(cuò)特性。所以如果在區(qū)塊鏈上實(shí)踐智能合約這個(gè)概念奸焙,兩者會(huì)非常契合瞎暑,天造地設(shè)彤敛。

首先實(shí)踐了智能合約這一概念的是比特幣,比特幣腳本(bitcoin script)包含了 5 種標(biāo)準(zhǔn)交易腳本了赌,這些腳本的功能不僅僅提供了普通單人支付的情況墨榄,它還提供了多方共同簽名支付的腳本,叫做多重簽名支付勿她,多重簽名支付可以看成是薩博語義下的智能合約袄秩。

除了比特幣,將智能合約這個(gè)概念發(fā)揚(yáng)光大的區(qū)塊鏈項(xiàng)目就是以太坊了逢并,2013 年底以太坊的創(chuàng)始人 Vitalik 發(fā)布了白皮書《以太坊:下一代智能合約和去中心化應(yīng)用平臺(tái)》之剧,并一直致力于將以太坊打造成最佳智能合約平臺(tái),所以說 比特幣引領(lǐng)區(qū)塊鏈砍聊,以太坊復(fù)活智能合約背稼。

2.智能合約與以太坊

以太坊 Ethereum 項(xiàng)目的目標(biāo)是打造一個(gè)去中心化的新一代互聯(lián)網(wǎng)應(yīng)用平臺(tái),這個(gè)平臺(tái)稱作 Dapp 平臺(tái)玻蝌。

這些 Dapp 基于以太坊智能合約虛擬機(jī)開發(fā)雇庙、編譯、部署灶伊,并且可以自定義業(yè)務(wù)邏輯疆前,部署后全網(wǎng)可見且自動(dòng)執(zhí)行,理想情況下不存在宕機(jī)聘萨、審查竹椒、欺詐、第三方干預(yù)的情況米辐。

以太坊核心概念包括:智能合約虛擬機(jī) EVM 和 Solidity 編程語言胸完、賬戶模型、以太幣和 Gas翘贮,交易和消息赊窥。

以太坊的核心概念首先是智能合約,智能合約包含兩部分狸页,一部分是開發(fā)語言锨能,主要以 Solidity 為主,Solidity 與 Javascript 語言在使用上十分接近芍耘,這極大地降低了 Dapp 開發(fā)人員的學(xué)習(xí)成本址遇。

Dapp 開發(fā)者編寫好代碼以后,使用 Solidity 編譯成十六進(jìn)制字節(jié)碼斋竞,然后部署到 EVM 上倔约,也就是把合約廣播到全網(wǎng),等礦工打包后就形成了常年運(yùn)行的 Dapp 了坝初。

另一部分就是 EVM浸剩。 EVM 是以太坊智能合約虛擬機(jī)钾军,我們可以等價(jià)理解它為 Javascript、Python 等腳本語言的執(zhí)行引擎绢要。

它是一個(gè)輕量級(jí)的虛擬機(jī)隔離環(huán)境巧颈,它并不提供訪問本地網(wǎng)絡(luò)、進(jìn)程袖扛、文件系統(tǒng)的功能砸泛,它更像是一個(gè)封閉的容器,這個(gè)容器里面裝了一個(gè)正在運(yùn)行 Dapp蛆封,可以看成是無法和外界交互的 Docker Container唇礁。

Dapp 在運(yùn)行過程中,可以被請(qǐng)求或其他事件觸發(fā)惨篱,然后執(zhí)行相應(yīng)的邏輯盏筐,這些請(qǐng)求和事件是由以太坊上的交易產(chǎn)生的,不是來自本地操作系統(tǒng)的事件砸讳。

Dapp 運(yùn)行過程中琢融,每次狀態(tài)發(fā)生變化,則意味著全網(wǎng)同步更新簿寂,大家的計(jì)算結(jié)果都是一致的漾抬,這有兩個(gè)特性:

1、所有 Dapp 的計(jì)算結(jié)果經(jīng)過全網(wǎng)共識(shí)常遂,一旦確認(rèn)過幾乎無法被偽造和篡改纳令;

2、由于必須經(jīng)過全網(wǎng)共識(shí)克胳,所以這限制了整個(gè)網(wǎng)絡(luò)的容量平绩。

3.智能合約示例代碼

這里以生活中常見的雙方打賭場(chǎng)景為切入點(diǎn),寫一個(gè)簡單的合約代碼漠另,比如捏雌,張三和李四打賭,周末拜仁和皇馬的足球比賽誰會(huì)贏笆搓。如果拜仁贏了性湿,張三給李四 100 元;如果反過來砚作,李四給張三 100 元窘奏;如果打成平局,則不贏不輸葫录。

張三和李四都怕對(duì)方不認(rèn)賬,所以领猾,他們需要找一個(gè)他們都信得過的人來做公證米同,兩人都把 100 元錢給這個(gè)公證人骇扇。然后,如果拜仁贏了面粮,公證人把全部 200 元給李四少孝;如果皇馬贏了,則全部給張三熬苍;如果是平局稍走,則分別退還 100 元。

上面這個(gè)模型什么都好柴底,就是有一個(gè)問題婿脸,這個(gè)“公證人”跑路了怎么辦?因?yàn)樗麄冎毁€ 100 元柄驻,公證人犯不著為了 200 元跑路狐树。但是,如果有一萬人把賭金交給公證人呢鸿脓?如果張三李四賭金是 100 萬呢抑钟?公證人的人性會(huì)受到極大的挑戰(zhàn),他還有那么可信嗎野哭? 針對(duì)此問題只需將雙方的賭局約定寫入智能合約在塔,通過智能合約執(zhí)行這一問題即可迎刃而解。

合約代碼如下:

Contract GamblingContract{
    function transferAction(  address _from, address _to, uint256 _value) {
        if ( isBayernWin ) {
            blanceOf[_from] +=  _value
            blanceOf[_to] -= value
        }else if ( isRealMadridWin ) {
            blanceOf[_from] -= _value
            blanceOf[_to] += value
        }
    }
}

目前Solidity 是最受歡迎的智能合約編程語言拨黔,如果大家致力于區(qū)塊鏈智能合約的開發(fā)可以學(xué)習(xí)下Solidity 這門語言心俗。

4.關(guān)于區(qū)塊鏈與智能合約的誤解

誤解 1. 區(qū)塊鏈技術(shù)的主要受益者是不法分子
區(qū)塊鏈技術(shù)最初進(jìn)入大眾視野的時(shí)候,基本被描述為犯罪中心蓉驹,尤其是在暗網(wǎng)上城榛。盡管區(qū)塊鏈逐漸作為安全業(yè)務(wù)解決方案被廣泛接受,人們還是有著區(qū)塊鏈可以讓罪犯匿名作惡的負(fù)面聯(lián)想态兴。

然而狠持,恰恰相反的是,大多數(shù)的公共區(qū)塊鏈都是完全可跟蹤和安全的瞻润,因?yàn)樵摷夹g(shù)可以讓公司企業(yè)跟蹤自身與客戶之間的所有信息往來喘垂。

誤解 2. 區(qū)塊鏈不可更改不會(huì)被黑
雖然區(qū)塊鏈?zhǔn)枪酒髽I(yè)可用的最安全選擇之一,然而绍撞,卻沒有哪一種系統(tǒng)是 100% 對(duì)黑客和更改免疫的正勒。

理論上,區(qū)塊鏈網(wǎng)絡(luò)中的任何個(gè)人或組織傻铣,都可以集結(jié)足夠多的挖礦資源來奪取控制權(quán)章贞,雖然這種事情發(fā)生的可能性很低。

誤解 3. 政府可以關(guān)停區(qū)塊鏈網(wǎng)絡(luò)
實(shí)際上非洲,區(qū)塊鏈網(wǎng)絡(luò)的去中心化特性決定鸭限,除非每個(gè)網(wǎng)絡(luò)的參與者都停止使用蜕径,否則幾乎不可能關(guān)停任何一個(gè)區(qū)塊鏈網(wǎng)絡(luò)。無法關(guān)停败京,正是區(qū)塊鏈技術(shù)之所以成為安全業(yè)務(wù)解決方案極佳選擇的眾多因素之一兜喻。

誤解 4. 智能合約就是具有法律約束力的合同
事實(shí)上,智能合約只是程序里的一段代碼赡麦,按照交易雙方之間的協(xié)議說明執(zhí)行朴皆。它沒有任何法律的約束力,而且它們也只能在區(qū)塊鏈的網(wǎng)絡(luò)中存在泛粹。與其將智能合約看作是真正的合同遂铡,不如說它們更像是某種安全工具。

誤解 5. 智能合約操作完全自治
有些人認(rèn)為戚扳,智能合約是完全自治的忧便,能夠自主分析自身環(huán)境并響應(yīng)任何修改。事實(shí)上帽借,智能合約之所以是安全解決方案的原因之一珠增,就在于它們只會(huì)在收到交易或消息時(shí)執(zhí)行。

誤解 6. 所有智能合約都有相同特征
很多人對(duì)于區(qū)塊鏈技術(shù)和智能合約都有的誤解是砍艾,世界上就一種區(qū)塊鏈技術(shù)或者只有一種智能合約蒂教。其實(shí),根據(jù)所依托的區(qū)塊鏈網(wǎng)絡(luò)不同脆荷,智能合約的功能特性完全不同凝垛。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蜓谋,隨后出現(xiàn)的幾起案子梦皮,更是在濱河造成了極大的恐慌,老刑警劉巖桃焕,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剑肯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡观堂,警方通過查閱死者的電腦和手機(jī)让网,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來师痕,“玉大人溃睹,你說我怎么就攤上這事∫确兀” “怎么了因篇?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我惜犀,道長铛碑,這世上最難降的妖魔是什么狠裹? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上泻轰,老公的妹妹穿的比我還像新娘疙渣。我一直安慰自己,他們只是感情好俗冻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布礁叔。 她就那樣靜靜地躺著,像睡著了一般迄薄。 火紅的嫁衣襯著肌膚如雪琅关。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天讥蔽,我揣著相機(jī)與錄音涣易,去河邊找鬼。 笑死冶伞,一個(gè)胖子當(dāng)著我的面吹牛新症,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播响禽,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼徒爹,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了芋类?” 一聲冷哼從身側(cè)響起隆嗅,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎侯繁,沒想到半個(gè)月后胖喳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡巫击,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年禀晓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坝锰。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粹懒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出顷级,到底是詐尸還是另有隱情凫乖,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站帽芽,受9級(jí)特大地震影響删掀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜导街,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一披泪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搬瑰,春花似錦款票、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至翼悴,卻和暖如春缚够,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鹦赎。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來泰國打工谍椅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人钙姊。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓毯辅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親煞额。 傳聞我的和親對(duì)象是個(gè)殘疾皇子思恐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354