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. 涨见识了,在终端执行 Python 代码的 6 种方式!

    原作:BRETT CANNON 译者:豌豆花下猫@Python猫 英文:https://snarky.ca/the-many-ways-to-pass-code-to-python-from-the- ...

  2. mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)

    0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...

  3. 深入浅出-TCP/IP协议族剖析&&Socket

    Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 #简介 该篇文章主要回顾–TCP/I ...

  4. Python中class的三种继承方法

    class parent(object): def implicit(self): print("Parent implicit()") def override(self): p ...

  5. windows tcp server select

    #include <stdio.h> #include <tchar.h> #include <winsock2.h> #include <iostream& ...

  6. nsswitch名称解析框架

    name service switch 名称解析框架(逻辑图) 让多种应用程序能灵活进行名称解析的通用框架 与各种类型存储进行交互的公共实现 规定通过哪些途径以及按照什么顺序通过这些途径来查找特定类型 ...

  7. @atcoder - AGC026F@ Manju Game

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个含 N 个数的序列,Alice 与 Bob 在博弈.Al ...

  8. 如何在python列表中查找某个元素的索引

    如何在python列表中查找某个元素的索引 2019-03-15 百度上回复别人的问题,几种方式的回答: 1) print('*'*15,'想找出里面有重复数据的索引值','*'*15) listA ...

  9. [每日一题2020.06.12]P3375 【模板】KMP字符串匹配

    题目链接 关于kmp : https://www.cnblogs.com/roccoshi/p/13096988.html 关于kmp, 想了很久, 我觉得不应该放在这里写, 另开一贴记录一下. #i ...

  10. numpy中array数组对象的储存方式(n,1)和(n,)的区别

    资料:https://stackoverflow.com/questions/22053050/difference-between-numpy-array-shape-r-1-and-r 这篇文章是 ...