写点什么

区块链创新之卡尔达诺(Cardano)

  • 2018-04-26
  • 本文字数:4681 字

    阅读完需:约 15 分钟

卡尔达诺对标比特币与以太坊,从本质上来说,针对的是数字货币和智能合约,也就是现在圈子里说的很多的区块链 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

作者介绍

自游,区块链底层架构师。16 年初接触区块链并全职投入,现供职于某世界 500 强企业做区块链底层研究及 BAAS 平台搭建。精通区块链底层存储、共识等技术,职业方向偏重联盟链体系。

2018-04-26 18:103659

评论

发布
暂无评论
发现更多内容

服务器被入侵了?反手溯源出入侵者画像【网络安全】

H

黑客 网络安全

分库分表中间件的高可用实践讲解

Linux服务器开发

高可用 高并发 中间件 Linux服务器开发 Linux后台开发

OAuthApp H5 应用开发/云托管平台

unclewang

微服务 前端 .net core H5制作 SaaS平台

企业如何快速地制作出电子产品宣传册?

小炮

4种常见分支模式解析及优劣对比 | 研发效能提升36计

阿里云云效

阿里云 云原生 研发团队 研发 分支管理

改进DevSecOps框架的 5 大关键技术

禅道项目管理

DevOps 敏捷 自动化

2022 年了,还不了解 PWA ? 教你 VuePress 博客如何快速兼容 PWA

冴羽

JavaScript Vue 前端 vuepress PWA

全网渗透率达80%!“耳朵经济”将成为当下市场的流行趋势

易观分析

耳朵经济 在线音频

Apache SeaTunnel & Kyuubi 联合 Meetup | 见证中国大数据崛起!

Apache SeaTunnel

大数据 开源 大数据平台 apache 社区 Apache SeaTunnel

如何编写有效的常见问题解答(内附 5 个最佳示例)

小炮

三步教企业搭建产品帮助中心

小炮

项目启动 | 德荣医疗携手用友iuap共谱数字化转型新篇章

用友BIP

用友 用友iuap

数据孤岛下的新破局 Real Time DaaS:面向 AP+TP 业务的数据平台架构

tapdata

数据中台 数据仓库 异构数据 Real Time DaaS DaaS

天翼云基于 KubeEdge 的大规模 CDN 场景落地实践

华为云原生团队

开源 云原生 边缘计算 边缘技术 边缘云

FinClip 黑客马拉松正式开赛,码力集结,等你来战!

Speedoooo

小程序生态 hackathon APP开发 黑客马拉松 黑客松

CRM系统帮助降低业务成本的方式

低代码小观

企业管理 CRM 企业管理系统 CRM系统 客户关系管理系统

你可以不知道KFC疯狂星期四,但不能不知道InfoQ会员周!七天限时福利冲冲冲!

InfoQ写作社区官方

热门活动 InfoQ会员周

Web 键盘输入法应用开发指南 (6) —— 开发实战(一)

天择

JavaScript 键盘 实战 输入法 3月月更

Linux之traceroute命令

入门小站

Linux

LigaAI完成A轮融资,加速打造全新的智能研发协作平台

LigaAI

行业资讯 智能 LigaAI A轮融资 研发协作平台

视频渲染靠cpu还是显卡 视频渲染的作用是什么

懒得勤快

2个动作,让研发效率提升120%,代码减少50%

云智慧AIOps社区

敏捷开发 代码优化 开发规范 研发提效 研发效率

大画 Spark :: 网络(5)-Spark中的server端和client端

dclar

大数据 hadoop spark Spark 源码 大数据开发

Amazon Graviton2上数据压缩算法性能比较

亚马逊云科技 (Amazon Web Services)

数据 应用性能

ModStartCMS 模块化建站系统 Laravel 9.0 版 v3.3.0

ModStart开源

“东数西算”超级工程上马,利好云计算但暗藏汹涌

行云管家

云计算 混合云 多云 东数西算

【专访蓝景科技】5G+实时云渲染赋能数字孪生,共建元宇宙

3DCAT实时渲染

5G 数字孪生 实时云渲染

教你Mac下终端配置iterm2+oh-my-zsh+powerlevel10k

锋享前端

Mac iterm2

在线TOML转YAML工具

入门小站

工具

大咖说|制造业发展趋势:“专精特新”与数字化转型

大咖说

阿里巴巴 阿里云 数字化 中制智库

基于 XuperChain 的区块链项目从 0 到 N(二)

刘旭东

区块链 XuperChain

区块链创新之卡尔达诺(Cardano)_语言 & 开发_自游_InfoQ精选文章