智能合约和 DApp

2017年11月份和2018年5月份的技术雷达,都将Ethereum for decentralised applications. 放到了 Technique 象限的 ASSESS 环里,鼓励在数字货币和银行等金融领域之外多尝试构建崭新的DApp。那我们就来聊聊什么是去中心化应用。

技术雷达 Ethereum for DApps

Ethereum(以太坊)是众多区块链平台里除了比特币之外最为有名的区块链平台了。它标榜成为世界的计算机,然后在这台世界计算机上运行的就是智能合约,智能合约相当于后台程序,和前端程序一组合(sdk/rpc)也就是这里的DApp

智能合约和 DApp

大侠留步,智能合约(Smart Contract)是个什么东西,和AI有关系?嗯,没半毛钱关系。

刺客伍六七

举个例子,我们来听首歌:“阿珍爱上了阿强,在一个有星星的夜晚,飞机从头顶飞过,流星也划破那夜空”。这是一首描写爱情的美妙歌曲,因为太美妙了,所以很多人在传唱,结果很多人都知道了一个事实:阿珍爱上了阿强。这就是多人形成的一种共识,传播方式类似于流行感冒,所以也叫流行歌曲(大概是这么回事儿)。

智能合约和这个原理差不多,不同的是它会把事件编成代码,放到区块链这个不可篡改的数据库上,然后区块链网络中的每个节点都去跑一遍这个代码,结果都得到“阿珍爱上了阿强”这个事实。以后,你跑去查一查区块链的历史记录,总是能得到“阿珍爱上了阿强”,这就叫做可追溯。

什么是DApp

Dapp 是去中心化应用(Decentralized Application)的简称。与之相对的是中心化应用(Centralized Application),比如现在常见的BS模式下的 web 应用。而中心化应用通常会出于可用性的考虑将实例部署到多个节点上,形成分布式应用。所以说,中心化应用可以是分布式的,也可以是非分布式,但是去中心化应用一定是分布式的。那么由此就会引出一个思考,去中心化应用和现在的分布式应用的区别到底在哪里呢?去中心化应用具有四个基本特点:

  1. 开源
  2. 内部货币
  3. 去中心化的共识机制
  4. 无单点故障缺陷

Ethereum DApps

DApp 和普通的 App 有什么不同?

DApp和App之间最大的不同就在这D(Decentralized)上,这个D有两层含义,第一它具备分布式(Distributed)的特征,第二它具备分权(Decentralized)的特征。

分布式理解起来比较简单,这个app是部署到多个节点上的,不用害怕单点故障。 关键是这个分权比较难以理解。在这里,分权其实也包含两层含义。第一点,应用的开发者在上线应用之后,就不能随意修改升级应用内容,当然更加不可能修改数据;第二点,应用本身具有博弈的特点,都把用户想象成理性经济人,做事之前考虑成本,这也是为什么大多数DApp都有它内置的代币(Token,也作通证)。

这样说起来比较抽象,我们来看看一些典型的DApp的特征。

购买商品合约

想象一个场景,我们在一个没有淘宝这种电商平台下,怎么和个体商家做交易?

假想一下,商家发布了一个合约,合约里说,我这里有一件商品价值1块钱,你给这个合约打入一块钱,我就把商品发过去,然后你那边确认收货之后,我就收到这1块。

第一回合

听上去不错,但是这里面有问题。如果用户打进1块钱,商家根本没有货,那用户只能白白浪费一块钱。只要用户不傻,他就不会打进去这1块钱,这个交易不可能完成。

怎么办?商家说那好,我先打进去1块钱表示我这里有1块钱的商品,这样就能确保我发货。然后用户打入1块钱,然后商家发货,用户签收,商家得到2块钱。

第二回合

听上去不错,但是这里面还是有问题。如果用户收到货之后,不去触发签收操作呢?对于用户而言,没啥损失,但是商家不仅损失了商品,还损失了1块钱。

怎么办?用户说那好,你先打进去1块钱,我打进去2块钱。我收到商品之后,自然会触发签收操作,那样你就得到了2块钱,返还我1块钱。如果我不进行这样的操作,就会损失1块钱呢。

