更好的中本聪共识—浅谈CKB共识

2019-06-24

更好的中本聪共识—浅谈CKB共识

导读 本文是Rebase社区的Harry在《全民挖矿月》Nervos专场活动上做的分享。 比特币共识也称为中本聪共识(Nakamoto Consensus),经历了10年的运行证明了它的安全性和众多优点,不过中本聪共识也因为它的吞吐量不高一直饱受诟病。CKB共识是中本聪共识的改进版,通过三大创新,在不妥协安全性的前提下,实现了吞吐量的提升,并解决了自私挖矿的问题。 中本聪共识的优点 1.安全性高 中本聪共识经历了很多的攻击,仍然稳定运行了十年。而且,目前没有任何一个工作量证明机制整体超越中本聪共识。其它的协议要么有很强的安全假设,要么会引入新的攻击。 •安全假设: 比如使用PoS的Algorand要求持有Token的人时刻保持在线来接收消息。•新的攻击: PoS的Nothing-at-stake Attack,Long-range Attack,这些攻击在PoW中是不存在的。 2.带宽利用好 在带宽利用方面,我们可以用一个简单的模型来衡量共识协议的吞吐量。 最左侧蓝色的部分是用来同步最终确认交易的带宽比例,这部分是真正的TPS;中间红色部分是被共识协议“浪费”的带宽比例;最右侧白色部分是未被利用的带宽。 在带宽一定的情况下,想要提高...

Read More
2019-06-12

全民挖矿!解锁区块链挖矿的正确姿势

区块链行业2019年的6月注定会是不寻常的一个月份,有人说:Conflux和 Nervos Network这两个项目很可能会如2017年的以太坊一样,创造一个新的区块链时代,极大的促进区块链得到更深更广的应用。   Conflux 和 Nervos Network 真的有这么神奇吗?我们今天来一起梳理梳理~   Conflux是什么? 简单来说是一个 Conflux 创新的公链系统,是可扩增、可延展、且安全的区块链,可用于打造世界级的去中心化应用程式。它致力于打造下一代高性能的 DApp 公链平台,根据Conflux联合创始人、多伦多大学助理教授龙凡指出,Conflux 将通过改变区块排序的方式,来突破公链的性能瓶颈。   目前多数区块链都是以相对线性的方式进行工作,一次只能生成一个区块。当有两个区块同时生成时,整个网络的节点必须决定采用哪一个区块来继续整个链的延伸,否则就会导致分叉。   因此,每当交易量增多时,区块链就很容易堵塞,多数公链都严重受限于此一瓶颈。尽管目前已有许多项目提出不同方式试图解决这一问题,但通常都必须对网络的去中心化做出某种程度的牺牲。   但...

Read More
2019-06-10

Code Is Law:如何定制合约中的LAW

导 读 大家好,当下区块链生态逐渐丰富起来,尤其是以智能合约为基础的应用,区块链构建了信任基础,催生出了Defi等应用,智能合约把原本委托给中介的服务,交给代码完成。引用《分布式商业的本质》-陈菜根的话。这也契合了今天的主题Code is law。   对于任何一个商业体,无非是经营三种流:信息流、资金流和物流,而这背后都要有信任流做支撑。 一、实体经济时代:信息流、资金流和物流归属于中心化机构,信任锚是权力中心; 二、互联网经济时代:信息流、资金流和物流归属于商业组织,信任锚是法律和合同; 三、分布式商业时代:信息流、资金流和物流将归属于社区,信任锚变成了代码。   很高兴邀请到代世超Diane来做客Rebase Talk,Diane是Hydro Protocol和DDEX市场公关负责人,来和大家畅聊智能合约、Code is Law以及智能合约在Defi中应用和实现。Diane从思考事情的本质的角度给我们带来精彩的分享。下面是对Diane分享的整理:...

Read More
2019-06-02

视频:跨链释放Dapp创新潜能

5月26日举办的RebaseTalk上,Random Capital合伙人刘毅进行了《跨链释放Dapp创新潜能》的分享,从以太坊2.0,Polkadot和Cosmos三个项目对跨链和Dapp创新进行了阐述,精彩内容请查看视频。 视频的文字版由NPC源计划发布,可以点击原文链接查看。 RebaseTalk是由Rebase社区发起的,目标是通过邀请技术领袖进行前沿科技的分享,刷新极客认知。 Rebase社区聚集着一群拥有不同技能的人,他们通过贡献自己的时间和智慧来为社区的发展添砖加瓦,用实际的行动来尝试社区和社会自治的可能。 我们欢迎不同的人加入我们,与社区共同成长,让最新科技帮助更多的人! 原文始发于微信公众号(Rebase社区):视频:跨链释放Dapp创新潜能

