如何发现半生不熟的区块链 PlatoBlockchain 数据智能。 垂直搜索。 哎。

如何发现半熟的区块链

当链和块没有用处时

自金融业全面醒来以来,已经有18个月的时间允许使用许可的区块链,或者使用更笼统的术语“分布式分类帐”。 从那以后,海啸活跃了下来,包括研究报告,战略投资,试点项目以及许多财团的成立。 没有人可以指责银行界没有认真考虑这项技术的潜力。

自然地,区块链项目的爆炸性增长推动了许可的区块链平台的发展,在这些平台上建立了这些项目。 例如我们的产品 多链 在过去的一年中,无论我们衡量网络访问量,每月下载量还是商业查询量,其使用量都增加了两倍。 当然,还有许多其他平台,例如 大链数据库, 链条类型, 科尔达, 积分, 元素, 厄里斯, 面料, 以太坊 (部署在封闭的网络中), 九头蛇链开链。 更不用说还有更多的初创公司,他们已经开发了某种区块链平台,但尚未公开发布。

对于希望探索和了解新技术的公司而言,丰富的选择通常是一件好事。 但是,就仍然定义不清,理解不清的区块链而言,这种聚宝盆具有很大的弊端:许多可用的“区块链”平台实际上并未解决其要解决的核心问题。 那是什么问题呢? 请允许我引述简洁 视频清晰度 作者:Richard Gendal Brown,CTO R3, 在全:

分布式分类帐是一种系统,该系统可使彼此之间不完全信任的各方就一组共享事实的存在,性质和演变达成共识,而不必依赖完全信任的集中式第三方。

举一个极端的例子,考虑一堆用绳子绑在一起的乐高积木。 如果我们使用“区块链”一词来描述这种时尚商品,谁会说我们没有准确地描述它? 但是,如果没有中央中介,该特定的块链将无法帮助多方安全直接地共享数据库。 同样,许多“区块链”平台都执行与区块链相关的操作,但是缺少必要的属性来充当点对点数据库的基础。

如何发现半生不熟的区块链 PlatoBlockchain 数据智能。 垂直搜索。 哎。
另一链块无助于数据库共享资源.

最低可行区块链

为了了解分布式分类帐的基本要求,它有助于阐明这些系统与常规数据库的区别,常规数据库由单个实体控制。 例如,让我们考虑一个简单的系统来跟踪谁拥有特定公司的股份。 在数据库中实现的分类帐,每个所有者都有一行,其中包含两列:所有者的标识符(例如其名称)和相应的股份数量。

以下是该系统使用户失败的六种关键方法:

  • 伪造品:未经发件人允许,将股份从一个人转移到另一个人。
  • 检查:拒绝满足某人将其他股份转让给其他人的请求。
  • 翻转:撤消过去某个时候发生的转移。
  • 非法性:更改系统中的股份总数,而无需发行人采取相应的措施。
  • 前后矛盾:对来自不同用户的查询给出不同的响应。
  • 停机时间:完全不响应传入的信息请求。

由于所有这些可能性,股东必须对代表他们管理此分类帐的任何人保持高度信任。 建立和运行值得信任的组织会带来巨大的麻烦和成本。

区块链或分布式分类帐通过允许数据库用户在对等基础上直接相互交互而消除了对此类中央数据库操作员的需求。 在我们的示例中,股东可以将其股票安全地保存在他们共同管理的区块链上,并在该链上即时进行相互转移。 (缺点是链用户之间的机密性大大降低,我们不会在这里解决,但我之前已经提到过 详细讨论.)

所有这些使我们回到了区块链平台的问题。 为了成为点对点数据库共享的可行基础,区块链必须保护其参与者免受所有六种类型的数据库故障的影响-伪造,审查,逆转,非法交易,不一致和停机。 尽管市场上的许多产品都满足了这些要求,但其中有很多却达不到要求。 我称这些区块链为“半熟”,因为它们可能解决 一些 这些风险,但不是全部。 至少在某些方面,数据库的用户仍然依赖于单个参与者的良好行为,而这正是我们要避免的情况。

