Algofans | Algorand爱好者

为什么我说智能合约靠谱?

AlgofansAlgofans 2019-04-27 59 次 收藏0

今早看到云舒大大写了篇文章,狠狠diss了智能合约,里面的论据大多是过于片面的。作为我很尊敬的技术专家,看到云大这么说我也有些惊讶和伤感。写这篇文章并非引战,其实是希望尽可能消除大众对智能合约的误解。

什么是智能合约

智能合约与传统的纸质合约类似,只是用计算机语言来描述,通过计算机执行,可以在没有第三方信任的情况下进行可信的合约触发和执行。

目前智能合约主要是基于区块链技术来实现,因为区块链可以提供一个去中心化的可信环境,智能合约天然地与区块链相契合。但这并不是说智能合约仅能够通过区块链来实现。

下面要一一回答云舒大大提出的问题:

区块链作为分布式账本有一些应用场景,但是不会太大范围的应用。智能合约则非常不靠谱,最多能在彩票、地下赌场有些半黑半白的应用。而那些币,除了黑市洗钱、违法交易以外没有任何价值。

首先我们要明确为什么要用智能合约?智能合约相对于传统合约来说有两个特点:

  1. 将合约条件的触发执行合并为一次原子操作。
  2. 去中心化和自动化地合约流程,无须第三方中心机构的介入。

说第一点,目前传统合约的条件出发和执行是异步的,也就是说当人们发现客观事件已经满足了合约某条款的触发条件,然后再人工地去触发条款的执行,这一过程是低效的,特别是在追责追债中,很容易给执行对象一定的窗口时间进行周旋和出逃。

举一个例子,A将自己的汽车出租给B,A和B签署一份智能合约,部署在以太坊上。A写明条款:我的汽车的启动密钥在时间xx年xx月xx日前有效,续期需要B转账xx以太币,否则密钥失效。如果B在规定时间内不进行续费,那汽车密钥自动失效,他也无法使用租来的汽车。这一过程完全自动化和原子化,不用担心B在到截止日期的时候拖欠租金,或是找一些借口不归还汽车的问题。

同时,也要说第二点,上面租车的例子,在传统的过程中,如果遇到B拖欠租金或是不还车,那么A只能通过法律途径进行维权(第三方权威机构的介入),这一过程是漫长且低效的。而使用智能合约后,我们根本不需要权威机构介入进行维权,因为去中心化的信任环境保证了我们的权益不会受到侵犯。

所以对于云大提出的第一个问题,总结来说:

  1. 一切需要传统合约的应用场景,都可以使用智能合约来进行升级。
  2. 使用传统合约无法得到保障的应用场景,却能够使用智能合约得以实现。

关于第二点,云大已经给出了例子——半黑半白的应用,在传统市场本身难以找到权威机构来做信用背书,这时候引入智能合约确实是美滋滋。

当然,传统场景进行智能合约的改造升级,需要一些生态上的搭配。比如说现金贷追债,首先需要得到银行的授权,提供相应资金调用的接口,再通过智能合约将事件->状态->资金业务联系起来。这里具体的业务实施还是由银行接口来负责,智能合约只是建立一个状态转移的可信,以及操作流程上的原子化自动化

当有大公司宣称自己的业务运行在区块链上时,我有同样的反应。这些区块链节点有多少个?控制权在谁的手里?哦,全部在这些大公司的运维部么手里。我区你妈的块。

联盟链的意义:一是降低跨企业业务的合作成本;二是将合作的业务场景透明化,使得我可以开放更多的权限给合作企业,进行更深度的商业合作。

联盟链各节点都是由业务方来运行,各业务方需要保证跨企业业务的稳定运行,同时有商业合同和商业信用的压力,驱使它们不需要经济激励便会成为节点。因此联盟链不需要代币激励(当然也有例外,如瑞波币),其常用的共识算法也是BFT族,而非POW、POS这种需要引入代币的共识。

至于控制权、区块链节点是不是掌握在大公司手里,这些都不重要(也可以说从知名云服务商租用的云服务器节点,安全级别更高)。因为这些节点的运营方一定是业务的利益相关方,而只有业务相关方才有可能对联盟链产生实质性影响。