第三回合

听上去不错,不过我们稍微钻点牛角尖,就会说刚才方案还是有漏洞,商家可能会用1块钱套住用户2块钱的,就是不发货。那商家就得和用户一样打进去2块钱,但是用户收货之后,完全会考虑我只损失1块钱,你损失了3块钱,那我就不签收哈哈哈。

第四回合

不过,我们还是基于理性经济人的假设,商家是想通过买东西赚钱的,所以他在抵押1块钱的情况下,一定会发货。

通过这个例子,我们很容易发现,在没有中间人担保的场景下,两个陌生人也是可能完成一笔交易的。这里面充满了博弈的套路,在实际编码的过程中,最好有两个人扮演不同的角色,然后坐到一起,从自己的利益出发,达成交易,而且使交易的信任成本最小化。刚才的场景下效率肯定不高,我想不会有哪个商家和顾客愿意质押自己的现金流,去达成这种交易吧。

锤子剪刀布

如何在Dapp中玩锤子剪刀布的游戏呢?我们面对面玩这个游戏还是比较简单的,彼此同时亮出来就好了。但是在网络环境下就不一样了,总有一个人先出,另一个后出。那放到DApp中更加有问题了,先出的人一定会输,为啥?因为先出的已经被记录在区块链上,那就意味着后面的人一定能看到对方的出拳结果,所以他一定会赢。

先手

所以先出的人一定会把出拳的结果加salt然后hash才上链,后出因为看不到结果,所以只能随机选择一个出拳。

后手

不过这个时候,问题又来了。先出的一看结果,是对方赢了,那就干脆不揭露结果。这对游戏而言不公平。所以还得设计在对方出拳之后,多长时间内,如果先出拳的一方不揭露,那么不论结果如何都算他输。

公平

去中心的智能锁

区块链上的智能合约承载了原来中间商信任担保的角色,也是我们常常说的“去中介”和“去信任”的由来。详细请看这篇《基于以太坊的去中心化智能锁》

在很多共享经济的场景当中,其实一把“智能”的锁就可以胜任。这也是为什么我们会有去中心化智能锁的想法。整体的实现逻辑如下:

  • 房东通过智能合约 Smart Lock Contract 设置房屋租金。
  • 租客通过查找合约地址,对所要租的房屋合约转账;
  • 租客来到房屋门前出示二维码(由自己签名的消息转成的二维码);
  • 门锁上的摄像头识别二维码,并向合约验证签名的真实性以及租客的租房时间的合法性,进行开门。

去中心化的智能锁

以太猫(Cryptokitty)

Cryptokitty是一款构建在以太坊区块链平台上的以太猫游戏(cryptokitties)着实火了,火热的程度直接引发以太坊网络的大拥堵,由于这个游戏占用了较多的以太坊网络带宽,导致很多交易得不到及时处理,比如你想从火币网转出一笔 ETH 到自己的钱包,这笔交易就会长时间处于等待确认的状态

Cryptokitties 类似于此前席卷全球的游戏 Pokémon,不过它是一个基于以太坊的DAPP(Decentralized Application,去中心化应用),由设计工作室 AxiomZen 设计打造,上线不到10天就迅速成为以太坊上交易量最大的 DAPP。在这个游戏当中,你可以收藏,交易和繁殖以太喵,有别于比特币这类加密货币,以太喵更像加密收藏品,这意味着你的 CryptoKitty 始终属于你,合法性由智能合约(Smart Contract)确定,而智能合约是无法关停的,这点也是它区别于 Pokémon 的地方,因为一旦 Pokémon 背后的公司倒闭,你所拥有的宠物也随之消失。而且作为收藏品,以太喵的市场价格是由市场需求、本身的稀缺性和你的报价决定的,这也是为什么一只以太喵的价格会如此之高,甚至高达17万美元。

CryptoKittes 是一个收藏游戏,它能满足人们娱乐的需求。你可以收藏和买卖那些通过隐形基因繁殖出来的稀有品种、给喵命名、给它找对象,开启一段区块链吸猫的新时尚。这里也显现了 DAPP 的另一个重要特征 —— 内部代币,通过和外部转换代币进而盈利。

