parathink

Dan larimer: EOS- The Decetralized Operating System (2)

Q: 当部分运行的是一个子集的网络,你怎么去保证这个运行时不会处理错误的信息

A: EOS 的全节点可以运行和确认所有的东西,每个人都可以通过全节点的网络来确保每件事情都是经过验证的。另外每笔交易都会在一个 merkle tree 上,所以你可以证明导入的已完成的交易是在链上的。你从银行拿到的支票,都会有一些特征,你可能不知道支票的金额,但是知道确实有人给你支付了一笔。这里有一个概念上的冲突,即基于状态的区块链vs基于消息的区块链。EOS是基于消息达到一致的区块链,所有的在链上的消息都被视为是有效的,并且是被执行过的。基于状态的方式,只有在交易正在被执行的时候可以被衡量。对于一个eth合约来说, 你很难证明现在的运行状态除非它正在运行,所以,就像时间一样,你可以证明它过去的状态,但是你不能判定它现在执行的状态。基于状态,让整个区块链更僵硬,也更难去优化。ETH 在做sharding 的过程中,可以需要使用到消息的。EOS客户端可以去验证所有交易,而且并不需要去跑所有的东西,如果你需要去查询状态,你可以查询多个多个节点,把所有的信息组合起来。

EOS还有其它的王牌,在eos的链上,在签名每笔交易的时候,也签名了EOS宪法。EOS宪法是一份所有用户达成的共识,如果你用一个服务去查询状态,eos会返回一个描述当时状态的签名的声明,如果之后可以证明,用户关于这个声明撒谎了,你可以要求用户为他们撒谎的行为负责。这里有一个,关于,性能,安全,可用性的平衡。我们和ETH最大的不同是,我们的目标是商业服务,更大的应用,就像fackbook,交易所,社交媒体,预测市场。所有这些都需要服务于百万用户,所有的这些服务,都不会在你的家用电脑上运行,通过你的家用网络和互联网连接。大部分这些服务都是完全合法的,不会有政府强行关闭的可能性。所以这些部分是可以运行在有着高带宽的机房的。通过这样去获得的,去中心化,可扩展性对于我们把区块链推向主流市场是非常的重要的。

Q: EOS 不像eth有花费模型,你能解释一下么

A: 我们最基础的模型是从steemit拷贝过来的,用户手里有很小一笔资产,大概只有几刀,但这不会妨碍用户进行大部分的交互,你甚至不需有资产,只要有代理的资产。比如你可以对一个用户说,我可以把属于我的网络带宽给你如果你使用这些带宽,其他人可以免费使用这些带宽。

Facebook 为自己的服务器支付费用, 而不是你去支付。商业服务者需要从其他地方获取收益,而不是通过每打开一个页面都要求一些收益。ETH的fee模型,是不可控制的,你总是会把你的eth用光。但是,在eos上你可以始终用一个慢速交易。对于开发者来说,租赁和拥有在应用之后的硬件是有区别的。我们也始终在为spam做准备,限流算法意味着,当你进行ico的时候,不会有能阻断普通用户的限流攻击出现。

Q:EOS 可以卖出流量使用权么,有些时刻我需要应对大量的流量,有效时候我并不需要

A:这有点像你的网络服务商,他们会给你一个基本带宽,但是你可以升级到更高的容量,如果其他人并没有在使用。如果你有1%的EOS,只有当网络100%使用的时候,你才会被限流到只有1%的带宽,对于大多数人来说,只有当网络被充满的时候,才会限流。

