程建
摘 要:智能合约由Nick Szabo在1994年首次提出,受當时计算机网络技术限制,智能合约相关理论技术并未引起较大反响。现今随着区块链技术逐渐完善与成熟,智能合约在金融领域之外的其他行业的实践应用也越发值得期待。
关键词:智能合约;众筹;区块链;以太坊
要实现众筹合约的智能特征和自动执行特性,需要两有安全可靠的运行环境和编码化合约。本文通过分析学习区块链相关技术,认为区块链可以提供安全可靠的运行环境,随后运用以太坊平台模拟进行了智能合约的执行过程。
一、区块链技术
区块链被人们所熟知主要是来源于比特币。加密货币系统是中本聪在一篇匿名发表的论文中描述的理论模型。其基本思想是创建一个无政府、金融机构和第三方干预的货币转移系统。加密货币具有强大的数字处理能力和高度透明性,允许任何人监控其他用户的行为。尽管如此,所有的加密货币系统都是从完全相同的模型派生出来的。
比特币等加密货币的功能最终取决于参与者有选择地披露或隐藏信息的协议。各类论据表明,这些协定相当于一个所有参与方都是缔约方的大型多边合同,多边协议通过智能合约技术自动执行。因此,加密货币的“钱包持有人”与他们的加密货币社区同时是智能合约债权的债权人和债务人。
二、智能合约
智能合约是在不集中的情况下强制匿名用户执行特定功能的计算机网络程序,它通过提供不可逆的交易来促进商业交易中的支付公平。智能合约不仅仅可以被描述为一段可以自行运行的代码程序,它更像是一个系统中的某个协议参与者。一旦被编译和部署成功,它可以对任何准确的参数输入进行响应,并且这种执行过程不可逆,无法中途进行干预。同时,它可以对任何数字价值资产进行储存和交易,承担着网络中传递数字的任务。
三、以太坊
以太坊是智能合约移植到区块链之上的产物。以太坊扩展了智能合约的应用范围,将区块链从一个单纯的分布式存储库演化为一个可以提供给用户更多实际应用的公开可编译的区块链开发项目。以太坊能携带强大的图灵完备的技术开发语言。
四、众筹合约的设计
Remix是以太坊的官方IDE,可以在线的进行智能合约的编译与调试工作。
首先进行资助者结构体的定义,包含资助者所有的属性。其中包括资助者的以太坊账户地址,资助金额等。
其次对受益者进行结构体定义:受益者的属性应包括账户、所需金额、目前募集到的金额、资助者以太坊账户;这里还定义了一个mapping,表示资助者的账户与其资助金额进行一一对应。
系统需要对每个受益人的账户进行管理,需要定义uint类型的受益人账户数量;其次重新构造一个mapping,将每一个ID与每一个受益人进行呼应。
接下来对受益人结构体进行初始化:
构造函数contribute进行捐赠行为:
构造函数IScompelete来判断此次众筹是否完成:
通过start to compile进行合约的编译,然后点击deploy进行合约的部署,在contribute一栏输入受益人账户及捐助金额。
合约运行后会自动保存在区块链之中,同时可以在日志区中查看此次交易的详细信息。
结语
通过Remix在线编译器实现了众筹合约的编译与调试工作,同时进行了模拟运行合约的执行操作,达到了预期效果。随着合约技术的发展,区块链将搭载着智能合约逐渐应用到各行各业。
参考文献:
[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.