智能合约被认为是运用区块链技术的又一个抢手技术,在这个领域内,最著名的初创企业就属Ethereum和Eris Industries了,近期很多媒体也一直在报道相关的新闻。

智能合约其实并不是特别智能,也不是严厉意义上的合约。
智能合约是什么
从用户视点来讲,智能合约通常被认为是一个主动担保账户,例如,当特定的条件满意时,程序就会开释和搬运资金。
从技术视点来讲,智能合约被认为是网络服务器,仅仅这些服务器并不是运用IP地址架设在互联网上,而是架设在区块链上。从而能够在其上面运行特定的合约程序。
可是与网络服务器不同的是,一切人都能够看到智能合约,由于这些智能合约的代码和状况都在区块链上(假设区块链是揭露的)。并且,与网络服务器不同的是,智能合约不依赖某个特定的硬件设备,事实上,智能合约的代码由一切参加挖矿的设备来履行(这也意味着进入单个合约的算力是有限的,尽管挖矿难度的主动调整会调理这种影响)。
智能合约是编程在区块链上的汇编言语。通常人们不会自己写字节码,可是会从更高级的言语来编译它,例如用Solidity,与Javascript相似的专用言语。这些字节码确实给区块链的功能性提供了指引,因而代码能够很容易与它进行交互,例如搬运密码学钱银和记录事件。
代码的履行是主动的:要么成功履行,或许一切的状况改变都吊销(包括从当前失败的合约中现已送或接纳的信息。)这是很重要的,由于它防止了合约部分履行的状况(例如,在证券购买买卖中,证券一切者现已搬运发送了证券,可是密码学钱银的付出搬运却失败了)。在区块链环境中,这尤为重要,由于没有办法来吊销履行过错所带来的不好的结果(并且假如对手不配合的话,根本就没有办法反转买卖)。
智能合约的运用案例
证券挂号和清算。合约状况包含了证券一切权的信息。假如挂号的证券一切者注意到该合约中证券现已出售给了其他的参加者,其他参加者就会把密码学钱银发送到担保账户,然后证券挂号信息就会更新,钱银就会转发给原来的证券持有者。取决于哪个信息先抵达,证券或钱银都会保管在一个担保账户中以防止两层运用,当买卖撤销或过时后,担保也将撤销。
银行现有账户。区块链自身现已运用了密码学钱银账户,因而这里不需要智能合约。但是,现实生活中的人们想说欧元或美元账户,与上面所讲到的证券挂号账户相似。运用合约会存在合约对手危险,正如在现实国际中的任何银行相同。这种危险能够经过对手危险监管来搬运,或许经过担保来消除这种危险。
衍生产品、博彩。假设对手同意某个在互联网能够访问的数据源,他们就能够对数据源的价值进行衍生合约或博彩。
预付款和再充值。合约能够和移动SIM卡、预付出电费卡等绑定,当收到密码学钱银时,就能够进行充值。
智能合约面对的问题
智能合约目前还处在初级阶段,尚未有任何实质进展。要害问题是信任度的问题,这与影响区块链实施的问题相似:这些体系都规划成了无需信任的环境,这意味着无法改正出现的过错。例如,在区块链中,假如你将钱银发送给某个地址,这个操作是无法撤销的。因而,假如你与欺诈者进行买卖 – 或许你现已将钱银发送到过错的地址中 – 那么金钱损失是无法挽回的。
智能合约能够搬运欺诈对手的问题 – 事实上,这就是智能合约规划的原因之一:无论何时,合约都能能够可靠地监控合约中参加方的履行状况,参加方是无法进行诈骗的。
但是,问题并没有解决,只不过是出现在了新的层级:例如,合约可能有漏洞,能够搬运证券,但却无法搬运钱银。
在现实生活中,这些事情能够经过中心化的体系来吊销。可是假如是去中心化的体系,则只能自己承当危险。
同样地,也有欺诈的问题:或人需要规划(编程)合约,在合约规划时就会需要保证没有欺诈的问题。至少参加者要保证:
  • 高层级(例如Solidity)的代码中需要充沛描述合约参加方的目的
  • 代码中的字节码实际上相当于高层级的代码,需要在进入合约之前进行审核
  • 合约信息需要很好地了解,以防止出现乌龙指操作(例如,人们用过错的报价方式-例如USD/ERU而不是EUR/USD-这会导致严重损失。
在现实生活中,上述的这些问题原则上都能够在事后进行处了解决,假如需要的话,还能够经过法院,可是在无需信任的工作量证明区块链中这是不可能的:问题是为什么人们想要依赖一个工作量证明体系(背面的原理是浪费大量的动力来挖矿,这样的话攻击这个体系在经济上是不划算的)而不是运用一个中心化运行的揭露账本和依赖中心化的权力组织 – 政府、法院等 – 来履行合约。
【参阅阅览】
https://docs.erisindustries.com/explainers/smart_contracts/
【原文】
https://medium.com/@skloe/smart-contracts-e970a89f0695#.yb3dqid3b

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注