Read More
2019-06-02

视频:Wanchain星系Galaxy共识

5月26日举办的RebaseTalk上,Wanchain全球副总裁李尼进行了《Wanchain星系Galaxy共识》的分享,精彩内容请查看视频。 RebaseTalk是由Rebase社区发起的,目标是通过邀请技术领袖进行前沿科技的分享,刷新极客认知。 Rebase社区聚集着一群拥有不同技能的人,他们通过贡献自己的时间和智慧来为社区的发展添砖加瓦,用实际的行动来尝试社区和社会自治的可能。 我们欢迎不同的人加入我们,与社区共同成长,让最新科技帮助更多的人! 原文始发于微信公众号(Rebase社区):视频:Wanchain星系Galaxy共识

Read More
2019-05-21

Rebase Talk:公链技术前瞻—跨链专题

区块链的扩容方案有两种,一种是链上(Layer 1)扩容,另外一种是链下(Layer 2)扩容。链上扩容是通过对区块链本身的改造来实现性能的提升,包括分片,增加区块大小,改进区块结构,以及改进共识等。链下扩容包括跨链,状态通道等。 2018年很多公链在链上扩容的方向上做了很多的尝试,如以太坊Casper,Zilliqa的分片,增加数据区块大小的BCH,改进区块结构的隔离见证,以及改进区块链结构的DAG项目,还有改进共识等的PoS/DPoS的尝试。 进入2019年,随着链下扩容项目Polkadot,Cosmos,Wanchain等的上线和发展,似乎让我们看到了区块链扩容的更加清晰的方向。 跨链有哪些优点? 我们如何参与到跨链的生态中来? 开发DApp是不是优先选择跨链的公链? 新的技术带来的新的思维和开发范式的转变,也会让我们产生新的问题。我们希望通过此次分享带来对于未来区块链扩容和应用创新的新的思路。 时间:5月26日 2:00 PM ~5:00 PM 地点:北京望京诚盈中心A座9层 活动流程:...

Read More
2019-05-13

Blockchain Coding Day 6th 活动精彩回顾

2019年5月12日 BCD(Blockchain Coding Day) 第6次活动在Rawpool矿池[1]成功举行, 感谢影谱科技[2]的灰灰给活动带来的水果。 本次的活动主题是开发一个区块链趣味小游戏,游戏的原型来自于一款真实上线的DApp。 虽然北京下起了小雨,也没有阻挡大家coding的热情。本次活动参与的人员继续延续以往多元化的风格,有编程教育的创业者,行业媒体的编辑,区块链游戏的策划,架构师等。 让我们感受到了兴趣是学习和进步最好的动力,另外也让我们看到了BCD的潜力,真正的创新很多都是来自于多元化的环境和人。 这也是我们做BCD的目标,要把BCD发展成为一个加速创新的平台,帮助极客和那些有极客精神的人更好地利用科技创新,推动社会变革。 活动开始,首先由刘宁介绍了社区的历史。 然后穿插讲解了区块链的一些基础知识: •比特币的UTXO, 比特币地址上未花费的utxo更像真实钱包的纸币•智能合约与后缀表达式•以太坊的账户模型,状态爆炸问题•Nervos CKB如何保证安全。•Nervos Cell模型为什么是更好的UTXO...

Read More
2019-04-25

第6次BCD线下活动:通过趣味小游戏教你开发DAPP

时间 2019年5月12日 1:30 PM ~ 5:30 PM 限额 20人 地点 北京朝阳望京诚盈中心1号楼9层 活动简介 我们希望通过coding这种不一样的方式让你对区块链应用,获得直观操作的体验,了解他们是如何工作的。 为你打开通往区块链世界的一扇大门,为你提供一个有力的工具撬动加密经济的巨大引擎。 活动使用的区块链框架是CITA。 游戏简介...

Read More
2019-04-15

如何用 CITA 实现一个类 DPoS 的高性能区块链

