程建
摘 要:智能合約由Nick Szabo在1994年首次提出,受當(dāng)時(shí)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)限制,智能合約相關(guān)理論技術(shù)并未引起較大反響?,F(xiàn)今隨著區(qū)塊鏈技術(shù)逐漸完善與成熟,智能合約在金融領(lǐng)域之外的其他行業(yè)的實(shí)踐應(yīng)用也越發(fā)值得期待。
關(guān)鍵詞:智能合約;眾籌;區(qū)塊鏈;以太坊
要實(shí)現(xiàn)眾籌合約的智能特征和自動(dòng)執(zhí)行特性,需要兩有安全可靠的運(yùn)行環(huán)境和編碼化合約。本文通過分析學(xué)習(xí)區(qū)塊鏈相關(guān)技術(shù),認(rèn)為區(qū)塊鏈可以提供安全可靠的運(yùn)行環(huán)境,隨后運(yùn)用以太坊平臺(tái)模擬進(jìn)行了智能合約的執(zhí)行過程。
一、區(qū)塊鏈技術(shù)
區(qū)塊鏈被人們所熟知主要是來源于比特幣。加密貨幣系統(tǒng)是中本聰在一篇匿名發(fā)表的論文中描述的理論模型。其基本思想是創(chuàng)建一個(gè)無政府、金融機(jī)構(gòu)和第三方干預(yù)的貨幣轉(zhuǎn)移系統(tǒng)。加密貨幣具有強(qiáng)大的數(shù)字處理能力和高度透明性,允許任何人監(jiān)控其他用戶的行為。盡管如此,所有的加密貨幣系統(tǒng)都是從完全相同的模型派生出來的。
比特幣等加密貨幣的功能最終取決于參與者有選擇地披露或隱藏信息的協(xié)議。各類論據(jù)表明,這些協(xié)定相當(dāng)于一個(gè)所有參與方都是締約方的大型多邊合同,多邊協(xié)議通過智能合約技術(shù)自動(dòng)執(zhí)行。因此,加密貨幣的“錢包持有人”與他們的加密貨幣社區(qū)同時(shí)是智能合約債權(quán)的債權(quán)人和債務(wù)人。
二、智能合約
智能合約是在不集中的情況下強(qiáng)制匿名用戶執(zhí)行特定功能的計(jì)算機(jī)網(wǎng)絡(luò)程序,它通過提供不可逆的交易來促進(jìn)商業(yè)交易中的支付公平。智能合約不僅僅可以被描述為一段可以自行運(yùn)行的代碼程序,它更像是一個(gè)系統(tǒng)中的某個(gè)協(xié)議參與者。一旦被編譯和部署成功,它可以對(duì)任何準(zhǔn)確的參數(shù)輸入進(jìn)行響應(yīng),并且這種執(zhí)行過程不可逆,無法中途進(jìn)行干預(yù)。同時(shí),它可以對(duì)任何數(shù)字價(jià)值資產(chǎn)進(jìn)行儲(chǔ)存和交易,承擔(dān)著網(wǎng)絡(luò)中傳遞數(shù)字的任務(wù)。
三、以太坊
以太坊是智能合約移植到區(qū)塊鏈之上的產(chǎn)物。以太坊擴(kuò)展了智能合約的應(yīng)用范圍,將區(qū)塊鏈從一個(gè)單純的分布式存儲(chǔ)庫演化為一個(gè)可以提供給用戶更多實(shí)際應(yīng)用的公開可編譯的區(qū)塊鏈開發(fā)項(xiàng)目。以太坊能攜帶強(qiáng)大的圖靈完備的技術(shù)開發(fā)語言。
四、眾籌合約的設(shè)計(jì)
Remix是以太坊的官方IDE,可以在線的進(jìn)行智能合約的編譯與調(diào)試工作。
首先進(jìn)行資助者結(jié)構(gòu)體的定義,包含資助者所有的屬性。其中包括資助者的以太坊賬戶地址,資助金額等。
其次對(duì)受益者進(jìn)行結(jié)構(gòu)體定義:受益者的屬性應(yīng)包括賬戶、所需金額、目前募集到的金額、資助者以太坊賬戶;這里還定義了一個(gè)mapping,表示資助者的賬戶與其資助金額進(jìn)行一一對(duì)應(yīng)。
系統(tǒng)需要對(duì)每個(gè)受益人的賬戶進(jìn)行管理,需要定義uint類型的受益人賬戶數(shù)量;其次重新構(gòu)造一個(gè)mapping,將每一個(gè)ID與每一個(gè)受益人進(jìn)行呼應(yīng)。
接下來對(duì)受益人結(jié)構(gòu)體進(jìn)行初始化:
構(gòu)造函數(shù)contribute進(jìn)行捐贈(zèng)行為:
構(gòu)造函數(shù)IScompelete來判斷此次眾籌是否完成:
通過start to compile進(jìn)行合約的編譯,然后點(diǎn)擊deploy進(jìn)行合約的部署,在contribute一欄輸入受益人賬戶及捐助金額。
合約運(yùn)行后會(huì)自動(dòng)保存在區(qū)塊鏈之中,同時(shí)可以在日志區(qū)中查看此次交易的詳細(xì)信息。
結(jié)語
通過Remix在線編譯器實(shí)現(xiàn)了眾籌合約的編譯與調(diào)試工作,同時(shí)進(jìn)行了模擬運(yùn)行合約的執(zhí)行操作,達(dá)到了預(yù)期效果。隨著合約技術(shù)的發(fā)展,區(qū)塊鏈將搭載著智能合約逐漸應(yīng)用到各行各業(yè)。
參考文獻(xiàn):
[1] Satoshi Nakamoto. Bitcoin:A Peer-to-Peer Electronic Cash System[EB/OL]. https://bitcoin.org/bitcoin. 2018-02-25.
[2] Financial Law Institute,Ghent University,Belgium. Cryptocurrencies are (smart) contracts[J].Computer Law & Secuiity Review,2018(34):1144-1149.
[3] Yilei Wang,Andrea Bracciali,Tao Li. Randomness invalidates criminal smart contracts[J]. Information Sciences,2019(477):291-301.
[4] Matev? Pusti ek,Andrej Kos. Approaches to Front-End IoT Application Development for the Ethereum Blockchain[J]. Procedia Computer Science,2018(129):410-419.