这些半熟的区块链可以有多种变体,但三种原型是最常见或最明显的。 我不会命名单个产品,因为,我不想冒犯。 区块链创业社区很小,以至于我们大多数人通过会议和其他会议彼此认识,并且互动往往是积极的。 然而,如果区块链(从有用的对等数据库的意义上)将逐渐成为一种连贯的产品类别,那么区分半熟的解决方案和真实的解决方案就很重要。

一个验证者区块链

我们已经多次看到的一种模式是区块链,其中只有一个参与者可以生成用于确认交易的区块。 交易被发送到该节点,而不是整个广播到网络,因此,交易的接受取决于该方的想法,而不是某种多数共识。 尽管如此,一旦该中央方建立了一个区块,它就会被广播到网络中的其他节点,这些节点可以独立地确认其中交易的有效性,并在本地永久记录新区块。

回到我们六种形式的数据库故障,这种类型的区块链远非无用。 交易必须由其流动资金的实体进行数字签名,这样中央方就无法伪造交易。 由于每个节点都维护自己的链副本,因此无法撤消它们。 交易不能执行非法操作,例如凭空创建资产,因为每个节点都独立验证每个交易的正确性。 最后,每个节点都维护自己的数据库副本,因此其内容始终可供读取。

不幸的是,六分之四还不够。 验证节点通过拒绝将其包含在其创建的块中,可以轻松地检查各个事务。 即使该节点的操作员诚实,系统或通信故障也可能导致该节点不可用,从而导致所有事务处理停止。 另外,根据设置,验证节点可能能够将区块链的不同版本传输给不同的参与者。 在检查和一致性方面,数据库仍然包含所有其他节点所依赖的单点故障。

一个平台对此方案提供了一种扭曲,其中块是由单个节点集中生成的,但是其他指定节点的仲裁则对它们进行签名以表示共识。 就不一致的风险而言,这无疑会有所帮助。 仲裁中的节点只会将其签名提供给单个版本的区块链,因此可以认为是权威的。 但是,如果块生成器检查事务或失去其与Internet的连接,仲裁节点将无法提供帮助。 最终,这种类型的区块链仍然使用中心辐射型架构,而不是对等网络。

共享状态区块链

从技术上讲,区块链与更传统的分布式数据库(例如Cassandra和MongoDB)之间存在许多相似之处。 在这两种情况下,事务都可以由网络中的任何节点发起,并且必须到达所有其他节点,作为关于数据库开发状态的共识的一部分。 区块链和分布式数据库都必须应对延迟(源于节点之间距离的通信延迟)以及某些节点和/或通信链路间歇性故障的可能性。

分布式数据库已经存在了一段时间,因此任何区块链平台开发人员都将很好地理解他们的共识算法以及他们用于全局排序交易和解决冲突的策略。 尽管如此,重要的是不要将比较做得太远,因为区块链必须应对一个关键的附加挑战-缺乏 信任 在数据库节点之间。 分布式数据库侧重于在单个组织的边界内提供可伸缩性,健壮性和高性能,而区块链必须重新设计才能安全 横过 这些界限。

要回到六种类型的数据库风险中,分布式数据库中的一个节点只需要担心停机时间,即其他节点变得不可用的可能性。 节点可以安全地假设网络上的每笔交易和消息都是有效的,并且与伪造,审查,逆转,非法或不一致无关。 他们最糟糕的问题是处理在不同节点上发起的两个同时有效的事务,这些事务影响同一数据。 解决这些冲突绝非易事,但比担心“拜占庭断层”,其中某些节点故意破坏其他节点的功能。

数据库只能安全共享 横过 如果节点以一定程度的怀疑对待网络上的所有活动,则信任边界。 例如,修改数据库的每个事务都必须单独进行数字签名,因为在对等体系结构中,没有其他方法可以知道其真实起点。 同样,必须严格评估每个传入消息(例如,新块的公告)的内容和上下文。 与分布式数据库不同,节点必须不能立即直接修改另一个节点的状态。

