7

区块链的内力与招式,RChain VS 其他链

 3 years ago
source link: https://www.chainnews.com/articles/497035312784.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

区块链的内力与招式,RChain VS 其他链

万块并发,万链如一,最后 RChain 还会做到万链归一。…

· 7 小时前 ·阅读约 12 分钟

区块链的内力与招式,RChain VS 其他链
莫给机狂:大家好,我叫莫给机狂。简单介绍一下自己。莫给机狂,RChain 合作社中国社区成员,毕业于浙江大学和卡耐基梅隆大学计算机专业,后定居于美国,长期在 IT 业界工作。作为区块链技术爱好者,2017 年开始关注 RChain 的技术,和 RChain 合作社成员有很多深入交流,并一直在中国社区宣传和推广 RChain 的独特技术路线。很荣幸参加今天的交流。

凌晨:首先很感谢 RChain 中文社区的热情和给到云顶这次 AMA 的机会。自从马斯克推特喊单碳排放后,该词汇便一直围绕着币圈,于是深耕发掘到 RChain。自己也写了一篇文章,这次主要想邀请你们,让我代表我们的社区成员对你们进行深入的问答。

Q1. 最近有一篇公众号文章流传甚广,其中声称 RChain 不但是碳中和第一链,还是协调全世界的平台,请问这是忽悠吗?

莫给机狂:我是 RChain 的老会员,自从踏入币圈以后,看了很多公链项目,但一直被 RChain 的技术所迷恋,很开心能在今晚把它展现给大家。RChain 社区里的老人都知道,Greg 做了很多期关于气候变暖、世界协调的访谈,不断的重复 RChain 是个必不可少的这样的平台。最近在国际金融论坛的演讲,Greg 也是重复了这一点。很多人确实不理解,觉得这种说法太玄幻、太虚,反而让投资者觉得这个项目就是个空气币。这个问题上,我觉得这是因为绝大多数人的认知还没到那个层次——你只站在二层楼那么高,而 Greg 是站在百尺高楼的楼顶,所以你是看不到他的视野的。

实际上,区块链的信任模型确实是世界协同必须的。举个例子,全世界合作一起减排,发行统一的碳积分,那这个积分系统由谁来管理?谁都不合适,即使联合国设立个委员会来管也不合适,因为涉及的钱太多了。所以最好就是区块链这种“代码即法律”的无需信任的系统。进一步 Greg 也认识到,除 RChain 以外的其他公链,都无法提供一个给全世界几十亿人同时使用的平台,因为现实生活中,所有人、IOT 设备的行为都是并发的,没有一个统一的顺序。而除 RChain 以外的所有公链,都因为没有并发的计算模型,由此都需要通过各种方式给链上的交易排序。

那么问题来了:你能给几十亿人,几百亿设备的每分每秒的行为都排好队,给个号吗?显然不现实。然后其他的公链又出了个昏招:分片。分片就是说,好,一条队不够,那我们做 N 个队让大家排。但那也不对啊,比如我给 Greg 5 个 REV,这个交易,到底是排 Greg 的队,还是我的队呢?其实链上的世界计算机就是对链下的映射,现实生活中,每时每刻都有很多沟通、交流事件发生,本来就不需要排各种队去处理。

所以,你只要排队了,一开始就错了。而 RChain 不排队,RChain 只管处理、协调交易之间的冲突。这就是 RChain 的思路。这才算符合天道的世界协作平台。

Q2. 早闻 ETH 的 Layer 2 方案即将进行扩容,在这之后,请问区块链还会需要 RChain 吗?

莫给机狂:Layer 2 实际上只是把耗时久的计算放到链下,每隔一段时间,只把一堆交易的运算结果打包,把这堆交易的整体状态更新上链。Optimisitc rollup 是留出一段时间,让人去挑毛病,如果没人挑出毛病了,那结果就是可信的。ZK rollup 是用密码学手段,给那一堆交易做个防伪标签,再把这堆交易的结果和防伪标签一起写回主链。用那个排队做比喻,Layer 2 就是:我们大堂里太挤了,一个队排不下,你们出们去排个队自己解决下,然后每隔一段时间把处理结果放进大堂里的长队(主链)里来。

