Jonathan Ward

区块链的终结问题是由于技术限制,它已经成为区块链技术被广泛采用的障碍。用外行的话来说,终结时间可以看作是事务首次提交到网络并被确认为有效之间的等待时间。为了成功地革新我们的经济体系,区块链必须实现实时终结,提供与集中式支付系统类似的体验。

在Fetch.ai,我们一直在研究终结问题,并很高兴地宣布一个密码学突破,将使交易确认的速度得到巨大的改善,同时也提高了安全性。我们最近发表的论文解释了这是如何实现的。在这篇Medium文章中,我们概述了引导共识设计至最先进水平的历史,以及我们的密码学技术创新如何推动该领域向前发展。

任何持有过比特币的人都会熟悉,花一个小时等待他们的交易得到确认。与黄金相比,或作为稳定价值存储的实物资产,比特币交易速度相对较快,成本较低。但与此同时,没有人愿意等一个小时去买一杯咖啡。而未来的经济系统,如物联网设备网络,将需要比任何第一代区块链都更快、更经济几个数量级的微交易。

最近的区块链设计试图通过切换到权益证明(PoS)来克服比特币的工作证明(PoW)共识机制的费用和低效,其中节点通过质押代币而不是证明能源(或工作)已经被消耗。PoS的一个优点是它使块的生成速度比PoW更有规律,因此也更快。

快速地区块生产意味着可以更快速地将事务输入到块中,这是加速其确认的一种方法。权益证明加快事务终结的另一种方法是引入决定论,这样在向链中添加更少的块之后,一个块就完成了。比特币对终结的概率定义意味着一笔交易不可能像确认那样得到保证,但六个区块已经成为比特币大多数用户所接受的终结操作定义。

以小时记的等待比特币交易结束是由于需要六个区块确认,以及大约10分钟的区块时间。

结束时间=区块确认数×块时间

在大多数PoS系统中,块确认的数量最多为两个,而块生产时间可以减少到秒,从而导致终结时间也是几秒。这种速度下的性能将允许区块链与集中支付系统竞争。这些集中系统使用一个需要几天时间才能完成的结算过程,但通过在商家、支付提供商和银行之间使用可信的通信渠道,会给人一种速度快的错觉。需要注意的是,区块链设计的大多数方面都涉及不同的权衡。在概述了PoS的优点之后,我们现在继续讨论它的一些局限性,以及Fetch.ai的新密码学方案如何推进该技术的发展。

具有确定终结性的PoS方案的特点是有资格参与共识验证器的公开记录。因为验证器的身份是已知的,所以在将一个块添加到链之前,它们可以相互通信来确定它的有效性。这个想法是基于实用的拜占庭容错(pBFT)协议家族的基础,这些协议支持加密货币,如EOS、Neo和Tendermint。

这些PBFT衍生协议提供了即时的终结,但引入了两个额外的问题。首先,额外的通信开销限制了共识可以支持的验证器的数量。这取决于共识的细节,但上限从少数到最多可能是几百个验证器。第二个问题是,验证器提出块的顺序通常以常规模式发生,因此下一个块生产者的身份是预知的。这使得验证器容易受到分布式拒绝服务(DDoS)攻击,从而阻止它与网络的其他部分通信。这些DDoS攻击可以通过将共识节点隔离在一个负载均衡的岗哨节点墙后面来抵抗,从而使其能够在攻击期间继续运行。然而,这实际上增加了运行验证器节点的成本。

pBFT的另一个替代方法是允许验证器提出块,然后使用投票(或公证)以确认哪些区块有效。这种方法可以应用于Fetch.ai最小智能体共识中使用的区块链或瞬态有向无环图(DAG)。在这一系列协议中,区块产生的可预测模式被一个无偏置的、加密的安全分散随机信标(DRB)所取代,DRB隐藏下一个块产生者的身份,直到最后一刻。这复制了PoW挖矿固有的随机性,但没有巨大的财务和环境成本。这一特性,加上内置的冗余验证器(可通过该验证器授权来生成块),使这些协议对DDoS攻击的抵抗力大大增强,从而使其能够支持更多的验证器,并且与BFT协议相比,通常可提高块产生率。

DRB的核心是一个加密协议,它涉及将验证器群的消息聚合到单个伪随机值中。伪随机意味着该值是确定性的,但具有与真正随机过程相似的性质。DRB的另一个关键特性是,任何单独的验证程序都无法预先对其进行预测。这个过程似乎几乎“神奇”,但这些技术有一个非常健全的数学基础,我们将在后面的一篇文章中更详细地解释。

Fetch.ai DRB以两种方式超越了现有的最新BLS方案。首先是它使DRB的计算速度至少快了三倍,从而提高了创建块的最大速率。这样既提高了吞吐量,又提高了交易的确定性。第二个优点是,我们DRB的安全性已使用更严格的密码模型进行了验证,这限制了攻击者破坏系统的范围。我们目前正在准备一份描述加密方案的文件,供一次大型安全会议进行同行评审。我们预计,这项创新以及应用多智能体系统理论来优化成本,将使Fetch.ai区块链实现其未来数字经济的目标。

同时,我们非常相信不断上升的潮流可以提振所有人,提供区块链技术的好处远比任何单个项目的成功都重要。因此,我们已经在Github上为DRB提供了一个经过优化并充分记录的C ++实施档案,并在Apache 2.0许可证下发布。在接下来的几周中,我们还计划进行外部安全审核,并将提供与其他编程语言的绑定,以使该技术能够得到尽可能广泛的应用。最后,我们还将接触到其他我们钦佩的项目,分享这种令人兴奋的新技术的好处。