通过从分布式数据库开始并在顶部添加一些功能以使其更具区块链性,已经开发出了一些“区块链”平台。 例如,通过将事务分组为多个块并将这些块的哈希(数字指纹)存储在数据库中,它们旨在增加一种不变性。 但是除非每个节点都能确定其哈希列表不能被另一个节点修改,否则这种不变性很容易被解决。 对这些批评的标准回应是,每个安全问题都可以用足够的时间和编码来解决。 但这就像把一些囚犯关在空旷的地方,并试图阻止他们用绊网和沟渠逃跑。 使用专用的混凝土结构来安全得多,混凝土结构的门被锁着,窗户被禁止。

一个云区块链

到目前为止,我所见过的最奇怪的现象是只能通过开发人员基于云的平台即服务访问的区块链平台。 明确地说,我们并不是在谈论区块链的一些参与者 选择 将其节点托管在他们选择的云提供商上,例如 微软Azure or 亚马逊网络服务。 相反,这是一个可以 仅由 通过“托管”它的公司的服务器公开的API进行访问。

出于争论的考虑,让我们允许一个集中的区块链提供商真正拥有一组在其控制下运行的节点。 这对正在发送API请求和接收响应的系统用户有什么区别? 参与者无法评估每个人的交易是否均已被正确处理。 中央服务可能出现故障,或者故意检查或撤消了某些事务。 并且,如果您认为区块链提供商没有理由这样做,为什么不使用它们来托管常规的集中式数据库呢? 您将获得性能更高,性能更成熟的产品,并且不会遭受使用新技术的风险。 简而言之,集中式区块链与Lego一样有用。

解决奥秘

现在,我们已经看到了三种类型的平台,这些平台将自己称为“区块链”,并确实在某种程度上利用了区块链,但是并不能解决设计这些系统的根本问题。 概括地说,这是为了使单个数据库可以跨信任边界安全且直接地共享,而无需中央中介。

除了指出这一奇特现象外,我认为考虑其潜在原因是有启发性的。 为什么这么多的区块链初创公司制造的产品不能满足这项技术的承诺,而往往只能实现传统的集中式或分布式数据库? 为什么这么多有才华的人浪费很多时间?

我可以看到两种主要的解释类别-技术和商业。 首先,从技术上来说,创建分布式共识系统非常棘手,该系统可以以不可预测的方式容忍一个或多个恶意行为的节点。 在MultiChain的情况下,我们以比特币经过严格战役的参考实现为起点,然后以结构相似的共识算法(“挖掘多样性”)代替了工作量证明,从而在某种程度上作弊。 从零开始开发区块链节点的团队必须深入考虑异步和对抗流程,这是很少有程序员经验的组合。 我当然可以理解采取捷径的诱惑,例如使用单个节点生成块,或者在现有的分布式数据库上搭载,或者仅在受信任的环境中运行节点。 选择其中任何一个无疑会使开发人员的生活更轻松,即使这破坏了整个观点。

由于商业原因,每个初创公司似乎都从不同的角度抓住区块链的机会。 在Coin Sciences,我们专注于成为(数据库)软件供应商,因此我们在开发具有附加功能的高级节点时免费分发MultiChain。 其他初创公司希望出售订阅服务,因此他们自然会构建一个客户无法托管的平台。 有些人希望集中控制区块链或帮助其合作伙伴进行控制(这是一种去中介技术的雄心壮志!),并且自然会吸引依赖于单个节点的共识算法。 最后,有些公司的主要目标是销售咨询服务,在这种情况下,只要其网站吸引了一些大客户,他们的平台就根本不需要运行。

也许另一个问题是,一些区块链公司的经营者无疑是人才充沛,但对技术本身缺乏深刻的了解。 在开拓新领域的初创公司中,了解这一领域的本质以及与以前相比有何不同的人们做出战略决策可能至关重要。 少数区块链初创公司似乎通过追求对客户有吸引力的产品愿景将自己描绘在一个角落,但实际上无法构建。

作为区块链的用户,您如何避免被这些谬论所困扰? 在评估特定的区块链平台时,请务必询问其是否满足安全的点对点数据库共享的六项要求:防止停机和不一致,以及交易伪造,审查,逆转和非合法性。 并且提防过多的喃喃自语或挥手致意的解释-他们可能表示答案是否定的。

请发表任何评论 在LinkedIn.

资料来源:https://www.multichain.com/blog/2016/12/spot-half-baked-blockchain/

时间戳记:

更多来自 Multichain