区块链3.0 ada Cardano卡尔达诺如何获得一致好评?

EOS 的直接竞争对手是以太坊。
文章介绍的卡尔达诺(Cardano)的目标就更加远大了,他要同时锁定比特币和以太坊。但大家去网上搜索卡尔达诺相关资料时就会发现基本没有吐槽点,一致的信任与好评。到底是什么样的项目得到大家这么高的认可度呢? 这篇文章为大家揭开其神秘的面纱。

卡尔达诺对标比特币与以太坊,从本质上来说,针对的是数字货币和智能合约,也就是现在圈子里说的很多的区块链 1.0 及 2.0。未来的互联网是价值互联网,在其上流通的不是信息的拷贝,而是真实价值的转移。比特币的出现使我们能够将资产数字化以及点对点转让,以太坊在比特币的基础上更近一步,能够以合同的形式进行自动化资产转移等操作,可以说我们已经在向价值网络迈进了。但正如同计算机刚有了 UI,新奇但是简陋。比特币和以太坊在面临大规模使用的时候,就开始歇菜摆烂了,规模化程度很低。而且基于 PoW 共识算法的平台也会经常因为升级、意见不同而产生分叉,破坏社区团结。

这些都是比特币和以太坊面临的主要问题,卡尔达诺(Cardano)就是为解决诸如区块链规模化、可持续发展等问题而出现的区块链 3.0 解决方案。卡尔达诺(Cardano)的研发流程非常严谨,它没有如其他区块链平台使用白皮书定义技术路线,而是由一群科学家们带头发起,先有论文之后再同行审阅,在数理逻辑层次上趋近完美,之后由 IOHK 的工程师们编写代码,而且为了避免程序 Bug 引起的程序崩溃或者区块链分叉,软件开发人员使用函数式编程语言 Haskell 构建平台,可见团队对项目的用心程度。

卡尔达诺团队

现阶段,主要有三个组织支持卡尔达诺的发展,卡尔达诺基金会、Emurgo 以及 IOHK。基金会的主要工作是规范,保护和推广卡尔达诺协议,也就是制定生态法规和标准以及社区建设等。Emurgo 公司的主要工作是孵化基于卡尔达诺生态的初创企业以及协助商业企业接入卡尔达诺生态圈。最后的 IOHK 是由前以太坊核心开发人员 Charles Hoskinson 成立的区块链技术公司,主要负责卡尔达诺平台的搭建。

卡尔达诺技术

为了更精准的对标比特币和以太坊,卡尔达诺将项目进行拆分,主要分成了结算层(数字货币)和计算层(智能合约)。卡尔达诺结算层(Cardano SL)是由 IOHK 联合爱丁堡大学,雅典大学和康涅狄格大学共同设计开发的一种加密货币,代号 ADA。而卡尔达诺计算层(Cardano CL)还在研发中,因此这里我们着重介绍结算层的相关知识。

卡尔达诺结算层(ADA)

卡尔达诺结算层对飚的是比特币,虽同属于数字加密货币,但是二者之间有很多不同之处。最重要的区别就是 BTC 是基于工作量证明(PoW)的数字货币,而 ADA 使用权益证明(PoS)。BTC 采用的 PoW 共识以及竞争出块机制使得能源消耗越来越多,矿工挖矿难度越来越大,这也是为什么最近大家热衷于研究 BFT 类以及 PoS 类共识算法的原因。

ADA 采用的 PoS 共识算法被称为乌洛波洛斯(Ouroboros),是目前为止唯一一个基于科学证明的安全的区块链权益证明算法,它不需要浪费电力资源,而是随机选取任意节点作为区块生产者,被选中的概率跟该节点权益成正比。在 ADA 中,所谓权益是指节点持币的相对价值,可简单的认为是节点持币价值 / 全网总价值。如果某个节点的权益>0,则被称为是权益所有人,而如果被选作为区块生产者,该节点也被称为 SLOT 领导者,也就相当于比特币的矿工。

乌洛波洛斯(Ouroboros)协议

乌洛波洛斯协议将时间分片,称为 epochs。每个 epoch 又划分为多个 slot,在一个 slot 时间段(20 秒)内,有且只有一个领导者,由他负责产生一个区块。如果领导者在他的 slot 期间因为一些原因未能产生区块,那么他就浪费了这次机会,除非再次被选做领导者。也就是说可以有一个或多个 slot 是空的(不产生区块),但是在一个 epoch 期间,必须由大部分的 slot(50%+1)都有区块产生,也就是需要大部分的节点都是诚实的。