另外要说一点,大公司所提供的BaaS服务,大多都是联盟链场景。在商业合作中,一味地强调去中心化显然也是不现实的。联盟链场景其实是有中心化色彩的——企业加入联盟链一般都需要通过联盟的CA认证,而CA证书的签发方案很多,目前用的比较多的是第三方可信的权威机构进行签发。

关于预言机

总的来说就是由预言机(第三方)将数据推送给区块链,而不需要智能合约主动向第三方拉取数据。
有卵用?讲了一大堆,预言机,分布式预言机,预言机网络,各种概念,最终呢?nb的预言机还是要去小米官网拿数据,而且折旧什么的一样各种纠缠,你的合约里面不可能考虑了各种情况万无一失。球赛的话,还得去球赛官方拿数据。
.......
预测市场的最终数据从哪里来呢?数据来自于人,而非机器,比如那些博彩,下注,竞猜等一切与比赛结果相关,并捆绑了自身利益的人,都可以成为预测数据的提供者,因为他们捆绑了自身利益,他们不会牺牲自身利益提供虚假数据,从而有效地保证了数据的可靠性和真实性。”

云大所提到的预言机的例子确实是有数据源中心化的问题。但这是不是就影响了智能合约的去中心化构建?

首先得提出了两个问题:

  1. 智能合约的去中心化,是针对全网用户而言,还是仅针对合约的参与方而言?
  2. 智能合约的去中心化,是指状态转移(由客观事件触发)的去中心化,还是合约执行的去中心化,抑或是两者皆有?

我认为,智能合约的去中心化是针对合约参与方而言这与区块链要求的全网去中心化不同,前者是业务层面,后者是基础设施层面。那么对于数据源来说,如果合约参与方普遍都说:哎我们都认可CCTV5的体育赛事数据;哎我们都认可中国国家气象局的天气数据!。。那么这些个数据源就能作为客观事件,用于触发该合约的状态转移,进而一系列的合约条款执行。

这也回答了第二个问题,合约状态转移的去中心化本质上是为了让合约参与方达成对该客观事件的共识,而非客观事件本身的去中心化。

再说说预言机的实现

预言机并不像云大所看的资料描述的那样简单(那篇文章甚至很多错误)。预言机的设计需要综合博弈论、社会学、心理学以及区块链平台自有的经济系统来进行考量。

举一个基于博弈论的预言机例子:我在区块链上发起一个智能合约,全网用户都可以投票提供中国VS泰国的足球比赛结果,取大部分一致的投票结果作为最终结果投票与最终结果一致的用户可以平分奖池的奖金(奖金总额=所有投票用户的下注+结果需求方赞助的奖金),而失败者无任何奖励。用户需要以交易的形式进行投票(需要消耗gas和一定下注资金)。根据博弈论的实验结果,绝大部分用户都会选择诚实,提供正确的足球比赛结果,以获取一定的收益。而运营方也通过支付一定的代币获取了高度可信的客观事件结果。

再一个例子:就拿云大的资料中所举的小米手机价格的例子,预言机可以通过从小米商城、淘宝、京东等几个电商平台,抽取几百几千几万个价格的数据源,再取平均数或者中位数。这个过程实际上了进行了一个小型的市场调研,得到的价格也能逼近小米手机的市场价。最后只需要合约参与方投票认可该方案即可。如果不认可,则再使用其他的方案(如上面的博弈论方案)。

结语

区块链技术目前还处于一个探索发展期,基于区块链的业务场景目前大多在联盟链中得以落地,在公链上还没有很好的市场验证。智能合约作为区块链2.0的关键特征,它的潜力还没有被完全挖掘,甚至连50%都未到。另外,智能合约不光能参与到业务层的应用,还能够参与底层模块的执行过程,例如以太坊的分片方案,其中就用到结合智能合约和POS相结合的机制。

让我们拭目以待吧~

本文系作者个人观点,转载请注明出处!
喜欢 0
支付宝扫码打赏
微信打赏

相关文章

更多