投稿

DApp和拜占庭将军问题详解

区块链纵横2018-07-11 16:18:53
 
什么是DApp?
 
DApp是Decentralized Application的缩写,中文直译为去中心化应用,也可以理解为分布式应用。
 
DApp基于区块链,主要出现在以太坊、EOS等新晋分布式平台或网络上,不依赖任何中心服务器,实现去中心化的目的。
 
与PC和手机上的传统APP不同的是,DApp坚决强调去中心化,必须运行在分布式的操作系统,而不能工作在iOS及Android这些传统平台上。
 
尽管不依靠任何中心节点,但DApp却离不开智能合约。
 
也可以说,依托智能合约的约束,使得DApp无需听命于任何中心化服务器或节点,实现自治。
 
除此之外,DApp还必须做到安全存储,保障隐私。
 
DApp有哪些特征?
 
从以上定义来看,DApp依旧围绕区块链的基本要点,但其还有其他特点。
 
首先,应用程序必须开源。
 
其次,必须要有激励制度,就是Token,即代币或通证。
 
再者,必须根据市场反馈,经多数用户同意后进行改进。
 
由此,我们可以归纳为三大关键词:
 
开放
 
激励
 
民主
 
开放不用多说,已成为现在软件和应用的大趋势。
 
激励制度,在区块链中始终存在,有不同的共识制度所决定,为矿工提供一定的金融奖励,以维系网络的正常运维。
 
在DApp中,尤其强调激励制度,令人不禁想起了,之前我们介绍过的Token以及Token经济。
 
民主,在区块链的世界中同样相当重要,也是去中心化的基石之一。
 
因此,DApp被认为是区块链3.0的标志。
 
明眼人,看到这里,一定猜到DApp未来的发展方向。
 
那就是,与Token经济一样,改变社会。
 
DApp影响和未来
 
随着DApp的出现,早就有人提出了其进化的趋势,如下文的四个阶段。
 
第一阶段:DApp(去中心化应用)
 
第二阶段:DAO(去中心化自治组织)
 
第三阶段:DAC(去中心化自治公司)
 
第四阶段:DAS(去中心化自治社会)
 
与Token经济的设想一样,DApp未来的发展也是构建了一个乌托邦式的自治国度。
 
但从目前来看,仅仅是一个美好的愿望。
 
目前DApp主要应用在区块链游戏上,例如养宠物之类。。。
 
而从其全新的开发和运作模式来看,DApp潜力巨大,值得借鉴和推广。
 
DApp完全秉承区块链去中心化、高度自治、去信任(智能合约)以及共识机制等,能够构建一个既开源,又安全可靠,而且无需人为干预的应用服务或场景。
 
在目前阶段,这比创造一个全新的社会要靠谱一些。
 
拜占庭将军问题
 
很久很久以前,东欧大陆上有个繁华的拜占庭帝国。
 
拜占庭帝国派出了 10 支军队去包围另一个帝国。这个敌国的军事实力不如拜占庭,但也能够同时抵御 5 支军队的围攻。
 
拜占庭的军队想要获胜,就必须有 6 支或 6 支以上的军队同时参与进攻。为了信息一致,拜占庭的 10 支军队要靠通信骑兵骑马相互通信来协商进攻定向和时间。
 
然而,有个问题却深深地困扰着拜占庭军队的首脑们。因为他们不确定 10 支军队里有没有敌国的内鬼?而内鬼则可能擅自改动进攻意向和进攻时间,在这种情况下,拜占庭的军队要如何确保有 6 支或 6 支以上的军队同时发起进攻?
 
这就存在以下可能性:
 
1.在没有内鬼的情况下,如果 A 将军提议早晨 10 点进攻,并将这个消息依次传递给其他将军。再如果他幸运地收到了其他 5 位将军的同意,那这事儿就好办了。
 
2.在没有内鬼的情况下,如果 A 将军提议早晨 10 点进攻,并将这个消息传递给其他将军。但同时,B 将军也发出消息说上午 11 点进攻,C 将军又提议中午 12 点发起进攻。这样,将军们会收到不同的进攻消息。这时就可能 A 将军的提议得到了 3 个支持,B 将军的提议得到了 4 个支持,C 将军的提议也得到了 4 个支持,结果达不成 6 支或 6 支以上军队的一致,拜占庭肯定会失败。总之,发起提议的将军越多,造成的结果越乱。
 
3.如果有内鬼,内鬼就可能向不同的将军发出不同的进攻提议,例如给 A 说 13 点,给B 说 14 点,给 C 说 15 点,他也可能既同意 10 点的进攻提议,也同意 11点、12 点的提议,或者是他将别人的提议进行篡改后再往下传递,总之内鬼会想法促成一个不是 6 支以上军队都同意的决定,那么拜占庭的军队就只会失败。
 
如何利用区块链解决这个问题:
 
我们给每个将军都配一台电脑。大家在电脑上发送信息,这样就不用派通信兵出去给其他将军传令了,先把时间节约下来。
 
然后我们再设定几个规则:
 
1.一个时间段内只能发起一个消息。比如 10 点到 10 点一刻,只能发出一个签名并盖上时间章的进攻消息,别的将军想要发起别的进攻消息,那对不起,你得 10 点一刻以后才行。
 
2.消息传递出去以后,收到进攻消息的将军必须也要在消息上签名,确认各自的身份,并盖上时间印章,然后把这个信息拷贝下来传递给其他将军。
 
3.为防止有将军签假名,信息都加了密。系统中各个将军都有一个公用密码和私人密码,公用密码是公开的。A 将消息传递给 B 时,使用 B 的公用密码加密,而 B 则要用他的私人密码才能解密。B 签完名后,所有将军都可以通过他的公用密码来验证他签名的真实性。
 
4.大家都能从各自的电脑上看到信息的传递进度。
 
这样做的好处是:
 
1.信息里每个将军都要签名验证身份,如果有将军篡改了消息,大家就能看到是哪些将军篡改了消息。
 
2.尽管有不一致的消息。但只要一个消息得到了6 名或 6 名以上将军的同意,那么大家就达成了共识。
 
这样每个将军都有一个与其他将军实时同步的消息记录,解决了内鬼问题,能让大家轻松地达成共识。
 
生活中有许多类似拜占庭将军的信任问题,将上面的解决方法带进去,这样你对区块链是不是有了更深的了解了呢?

喜欢|0 不喜欢|0
来源:区块链纵横
原标题:DApp和拜占庭将军问题详解
版权申明:本文经授权发布,不代表本站立场。如若转载请联系原作者。

相关文章

审视数字加密货币背后的阴暗、肮脏与风险
交易即挖矿模式市场不买账了?FT、CET之后又一只类似平台币遭资金出货
关于Token的思考
疯狂平台币:如果你是张健,你还打算怎么玩?