那么 slot 领导者是怎么被选出来的呢?基本条件是权益所有人,但并不是所有的权益所有人都能被选举,有准入门槛,比如节点权益占比全网权益的 2%。如果按 2% 的准入门槛,那么整个 ADA 网络中,能够成为候选人的节点不会超过 50 个。随着权益分散,候选人会越来越少,权利会更加集中,而且权益所有人拥有的权益越多,它被选举为 slot 领导者的可能性也就越大,所以也可以说 PoS 是富人的游戏,但是 ADA 中又有一个权益委派的功能,简单的说可以将多个账户的权益集中起来使之成为候选人,每个账户可以按照比例获得分红。

在确立了候选人之后,如何选举出在下一个 epoch 阶段的 slot 领导者呢?选举的根本是随机性,在 ADA 中,采用多方计算(multiparty computation)方法来实现选举的随机性,每个候选人都独立的产生自己的随机结果,但经过多方协调后,他们最终得到相同的随机种子。在对应的 epoch 开始后,所有的候选人节点根据“追随中本聪(follow-the-satoshi)”算法,输入随机种子和 slot 的索引,就可以知道当前对应 slot 的领导者了。如果是节点自己,那么就将自己收到的交易打包成块,跟比特币类似;而如果当前 slot 的领导者不是自己,那就等待着区块广播,如果超过 slot 时间后还未收到区块,则认为该区块跳过。以上就是 ADA 的出块流程,这里描述的很浅显,感兴趣的朋友可以阅读参考列表中的资料,深入理解其精髓。

账户模型

因为结算层对标的是比特币,相对来说是比较单纯的数字货币(所谓单纯是指未附加智能合约之类的设计),所以很多设计沿用了比特币的做法,比如账户模型就采用了 UTXO 模型。所谓 UTXO,就是指未花费的交易输出,每一笔交易都应该有 N 个交易输入,同时产生 M 个交易输出(N 与 M 可以不等)。其中交易输入是前序任意交易的未花费的交易输出,如果当前交易成交,该前序交易的输出也就变成了成交的交易输出,也就失去了成为交易输入的资格。因此在网络中的每个 slot 领导者不仅仅接收交易,还会验证交易输入的合法性。为了验证交易,每个节点都必须保持对未花费交易输出的跟踪,这样就可以验证当前交易中的输入是否还未被花费,如果所有的交易输入都是未花费的,那么该交易就被证明是合法的,会被当前领导者接收,打包成块。UTXO 模型能够追踪数字货币的流向: 未花费的交易输入告知货币是从哪里来的,未花费的交易输出告知货币往哪里去。

网络架构

典型的区块链中的节点间是对等的,随着数据量的增多,才渐渐出现了全节点轻节点的区别。而 ADA 在网络架构层次上就对节点分了层,现阶段,主要有以下三组节点:

  • 核心节点,是整个网络的重中之重,所有的权益都集中在核心节点,只有核心节点才可以是权益所有人。也可以说这么说,只有核心节点是区块链节点,其余两种节点只是辅助节点。而且为了加强核心节点的安全性,完全可以将核心节点与公网隔离,只通过中继节点与外界通信;

  • 中继节点,是公网与核心节点的通信代理,由于中继节点是不隔离的,所以他可能被攻击。但是中继节点被设计成无状态的,因此可以使用负载均衡分散流量。中继节点即便被攻击,对核心节点的影响几乎为零;

  • 边缘节点,可简单的认为是与区块链交互的客户端,主要负责发起交易,而核心节点和中继节点没有权利创建交易。从名字就可以看出来,边缘节点是没有机会直接与核心节点交流的,必须通过中继节点转接。

交易确认

在 ADA 中,领导者出块因为有区块扩散的过程,因此不是一个确定性的共识算法,在某个 slot 段内,其领导者因为网络或故意为之,并不一其前置区块作为其区块的 parent,因此产生了分叉。官方给出了一个交易安全确认的等级表,攻击者的比例越高,需要确认的区块数越多;确认水平越高,相对应的需要的区块数也越多。

卡尔达诺与 EOS

卡尔达诺与 EOS 都被认为是区块链 3.0 的代表,经常被放在一起比较。而且不仅是媒体、信仰者,EOS 的核心开发者 BM 也公开发表文章数落卡尔达诺的不足,卡尔达诺官方就此也做了一个回应,这里就他们争论的关键点做个总结:

DPoS