所以,你很容易看出问题:你还是在排队。队与队之间,互操作性是很差的,你只能通过“隔空喊话”的形式来处理两条队之间的交互。也就是说,这些队(各个二层网)之间,都是半独立的,没法无缝的协作。如果你们看各种论文、解决方案,为了解决二层网之间的协作,都是用各种跨链原子交换类似的加锁解锁的方式,且不论效率,这个只对简单的资产原子交换可行,对一般的通用计算是无能为力的。

还有一个很重要一点就是,二层网为了追求速度,一般都配置很少的节点数。这样区块链的一些特性就被牺牲了。因为结果会被发布到主网,所以”可信无篡改“可以保证,但“公平”,”抗审查“的属性就丢掉了。所有的这些问题,就是因为他们在不停的排各种队,一条队不够就来一堆半独立的队,这并不是真正的扩容。这一切都要等 RChain 的基于 Rho 演算的不用排队的方案正式部署到主网(暂时部署在测试网),区块链才能真正的解决扩容问题。区块链才能真正的解决扩容问题。而且更让我激动的是,RChain 也可以借鉴 Layer 2 的思路,把耗时久的计算放到链下的,但不同的是,RChain 可以把计算和部署解耦,在把计算放链下的同时,部署还是放链上!这一切都是因为 RChain 是静态部署的,而其他项目是动态部署的,计算和部署不能分开。RChain 为什么可以静态部署?因为它用了 Rho 演算!计算放链下是不会违反区块链的特性的,但是部署是不能放链下的下了链你就丢失区块链的特性了。

Q3. 在 ETH 2.0 出来以后,请问是否仍有 RChain 的用武之地?

莫给机狂:前面说了 Layer 2 就是出去排队,把结果放回大堂里的队里。那么,分片,就是在大堂里把一条队变成很多条队,那么分片就是在大堂里把一条队变成很多条队。所以其他项目的分片和 Layer 2 都一样,都需要面对队与队之间的互操作问题。都需要面对队与队之间的复杂的互操作问题。解决不了,得到的就只是一堆一盘散沙的半独立系统,并不是个可扩展的方案。而这个问题,在图灵机框架下,无解。种因得果,各种问题在你选了图灵机计算模型,要把交易排队的时候就已经种下了。而 RChain 根本不做排队,它记录每个个体之间的并发信息交换然后放到链上,接着用共识协议验证信息,并处理可能冲突。

RChain 的这个架构,不光可以在分片内去完成并发,而且分片之间也能保证原子互操作性。这样的好处就是,程序员写跨分片的复杂的代码,和单分片内是一样的,没有差别。“万块并发,万链如一”就是 RChain 的架构优美之处。为什么 RChain 能做到这点呢?因为它基于可组合的 Rho 演算,其他项目基本都基于不可组合的图灵机。一个分片的图灵机就是一条队,顺序处理各种交易。两个分片的图灵机就是两条队,并不会成为一台更大的图灵机。而一个 Rho 演算虚拟机相当于一张 Excel 表,两个甚至 N 个分片的 Rho 虚拟机可以组合成一张更大的 Excel 表,这就是可组合性。这里面还有很多细节,今天没法讲太多,有兴趣可以再聊。

光之十一:最有影响力的软件里都有机总的代码潜伏。

莫给机狂:对的,影响过历史的进程,还真不是吹的 LOL****Q4. RChain 可以做跨链吗?请问跟波卡,Cosmos,等等,这些跨链项目相比的优势是什么?

莫给机狂:当然可以。万块并发,万链如一,最后 RChain 还会做到万链归一。

