你對(duì)于智能合約有正確的了解嗎
1995年,計(jì)算機(jī)科學(xué)家,法學(xué)家和密碼學(xué)家,尼克·薩博提出了智能合約這個(gè)概念。但縱然牛逼如尼克·薩博,也沒(méi)有清晰地定義出什么是智能合約。
區(qū)塊鏈的發(fā)明,特別是以太坊的發(fā)布,讓智能合約這個(gè)概念在區(qū)塊鏈領(lǐng)域火熱起來(lái)。但到現(xiàn)在,以太坊也已經(jīng)運(yùn)行了4年多了,各種自稱為智能合約的產(chǎn)品已經(jīng)運(yùn)行超過(guò)4年了,但智能合約到底是什么,其實(shí)也沒(méi)有一個(gè)清晰的概念。
從以太坊開始,我就特別想搞明白智能合約到底是個(gè)什么東西。但好幾年了,我還不知道。
我覺(jué)得如果不能清晰定義出這個(gè)概念,那智能合約就會(huì)被玄學(xué)化,各種騙子就會(huì)拿智能合約來(lái)行騙。這是行業(yè)的悲劇。
既然我無(wú)法全面理解智能合約,今天我退而求其次,先理解一個(gè)目前區(qū)塊鏈行業(yè)內(nèi)有共識(shí)的智能合約的子集——智能數(shù)字貨幣資產(chǎn)處置合約。這個(gè)詞是我造的。目前在以太坊上的數(shù)字貨幣資產(chǎn)的程序化處置,肯定是智能合約的范圍。我們先清晰地理解這個(gè)子集。
我們把討論的范圍限定在數(shù)字貨幣資產(chǎn),什么是智能合約,就非常清晰了。先看三個(gè)例子。
比特幣挖礦獲得BTC獎(jiǎng)勵(lì)的過(guò)程,就是一個(gè)智能合約。
比特幣挖礦出塊獎(jiǎng)勵(lì)的規(guī)則,從2009年第一個(gè)bitcoin節(jié)點(diǎn)軟件發(fā)布時(shí)就定下來(lái)了,而且將會(huì)一直以這個(gè)規(guī)則運(yùn)行下去。比特幣創(chuàng)世塊發(fā)行量是50BTC,然后是平均10分鐘能被挖出一個(gè)塊,一個(gè)塊獎(jiǎng)勵(lì)50BTC。每挖出21萬(wàn)個(gè)塊后,每個(gè)區(qū)塊獎(jiǎng)勵(lì)減半?,F(xiàn)在已經(jīng)執(zhí)行到了第二次減半,每個(gè)區(qū)塊獎(jiǎng)勵(lì)12.5BTC。
任何人都可以參與挖礦,你只要遵守工作量證明的規(guī)則,就可以加入挖礦大軍。挖礦的工作量證明的規(guī)則,從bitcoin第一版本軟件就規(guī)定好了。一直都是對(duì)全世界公開透明。
所有的挖礦獎(jiǎng)勵(lì)交易記錄,都是公開透明的完整地記錄在比特幣區(qū)塊鏈里。不可篡改,也不可刪除。
挖礦的整個(gè)設(shè)計(jì),就像是一個(gè)勞動(dòng)合同。你只要向比特幣系統(tǒng)提交了按規(guī)則約定好的工作量,系統(tǒng)就會(huì)給你獎(jiǎng)勵(lì)工資。整個(gè)合同,都是以代碼的形式固定在系統(tǒng)里。而且整個(gè)合同的執(zhí)行,是純自動(dòng)的,不需要任何外力的介入。
這就是智能合約(合同)。合約的參與方是自由進(jìn)出,合約的“勞工方”提交“工作量”,系統(tǒng)自動(dòng)驗(yàn)證“勞動(dòng)量”,“勞工方”獲得“BTC工資”。
合約規(guī)則以代碼形式固定;參與合約無(wú)須授權(quán)自由進(jìn)出;整個(gè)合同的執(zhí)行,純自動(dòng),無(wú)須干預(yù);100%公開透明,歷史100%被記錄,不可篡改,不可刪除。
比特幣挖礦這個(gè)智能合約,穩(wěn)定運(yùn)行了超過(guò)10年了,沒(méi)有出現(xiàn)問(wèn)題。牛逼到爆炸。
在現(xiàn)實(shí)生活中,你知道我們簽訂勞務(wù)合同,上班,領(lǐng)工資是怎么一回事。和挖礦相比,區(qū)別是什么。
比特幣挖礦類似于一個(gè)“勞務(wù)換取BTC工資”的智能合約。我們?cè)賮?lái)看一個(gè)“商品出售”智能合約。
2017年6月26日,EOS開始進(jìn)行ICO,一直持續(xù)到一年后,創(chuàng)下融資40億美元的歷史記錄。史上最成功的融資之一。
EOS的ICO的執(zhí)行方式是這樣的。BM開發(fā)了一個(gè)“程序(智能合約,為方便描述,下稱這個(gè)程序?yàn)镋OS-ICO程序)”,程序運(yùn)行在以太坊區(qū)塊鏈上。
EOS-ICO程序有一個(gè)收ETH的地址,任何用戶都可以往這個(gè)地址轉(zhuǎn)入ETH。
每隔23小時(shí),EOS-ICO程序會(huì)統(tǒng)計(jì)該地址收到多少ETH,以及分別由哪個(gè)用戶的地址轉(zhuǎn)入了多少ETH。
EOS-ICO程序然后會(huì)將200萬(wàn)個(gè)EOS-erc20代幣,平均分配給這些ETH。
轉(zhuǎn)入過(guò)ETH的用戶,可以再次使用自己的以太坊賬戶,向EOS-ICO程序調(diào)用支付函數(shù)。支付函數(shù)就會(huì)向用戶的地址返回一筆EOS-erc20代幣。
這就是一個(gè)典型的,支付貨幣(ETH),智能合約,向用戶交付商品(EOS-erc20代幣)的過(guò)程。
最后,這個(gè)EOS-ICO程序收到的所有ETH,只能由BM(或者說(shuō)是block.one公司)提取,他們控制了這個(gè)程序的私鑰。
EOS-ICO程序,就是一個(gè)智能合約,是一個(gè)自動(dòng)的收取用戶ETH,自動(dòng)向用戶交付商品的智能合約。
同樣的,合約規(guī)則由代碼固定;參與合約無(wú)須授權(quán);合約執(zhí)行純自動(dòng);100%公開透明,不可篡改,不可刪除。
EOS-ICO這個(gè)智能合約,穩(wěn)定運(yùn)行了1年,共361期,沒(méi)有出現(xiàn)任何差錯(cuò)。共出售了10億EOS-erc20代幣,總?cè)谫Y額超過(guò)40億美元。牛逼到爆炸。
在現(xiàn)實(shí)生活中,我們知道“商品競(jìng)價(jià)出售”的過(guò)程是什么樣的,被設(shè)計(jì)成智能合同后,區(qū)別有多大。
最后,我們來(lái)看一個(gè)“完成央行職責(zé)發(fā)行貨幣智能合約”MakerDao。MakerDao合約很復(fù)雜,復(fù)雜使人擔(dān)心,簡(jiǎn)化是出路。
央行的主要職責(zé)是發(fā)行貨幣和調(diào)節(jié)貨幣市場(chǎng)利率。MakerDao智能合約干的就是這事。
MakerDao合同有兩個(gè)參與方,抵押借貸方,和市場(chǎng)利率調(diào)節(jié)方。
抵押借貸方通過(guò)將自己的ETH,充值進(jìn)MakerDao合約抵押,合約則向借貸方發(fā)送Dai。Dai是一種穩(wěn)定幣,期望做到和美元1:1錨定。
抵押率先假定為60%,即價(jià)值100美元的ETH,可以抵押出60Dai(60美元)。再假定爆倉(cāng)線為125%,即如果抵押品的價(jià)值跌到了借貸額的1.25倍,就觸發(fā)系統(tǒng)拍賣程序,其他用戶可以通過(guò)將Dai發(fā)給拍賣程序,可以購(gòu)買到低于市場(chǎng)價(jià)格(我們假定為低3%)的ETH。拍賣程序促使抵押借貸者在價(jià)格下跌時(shí),及時(shí)將Dai還款,贖回抵押品。
那Dai如何能實(shí)現(xiàn)和美元錨定的目標(biāo)呢?
首先要問(wèn)的是,MakerDao智能合約怎么可能知道Dai和美元之間的匯率?MakerDao合約本身并不知道,但有人會(huì)給合約提供這類數(shù)據(jù),這就是市場(chǎng)利率調(diào)節(jié)方。
MakerDao發(fā)行了一種幣,叫MKR。MKR持幣人享有合約運(yùn)行收益(如Dai借貸的手續(xù)費(fèi))的分紅權(quán)。而抵押ETH借貸Dai的抵押率,爆倉(cāng)線,等合約的參數(shù)是由MKR持幣人投票決定的。
MKR的分紅權(quán)讓持幣人有動(dòng)力維持Dai和美元的穩(wěn)定錨定。一個(gè)策略是調(diào)節(jié)抵押率和爆倉(cāng)線。第二個(gè)策略是市場(chǎng)套利。
MKR持幣者是Dai和美元波動(dòng)最大的套利者,他們是拍賣程序的最積極參與者,為的是套取其中的拍賣價(jià)和市場(chǎng)價(jià)的差額。如果1Dai低于1美元,MKR持幣者就贖返Dai,以降低Dai在市場(chǎng)上的供應(yīng)。反之,1Dai高于1美元,MKR持幣者就會(huì)抵押ETH發(fā)行Dai,以提高Dai的供應(yīng)。
以上設(shè)計(jì)就形成一個(gè)邏輯自洽的抵押發(fā)行穩(wěn)定幣的系統(tǒng)。
MakerDao程序,就是一個(gè)智能合約。這個(gè)智能合約包含了比特幣挖礦這種“勞務(wù)合同”屬性,系統(tǒng)鼓勵(lì)參與者發(fā)現(xiàn)市場(chǎng)利率,從中套利;又包含了EOS-ICO智能合約的“商品出售合同”屬性,參與者可以使用ETH向合約“購(gòu)買Dai”。
整個(gè)合約,同樣的,合約規(guī)則由代碼固定;參與合約無(wú)須授權(quán);合約執(zhí)行純自動(dòng);100%公開透明,不可篡改,不可刪除。
MakerDao已經(jīng)穩(wěn)定運(yùn)行超過(guò)兩年了。市場(chǎng)抵押出1億Dai,即1億美元。沒(méi)出現(xiàn)問(wèn)題。牛逼到爆炸。
從上面三個(gè)例子,我們可以看到將討論范圍限定的加密數(shù)字貨幣資產(chǎn)領(lǐng)域后,智能合約的定義。
智能合約是我們熟悉的經(jīng)濟(jì)生活中的合同概念在互聯(lián)網(wǎng)上的一個(gè)延伸。智能合約,就是智能合同。
合同最重要的三大屬性是:金錢或財(cái)產(chǎn);合同參與方的權(quán)力和責(zé)任;以及違約處置辦法。
智能合約最重要的三大屬性是:加密數(shù)字貨幣;參與合約的條件和收益;合約規(guī)則。
合同是依賴于現(xiàn)實(shí)生活世界的約定成俗,和法律保證,以及人的承諾信用等。
智能合約依賴于代碼規(guī)定,所以被廣泛地認(rèn)定為,code is law。
智能合約的重要特性包括:在合約條款以代碼形式固定;參與無(wú)須授權(quán);合約自動(dòng)執(zhí)行;公開透明,不可篡改,不可刪除歷史記錄。
最后,我沒(méi)能給出一個(gè)智能合約高度抽象的定義,可能就目前來(lái)說(shuō),這是時(shí)代的局限,整個(gè)行業(yè)都沒(méi)法給出清晰的定義。