我们都知道,卡尔达诺和 EOS 都使用了 DPoS 作为其共识算法,但是 D 的含义却是不同。在 EOS 中,D 指的是 Delegated,也就是委托;而卡尔达诺中的 D 指的是 Dynamic,意思是动态。EOS 通过投票委托见证人代表自己生产区块,而卡尔达诺是通过动态随机的选取权益候选人作为区块的生产者。

出块时间

BM 认为卡尔达诺 20 秒的出块时间太长,根本不能满足高性能的需要,而与之对应的 EOS 只需要 0.5 秒即可(白皮书中是 3 秒,之后有所变更,在节点出块的 3 秒钟时间内,连续出 6 块,因此单个区块是 0.5 秒)。而卡尔达诺团队认为,出块时间间隔应该与完成信息交换的时间基本一致,而且 20 秒是一个相对保守的估值。考虑到节点的真实地理位置,比这个时间更短的全球化区块扩散在现有的网络环境下是不太可能的。他们认为 EOS 所谓的高性能,要么是错误的,要么只是低去中心化的解决方案。

在我看来,EOS 的高性能现在还是未知数,可能是噱头也可能是杀手锏,而且卡尔达诺提出的网络传输问题也是不能忽视的,EOS 确实在这方面有所夸大。另一方面,卡尔达诺说 EOS 是低去中心化,这点难以认同,因为按照卡尔达诺的设计,只有占全网 2% 权益以上的节点才可以作为 slot 领导者,正如上文所提到的,最多只有 50 个(但永远不可能有 50 个)节点作为候选者,实际可能更少,而且节点权益越高,成为领导者的概率越高,节点间的权利是不对等的,而 EOS 在同一选举周期里,只有 21 个区块生产者,且权利对等。我认为是互有利弊,孰优孰劣只有等实际运行后才能比较。

激励机制

ADA 的激励机制跟现有的大多数公有链类似,“矿工”收取交易手续费。与比特币不同,交易手续费是 ADA 矿工的唯一收入来源。而且交易手续费不仅是给矿工的激励,也是一种防止 DDoS 攻击的手段,当攻击者试图用大量伪造交易冲击网络时,必须付出足够多的手续费。而 EOS 的激励机制则完全不同,EOS 每年增发 5% 作为“矿工”的奖励,因为“矿工”的权利是一致的,所以奖励应该是与其被选中的次数正相关。

二者都明确一件事,那就是“矿工”是需要被激励的,只是手段不一样,ADA 雁过拔毛,EOS 无中生有。如果以人民币作为参考系,假设 ADA 和 EOS 的都是升值的,那么使用 ADA 的成本肯定会逐渐增加,且币减少;而 EOS 如果整个生态价值的增长每年超过 5%,扣除增发,用户手中的币不变,价值却依然增长了,当然一切的前提是生态发展。

另一方面,ADA 声称手续费可以防止 DDoS 攻击,不可否认这是一种方法,但我认为 EOS 的按持币比例分享网络资源是一种更好的选择,它让资源的竞争变成了一种市场行为而不是强制的规则。如果 DAPP 开发者想要获得更多的资源,那么他必须从二级市场囤积更多的 EOS,因此势必会抬高币价,但是囤积的 EOS 并不会被大量消耗,因为交易都是免费的。当 DAPP 开发者放弃当前业务时,可以将囤积的 EOS 再次流入二级市场,这是一个良好的生态循环。

尾声

BM 在他的文章中这么说:“卡尔达诺是一个重达 400 磅的防弹背心,即便能防弹,又有什么用呢?”,言外之意就是说即便卡尔达诺的设计是无懈可击的,但是在实践面前,太臃肿的设计不见得是好用的。卡尔达诺是一次典型的由学术派发起的技术革命,项目都是先有论文,再“双盲(匿名提交、匿名评审)”评审,最后才有技术实现,与 EOS 的实践派形成鲜明对比。未来到底如何,我也不敢妄自定论,但可以确信的是,这两个项目一定会推进区块链技术的落地。

参考列表:

《Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol》 2017

《Cardano Settlement Layer Documentation》 2017

《Cardano(ADA)的共识算法 Ouroboros》2018

《区块链中的随机数》2018

《用密码学玩暗军棋 -- 闲聊多方计算》 2017

《Peer Review of Cardano's Ouroboros》 2018

《On the Ouroboros Design: How rigour and engineering are essential for critical infrastructure》2018

