是什么赋予数据最终性?你如何确保奖励与网络目标一致?为什么节点会保留或更新数据?当两段数据冲突时,是什么使它们选择一段数据而不是另一段数据?
这些问题都都还有待探索、解答,区块链不仅需要在开始时保持一致,还需要在未来的所有时间节点上保持一致。因为技术和公司会发生变化,否则区块链就没有用处。
维护成本非常高
传统的中心化数据库只需要写入一次,而区块链需要被写入成千上万次;传统的中心化数据库只需要检验一次数据,区块链需要对数据进行成千上万次检验;传统的中心化数据库只需要传输一次数据就可以储存,区块链需要将数据传输成千上万次。
维护区块链的成本量级要高得多,而且成本需要通过效用来证明。大多数应用程序在寻找一些先前声明的属性(如一致性和可靠性)时,可以使用完整性检查、回执和备份来降低这些成本。
用户至上
这样真的很好,因为企业不喜欢对用户数据负责任。但是,如果用户“行为不端”,这就不好了。你没有办法驱逐那些在区块链上发大量垃圾信息的人,又或者找到了一种方式,但它可能又会让其他用户诸多不便。
通过以上观察结果我们可以得出相关结论:激励结构必须设计得非常棒,在此激励结构下,如果用户发现了一个漏洞,尤其是如果还可以以此牟利的话,就不太可能放弃。
可能你会认为能拒绝为恶意用户提供服务,这在中心化的服务中是非常容易的。
然而,与中心化服务不同的是,(在去中心化中)拒绝服务是困难的,因为没有一个单一的实体有权力将任何人踢出去。区块链必须是公正的,并强制执行由软件所定义的规则。如果这些规则不足以阻止不良行为,那你就没那么幸运了。这里没有法律的“精神”。即使你需要简单地处理恶意的或行为不端的执行者,可能也需要很长一段时间。
所有的升级都是自发的
强制升级不是最优选择,网络上的其他玩家也没有义务优化你的软件。如果他们这样做了,作为中心化系统将会变得更容易、更快、更便宜。区块链最重要的一点在于它不是在单个实体的控制之下,不可能强制升级。
相反,所有的升级都必须向后兼容。这显然是相当困难的,尤其是如果你想要添加新特性,以及从测试的角度考虑时会更加困难。软件的每个版本都为测试矩阵添加了很多内容,并延长了发布时间。
同样,如果这是一个中心化的系统,那么不用借助于追溯旧系统就能纠错。但是在一个去中心化的系统中你无法这样做,你不能强迫任何人做任何事情。
文章TAG:简单 实体 用户 区块链