如果您有兴趣将我们的DRB集成到您的项目中,我很高兴在Telegram或Twitter上收到您的想法和评论。正如我之前提到的,我还将在接下来的几周内写另一篇Medium文章,描述DRB背后的更多理论,所以请继续关注后续的更新。

Fetch.ai的突破使急速闪电共识成为现实的更多相关文章

  1. Fetch.AI 首席技术官Toby Simpson参与AMA活动

    感谢7月11日在YouTube上参与 Fetch.AI AMA的所有人.我们收到了大量的问题,遗憾的是我们没有时间回答其中的多数问题.如果你错过了现场AMA,你可以在下面观看全部内容: 在本文中,我们 ...

  2. 阐述Fetch.ai的能源市场优化

    原文链接:https://fetch.ai/explaining-fetch-ais-energy-market-optimization/ 阐述Fetch.ai的能源市场优化 2019年11月4日 ...

  3. Fetch.AI的最新发布speaks your language

    更新增强长期网络的稳定性 包括新的Etch功能,使我们的代码比以往对开发人员更加友好.我们现在支持太阳下的每一种语言,包括普通话,希腊语和希伯来语-甚至表情符号 介绍我们很高兴地宣布我们最新的技术更新 ...

  4. AI案例

    https://www.bilibili.com/read/cv830627     到底什么是人工智能?人工智能能做什么?这是大家最关心的问题,但说到真正能够理解的话,还是只小部分专业人士.这篇文章 ...

  5. AI翻译离无障碍交流有多远

    AI翻译服务通过硬件.软件连接千千万万个应用场景,会打破语言不通的尴尬局面吗?会是人工翻译的终结者吗? 世界这么大,我想去看看!十一长假临近,梦想中的你背起行囊,自由行走在异国的大街小巷.然而现实的画 ...

  6. AI小白快上车!这是发往高薪职位的车!

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云AI中心发表于云+社区专栏 AI到底有多火?看看下面这组数据: 腾讯研究院<2017全球人工智能人才白皮书>报告中提 ...

  7. AI本质就是“暴力计算”?看华为云如何应对算力挑战

    随着AI人工智能技术的飞速发展,相关的AI应用场景已经拓宽至各行各业.你可能想象不到的是,现在大家手上的智能手机的运算能力,甚至比美国航空航天局1969年登月计划中最先进计算机还高出几百上千万倍乃至更 ...

  8. 腾讯自动化测试的AI智能

    引子: 本文是林奕在腾讯 DevDays 2018 分享内容的脱敏整理,介绍了 CSIG 测试开发中心(前 SNG 测试开发中心)在自动化测试领域所做的智能化尝试. 大致分成下面几部分: 使用AI面对 ...

  9. p​o​s​t​m​a​r​k​使​用

    一.Postmark原理 Postmark是由着名的NAS提供商NetApp开发,用来测试其产品的后端存储性能. Postmark主要用于测试文件系统在邮件系统或电子商务系统中性能,这类应用的特点是: ...

随机推荐

  1. SaaS权限设计总结

    2年前转到SaaS部门之后期间断断续续做着权限相关的业务,这篇文章主要回顾下过往的设计以及其原因和利弊. 不过因为是线上业务,会省略掉很多细节以及账号体系和权益相关得部分,只讨论权限相关. 本文也不会 ...

  2. MySql多表查询优化

    一.多表查询连接的选择 相信内连接,左连接什么的大家都比较熟悉了,当然还有左外连接什么的,基本用不上,我就补贴出来了,这个图只是让大家熟悉一下各种连接查询.然后要告诉大家的是,需要根据查询的信息,想好 ...

  3. List集合排序的方法

    1.list集合中的对象实现Comparable接口 public class User implements Comparable<User>{ private Integer id; ...

  4. ServiceStack.Redis 5.8 版本去掉每小时 6000 次访问限制

    ServiceStack.Redis这个官方 Redis 访问组件从4.0版本后开始商业化了,在使用的时候会有很多限制: 1.类型限制 类型限制是20,这个组件自带序列化功能,使得我们可以直接把对象保 ...

  5. [LOJ6569] 仙人掌计数

    Statement 带标号仙人掌计数问题. \(n< 131072\). Solution 设\(x\)个点的仙人掌个数的生成函数为\(C(x)\) 对于与根相邻的块, 还是仙人掌, 生成函数为 ...

  6. PyQt5 FileDialog的使用例子

    加载***.ui文件可以使用: loadUi('main_window.ui', self) self.btnFileChoose.clicked.connect(self.getFolderName ...

  7. 将MySQL库的表转入到MSSQL中的某个库中(Employees下的Employees表 → pubs库下)_2

    将MySQL库的表转入到MSSQL中的某个库中(Employees下的Employees表 → pubs库下, 此pubs下的表名是employee,不冲突),方法大致以下几个(另有其他方法待补充), ...

  8. ado.net Web前端:关于JavaScript知识点的简单梳理

    学习js:1.htmml2.cssjs+html+css == html5 js的组成:1).ecamscript ES是js的标准,js 是es 的实现2)文档对象模型(Document Objec ...

  9. 关于Ubuntu系统忘记密码的解决方法合集

    昨天有台机器的Ubuntu系统密码出了问题,一直提示错误.由于里面的数据比较重要,不建议重装系统,所以百度了一会,最终解决了忘记密码问题.整理了一个大合集分享出来. 第一种:参考教程如下       ...

  10. 使用python求解向量值函数的雅各比(Jacobian)矩阵

    考虑一个向量值函数$R^m \rightarrow R^n$,即$\textbf{y} = f(\textbf{x})$,它的雅各比(Jacobian)矩阵定义如下. 下面记录下一段使用python求 ...