导读:Nervos Network通过分层的设计来解决区块链的“不可能三角”,Layer 1主要关注安全,Layer 2关注性能。作为Nervos Network的Layer 2,让我们来看看如何用CITA实现一个DPoS的高性能区块链。 早期的 CITA 是针对联盟链进行场景优化的。目前的 CITA 是一个通用的区块链框架,其设计目标是可以灵活实现各种类型的区块链。CITA 默认的配置是 BFT 共识 + EVM 虚拟机,同时编程框架支持微服务可替换。例如,CITAHub 社区的小伙伴们通过底层修改实现了 POA 和 WASM 虚拟机等功能。不过利用 CITA 强大的合约功能可以更简单地实现记账机制的定制化。本文中,我们将介绍如何不修改底层代码,仅在合约层定制实现一个类 DPoS 的高性能公链。 以 EOS 为代表的 DPoS 公链通常采用代理选举候选节点、节点上任、定期更新记账节点的方式实现记账节点的民主化更替。对应地,CITA 也需要实现选举合约、共识节点治理、节点分类激励以及共识节点出块比例管理等功能。 选举合约 节点选举合约是一个标准的链上智能合约,负责节点注册、收集用户的投票并输出选举结果到节点管理合约。不同的社区可能会对节点选举具有不同的要求,所以这里的投票方案非常灵活。既可以使用系统代币投票,也可以指定某个 ERC20 的代币投票,也可以按账号投票等等。例如,在偏公链的场景下,节点需要抵押代币,用户使用代币进行投票对节点进行支持;而在一个存在实名认证服务的场景下,节点可能需要获得尽可能多的实名用户的支持。 选举合约应该能够周期性地输出得票最多的若干个节点到节点管理合约,同时能够给出得票次之的候选节点,他们可以同时获得系统激励合约的激励。 节点管理合约 CITA 的节点管理合约( https://docs.citahub.com/zh-CN/cita/system/node[1] 2 )具备两个重要的系统功能:增删共识节点、调整节点的出块权重。这两个功能是我们实现一个“类 DPoS”共识的高性能区块链的核心。节点管理合约只能由系统超级管理员权限的账号发起调用,我们可以将前面的选举合约设置为系统超级管理员权限,并允许它调用节点管理合约。具体方法可以参考 CITA 治理机制的定制化设计代码( https://github.com/cryptape/appchain-gov-general[2] 2 )。这样,选举合约给出的记账节点上任信息就可以直接转化为节点管理合约的输入,实现记账节点的无缝更替。 此外,节点管理合约还可以接收记账节点的权重参数,实现不同的记账节点由于得票占比不同,出块比例不同的功能。不同的出块比例意味着后续出块的激励不同、记账话语权不同,从而实现类似 DPoS 的效果。 需要指出的是,这种模式下 CITA 的每一轮投票仍然是采取 BFT 的每个节点一票方式,记账权重体现在长期(例如1000个块)不同记账权重的节点出块的数量比例不同,并非 EOS 等区块链的 DPoS 共识中不同权重的节点 BFT 投票权重不同。当然,作为区块链框架,CITA 也可以通过修改底层的方式实现相同的功能,有兴趣的开发者可以提 issue 实现。 激励合约 获得记账权的节点以及暂未获得记账权但获得足够多的投票的候选节点按照社区同行的规则可以获得出块奖励或分红。CITA 采用了“系统自动执行合约”的机制,可以实现每区块自动执行一个代币分发合约( https://docs.citahub.com/zh-CN/cita/system-contract-interface/auto-exec[3] 3 ),从而为记账节点和候选节点分发奖励。 运营方可以在创世块创建足够多的系统代币,锁定到一个激励合约,并在激励合约中编写按照选举合约结果分发出块奖励的命令。具体命令可以是类似每区块将预定代币的 40% 分配给当前记账节点,并将 40% 平均分给在任的记账节点,剩余 20% 平均分配给候选节点。当然,类似的方案完全由社区决定,并可以通过投票随时修改。 结论 不同的社区、不同的行业领域绝不可能千篇一律,必须有不同的协作模式。如果每种模式都需要修改底层协议,编写底层代码,那么其开发难度是不可想象的。CITA 灵活的框架结构以及治理和经济模型可以实现非常适合特定社区的记账、激励模式。期待开发者利用 CITA 实现更多创新的落地场景。...

Read More
2019-04-14

理解Nervos 网络中的几种核心角色

一个好的经济模型需要将各个参与方的利益诉求统一起来,达到一种平衡,并且可以持续的运行下去。为了更好的理解Nervos网络中各个参与方,下面我们从每个角色付出和得到什么来进行分析。 矿工 矿工和比特币或者其它区块链一样,是整个网络的最底层,它们的主要作用是通过争夺出块权来达成整个网络的共识。 提供什么 软件上,矿工为整个网络提供一个安全的根基。硬件上矿工提供了三种资源:计算,带宽和存储;计算和带宽是一种瞬时的资源,用来进行哈希计算和网络传输,而存储是一种持续的资源,用来存储整个网络的状态数据。 得到什么 矿工的诉求很简单,就是通过挖矿获得CKB代币。 法院——CKB状态 前面提到的矿工的角色是给网络提供一个安全的根基,保证CKB的状态不会被恶意篡改,这个时候CKB的状态就像一个法院一样,它是公正的,可以作为证据的来源。 提供什么 法院提供的是证据,CKB状态提供的是不可篡改的状态数据,如果任何人对于当前状态有异议,都可以找这个法院来进行裁决,一个典型的例子是如果用户怀疑Layer 2的开发者作恶的话,那可以提交交易的哈希证明,假设这个哈希证明是Layer 2上一周内所有交易数据的哈希值,如果这周内有任意一笔交易被篡改的话,那当前计算的哈希值和提交到CKB上的哈希值肯定是不一样的,通过这种方式来进行公正的判决,处罚Layer 2开发者抵押的CKB。 得到什么 法院是无私的,公正和网络的顺畅运行就是对它最好的回报了。 中央银行——NervosDAO NervosDAO是一个智能合约,如果整个网络有1000个CKB,你有100个CKB占有10%的比例,这时候你把100个CKB存入到NervosDAO中,当CKB二级发行出10个新的CKB的时候,你就可以获得10 * 10% = 1个CKB了。这个例子为了方便理解进行了简化,实际情况中还会对矿工进行补偿。 提供什么...

Read More
2019-04-11

探索Nervos Network上会出现的应用场景

当我们提到Nervos的时候,一般会有两种含义,一种是Nervos CKB,专门指Layer 1的公链,第二种含义是Nervos Network,代表了整个Nervos的生态,不但包括CKB,还包括了Layer 2以及更上一层的DApp。 CKB作为一个基于PoW共识的公链,通过更加合理的多层架构设计,解决了区块链的“不可能三角”难题。良好的设计为区块链应用的扩展提供了很好的设计范式:Layer 1最重要的是关注安全,为上层创造信任,而上层则关注计算,通过提供更高的tps让应用更加易用。 从数据结构上,通过将比特币的UTXO结构泛化,CKB将只支持数字类型的UTXO扩展为支持任意数据类型的新的状态模型——Cell。这样的设计实现了二级资产(UDT,User Defined Token)的所有权第一次真正回归到了用户手中 ( https://talk.nervos.org/t/first-class-asset/405[1] )。 更安全的代币发行 虽然代币发行是从以太坊开始发展并流行的,但在实践过程中也暴露出了一些问题,特别是安全问题,曾经遇到过很多起因为合约安全漏洞造成用户的资产损失,对整个项目产生了巨大影响。 有了Cell这样的数据结构,每个用户的资产互相分离并且拥有完全的所有权,这样就保证了用户资产的安全;同时可以让资产的定义和资产的状态分离,这样就算资产定义的合约出现了bug,也很容易进行升级更新,只要资产定义的逻辑允许。 资源租赁市场 用户用的的CKB不但是一种代币,还是一种稀有的存储资源,如果一个开发者基于CKB开发了一个DApp,这个DApp比较受用户欢迎,用户量增加导致占用的CKB增加,如果开发者手中的CKB不多的话,那他可以去资源租赁市场以可以负担得起的价格租赁一段时间一定数量CKB的使用权,等到租赁期结束,CKB租赁商可以获得一定比例的费用,而开发者可以缓解一时的资源紧张。 Layer 2节点提供商 AppChain是Layer 2中的一种解决方案,它是一条联盟链,具有较高的TPS和较好的可定制性,和CKB的配合使用也符合Nervos Network设计中的“Layer 1专注安全,Layer 2做好计算”的原则。 对于一个小团队或者个人来说,维护一个区块链的节点成本不低,如果有Layer 2节点提供商可以很容易的搭建一个节点,用户只需要按需付费,就好像今天的AWS和阿里云一样,开发者可以留出更多的时间去思考自己的业务逻辑,让基于区块链的尝试更加容易。 理财 CKB中因为有二级发行的存在,所以所有人手中的CKB都是会相对贬值的。Nervos CKB中有一个国有银行NervosDAO,主要目的是为了防止用户手中的“闲钱”贬值,“闲钱”是指属于用户的CKB没有被使用,只是被当做“钱”而“闲”在那里。NervosDAO的实现方式是一个智能合约,只要用户将自己的币锁定在这个合约中,那么二级发行的CKB就会有一部分会分给锁定的CKB的所有者,通过这种方式来对抗通胀。 有国有银行同时也会有民间银行,民间银行可以提供更灵活的资金管理方式,不但可以让你的资产部贬值,还可以让你跑赢通胀,赚到一些。 稳定币...

Read More