跨链类项目是做一条中继链,让很多其他链都通过它来传递代币或者消息。有的例如波卡,还会为接入的链提供信用背书,让子链也具有主链同样的安全性。所以他们的目的就是成为一个类似骨干网那的基础架构,联通很多不同的链。然后在上面做个抽象,提供一个统一的视图做 DApp 开发。但做过网络工程的人知道,骨干网是需要最强大的硬件来支持的。没有并发加持,相当于妄想让一个家用机的路由器来带一个大型公司的骨干网。

而且,做跨链,你不光只是传递消息和代币,还需要强大的协调能力:需要能检测并处理各个跨链事务的冲突,还能提供一个“可组合的安全性”。比如你调用其他链上的一个合约,需要保证你给他的一些权限不会被泄露给第三方,不然,你不敢跨链去调用其他合约,相当于你没有防火墙直接把裸机暴露在互联网上。这些能力,现在我只见过 RChain 的技术可以提供。RChain 有无限并发可扩展的强悍特性,快速的冲突处理能力,加上行为类型系统在链上加以约束,这才是最理想的跨链平台。

Q5. RChain 是适合开发 DeFi 的平台吗?请问在这方面有什么独到的优势?

莫给机狂:DeFi 现在还是早期,从逻辑上推演,DeFi 必然走向 RChain 的架构。RChain 是反应式的合约体系,类似一个 Excel 表,输入变了,依赖于这个输入的合约自动触发运行,不需要主动调用。无数 DeFi 合约之间可以并行运行,但链上又有冲突检测机制保证它们运行结果之间没有冲突。

生活中的各种金融系统实际都是按照 RChain 的思路运行的,有各种依赖关系,自动根据一些事件,比如:违约、价格跌破一定阈值等,触发结算,每个机构、每个产品、系统都可以并行的跑系统都可以并行的跑,而不是排成一条长队去依次处理。而且,RChain 的基于行为类型系统的快速形式化验证,提供了“可组合的安全性”,这个对 DeFi 来说太重要了!没有这个,你就不放心把各种金融产品组合起来,成为一个更大的产品,比如:ETF、各种衍生品、等等。

反应式合约+并发+可组合的安全性加起来,RChain 是 DeFi 的不二之选!

Q6. RChain 说自己是世界计算机,而 Dfinity 也说自己是世界计算机,请问二者之间有何差异?

莫给机狂:受我们群的传奇身家几十亿的毛总启发,我要提到一个”含块量“的概念了。都是世界计算机,但“含块量”可以完全不一样。区块链必定是世界计算机,而世界计算机并不一定是区块链!只有满足区块链的几个特性的,这台世界计算机才算得上区块链:高度冗余,计算以及结果可信、无篡改,公平、抗审查。

Dfinity 还在搞排队那套,所以它没法实施可扩展性,,所以走的是和以太坊 Layer 2 类似的路线,计算放链下的容器里,结果上链,就是出去排队的意思。这个方式可以保证冗余、结果无篡改,因为计算数据、结果上链。然而我没看到以太坊 Layer 2 种的 Optimistic 或者 ZK roll up 的那种结果的验证机制,计算过程的可信也不能保证了。当然和 Layer 2 一样,“公平”,“抗审查”也不能保证,因为那个容器的运行者完全可以决定执行哪些交易,次序如何,它说了算。所以,Dfinity 丢掉了一大半区块链的特性,“含块量”低的可怜,应该开除出区块链的队伍。

再者,单链几百 TPS 的性能也是不足以承担世界计算机的可扩展性要求的。RChain 的 Casper CBC 协议,是完全的 Leaderless,所有节点任何时刻都平等地位,没有带头大哥,在保证无限可扩展性的同时,所有区块链的特性都能保留,这才是真正的“含块量”100% 的世界计算机!

Q7. 有消息说 Coinlist 上的明星项目 Casper Labs 是从 RChain 分叉出去的,并且 Fork 了 RChain 的代码,请问它的技术路线和 RChain 有何不同?