区块链3.0 ada Cardano卡尔达诺如何获得一致好评?的更多相关文章

  1. coinmarketcap前20之cardano卡尔达诺(ADA艾达币)

    1. 在开始讲述cardano前,我先说说自己在coinmarketcap前20系列的"学习方法". 最初,我把前20做了一个简单表格,不做任何功课的基础上,记录自己对它们的简要认 ...

  2. 区块链3.0:拥抱EOS

    EOS是当下最火的区块链技术,被社会广泛看好为下一代区块链3.0.不同于以太坊的学习,EOS的主语言是C++,本文作为EOS研究的首篇文章,重点介绍EOS的创新点,它的周边生态,各种概念原理的解释,以 ...

  3. DAG也许是真正的区块链3.0

    从15年开始,区块链概念被单拎出来,这之前区块链还只是比特币技术里的一个数据结构,中本村白皮书里把block和chain连一起的时候也只是a chain of blocks .随着以太坊去中心化计算机 ...

  4. Genaro Network —— 区块链3.0缔造者

    在2018年1月26日硅谷密探在美国旧金山艺术宫成功举办了“Blockchain Connect Conference”.在大会上,Genaro Network 联合CEO Jason Inch 携同 ...

  5. Chap8:加密货币TOP100[《区块链中文词典》维京&甲子]

    根据2018年1月15日CoinMarketCap的加密货币市值排名编写,这里介绍TOP10,具体请参考<区块链中文词典>维京&甲子 01.比特币/Bitcoin/BTC 一种点对 ...

  6. AELF(ELF)区块链项目介绍

    AELF(ELF)区块链项目介绍,Aelf在交易所上的名称是ELF,最近涨了不少了,可以长期关注逢低建仓,根据自身情况可以适当轻仓配置点.AELF总结下来就是希望打造一个B2B的区块链开放式OS系统. ...

  7. USDN稳定币应用区块链旅游业

    比特币是区块链1.0时代的标志性产品,稳定币则是区块链2.0时代的标志性产品.在稳定币鼻祖USDT爆出"超发"新闻后曾引发市场的动荡,之后新兴稳定币如春笋般涌现.据不完全同济,目前 ...

  8. 一场IPFS引领下的共享之风正在走向区块链

    中国互联网的高速发展 已经接近10年,小编完整的经历这个过程.这一切我们从一个小网站 饭否 说起... 互联网 2006年3月16:Twitter上线 2007年5月12:  饭否上线 饭否是中国第一 ...

  9. 如何从零开始学习区块链技术——推荐从以太坊开发DApp开始

    很多人迷惑于区块链和以太坊,不知如何学习,本文简单说了一下学习的一些方法和资源. 一. 以太坊和区块链的关系 从区块链历史上来说,先诞生了比特币,当时并没有区块链这个技术和名词,然后业界从比特币中提取 ...

随机推荐

  1. JavaScript学习(六)

    这里要注意: 1.num为NaN(因为str的开头不是数字) 2.NaN和NaN是不等的 3.NaN也是number.

  2. 【JMeter】【性能测试】服务器性能监控

    下载插件 1.访问网址http://jmeter-plugins.org/downloads/all/,下载三个文件.其中JMeterPlugins-Standard和JMeterPlugins-Ex ...

  3. 常用的shell脚本(安全方向)

    更多shell脚本参考:https://blog.51cto.com/zero01/2046242 1.拒绝密码撞库攻击的ip shell脚本:实现对登录主机失败10次以上的ip进行拒绝登录 #! / ...

  4. Lua获取当前时间

    更多好的文章就在 blog.haoitsoft.com,请大家多多支持! local getTime = os.date(“%c”); 其中的%c可以是以下的一种:(注意大小写) %a abbrevi ...

  5. [LeetCode] 607. Sales Person_Easy tag: SQL

    Description Given three tables: salesperson, company, orders.Output all the names in the table sales ...

  6. Cocos Creator 对象池cc.NodePool的使用

    对象池cc.NodePool把层级管理器中的节点拖进资源管理器中就创建了预制体:let和var 一样,是声明变量的关键词, 同一个变量名时,var 即使在{}内也作用全局,let有范围:(1)将需要数 ...

  7. 用int还是用Integer?

    昨天例行code review时大家有讨论到int和Integer的比较和使用. 这里做个整理,发表一下个人的看法.   [int和Integer的区别] int是java提供的8种原始类型之一,ja ...

  8. 字符串转化为int数组

    String a = "1,2,3,4,5,6" String str[] = a.split(","); int array[] = new int[str. ...

  9. python number

    一.number类型转换 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real ...

  10. winform下picturebox控件显示图片问题

    viewData_pictureBox.SizeMode=PictureBoxSizeMode.StretchImage;图片会自动按照比例缩放来完全显示在你的PictureBox中.