Q:如何比较 DPOS 和 Casper A: 一致性算法有这样几个方面,谁应该打包区块,什么时间应该打包区块,怎么能确定区块本身是不可逆的。pow假设我们有很多忠诚的算力在竞争,第一个发现问题答案的生产者,会拥有打包的时间和决定权,在经过如此多的确认之后,这个变成了不可逆的了。在EOS里,你有股票,也有投票权,去选择哪些人去生产区块, 这些区块生产者,就像eth的矿池一样。我习惯这样去想,比特币和eth实际上是代理模式的pow,那些生产区块的人,和那些指派矿池的人不是同一批人。在EOS里,我们通过投票确认谁去生产,接下来的问题就是什么时间去生产接下来的区块。我们的dpos算法可以让所有的参与的算力者,轮流去生产区块。这样就意味着我们不会有孤儿区块。理论上来说,矿池也可以做到这一样的事情,只是他们的一致性算法不允许他们这样出块。这和casper 比怎么样。Casper 没有真正解决谁应该打包和什么时间出块的问题。Casper 创造每100个区块创造了一个检查点,超过这个检查点,意味着之前的区块都是可信的。Casper在对短期的区块的安全性上做的并不够。每个基于投票的区块链最终归于一个问题,谁在做投票。美联储实际上会为美元升值降值投票,拥有美元的人们在这个问题上没有话语权。就像矿工投票,不要从pow上移开,因为这牵扯到了他们的利益。所有的这些都是错位的激励,dpos工作就像一家公司,选择董事会,让董事会生产区块。这个激励是符合逻辑的。

Q:Casper 实际可以认为是所有人来做proof A:这里有两个角色,区块生产者不意味着区块会被接受,生产区块只是一个提议,这里有一个区块,区块生产者没有权利去生产一个无效的区块,区块生产者没有权利去改变社区的已达成的一致性。你想想一下,现实世界中的一致性,我们只是使用软件,来提高我们达成一致性的速度。dpos 继承了现实世界中的检查者和生产者,他们是两个角色,而不是一个角色。在Casper里用户可能会生产没有交易的空块,这种在steemit和bts上是不会有的,因为,人们不被允许运行非标准的软件。Casper 这种通过奖赏达成一致性,在博弈论上看是非常完美的,但是当真正使用的时候,就需要考虑人性。

Q:DPOS 如何做自治的管理,我认为有两层,一层是协议层面的治理,比如进化和改变一致性算法,一层是应用层面的治理,比如应用有bug,我们需要回滚,你可以帮我们探讨下这两层的自治么

A: 第一层实际上是软件层面的宪法,是有所有的节点上跑的软件决定的。持票者选择区块生产者,决定什么时间去硬分叉。EOS是不会有硬分叉的,当整个网络决定是升级的时候,那些节点不知道怎么去做升级的会被自动关闭。而区块的生产者,也会等到升级后再生产区块,所以即使在你升级的时候,你也不会错失任何一个区块。steem 过去每个月都会有一个大的升级,过去大概进行了18次升级,没有一次会有硬分叉。EOS的一条哲学是,事物需要改变,最适者生存,而不是最强者生存。这也是自由市场的原则,长期来看,如果你不改变,那你就会被淘汰。所以eos被设计为一条可以持续不停进化的链。 这就是第一层的治理。

对于第二层治理,比如开发者开发了一个DAO,那里有一个bug,所有的资金都被偷走了,发行者拥有在没有硬分叉的前提下,升级合约的权利。区块生产者,有审查区块的权利。完美的代码是不可能的,Bug始终会发生,这是EOS认识到的,而其他的平台可能没有意识到的一个问题。即使代码被安全运行了多年,里面还是可能有隐藏的bug。之前一段时间,bts就有这样的一个隐藏bug,非常微妙的情况下,会把所有的生产者给冻结。我们都依赖的SSL,所有的电脑都在用,实际上也是有不安全的问题。代码不是完美的,我们需要有恢复的手段,我们围绕这点做设计。这种方式允许开发者,自己去建立自己的治理层,他们可以创建投票为是否可以更新代码。在其他的一些区块链上,身份和财产是分离的,拥有私钥这个身份,即使你通过hack电脑获得了私钥,并不意味着,你就真的是这个财产的所有人。身份和财产权,是系统想要去保护的,期望完整符合法律,而不是9/10的复合法律。

这篇是2017年8月23号,Dan 接受采访的翻译,第二部分。 第一部分的链接 原始采访,https://www.youtube.com/watch?v=eftctVXiFJQ&t=1764s。