美文网首页
特立独行的 CKB

特立独行的 CKB

作者: 爱写作的harry | 来源:发表于2019-06-21 14:21 被阅读0次

本文由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.

相关文章

  • 特立独行的 CKB

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

  • 「400万 CKB」Nervos CKB 测试网挖矿大赛第二期来

    为了让社区更好地参与 Nervos CKB 的建设,Nervos 基金会继续赞助并举办 Nervos CKB 测试...

  • 投稿

    3、Nervos CKB 的经济模型和 EOS 的 Ram 有什么区别? ram是系统内存;ckb是内存加硬盘,。...

  • CKB上线BiKi平台

    【CKB上线BiKi平台,当前涨幅27.27%】据BiKi交易所行情显示,CKB已于11月18日18:00上线Bi...

  • BitMax杠杆上新:CKB3倍杠杆!交易还返USDT

    BitMax发布公告宣称已于11月20日开启Nervos(CKB)3倍杠杆交易。作为近期最火热的币种之一,CKB不...

  • 身在币圈,你是信仰,还是投机?

    先说个故事,有位币圈投资者他写了大量关于CKB的文章(CKB是圈内知名的公链项目Nervos的代币),因为非常认可...

  • 致CKB

    CKB是我读初三那年认识的一个女生,她的出现,可以算是我人生中的一个转折点。 初三那年,总体过的还不错,因为重新分...

  • Hello CKB!

    by Nervos CKB Team 在 2017 年底,我们感到心里的一些想法,包括分层的网络以及一个作为共同知...

  • CKB miner

    get_block_by_number get_block_template submit_block 参考:ht...

  • 编译CKB

    Nervos 网络是一个分层架构的分布式应用网络。CKB 是一个在设计上非常不同的公有链协议,也是 Nervos ...

网友评论

      本文标题:特立独行的 CKB

      本文链接:https://www.haomeiwen.com/subject/dyegfctx.html