特立独行的 CKB

本文由Nervos架构师志伟在2019年6月1日北京的分享整理而成,完整视频可以查看:https://v.qq.com/x/page/w0880ml3s3a.html

特立独行的 CKB
Agenda

Introduction

Introduction

区块链核心价值

区块链的核心价值是提供信任。 区块链是通过全局共识的方式实现信任,而全局共 识必然是一个很慢、很贵的东西。

没有共识算法能比没有共识的共识算法更快。 分布式、去中心化系统的共识,不可能做得比中心化的共识更快。 区块链最应该考虑的是如何能够把信任的价值发挥出来。

共同知识(Common Knowledge)是博弈论里的概念,所有人都知道的知识还不是共同知识,公共知识是指所有人都知道所有人都知道的知识。

共同知识的形成是个很慢的过程,需要不断的猜疑,不断的挑战和传播。

例子:如果在场有人问我是谁,过了3秒没人回答,说明大家都知道没有知道这个人是谁,这个就是共同知识。

我们希望CKB(Common Knowledge Base)是全人类色共同知识库。

分层架构 VS 单一架构
区块链扩容的不可能三角

扩容方案都是有代价的: 联合挖矿,大区块,超级节点等方案影响去中心化。
多链,分片等方案降低安全性。

分层

分层架构

大部分情况下需要局部的共识就够了。
两个公司有争端,先找局部法院,如果解决不了再上升到更高级的法院
如果上层不能保证安全,可以找更下一层来保证安全

Layer1 关注去中心化和安全,Layer2 关注性能。

需求也是分层的: 大部分情况下只需要局部的共识。 越大范围的共识代价越大。 即使中心化系统也是如此。

不同的角色: 状态和计算。 Layer1 负责状态的验证和存储 Layer2 状态的生成(计算)。

和多链的区别
很多多链是同构的,ckb上的不同层之间是有不同的角色的。

POW & POS

共识就是少数服从多数。
最常用的方式就是投票。

区块链不能帮你解决分歧,不能达成一致就分叉。

直接举手表决会存在的一个问题是刷票,技术术语叫做“女巫攻击”。


女巫攻击

女巫攻击其实就是刷票。 解决方案就要让投票和所需付出的成本成线性或者更高比例。

PoWPoS都能解决女巫攻击的问题。

确定性

确定性

BFT有绝对确定性的。投票节点是提前确定的,投票超过2/3就确定了。如果有四个节点,有三个投了赞成票,那理论上就没有逆转结果的可能了,结果就是确定了。

POS有一定的确定性。在指定的时刻,Stake总量是固定的值。POS会按照Stake的量来计算投票的权重。

POW没有最终确定性。在指定的时刻,算力总量不是一个固定的值。而且更夸张的是,你还可以去挖以前的块,当然肯定是无效的块。

所以,POW有动力吸引更多的算力保证网络安全。新矿工没有门槛。PoS没有动力去增发Stake。系统的安全性也跟这个没有直接关系。新的验证者门槛较高。
PoW相比之下更开放,安全性更可量化,与Layer2更互补。

共识算法

共识算法

CKB希望做一个对ASIC持中性态度的POW共识。希望算力是分散的。希望有尽量多的算力。

NC-MAX

带宽实际上是区块链吞吐量的最大限制。
NC-Max 有三个主要的创新:

  1. 采用两步交易确认来降低孤块率。
    • 锚定因素是孤块率
    • 不能直接打包新的交易,要打包2个块之前的提案区的交易
  2. 动态调整区块间隔和区块奖励来更好的提升带宽利用率。
    • 吞吐量,出块时间和区块奖励都是变化的
    • 出块时间短后,区块奖励也会变少
  3. 在难度调整的时候考虑周期中的所有区块,来抵御自私挖矿攻击。
    • 自私挖矿解释:挖到块后不发,藏了几个块,然后之后发布覆盖了别人的链
    • 会减少挖出块的数量
      • 比特币会降低难度,因为一段时间正常可以挖出来100个块,结果只挖了90个出来,所以会降低挖矿难度。这样让自私挖矿更有利可图
      • ckb的难度调整:
        • 和比特币不一样
          * 会考虑到所有区块,包括孤块,把孤块的算力也加入进来
          * 自私挖矿不会有收益,因为自私挖矿不会导致难度调整

RISC-V & EVM & WASM

RISC-V & EVM & WASM

VM in blockchain

VM in blockchain

VM(虚拟机)作用是解析收到的交易,根据交易来修改链的状态,生成新的状态。

