引介 | 我们为什么需要面向特定应用的区块链?

Ajian   |     |   215 次阅读

Cosmos 能让开发者轻松构建和部署可扩展和可互操作的面向特定应用(Application-specific)的区块链。但是,什么是面向特定应用的区块链?为什么你应该把构建去中心化应用看作一个针对应用定制的区块链呢?

什么是面向特定应用的区块链?

如今,大多数去中心化应用都在现有的区块链技术之上开发,例如以太坊。这是因为很长一段时间,这是开发去中心化应用最简单的最实用的方法。

-基于以太坊的应用架构-

Tendermint 和 Cosmos 提出另一种构建去中心化应用的方式。Cosmos 并非是让区块链的应用部分变成一个虚拟机和建构在虚拟机上的去中心化应用,而是帮助开发作为区块链自身应用的去中心化应用。这就是所谓的面向特定应用的区块链。

-简化的基于Cosmos-SDK的区块链架构-

面向特定应用的区块链直到现在才被广泛应用的主要原因就是区块链开发的门槛很高。大多数想要开发区块链的人不得分叉现有的区块链解决方案,例如比特币。使用 Tendermint 和 Cosmos-SDK 构建一个区块链就像编写一个代码模块一样容易。请继续阅读这篇文章,深入解释这些概念。

既然我们知道什么是面向特定应用的区块链。那让我们来理解为什么在大多数情况下,开发定制化的区块链更有意义,而不是在一个基于区块链的虚拟机之上。

性能

正如前面提到的文章所解释的,区块链结构可分为三层:网络层、共识层和应用层。Tendermint 共识引擎已实现了 网络共识 层的功能,而且吞吐量达到上千。去中心化应用真正的瓶颈是应用层。

-简化的区块链架构-

开发面向特定应用的区块链意味着你只需要定义相关的事务类型(Transaction Types )和状态转换函数(State Transition Functions )。这将大大提高应用程序的性能。

安全性

区块链上虚拟机很容易遭受攻击。这大部分归根于虚拟机本身的复杂性。在面向特定应用的区块链中,安全性分析比较简单,因为开发人员只需要考虑应用程序之间是如何相互作用的,而不必担心应用程序和虚拟机之间的交互。虚拟机的复杂性是引起诸如调用堆栈限制(DAOBug)、DelegateCall(Parity Bug #1)、contract suicide(Parity Bug #2)等Bug的原因。

Cosmos-SDK 提供了另一种安全的方法,特别是 object capabilities 的概念。请注意,没有一个框架能够完全保护应用程序免于破坏。应用程序开发人员有责任确保不会发生任何安全事故。请注意,面向特定应用的区块链可能会提供更多的可恢复选项,以防出现安全事故(参见下一节)。

治理

在开发面向特定应用的区块链时,你可以决定部署它为公共的(PoS)或者私有(PoA)链。在这两种情况下,验证人只验证应用相关的交易。这意味着治理与你的应用程序会区隔开来,而且也不会与其它应用程序重叠。如果你的应用程序存在问题,线下管理机制可以修复它,而不会妨碍生态系统中的其他应用。

另一方面,如果基于虚拟机的去中心化应用出现了问题,而底层链的治理机制不同意修复它,那么任何人都无法修复它。例如,如果在一个以太坊上建立的去中心化应用被黑客攻击,并且资金被窃取,如果以太坊社区不去修复,它将不可能被修复。最近发生的Parity 多签名攻击就是一个很好的例子。

灵活性

在区块链上的虚拟机之上构建应用的开发人员受到底层区块链的开发环境的限制。对于以太坊开发人员来说,这意味着他们必须在有限的编程语言中进行选择,像 Solidity 或 Serpent。此外,他们也受到虚拟机本身的限制。例如,大多数虚拟机区块链不允许自动状态转换。每个状态转换都必须由发送事务的最终用户触发。虽然这种约束是合理的,但如果在虚拟机区块链上构建应用,它仍然会给开发人员带来限制。

区块链上的定制化应用提供更多的灵活性。首先,开发者可以选择他们喜欢的程序语言,在 Tendermint 之上构建 ABCI 应用。然而,从头构建应用程序可能会很困难。这就是为什么 Cosmos-SDK 存在的原因。目前,它只能在 Golang 使用。但在未来,我们希望其他语言的 SDK 也能出现。其他框架也存在,比如 LotionJS,它允许开发人员在 Javascript 中构建基于 Tendermint 的区块链应用程序。

另一个提供给开发者的灵活的针对应用定制的区块链的例子是出发自动状态转化的功能。ABCI 有两种消息:BeginBlock 和 EndBlock。BeginBlock() 和 EndBlock() 函数在每个块的开始和结束处自动执行。开发人员必须避免包含计算量过大的逻辑,或者将应用程序暴露在死循环中,但是如果处理得当,这将是非常有用的。

区块链上虚拟机也有其适用场景

我们已经介绍了区块链上定制化开发应用所能提供的一些优势。但是这并不意味着去中心化应用不应该构建在区块链虚拟机上。每个框架都有其优点和缺点,开发人员必须选择最适合的框架。下面是一些构建在区块链虚拟机之上的案例:

  • 小型的,低使用率的应用或原型。虚拟机非常实用,且对用户友好。他们允许开发者在几分钟内部署去中心化应用,这在实现不复杂的应用或者作为概念证明时是十分方便的。
  • 如果您不想为您的应用程序部署验证人集合。虚拟机区块链为应用程序开发人员提供了共识,这样就不必部署网络了。请注意,未来的 Cosmos 将支持共享验证人集合,允许开发人员部署独立应用程序,而不需要支持验证人。
  • 如果需要终端用户为应用程序添加自定义逻辑。

结论

面向特定应用的区块链直到现在一直不引人注目,这可归咎于构建它们的难度。但是有了 Cosmos,现在可以很容易地开发可互操作和可扩展的应用定制化区块链。你可以开始在 Cosmos-SDK 上开发你的去中心化应用了。开发人员还在等什么呢?


原文链接: https://blog.cosmos.network/why-application-specific-blockchains-make-sense-32f2073bfb37
作者: Gautier MARIN
翻译&校对: Cosmos 中国 & 阿剑

本文首发于公众号 Cosmos 互联链,EthFans 获得授权转载。


你可能还会喜欢:

科普 | dApp链:通过侧链扩展以太坊 dApp
USV: 胖协议
观点 | Vlad:反对链上治理

 
0 人喜欢