Tendermint-速度更快、更安全、扩展性更好的部署区块链应用的协议

Tendermint是一个开源的区块链套接协议,能够使得分布式应用的部署更加容易。特别是,银行能够运行一个激活了Tendermint的账本并使用公开的验证者来快速处理交易。我有幸与Tendermint的创始人兼CEO JaeKwon就区块链堆栈的潜能进行了交流,

问题:Tendermint项目是如何开始的?

Tendermint的目标是为全世界所有的区块链提供速度、安全和可扩展性。

Tendermint开始于2014年初,当时我们意识到比特币的工作量证明共识机制很安全,但是在速度和可扩展性方面存在严重不足。我们搜索了其它保护区块链安全的方法,找到了一篇1988年的学术论文。从那时开始,我们迭代了这个机制来让其更快,现在我们可以用它来快速地创建任何区块链应用。

问题:Tendermint解决方案的结构是什么?

它的核心是一个开源的共识机制。Tendermint核心运行在所有节点上并处理共识、P2P网络、区块链存储以及通过
RPC函数来与外部进行交互。每一个Tendermint核心都能够通过称之为TMSP的网络套接协议来与一个定制的区块链应用(它是一个独立的进程)进行对话。

Tendermint核心网络服务委托交易,一旦这些交易被委托,它们就会通过TSMP被推送到应用中。在每一个区块链末尾,Merkle根哈希是从应用返回来的,并插入到区块链中。这是一个简单的图示。在基本的应用中,商业逻辑连接到一个特殊的键值数据库来存储应用的状态。

问题:Tendermint是如何消除区块链应用开发、部署和管理的复杂性的?

目前,创建区块链应用的最好的方式是分叉一个现有的复杂的单片栈(例如,比特币),或者在Solidity中编写智能合约来运行在以太坊的虚拟机中。现在有了第三种选择 — 你可以用任何语言来编写你的应用,并通过网络套接(TSMP)来讲应用发布在Tendermint核心中。我们还提供了称之为MerkleEyes的一个Merkle-izing的数据库来帮助存储应用状态,因此就可以用你的智能手机来安全地查看余额等。

从部署和管理的角度来看,我们目前提供了MintNet工具,因此你可以很快地将你的区块链部署到任何云服务提供商(例如,AWS EC2,DigitalOcena,等等)。我们还创建了在任何环境中无缝部署和管理区块链的其它工具。

问题:你们如何与区块链应用平台合作,例如Eris?Tendermint还与那些区块链公司或应用合作了?

Eris的旗舰区块链产品ErisDB是基于Tendermint创建的。任何人都可以做Eris正在做的事情,因为Tendermint核心是GPLv3.我们收到了大量区块链软件供应商的关注。目前已经有一些其它的供应商在创建基于Tendermint的应用。

关于具体的合作关系,我们有兴趣与一些选定的合作者一起共事。我们有一个国外的交易所合作伙伴,我们正在考虑第二个或第三个合作伙伴。会在接下来的几个月中发布这些信息。

问题:Tendermint的安全模型的特点是什么?

本质上,它是关于拜占庭容错问责制。也就是说,如果系统能被攻击的话,它需要很大比例的系统内部的验证者来攻击系统。一旦系统被攻击,你就能搞清楚谁对攻击的行为负责,然后对它们进行惩罚。例如,在加入到网络之前,验证者可能需要提供抵押品。

在比特币中,安全模型是不一样的。它需要花费能源来攻击系统,但是你不知道谁在攻击系统。因为矿工可以是匿名的,它们不用提交任何的抵押品或除了算力意外的其它条件。

问题:你能通俗地解释一下BTF(经典的拜占庭容错)共识机制是什么?

一个共识机制就是用来确保多个独立的参与者对某个事情达成一致。在一个区块链中,多个独立的矿工或者验证者需要对委托的区块达成共识。

容错共识机制也是一种共识机制,它能够容忍任何节点的失败(例如,矿工或验证者)。这里的失败,我指的是失败停止失败,也即矿工或验证者崩溃或离线这一类的失败。度量容错共识机制的核心是系统能够容忍的失败阈值。例如,Raft是一种能够容忍高达49.99%的节点失败的容错共识机制。

拜占庭容错共识机制也是一种共识机制,它不仅能容忍失败停止失败,而且能容错任何失败。例如,一个或多个节点被某个恶意攻击者攻击后从内部来协调颠覆共识。比特币是很了不起的,因为它能很大程度上容忍这一类从内部(例如,任何矿工)发起的攻击。Tendermint也是类似的,但是它无需大量的能源消耗来确保安全。

问题:Tendermint如何适用于金融服务行业?

对金融服务行业来说,Tendermin是很理想的工具。它能够快速地委托交易,而且不需要挖矿,它更安全,因为已鉴定的节点都提供了抵押品。银行也在研究使用Tendermint的共识协议。就在昨天,Eris宣布40多家银行和R3已经成功进行了测试。ErisDB也是基于Tendermint的。

问题:Tendermint对交易速度做了什么改进?

有两个因素需要考虑。一个是交易吞吐量,另外一个是交易委托速度。Tendermint做了很多优化来使得交易委托速度更快。例如,在正常的操作中验证者只需要2轮交流就能委托一个区块。这对于我们所希望的BFT阈值是最理想的。

对于交易吞吐量,我们已经构架Tendermint核心通过异步网络套接协议来与应用通信对话。这意味着Tendermint不需要等待应用来处理每一个交易。因此,交易吞吐量的瓶颈在Tendermint中不是问题,但是需要特殊的的商业逻辑来运行Tendermint。例如,为了调整吞吐量的性能,在Solidity中为以太坊虚拟机(通过TMSP来运行Tendermint)编写的智能合约可能比用原生的Golang或Java编写的应用要慢。

问题:你们可以为什么类型的客户部署Tendermint?

任何对区块链应用感兴趣的人。从比特币到以太坊,以及未来的其它应用。

问题:Eris和普华永道已经在AWS和Azure上了。你们有计划通过第三方平台来提供服务吗?

是的。现在你可以使用MintNet工具在任何云服务上发布你的私人区块链。我们也在使用它来发布测试网络。我们将在不久发布更多的工具。

【原文】

http://blockchain.hk/tendermint/