VM必须要做到下面两点:

  • 要保证确定性的状态
    • 每一个计算都会在所有节点上进行
    • 每个节点的计算结果要保证一致
  • 可以停机
    • 图灵完备的系统中,可以写无限循环导致系统无法停机
    • 以太坊有gas limit来解决
      另外:
  • 指令集要非常稳定
    • 要不然硬分叉代价很大
  • 灵活
    • 支持图灵完备的智能合约,这样可以实现所有的功能
  • 工具链的支持
    • 合约要编译成字节码,所以工具链支持也很重要

对比

RISV-V
是一个真正的硬件的指令集,WASM和EVM是软件的指令集
CPU的指令集可以实现所有的功能
指令集非常简洁,只有50个
VM architecture,Register Based效率也会好一点

WASM
并不是为了区块链而设计的,很多是浮点运算,但在区块链上是不太用的

EVM
设计有点粗糙,有些指令是重复的
Words size是256位,是为了便于操作hash,导致EVM很低效,都是软件模拟的。
CPU是32/64位的,对32/64的支持更好,更高效。

Toolchain虽然solc在区块链领域很流行,但和GCC/LLVM的工具链的生态还是没法比

Memory Model

Memory Model

EVM有code,storage,stack,memory。
Solidity是编译成字节码部署到链上。
EVM执行时可以访问链上的任何数据。

CKB用的是Linux ELF文件格式,合约其实就是一个可执行文件,比如说C语言,就是一个main函数的程序,编译后就是Linux下的一个可执行文件,然后就可以把可执行文件放到链上去。这样工具链方面,可以用gdb去调试。

CKB使用32位寄存器

EVM执行时可以访问链上的任何数据,CKB通过syscall来访问数据,而且只能访问交易相关的几个cell

Cell Model vs Account Model

Cell Model vs Account Model

Programming model and Problems

Programming model is about State:编程模型就是关于状态的
State generation(off-chain)
State verification(CKB-VM)
State storage (Cell Model)

EVM的问题:

  • 只支付给计算
  • 存储免费:公地悲剧,全节点有很大负担

计算和验证应该分离。

以太坊上没有验证,每次转账只需要知道给谁转,转账多少,具体转账的执行时在节点上进行的,不会进行验证input的总和等于output的总和。

所以以太坊上可能存在的一个情况是,给一个账户减掉1,可以给另外一个账户加2。

对比

对比

Cryptographic Primitive(密码学原语),比如验签在比特币和以太坊上是内置的,就是说系统编译出来后就内置了这样的系统合约了。CKB上是没有的,要自己去写验签,好处是灵活,坏处是要自己去写这个逻辑。

Cell Model

Cell Model

Cell model

  • 泛化的UTXO
  • Cell是一个byte数组,可以放任何的数据
  • Data是一个序列化后的数据
  • Type是一个script,用来规定data可以放什么样的类型的数据
Cell model vs Account model

Account model

  • like OOP
  • Function in contract like method in Class
  • Storage variable like member of Class
  • Transaction like message computation on nodes

Cell model

  • 更像一个纯的函数式编程(FP)
  • 一旦一个cell作为input被使用,它就不能被再使用了。就像bitcoin一样,一个UTXO被使用后就被销毁了
  • Lock像callback,等下一个有人要用这个cell的时候才会触发这个script
  • 计算在客户端,验证在chain上(always recompute)

Example

Example

https://github.com/rink1969/ckb-contract-examples

  • Most simple script.
  • Vote - Map Reduce.
  • HTLC. Multi-Signature.
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容

  • 巴比特旗下时戳资本近日发布了《区块链公链项目研究报告》。作为时戳资本区块链行业研究报告系列03,这份最新的报告主要...
    shenciyou阅读 2,277评论 1 10
  • 作者:野牛团长 微信公众号:野牛币圈(BullsCoin) 资本确实由钱构成的,但,仅仅一堆钱放在那里肯定算不上是...
    野牛团长阅读 295评论 0 0
  • 我深深念念的他,是我的好朋友,不是我的某某某。我希望我们都不要越过这个界限,我们都明白,不要。 我也不会为了恋爱而...
    诺M阅读 214评论 0 0
  • 你却成了那条鱼 文/黄 影 时光静静地流淌 看水面 层层涟漪的模样 你和钓杆在岸上 双眼一眨也不眨地 呆看流逝...
    黄影诗风阅读 562评论 5 38
  • 看大冰的书总是会两眼模糊,总是会嘲笑自己一个大男人怎么这么感性。 故事读了一个又一个,人认识了一个又一个...
    渤海东山伯阅读 11,693评论 0 2