celernetwork链下扩容课学习笔记

0 为什么要做链下扩容

  • 人类经济活动的定义:信息传输和价值传输之间的转换。
  • 目前的情况是:信息的传输进步很大;因为信任壁垒,价值传输演进的过程十分缓慢。
  • 比特币、以太坊带来价值传输的进步。但是比特币和以太坊的非常慢。

1 扩容的目标

  1. 对标visa
  2. 作者认为应该对标整个信息传输的体量。从8到15TPS,进步到5.3亿TPS,10毫秒的延时。

2 链上扩容

传统区块链的技术架构:blockchain + dApps

  1. 改变共识算法的问题:无论如何改变,共识算法仍然是分布式算法,需要多个server达成一致,处理的上限是一台机器处理能力的上限。
  2. 分片扩容的问题:艾木塔(音)理论——只要有X%的东西不能并行,则无论分多少片,也无法突破这个瓶颈。

3 链下扩容

在blockchain和dApps层之间添加链下扩容层:

  1. 链上作为仲裁层,相当于法院
  2. 链下运行智能合约和交易
  3. 大量交易仅限于交易者之间,有较强的隐私性

state channel 101

on-chain bond contract:在智能合约中放入各自的钱,通过balance proof证明各自拥有的账户余额,就可以进行链下交易。

  1. Alice将有自己签名的balance proof发给Bob,Bob就知道Alice给自己发钱了,因为只要他自己签上名发到合约中,就可以修改合约中的balance proof
  2. balance proof有序列号,逐渐递增,合约总是承认序列号最大的balance proof
  3. 结束交易,将balance proof提交到链上,合约按照balance proof中的金额给Alice和Bob打钱
  4. 中途有人提交balance proof,合约就在一定的时间内接受争议和仲裁,如果另一个人能发布一个序列号更新的balance proof到合约中,就能根据新的balance proof进行账户余额的分配

state channel 201

每两个人之间的state channel都要存钱,当人多了以后,存的钱就很多,对支付者压力很大。

如果Alice和Bob之间可以通过其他人连接,并且可以无需信任的通过其他人进行价值传输,就可以解决这个问题:

  1. 发钱的人发送带锁的交易,发送给中间人,如果有人能用钥匙解开,就可以获得这个钱。中间人无法解开这个交易,就把这个带锁的交易发送给下一个人。
  2. 到了接收钱的人手里,出示钥匙,请求中间人将交易解锁,中间人将这个请求转发给上一个人,直到转发到发送者手里,发送者解锁交易,交易才顺利完成。
  3. 如果有中间人不愿意转发交易,交易无法达到接受者,或者接收者的钥匙无法到达发送者,就可以将交易放到真实的链上运行,交易仍然可以完成,所以流程仍然是安全的。

也就是说链下是可以执行带条件的支付(you can do off-chain conditional payment)

4 state channel 599: celer network

cStack:cChannel -> cRoute -> cOS

cChannel:链下支付和链下智能合约,state channel、side chain联合架构,可以接入多个公链,为多个公链进行扩容

以象棋为例:

  1. Alice和Bob只有最开始的时候的象棋合约的创建是在链上进行的,其他的时候都是在celernetwork的链下虚拟机进行下棋。下棋的过程中不收取手续费,响应非常快,互联网产品的体验。
  2. 如果棋手作弊,则需要通过链上的智能合约进行仲裁,对作弊者进行惩罚。
  3. 比赛结束,链下合约的条件支付自动改成无条件支付。添加赌资,合约可以根据象棋的结局决定谁能赢得比赛,获取全部的赌资。

cRoute:可证明最优的状态路由

链下智能合约:效能瓶颈消失,因为只需要合约的双方维护智能合约的状态,不需要主链的所有的节点去维护合约的状态。

传统无状态通道模型,流量的总量一直不变;状态通道的链路是有状态的,链路可以发送的钱的多少取决于已经发送的钱。

传统路由方式是最短路径路由,会造成网络的状态的不平衡,cRoute是可证明最有的状态路由,可以改变这中不平衡的状态。仅仅发送交易,效率是雷电、闪电网络的10到15倍。

构建纯虚智能合约:不需要在链上运行的智能合约

cOS:开发者SDK,celer全节点,celernetwork的入口层

链下编译器,方便开发者,一套代码,可以同时运行在链上和链下的智能合约