莫给机狂:Casper Labs 是 RChain 在熊市深陷财务危机的时候,被一个著名机构把一大半开发团队挖走折腾的项目,Scala 版本的代码一开始是抄我们的,当然后来他们用 Rust 重写了。

可惜啊,虽然操刀的著名机构和币圈大佬,但对 Rho 演算一知半解,反而觉得太小众,是个累赘,所以要求开发团队把 Rho 演算阉割了回到以太坊那样的图灵机(最终用了 WASM 虚拟机),当时我就大笑三声。因为,他们只看到 RChain 用 Casper CBC 共识协议来并发出块,觉得炫酷,所以只抄了这部分,我称之为“剑招”。但是 Rho 演算才是 RChain 区别于其他所有项目的精华所在,我称之为内力。有了内力,你才能不用排队。你只学了并发出块的剑招,没学会并发执行的内力,技术上肯定翻车嘛。当然我只论技术,商业上成功与否不讨论。

这个区块拓扑图是 CSPR 的电报里 Copy 来的:区块链的内力与招式,RChain VS 其他链
这个密集恐惧症的图,是 RChain 的测试网上抓下来的:
区块链的内力与招式,RChain VS 其他链
哪一个更厉害?看看两个项目的区块图的区别你就知道了。而且我看了 CSPR 的区块浏览器,发现没看到一个区块有多个父块的 Hash。说明它们可能已经完全退回到一条长队了。还有很多轶事,要知其中详情,可看拙作 《笑看 Casber Labs 只练半本九阴真经的下场》(点击跳转)

Q8. 这边有一张(**__RChain 和其他公链对比的总表(点击跳转)**),其中 **__多次强调形式验证,关于形式验证是什么意思?请问可以具体解释一下吗?**

莫给机狂:形式验证是终极的保证智能合约代码安全性的方案,就是出一个数学证明,证明这段代码无论输入怎么样都能满足所需要的特性:比如任何账户余额不能为负,总的代币量不会有变化,等等。
形式验证是很难实现的,尤其是它的复杂度是一级一级往上升的:

Level 1. 单合约,单线程;
Level 2. 多合约,单线程;
Level 3. 单合约并发;
Level 4. 多合约协作+并发;
Level 5. 多合约跨分片协作+并发。

RChain 因为用了可组合的 Rho 演算+配套的行为类型系统做链上快速形式验证,内力充沛,从 Level 的 1-5 都可以轻松打卡,因为难度都是一致的。检查一张小的 Excel 表,和检查 N 张 Excel 表组成的大表,逻辑上没啥大区别。而其他项目的图灵机体系下,底下几级还可以爬爬,但越往上越复杂,指数爆炸教你做人。然而你不去做形式验证的话,黑客可以免费帮你做,然后发现通不过,就发现了可能的攻击途径,一样教你做人。所以,这是条不归路。详情可见 《RChain 的乾坤大挪移》(点击跳转)

Q9. 币圈都说得 TPS 得天下,不少公链都吹嘘自己几十万、几百万的 TPS,这方面您是如何看待的呢?请问为什么相较中心化而言,去中心的 TPS 会那么难提升呢?

莫给机狂:对的,很多项目都在吹嘘 TPS。TPS 是忽悠外行的,这一行,最难的保证区块链特性不丢失的情况下爆 TPS。就是说,我们追求的是“含块量”高的 TPS。你含块量低了,TPS 再高也没个卵用,因为单机系统 TPS 比你高的多了去了。

举个例子:Solana 的 TPS 高达 65000,感觉很厉害。一般的韭菜是看不出里面的门道来的,但我今天就可以聊一下,它的高 TPS 是靠牺牲“含块量”弄出来的,没什么意义。它的思路就是,让一群人撕逼决定排队的次序太慢,所以干脆排队的次序都让一个 Proof of History 节点来指定,指定完了以后,用一堆哈希函数串起来,就没法篡改了。网络里其他的节点都是打酱油的,根据这条队上排好的交易次序依次执行,那 TPS 就接近于单机跑了。