以太猫

FoMo3D

传销集大成者,前段时间火的不能再火的DApp FoMo3D,它的网站名称叫做 exitscam.me,妥妥的骗局?

这个赌博的方式类似传销,它设置了崩盘的上限为24小时,每个新加入这个骗局的人都会自动给游戏续命30s(嗯,+30s)。为啥明知是个骗局还有很多人愿意进来玩呢,因为它的规则是在崩盘的时候,最后一个游戏参与者能获得之前所有参与者资金的23%,而其他的后来者需要为前面进来的人买单。

当然也有人给这款天才之作洗白,这归功于DApp的特性,代码开源,无法篡改。它巧妙地将阳谋编码到程序当中,而且明码标价地让参与者投注,即便是程序的拥有者也无法“携款潜逃”!驱使赌局越来越大的是人的贪婪本性。所以从本质上,这又不是传销。

这样一款邪恶的游戏现在已经募集了21,468.75ETH,价值9,903,536.56252刀,而且还会继续涨下去。把人性玩得如此得心应手,这也是区块链当前的状态。

FoMo3D

小结

综合来看,我们可以下个简明的定义:DApp 是一种运行在去中心化 P2P 网络上,没有任何一个节点可以获得完全控制权并且源码开放,含有内部激励的网络应用。

三个基本特点

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏奇点大数据

区块链 : 历史、现在与未来

就区块链而言,问不同的人,你会得到不同的答案。有人说,区块链是自互联网以来最重要的技术创新。也有人说,区块链不过是问题的解决方案而已。 最初的区块链,是数字货...

3594
来自专栏区块链大本营

麻将算什么? 纽约时报竟然暗藏着世界上最早的区块链

随着加密货币的火热,区块链自去年以来一直充斥着人们的茶余饭后,甚至连街边的大妈说起区块链都头头是道,不知道大家是通过什么途径听说区块链的。

1062
来自专栏安智客

简明区块链原理

“区块链”应有特质: · 使用了具有 "哈希链" (下文有解释) 形式的数据结构保存基础数据 · 有多个结点参与系统运行(分布式) · 通过一定的协议或算法对于...

7305
来自专栏欧阳大哥的轮子

用脑残的方式来理解虚拟货币和区块链技术

最近比特币等虚拟货币价格大涨,造就了N多的富翁和负翁。现在到处都在谈论区块链技术,貌似不知道一点或者不谈论这些都不好意思说自己是IT人员一样。其实一直以来我也就...

952
来自专栏CSDN技术头条

刚入门区块链的程序员应该看些什么?

来源 | 知乎 作者 | Fickr Sung孫啟誠 毫无疑问,区块链将使得程序员迎来第三春,这个机会在现阶段只属于程序员。 曾经,乔布斯赶上了个人电脑的风潮...

4356
来自专栏企鹅号快讯

2017年最伟大的比特币模因

2017年,所有身处比特币之中的人们都发财了,我不是指加密货币,而是那些丰富的模因。如果所有的内讧、谩骂和诽谤都有一个好处,那就是衍生出的模因。News/Bit...

21310
来自专栏灯塔大数据

原创译文 | 新闻自由基金会现接受加密货币的捐赠方式

新闻自由基金会现接受多种加密货币的捐赠,包括比特币、比特币现金、以太坊、莱特币以及zcash。

721
来自专栏互联网数据官iCDO

半小时读懂区块链在互联网营销上的应用——核心问题还远未解决!

至少,区块链在互联网营销领域有价值的应用,我还真的没看到。但乐观的想,或许不久就能看到那一天?:P

3736
来自专栏区块链大本营

全球近1/5的比特币已经永久丢失!三种方法让你找回丢失的比特币

拥有比特币的第一条规则就是安全地保存你的私钥,然而,比特币持有者们在这方面做的并不是很好。

872
来自专栏技术记录

话说区块链,它真的不是比特币

好像是去年吧,2017年,随着比特币的大火,各种数字货币出现了,显卡价格飙升了,区块链技术传的神乎其神了。看到网上凡是和区块链沾边的股价,都跟吃了火药一样往上冲...

37112

扫码关注云+社区