challenge

  1. 不在线的情况下被诬告的情况,用历史状态提交,不在线的人无法用新的状态更新链上状态;
  2. 链下服务商需要和很多人连接,需要很高的成本;

无法用技术解决,运用区块链的重要特点:技术不够,经济来凑,使用经济激励解决问题。

解决方案

  1. SGN(State Guardian Networ)状态守护网络,一种侧链,celer token的拥有者。拥有的celer token越多,有越高的概率获得状态保护的请求,获取一定的收入。发送状态是一种自动的过程,防止用户下线前忘记发送自己当前的状态。SGN是整个网络的分布式的守护体。

    非常灵活的保险机制:动态为自己的状态投保,投保额度的大小决定获得的SGN的多少。相当于如果出现问题,恢复状态所需要花费的时间的多少。

    用户使用的时候只需要决定自己需要一个月为自己的状态花费多少钱去投保,celer系统会为用户计算出相应的投保额度。如果相应的比例的SGN没有提供状态守护,用户可以获得对应比例的celer token作为赔偿。

用户断电下线的情况:

  • 我方已发送状态,对方接收状态,签名发送回给我方,我没有收到就断电下线了:相当我方没有收到最新的状态,任何的计算机系统都无法解决这类问题。
  • 我方已发送状态,对方接收状态,签名发送回给我方,我放收到后没有存入本地,断电下线:在存入本地之前发送给SGN,有一定的回滚的可能,这和底层区块链的安全程度相当,因为底层区块链在交易发送以后断电也有可能造成交易失效。这也是计算机系统所能承受的极限。多个人同时看守状态,只要有一个人执行状态看守,就能确保状态可信。

除了SGN没有更好的保护状态的方案。

  • 中心化的状态守护可能有和对方合谋作弊的可能。
  • 抵押获取赔偿,用户抵押的钱太多,会造成流动性问题。
  1. Proof of Liquidity Commitment Mining:锁定流动性可以获取celer token的奖励
  2. Liquidity Backing Auction:可以通过系统进行借款,获取利率回报

5 side chain

侧链101

侧链:在主链的智能合约,是由block proposers(区块申请人)组成,不是矿工,抵押自己的token,维护一条区块链。有很多交易,交易的merkle tree的merkle root会被提交到主链上自己的智能合约中。

在以太坊中,侧链的实现形式叫plasma,是UTXO模型,是O(1)的算法算法复杂度,在侧链中证明无效交易最为快速。只要将有争议的交易放到主链中进行验证,如果两笔交易使用的是同一个UTXO,那么后面的交易就是无效的。invalid block也会被取消掉,相当于中侧链中发生了一次回滚。所以侧链的状态并不是最终的状态,不能保证是否会被revert。

如果不用UTXO,用account modal,过程就会变得很复杂,验证account余额的有效,需要验证每一笔交易,这样消耗的gas太大,难以实现。

侧链201

plasma侧链难以实现智能合约:因为智能合约的代码和状态太多,难以约定所有合约的使用者同意将合约迁移到主链中,所以难以实现。相当于在EVM中实现EVM,gas消耗及状态处理太复杂。

但是可以借助zero knowledge技术实现侧链中的智能合约,暂且不细说。

侧链301

Data availability challenge:block proposer(区块申请人)只提交区块头的hash,不广播交易,其他人无法了解其中包含的交易。其他用户觉得有风险,要到主链确认交易,区块申请人提出和自己打包的区块中的交易有冲突。主链作为法官,最难解决的问题就是不知道谁是正确的交易,需要看到交易被真正的包含在主链中才能算交易成功。

解决:

Alice转钱给Bob,Bob可以认为自己还没有收到钱,Alice需要在链下发消息说已经看到这个交易被打包到区块当中,Bob才能确认自己收到了钱。可以通过零知识证明比较方便的解决这个问题。

6 interactive compute

想计算一个很复杂的能用EVM执行的程序,放到一个智能合约中,这个智能合约不执行这个程序,只是储存这个程序,甚至是储存程序的hash。

有人(需要在链上锁定一定的ETH)在线下计算结果,然后将结果上传到区块链中,但是可信度不够。

其他人计算结果不同,可以挑战他,折半查找直到最后一次计算结果相同。然后由链进行计算(区块链有能力进行这个单步运算),进行仲裁,挑战者获胜可以赢得被挑战者的保证金。

通过互动运算将大的计算变成许多小的计算。

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

推荐阅读更多精彩内容