然而这里,“排队”这个事就中心化了。这个中心化的节点,可以在排队的次序里动猫腻,或者,根本不给你服务(不让你排进来),你也没办法。这是直接违反区块链的精神的,甚至比 21 个节点的 EOS 还要烂。区块链这么伟大,是因为怎么“排队”这个事情不是一个节点决定的,而是一群节点共同决定,很公平,很有号召力。如果这点没了,我还不如退回到现在的中心化系统呢,那里至少如果我受到了歧视性的待遇,我还能打官司告那个中心化的平台去。

所以,你去中心化到底是为了什么?这种“隐藏的中心化”也是 V 神痛恨的,他在最近的博客里没点名的批评了。然而人家比较清高,不像我那样喜欢怼……

那么,含块量 100% 的 TPS 为什么那么难整?又回到开始了,因为除 RChain 以外的所有项目,都需要给交易排队!你只要排了队了,不管白皮书怎么天花乱坠,你的 TPS 就限定了,走不出不可能三角。RChain 因为没了排队这个最根本的约束,已经突破了不可能三角了。不可能三角,只是对”一条队“而言的。RChain 因为没有队,所以直接一个筋斗云跳出三界外,不在五行中了。RChain 只要一步一个脚印,在保证 100%“含块量”的前提下,不断去优化这个架构就行。

Q10. 现如今在做 DAG 的项目有很多,比如:FTM,Conflux,等等。请问 RChain 的 DAG 比较这些起来有何特色?

莫给机狂:DAG 可以用在两个地方:节点间的网络连接拓扑,以及区块间的依赖连接拓扑。第一种不推荐,因为无秩序的连接,乱糟糟的只会降低全网共识的收敛速度。网络连接层这块已经有很好的算法了;第二种用途才是 DAG 的杀手锏: 把区块组织成 Dag,可以实现并发出块。就是说,很多节点都可以同时出块,不需要像以太坊那样,PoW、PoS 协议轮到的那个节点才有出块权。只要同时出块了,块之间就可能有兄弟姐妹关系。比如我和凌晨都同时出了一个块,这两个块之间是兄弟关系,不可能是父子关系,所以,肯定要用 DAG 来连接所有节点并发出的块。

然而,同时出块,形成 DAG 仅仅只是剑招,要真正发挥 DAG 的威力,你还得有相应的内力去配合: 并行的执行这个 DAG!而且执行时,每个节点可以不用步调一致,没有这个内力,只会搞得和 CSPR 一样走火入魔,退回到单链。并行执行的话,这个 DAG 上的块、交易你都不能排序了。除了 RChain 以外的所有 DAG,因为都用的图灵机,还是要把 DAG 上所有的交易排成一队,不然就跑乱套了。所以这个感觉,就像一台超跑,挡位卡死在一档了,要多难受就多难受。但是没办法啊,没有 RChain 这样的并发虚拟机的内力,是发挥不出真正并发的威力来的,更别说还需要配套上并发下的形式验证了。

群友:一直以为 Layer 2 跟 ETH 2.0 一样,今天看机总讲解,明白了。

莫给机狂:大道至简,只要明白大家都在“排队”这个道理,大多数的项目也就一眼能看穿本质了。群友:买了那么久的币,真正开始买 REV 后才真的了解到底层技术。

群友:是机总讲解的通俗易懂了,之前看文章全是专业语,很苦恼也不明白。辛苦了。

莫给机狂:我觉得,一个东西如果只能讲的云山雾罩,不让人看清楚,那就是一开始就不想让你搞清楚。不能靠忽悠、传销,要以德服人。市场自己会去价值发现。价格回归价值的过程,就是财富被动暴增的过程。
区块链的内力与招式,RChain VS 其他链

来源链接:www.yuque.com


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK