RChain 白皮书 2021

From RChain Developer Resource

本页面来源于RChain®2021中文白皮书,翻译自https://rchain.coop/whitepaper.html。版权归RChain 合作社所有。

摘要[edit | edit source]

RChain 通过革命性的 Rho 演算解决了困扰公链发展的诸多难题,使得让通用计算上链第一次成为可能。基于 Rho 演算的快速冲突检测配合 Casper CBC 共识,所有节点可以并发出块达成共识,首次做到了单分片内的无限可扩展性,使得大数据可以直接上链不需要借助 IPFS。基于 Rho 演算的分片间同步共识,保证了跨分片合约调用的原子性,让分片间的交互和协作第一次可以无缝进行。基于 Rho 演算理论的行为类型系统可以完成并发和分片下的快速形式化验证,完成大量链上合约的安全有序编排。其独特的反应式合约比传统的主动式合约更适合高频应用场景如 DeFi。RChain 的独特技术路线使它成为构建世界电脑的不二之选。

引言和动机[edit | edit source]

当今的时代有多困难?许多人估计全球范围之内我们已经损失了 70% 的昆虫(按生物量)。停下来,先想一下这件事。有多少不同的生态系统依赖昆虫?我们不仅仅是在谈论像蜜蜂这样的授粉者——仅仅这个也是足够毁灭性的;我们正在谈论各种各样的昆虫。对此的正确反应是您的嘴唇会变得干燥,并且有一种非常不舒服的感觉在腹部产生。因为这是地球上第六次大灭绝的先兆。

即便是高盛这样的华尔街巨头也承认了全球范围内的气候变化。如果没有被误导的话,他们关于如何从中获利的乐观想法可能也许是可爱的。尼尔·德格拉斯·泰森没有错当在美国有线电视新闻网上提到,我们没有技术在未来 20 年内将我们的沿海城市向内陆移动 20 英里,但不要让这种观点让您误以为气候变化的后果仅仅是海平面上升。不用看得太远,看看洛杉矶大火(比如发生在华纳兄弟公司现址上的那次)就知道了。当洪水来的时候,火也会跟着来。

我们的饮用水也处于危险之中。印度地下的主要含水层已经下降到原先的四分之一水平。由于冰川融化了,这些地下水不会被补充。想想这对该地区的耕地意味着什么,然后举一反三。明天的耕地将与今天大不相同。这将对供应链管理产生巨大影响。

请您先别误解,这份文件并不全是悲观的。这份文件是关于希望的——那种超越理性的希望,为爱的变革力量开辟了道路。尽管如此,这里呈现的一切都将以合理的数学基础为基础。事实上,我们将需要理智和爱,头脑和心灵,甚至可能是第三种力量,共同努力找到摆脱我们为自己制造的混乱的方法。

协调技术[edit | edit source]

如果我们要度过未来几十年,我们必须建立一个不是基于“可持续”的文化,而是一个基于“再生”的文化,我们将不得不以人类历史上前所未有的方式进行协调。幸运的是,协调是智人的超能力。一只无毛的两足动物无法对抗一头长毛猛犸象,但早期的猎人通过群体合作将它们灭绝。

在现代,我们用三种主要工具扩大了我们的超能力:资本、治理和社会通信。不幸的是,这三个都变得非常需要重启。资本,其最初的目的是帮助我们照顾彼此和地球,现在却掌握在少数人手里。不管您的政治立场如何,您必须承认,在我们需要扩大协调模式的时候,这极大地减少了我们可以利用资本探索的协调模式的数量。

由于互联网技术,治理已经面临变革压力。这些技术可以将事实核查和政治行为的视频记录带到几乎每个公民的指尖,使透明度和问责制迫在眉睫,以至于抵制它们必须攻击真相本身。假新闻的流行是独裁冲动死亡的征兆。世界各国政府在解决这个问题上动作太慢,许多国家,比如美国,实际上已经在否认尽管有压倒性的科学共识,我们仍然面临生存危机,对已经发生的洪水、火灾和饥荒视而不见。由于他们中的大多数人都腐败到了根上,以至于不能代表他们的公民及时采取行动来应对。

同样地集中式社交媒体已经发展到了像脸书这样地步:它们可以被外国势力武器化,以影响主要民主国家的选举结果。此外,对这些权利滥用的过度回应(如脸书频繁的游走于舆论审查的边缘)也同样令人担忧。民主在很大程度上取决于不受限制地获取公共信息。

自我主权身份、数据隐私和权力下放[edit | edit source]

最后这一点一直是市场和公共部门共同关注的问题。市场对少数集中公司垄断数字资产管理平台的应对是追求关键的替代方案: 自我主权身份、数据隐私和去中心化。这些追求都集中在被称为区块链的技术上。

自我主权身份[edit | edit source]

市场对脸书和谷歌在在线身份上的主导地位越来越担忧。几乎所有线上服务都通过脸书或谷歌提供注册和登录(事实上,这些服务更喜欢这样做)。这意味着只有两家公司控制着互联网上亿人的在线身份。应对这种对网络独立性和个人隐私的严重威胁的对策是发展自我主权身份—这个术语指的是人们应该验证自己的身份,并在所有的特定通信环境中,只透露他们所愿意透露的信息他们透露的数据应该通过一个由密码学服务和基于可信的网络的组合来验证,而不是通过任何一个服务提供商。

数据保密[edit | edit source]

与自我主权身份一样,市场对大型线上公司囤积个人信息越来越担忧,尤其是在这些公司过去几年经历了大量安全漏洞之后。许多新的术语已经成为描述日益增长的公众焦虑的流行语。一个例子,监视资本主义,描述了这样一个事实,即消费者(及其个人数据)已经成为这些主要互联网提供商向广告商以及更邪恶的机构销售的产品,例如剑桥分析,该公司在很大程度上被认为是英国英国退出欧盟投票的设计师,并参与了唐纳德·特朗普的选举。

许多部门提出了个人数据保险库的解决方案,包括万维网的发明者蒂姆·伯纳斯·李爵士。与此同时,公共部门采取了相当强有力的监管措施,比如欧盟的 GDPR。

权力下放与区块链[edit | edit source]

更一般地说,市场一直在探索分散的选择建立各种在线服务,这些服务在过去的几十年里如雨后春笋般涌现,并逐渐融入现代生活。没有比区块链更突出的了。

每个区块链的核心(至少是那些名副其实的)是一个经济学上保证安全性的、无领导的共识算法。本质上,这种类型的算法——无论是工作量证明、权益证明还是其他类型的——都允许一组彼此不信任的计算机程序们就某个值达成一致。由于他们对值达成一致,他们可以存储一个本地副本以便于访问,并且只有在该值发生变化时才运行算法。如果这种能力足够可扩展,就有可能部署一个全球规模的去中心化的数据网络。

需要强调这种技术突破的重要性。在线服务过去 15 年的发展都是围绕着数字资产管理平台,比如 GitHub、Spotify、脸书、Instagram、Twitter、Dropbox、GMail、谷歌地图等。它们帮助数十亿人上传、传播和管理数据。即使是第二波互联网服务,包括 PayPal、AirBnB 和优步(有时被称为共享经济),也充斥着数字资产管理平台,这些平台恰好连接到实物和其他种类的资产。

这些都是关于数据的,这一事实对我们在面对气候变化时进行协调的需求产生了影响。正如资本集中在少数人手中限制了我们通过资本实施的协调模式的数量一样,数据集中在少数人手中也有可能限制我们通过数据和社交通信而实施的协调模式。虽然许多在线数字资产管理平台从更开放的模式开始,但它们都日益变得不那么开放。谷歌抛弃了“不作恶”的座右铭,而脸书则不停的审查。当微软收购 GitHub 时,来自几个地缘政治区域的开发者被剥夺了访问他们的代码的权利。

去中心化的全球数据网络的出现标志着一个重大转变,然而区块链彻底颠覆市场的潜力并不止于此。在开发了被称为工作量证明的共识算法后,比特币网络选择使用它来存储一个账本来记录比特币持有者地址余额。这种选择有显而易见的但相当有限的效用。对于用共识算法存储什么,一个更复杂的选择是虚拟机的状态。这一选择最初是由 Ethereum 构思和开发的,它将一个全球数据存储平台转变为一台全球计算机。这台计算机可以在任何地方、或者说不在任何地方运行。每当这台计算机的某个本地实例被杀死,地球上其他地方的另外两个实例可以代替它。

区块链和可扩展性[edit | edit source]

当然,倘若真正要采用区块链技术把这些服务去中心化,这种转变的希望是建立在可扩展性的基础上的。如果我们基于像比特币和以太坊这样的工作量证明的区块链来对这个问题作分析,我们可能会得出一个响亮的结论“不,它无法扩展”。工作证明本质上是一种浪费,花费了过多的计算周期。本质上,该协议用热量来换取安全性,而且仅仅是一种脆弱的安全性。

此外,即使工作证明共识算法可以扩展,Ethereum 选择的虚拟机也是一个顺序的机器,这意味着所有事务都必须通过机器按顺序处理。然而,大多数事务是孤立的,并且是并发处理的。在智利买肉馅卷饼的人和在上海街头买烤豆腐的人接触到的财力不同。他们能够并且确实独立进行。要理解引入顺序虚拟机会做什么,可以考虑八车道高速公路。当所有这些车道汇集成一条时会发生什么?更糟糕的是,由于它是顺序的,当您向网络添加更多的服务器节点时,它会有更多的竞争,这样意味着当你在网络中添加更多的计算资源的时候,网络反而会变的更慢。

最后,即使有可能扩展这样一个虚拟机,这种平台,一个使开发人员能够在全球计算机上编写程序的平台,也暴露出巨大的安全风险,即那些用户自定义的智能合同。你可以开发出一个天衣无缝的核心协议,各方面都毫无瑕疵,但是因为讨厌的人类开发人员正在这台全球计算机上编写程序,所以他们会出错。DAO 的错误是用户级代码的问题,而不是核心协议代码。事实上,这些令人难以置信的毁灭性的错误相对较少,只是因为暂时没有人在 Ethereum 上构建严肃的应用程序,因为它无法扩展。事实上,DAO 的 bug本身可以恢复的,正是因为 Ethereum 不能扩展。想象一下,如果以太网以每秒 40K 事务的速度运行,而不是当时的每秒 10 个事务,网络会发生什么?!

概括地说,区块链是在我们真正需要它的时候诞生的,我们需要它不仅仅是因为全球对资本和数据资产集中化的担忧,而是因为我们需要重启我们的协调基础设施,以应对气候变化的后果,气候变化对人类构成了生存威胁。RChain 就是在这种背景下发展起来的:在重要的时间框架内回答这些问题。

RChain[edit | edit source]

RChain 在交付其 RNode 软件时汇集了五个主要技术组件:

  • RSpace,一种新型的键值存储;
  • Rholang,一种新型编程语言;
  • Casper ,一种新的共识算法;
  • 行为类型,一种新的类型系统,并且伴随了:
    • OSLF 算法, 用于为各种编程语言和计算模型生成此类的类型系统;
  • 一个 Kademlia——节点通信和发现协议的 Scala 实现。

这些组件及其它们所实现的创新都是为满足特定的市场需求而设计的。总的来说,RChain 更愿意在所有适用的场合遵循最先进的实践和工程,而不是盲目花费在昂贵的研发上。与此同时,RChain 认识到,如果我们要建立一个足够健全的平台来重建世界上的数据和金融网络,它需要具有与我们在大多数互联网软件中发现的完全不同的质量。

认真对待这种认识,RChain 使用了一种完全不同的开发方法,有时被称为基于建造的正确。这种方法从程序的正确性证明中提取程序。这种方法的目的是最终运行的产品代码得到形式验证,并被证明是正确的。这是具有上述目的和目标的平台所必需的软件质量和可靠性水平。

请注意,通过构造来纠正并不能追溯到软件开发的瀑布模型。也就是说,它不会等待数学或软件变得完美。一个数学模型可能在内部是一致的,并且被证明是正确的,但是在生产环境中并不适用,因为在生产中有新的或者细微区别的需求。经验丰富的数学家,以及经验丰富的软件开发人员都知道,证明和程序都只能在准确建模和编码需求的程度上起作用。在一个发展中的市场中,对需求的深刻理解反复发生,就像自然界中不断产生对环境的进化和适应一样。因此,基于正确的构造非常适合敏捷开发方法——这都符合软件开发管理的迭代本质。

技术[edit | edit source]

RSpace:一种新型的存储[edit | edit source]

在过去十年中,技术社区,尤其是那些涉及大数据的技术社区,已经看到了对存储和检索的重新思考。特别是,一个辩证法围绕关系数据存储的非 SQL的替代方案已经发展起来。首先,出现了一波基于键值的存储系统,以及 MapReduce 范式。随之而来的是反弹,从查询和事务的语义方面对键值存储范式提出了批评。RSpace 穿针引线,提供了一个非 SQL 的存储,但同时还具有明确的查询语义和明确的事务语义。它还超越了这一点,还提供了一个关键的特性来支持用户控制的并发查询:同时存储代码和数据的能力。事实上,将代码和数据放在存储层的平等地位实际上源于一个一致性约束,这个约束来自最古老的逻辑规则之一,即排中律。

为避免看起来过于偏向理论,重点是要理解这是第三代的技术。Greg Meredith 为此设计了一个版本——微软的 BizTalk 流程编排,这是一个业务流程自动化平台;随后他还更新了这个思路,在 SpecialK 中实现了所谓的“带分隔符的代码延续”;最后他提出了 RSpace 的设计作为进一步的细化,目的是为了 RChain 可以扩展。要了解更多信息,我们邀请您在 RChain 的 GitHub 上探索 RSpace仓库,就像所有 RChain 的软件一样,它是开源的。

在我们之前的讨论中,我们确定了以去中心化的方式来组织和处理世界数据的需求,为此最合理的做法就是,从一个新的存储方案开始设计,而这个存储方案正是由我们从过去十年的大数据中学到的基础上构建并改进的。本质上,像这样的组件一般会作为私有资产存在于从谷歌到脸书的所有主流数字资产管理平台中。然而,一个关键的区别是,我们的存储方案是开源的,并且非常适合用于一个去中心化的公共基础设施,并且它的特性和功能来自于一个特定的并发语义,体现在 Rholang 中。

Rholang 一种新的编程语言[edit | edit source]

Rholang 直接体现了前面提到的要求:虚拟机,即其状态被存储于区块链上的计算模型,必须在根本上是并发的,而不是顺序的。仔细分析各种计算模型,从 图灵机λ 演算,来自 Petri 网π 演算,可以推断出相对于这个市场的要求,有四个属性是最重要的。具体来说:

  • 完整性——我们能说出所有想要说的吗?
  • 组合性——我们能用简单的程序来构建更复杂的程序吗?
  • 并发性——我们能构建一类程序,其中某些组件能够同时运行吗?
  • 复杂性——我们能衡量计算资源的成本吗?
完备性 可组合性 并发性 复杂性
图灵机 ✔︎ X X ✔︎
λ 演算 ✔︎ ✔︎ X X
Petri 网 ✔︎ X ✔︎ ✔︎
CCS ✔︎ ✔︎ ✔︎ X
π 演算 ✔︎ ✔︎ ✔︎ ✔︎

快速浏览一下上述表格就可以发现,π 演算,以及更广泛的,称为移动进程演算的计算模型家族,是唯一一个具有所有四个特征的模型。同样,使用此表可以快速浏览市场上的大多数区块链项目,这基本上是了解哪些项目具有规模所需的全部内容。如果它们不是基于具有所有四个特征的模型,它们将不会扩展。

我们可以在该表中添加额外一行:是否已经被用作企业级产品的基础理论,用于支持上一代的智能合约;并且,是否已经被用作互联网标准的基础,来规范上一代智能合约。同样的,π 演算也是唯一满足这些额外要求的演算。具体来说,本白皮书的作者 Greg Meredith 是微软 BizTalk 进程编排以及语言 XLang 的主要架构师,该语言不仅是企业和互联网规模业务流程自动化的基础,也是许多互联网 W3C 标准的基础,包括 BEPL (Web Service业务过程执行语言)BPML (业务过程建模语言),以及 WS-编排标准。所有这些都表明,选择 π 演算这样的模型不仅理论上合理,而且实际上也合理,符合行业标准。

我们不能在离开这个话题的时候不提到,不仅仅是区块链需要并发性作为计算模型。互联网规模程序的编程模型在相当长的一段时间内一直承受着转向并行计算模型的巨大压力。在过去的二十年里,两种趋势从下面和上面给编程模型带来了压力。从下面一级看,我们看到摩尔定律在 2000 年初结束了。在以前的时代,开发人员可以编写一些 C 代码,在他们的手里放上一年不更新,但由于处理器速度的提高,他们的代码的性能也会翻倍。然而当顺序处理速度的在 2000 年代初碰到天花板了之后,这个趋势就结束了,现在计算加速的主要方式是在每个芯片上放置更多的核心,在每个服务器上放置更多的芯片,在每个机架上放置更多的服务器,在每个数据中心放置更多的机架。没有利用这种并发性的代码将无法扩展。同样,从上面一级来看,互联网的商业化带来的用户需求是,程序可以被全球数以百万记的并发用户全天候访问。同样,本质上不是并发的代码将无法满足这种响应。

这意味着用于编程互联网规模应用程序的编程模型,无论它们是否精通区块链,都必须发展为并发的。移动进程演算形成了这种进化的基础,不仅因为它们代表了语言设计的重大进步,还因为它们为程序的静态分析提供了坚实的基础。这个特性的重要性很难陈述。并发编程比顺序编程难很多倍。如果没有静态程序分析的重要支持,随着编写并发代码的程序员数量的增加,并发代码中的 bug 将变得势不可挡。

Rho 演算与 π 演算[edit | edit source]

如前所述,π 演算只是上述的满足去中心化市场所必需的所有特性的模型族中的一个例子。自从图灵奖获得者 Robin Milner 提出该模型以来,许多和 π 演算有共通特征的几种计算模型已经被识别和研究,包括 Join Calculus、Blue Calculus 和 Ambient Calculus。每一个都有有趣的特性,但最终都无法像 π 演算那样映射到互联网编程。然而,有一个模型源自 π 演算,但它弥补了一个小漏洞,同时增加了一些在互联网编程中非常常见的强大功能,即 Greg Meredith 和 Radestock 提出的 Rho 演算

Rho 演算通过让名字成为模型中的一等公民来补上了 π 演算的一个漏洞。π 演算是一个参数化的名字理论;也就是说,给定一个名字的理论,π 演算将产生一个进程的理论,它们将使用这些名字来作为信道进行通信从而完成计算。π 演算不关心名字是电话号码、电子邮件地址、区块链地址,还是以上所有一切。然而,纯 π 演算只能在进程之间交换名字。这就像人们完全通过交换电话号码来完成工作。事实证明,从理论上讲,这种做法虽然是可行的,但这会相当的繁琐!然而,在互联网上发生的是,不仅数据,而且代码也会从一个进程运送到另一个进程,而 Rho 演算支持这一特性。

名字空间和分片[edit | edit source]

Rho 演算通过使进程的代码变为名字来实现这种发送进程的能力。一旦名字本身就是代码,就有可能将所有不同类型的常见通信地址概念编码到 Rho 演算中,从电子邮件到区块链地址,所有的这些都都很好地嵌入到 Rho 演算中,因此很容易实现互联网上最常见的寻址方案:URI 和网址。后者之所以重要,不仅仅是因为它是整个万维网的组织方式,还因为它确定了 Rho 演算细化的一个非常强大的特性:名字空间。URI 把网络组织成了一棵资源树(实际上是一片森林,但树足以满足我们的讨论)。每个 URI 都是一条从根沿着树枝到叶子节点,或者说持有资源的端点的路径。由于这种路径结构,您可以仅使用部分路径来表示某个资源组或空间。这允许我们根据树和路径结构来组织和搜索资源空间。Rho 演算通过以编程方式来标识这些空间,从而将这一范式提升了一个层次。

这个特性在去中心化市场如此关键的原因还是因为大多数交易都是孤立的。我们需要一种程序化的方法来分割、组织和重组事务,以便根据它们共有的资源对它们进行分组。这通常被称为区块链领域中的分片。Rho 演算的名字空间功能提供了一种极其强大的分片方法。具体来说,相同的方法可以用于重新合并分叉,与其他网络进行互操作,以及加速执行彼此间相互隔离的交易。

操作语义与基于构造正确的语言设计[edit | edit source]

如果不提及基于构造正确的方法和 Rholang 的类型系统之间的相互关系,这个讨论就不完整。编程语言 Rholang 的语义基于软件工程的最佳实践。Rho 演算为 Rholang 的核心特性提供了图灵完整的操作语义。Rholang 的每一个附加特性都是定义为到核心演算的一个映射。这意味着语言是基于构造的正确的。与此形成对比的以太坊的 SolidityEVM,Solidity 还没有正式的语义。即使当它最终实现了一个语义,它还将有一个证明的义务,任何生产环境下的编译器在编译 Solidity 到 EVM 字节码的时候,它是忠实的保留了语义不变的。如果没有这样的证明,什么样的安全措施可以防止字节码注入攻击?谁能知道攻击者的编译器不会偷偷注入字节码,从而将一点点以太发送到他们的帐户上?

Rholang 则不会遭受这样的攻击,因为语言和执行机制(简单来说就是 RSpace!)都直接来源于 Rho 演算。这些都是来自基于构造正确的方法论的好处。此外注意到,我们获得这些好处的时候,是不用考虑涉及到分布式系统以及共识协议的这类更宽泛的去中心化需求的。这正反映了前面提出的观点,即基于构造的正确适合迭代和敏捷的需求收集和开发过程。

还值得注意的是,一个干净的操作语义对于识别一个程序何时可以替换另一个程序是必要的,换句话说,在更广泛的执行环境中,识别何时将不同的程序替换成另一个程序是安全的。这一概念可以追溯到利斯科夫的可替代性原则,从长期系统维护的实际角度来看,这是一个至关重要的特性。您需要知道何时可以更换掉旧组件,或者升级或修复故障组件。在软件中,这是基于拥有一个所用的编程语言的语义,而操作语义是迄今为止理论和实践中最广泛使用的编程语言语义形式。

这种可替代性原则也与静态分析密切相关,特别是静态分析的形式,通常称为类型检查。符合某个类型的所有程序,在任何需要该类型的上下文中都是可替换的。这是正确的即插即用的软件的基础,被用于所有严肃的生产环境。然而,大多数流行的现代语言的类型系统相对较弱,只能确保提供的数据结构与预期的数据结构相匹配。它们的类型系统不涉及任何程序的结构,更不用说设计程序的行为了。在过去的二十年里,出现了一类新的类型系统,但是还没有被找到被主流编程语言接纳的方法。Rholang 的行为类型旨在改变这一点。

行为类型[edit | edit source]

2005年的论文“名字空间的逻辑”描述了 Rho 演算中程序的逻辑和类型系统。这些类型可以用来描述极其广泛的现象,从编译期防火墙(确保进程能够并且只能够在特定范围的通道上通信),到无死锁(确保进程不会卡住),到通用数据格式的编码(如 XML 的 Schema)。这个逻辑是一个理论进展的一部分,可以追溯到Brouswer 的直觉数学程序,它坚持认为证明一个数学对象的存在需要构造它,而不是通过归谬法来推断。

这个进展其他的亮点包括 Curry 和 Howard 提出的 Lambda 演算中的类型和直觉逻辑中的公式之间的同构Abramsky 的逻辑形式的领域理论;Robin Milner 和 Matthew Hennessey 的过程演算下的模态逻辑Caires 的空间-行为逻辑Girard 的线性逻辑;还有,Wadler 的会话类型。这是一个漫长而耀眼的进展,但只是被编程语言设计者挖掘了一部分。

Rholang 完全接受这种方法,这是有充分理由的。2015 年,Greg Meredith 警告 Ethereum 创始人 Vitalik Buterin 和任何愿意倾听的 Ethereum 社区的人,他们的平台——任何智能合约平台——的主要安全风险都在用户定义的合约中。在阐明这个警告后不久,Ethereum 在 DAO 合约中遇到了一个错误。DAO 智能合约实现了一个去中心化的众筹平台。这个想法非常受欢迎,价值1.5亿美元的 ETH 被送到了合同中。然后,攻击者发现了一个漏洞,从合同中抽走了 5000 万美元。幸运的是,Ethereum 的运行速度只有 10 tps 左右,否则 1.5 亿美元可能在几秒钟内就被偷光了。

当 bug 被报告时,Greg Meredith 和 Pettersson 表明,当有问题的合同被翻译成 Rholang 并输入时,它不会通过类型检查。因此,有问题的代码永远不会被编译,更不用说被签入代码库并且部署到区块链了。在 Rholang 中,bug 表现为更新合同状态和服务下一个客户端请求之间的竞态。该漏洞相当于能够访问陈旧状态。来自名字空间逻辑的类型能够捕捉这种竞态条件。由此带来的 Ethereum 的价值损失和社区动荡的代价,是本可以为 Ethereum 的智能合约语言 Solidity 开发这样一个类型系统的代价的 10 倍以上。这就是为什么 RChain 在我们的路线图中,从一开始就加入了这样一个类型系统的设计。

逻辑形式的操作语义学(OSLF)[edit | edit source]

行为类型的理论发展暗示了这样一种算法的存在:生成类型系统。Greg Meredith和 Stay 开发的 OSLF 算法就是这样一种算法。考虑到

  • 计算的概念,比如在 JVM 的规范中,或者在标准 ML 的语义中,或者在 ρ 演算中,以及
  • 类似于 set 集合的概念,以及
  • 一个分配律,它显示了如何从有一个洞的子项出发, 通过填充洞里的内容, 从而形成一个子项的集合

OSLF 生成了一个类型系统。这种类型系统比 Java、Haskell 或 Scala 中的类型系统丰富得多。它可以看到旧类型系统看不到的程序结构和程序行为。然而,对于一个有趣的程序子集,它是可判定的。

由于这种丰富性,类型也可以被认为是一种查询语言。如果数字资产管理是互联网作为全球协调技术的基石,那么有一种数字资产是至关重要的,也是服务严重不足的: 代码。代码是互联网的暗物质。它占据了大部分功能,作为数据资产进行存储和管理,但是它对于结构化数据的标准查询机制来说是不透明的。然而,行为类型允许我们筛选代码,即根据代码的结构和功能来选择代码。这种能力不仅革新了像 GitHub 这样的服务,还为智能合约平台铺平了道路,该平台足以托管数十亿份智能合同,因为它使人们有可能在数十亿种可能性中找到自己想要的东西。

一种新的共识算法[edit | edit source]

在区块链之前,特别是工作量证明算法, 分布式共识算法如 PAXOS倾向于满足每一步的一致而非可用性。如果要上规模,这种选择是不可行的,几乎所有的全球平台,如脸书和推特,都使用某种形式的最终一致性。区块链将这一想法更进一步,并将其与一个更激进的想法联系在一起: 从经济上保证协议的安全。诀窍是使攻击网络的成本过高。尽管众所周知的针对基于工作证明的网络的“不可能”的 51% 攻击早就被证明不仅是可能的,而且已经发生在著名的工作证明网络上,但让攻击代价太高的想法仍然是相当有效的。但不合理的是浪费CPU时钟周期去猜测数字,以此来证明自己的工作。

相反,人们可以继续使用基于构造正确的方法论,并遵循逻辑的引导。在 80 年代末和 90 年代初,吉拉德的线性逻辑彻底改变了我们对逻辑和证明的概念。具体来说,线性逻辑是资源敏感的。与经典逻辑或直觉逻辑(命题 A & A 与命题 A 相同)不同,线性逻辑考虑了建立命题所需的资源。人们可以从确定化合物的性质的角度来考虑它。许多判定化合物具有某个给定性质的分析需要改变甚至破坏一定量的化合物。更通俗地说,在经典逻辑中,说“我有一块钱”&“我有一块钱”对这可能意味着“我有两块钱”的可能性并不敏感。但事实上,有效的线性逻辑证明在这个角度下是平衡的:所有资源都必须仔细考虑,线性证明防止双花。不用说,从线性逻辑中寻找共识的线索似乎是很自然的,尤其是经济上保证安全性的共识。

在线性逻辑的不同语义中,游戏语义突出表现为直观性和多功能性,其许多变体阐明了线性逻辑的非常广泛的各种特征。Hyland 和 Ong 的游戏语义提供了对逻辑极其忠实的解释。在 Hyland-Ong 游戏语义中,玩家和对手的每一步棋都必须要有先前的棋步作为依据,正是这种依据结构,他们的语义用来建立策略的单线程。2009 年,Greg Meredith 提出使用这种结构来保护早期版本的 RSpace(称为 SpecialK )实例之间的网络协议。基于这些理论洞察,CBC-Casper 在块上强加并利用了一个依据结构来检测两边下注,并提供了活性约束和公平性约束。这些属性通常是通过强加特定的通信模式来确保的,并且依据结构给出了刚刚足够的通信历史视图,使得这些属性或它们的违反可以被检测到。

有了可靠的检测违规行为的手段,权益证明可以在经济上保证安全性。参与者在使用令牌来下注,这些令牌用于防止拒绝服务攻击;如果它们有违规行为,他们的押注会被罚没,即部分损失或完全丧失。从长远来看,只有遵守规则的参与者才能留在游戏中。这比浪费CPU时钟周期来猜测数字要有效得多。

治理[edit | edit source]

如果我们谈论的是一个全球性的、经济安全的、分散的计算和数据存储网络,那么关于如何治理网络的关键问题是不可避免的。首先,RChain 遵循自然、量子力学以及开源项目中软件开发的最新实践。正如蜂巢当有一个新的女王时会进行分叉,或者波函数在量子力学的多世界阐释中分裂,或者在开源项目的代码分支中,一旦有足够的技术分歧,分叉也是自然的。问题是如何将这些分叉联系起来,从而形成一个健康的生态系统,让整合出现。

同样,我们的想法是遵循自然界的趋势。我们已经有来自现有区块链的证据表明,社区将在分叉的两边进行对冲。这是最安全的做法——让两边都可以访问对方的网络效应。这也是蜂巢里发生的事情。分叉的蜂巢,在蜂后夏季飞行期间重新在_遗传学角度_合并。在 RChain 中,最简单的做法就是把分叉当成分片。如上所述,分片是在两个网络之间建立经济桥梁的一种优雅的机制,

合作[edit | edit source]

除了技术和市场驱动的解决方案,还有一些问题需要社会组织的治理。RChain提议具有悠久传统的合作社模式。在美国、欧洲、中国和世界各地,合作社提供了一种自然的、草根的公共资源的治理手段。在北美,著名的例子包括 REI, Tillamook 乳品合作社和许多公用事业公司。合作社运动的核心是民主原则,其中最重要的是一人一票。在 RChain ,成员直接就业务事项进行投票,并选举董事会,而董事会又任命公司官员处理日常事务。

因此,合作社还不是一种直接民主,而是一种代议制民主,允许自然的不同层次上的参与。

  • 不是成员的代币持有者可以影响代币的价格,从而影响合作社做事的能力,但对合作社的运作、或者对公共资源(如财库)或代码的特性所做的决定没有直接的发言权。
  • 合作社成员既享有决策特权,也享有红利。在每个财政年度结束时,会员将获得一定比例的代币,这些代币是他们在平台上运行智能合约所花费的。
  • 董事会成员有一个总结,为成员投票制定业务项目,并指导官员。
  • 官员们在工程、社区管理、市场营销和其他业务中承担日常角色。

我们假设这个模型可以按照 REI 的扩展方式,或者 Puget Sound 社区合作社的扩展方式,或者…蜂巢的扩展方式进行扩展。当存在重大利益分歧时,即使这种分歧不是源于冲突,而是源于语言或时区的差异,将治理分成地方合作社也是有意义的。作为一个例子,RChain 正在与华人社区积极探索建立 RChain China。

对令牌状态的影响[edit | edit source]

合作社结构最重要的特征之一是它与证券法,特别是美国证券法的关系。合作社结构允许成员投票控制代码、财库和董事会。只要代币只卖给会员,即使代币没有既定的效用,它仍然会通过 Howie 测试的主要检查。当然对于 RChain 的 令牌 RHOC/REV 来说,效用是显而易见的。RHOC/REV 既是防止拒绝服务的机制,也是在网络上实现计算和存储的手段。

哪些司法管辖区?[edit | edit source]

探索这些更具可扩展性的治理结构的一个绝对关键的原因是,区块链的技术跨越多个司法管辖区。正如互联网的商业化带来了全球商业和全球市场一样,区块链走得更远。考虑一下,即使在单个分片节点中,也可以在美国、欧洲和亚洲运行。例如,完全可能会编写出一份这样的智能合约,它以密码学的方式锁定了一笔数字资产,然而合同各方都认为这是不公平或不可取的。那么,在哪个司法管辖区去处理解决这个问题的方式之间的不同意见呢才是最合理的呢?此外,即使你能决定司法管辖区,其中的裁决者可能会做出判决,但没法实施实际的补救措施,因为代码不承认这一点。

基于地缘政治的管辖边界在这些情况下没有实际用途。尽管地理、文化甚至政治上各不相同,但拥有共同利益和共同目标的社区更符合区块链的基本组织构成。毫无疑问,区块链将给全球法学带来根本性的挑战。鉴于我们面临的危机,这一发展似乎是及时的:气候变化也跨越了管辖边界。我们必须跨越市、省和国家的界限而共同努力。地球是人类的公地。我们不能摧毁整个全球生态系统,因为我们都将遭受后果,无论你忠于任何特定的地缘政治。

机会[edit | edit source]

成立 RChain 合作社是为了接受各种形式的参与。我们重视所有形式,无论是社区开发、业务开发还是软件开发;无论是财务指导、业务合作伙伴关系,还是获取代币,我们都非常重视。您会发现,RChain 社区是一个充满活力和多样性、灵感、承诺和努力的社区。如果您发现这些想法正在与你产生共鸣,并希望参与进来,我们将在下面的部分中解释各种机会,并讨论不同社区和利益相关方参与进来的方式。

DApps(去中心化应用)[edit | edit source]

推动网络采用的单个最大因素是网络上的总交易量,推动网络交易量的单个最大因素是去中心化的应用。与任何推广策略一样,它的一部分是神奇的神秘:什么样的叙述能捕捉市场的想象力;另外一部分是硬核分析。在下面一章中,我们希望同时结合两者,但强调分析。

开发人员参与[edit | edit source]

在区块链这样的技术驱动市场中,开发者才是是思想领袖。在技术社区内制造的轰动已经吸引了商业社区和公共部门的注意。在众多因素中,经济机会和技术创新的结合是吸引开发者社区的强大力量。对分布式共识的革命性见解与重新创造货币的潜力,这个最初的区块链组合对许多开发者来说是不可抗拒的,由此我们见证了一场淘金热。然而,现在,随着工作证明无法扩展的观点被广泛接受,以及许多项目被揭露为骗局,ICO 热潮已经结束。

RChain 提供了一个非常不同的、更基础的技术创新和经济机会的组合。尽管这个领域已经有几十年的历史,而且摩尔定律已经结束了15年,并发理论还是没有渗透到主流的编程语言设计中,尽管我们确实看到了 Go 和 Rust 日益流行的迹象。同样,行为类型的好处和愉悦的体验都没有渗透到主流编程语言设计中,也没有渗透到主流开发人员的思维模式中。随着当前软件工程的标准实践中对微服务、互联网规模应用的重视,以及区块链对分布式共识的启示,向面向协议编程(POP)的转变是很有可能发生的。

几十年来,移动进程计算简单地主宰了协议设计和协议分析领域。RChain 基于 Rho演算的语言 Rholang 和基于构造的正确的方法论为开发人员提供了一个机会,让他们进入编程语言的语义与协议设计相结合的现代世界。然而,它远不止于此。RChain 没有停留在数据网络规模的区块链,而是认识到数据获取和管理比简单地将大型二进制对象存储在磁盘上更精妙。数据总是会附带着相关的元数据和权限管理。

RCat[edit | edit source]

RChain 已经构建了下一层工具 RCat,简称 RChain 资产跟踪器。RCat 允许开发人员用元数据资产打包大型二进制对象,例如音频或视频文件,其中包含关于音频或视频数据的创建者和权利持有人的信息。元数据对于为不享受语义搜索功能的数据块提供搜索功能至关重要,就像在关系数据中发现的那样。

RChain 还进行了构建内部和第三方 DApps 的实验。内部开发的 DApp,RSong,被纳入 RCat 后端和 RSong 播放器前端,以允许艺术家向他们的观众提供歌曲。音频数据存储在链上,并从链上传送。观众访问音频数据的费用根据相关数据中的使用和权利管理数据直接支付给艺术家。第三方开发的 DApp,Proof,提供了新闻故事的众筹验证,同样是将数据存储在链上并从链上分发。

这两个 DApps 开发中最重要的衡量标准之一是实现 MVP (或最小可行产品)的时间,以及需要多少资源才能实现。在这两个应用中,我们看到了大约两个月和两个工程师。这意味着,一个项目与其将资产整合在一起发起一个 ICO,使用大致相同的资源投入,这个初创公司可能已经完成了一个早期的可以工作的产品。这些是开发人员和商业团体所应当关注的度量标准,因为它们代表了可证明的、可衡量的经济机会,同时消除了骗局。

退一步考虑更广阔的视野,RChain 通过创建一个 DApp 工厂,提供了一种更坚实、更稳定的方式来重振开发商对区块链的兴趣。去中心化的数字资产平台是促使开发者探索像区块链这样的技术的动力。RChain 提醒我们这一目标,并表明它是可以实现的。这使我们建立一个新的协调基础设施的目标更加清晰,一个能够围绕气候变化问题进行全球基层协调的基础设施,通过吸引具有实现这一目标的动力和激励的开发者。

被主流采用[edit | edit source]

请您关注这一节的主要论点:网络的真正采用将来自高交易量。这反过来又来自于网络上运行的 DApps 的广泛采而带来的网络效应。如果开发者的参与是火花,那么什么是让主流采用这些应用的氧气使得火焰更旺盛?同样的,互联网已经讲的非常清楚了:它们对应的数字资产的社会用途。看看抖音、YouTube、Instagram 或微信就知道了。这种现象非常偶然,因为它意味着 DApps 可以专注于高交易量、低风险的交易市场。脸书有数万亿个帖子,其中任何一万个帖子的丢失,实际上都不会影响市场对网络健壮性或实用性的认知。

相比之下,在高交易量的金融市场中,10, 000 笔交易的损失会立即被注意到,并引起严重关注。单笔高价值交易的损失或出错会让市场对网络的可行性的观感产生直接影响。与华尔街或北京在外汇交易上损失几亿美元的反应相比,以太坊社区对 DAO 漏洞的担忧算不了什么。但是,即使采用了基于建造正确的方法论,我们也必须承认,所有区块链技术都处于起步阶段。bug 不可避免。再次,看看软件的历史。无论我们谈论的是微软推动的产品还是互联网上原生的项目,如 Python,通常直到项目的第四次迭代,我们才能看到它们达到足够的成熟度和健壮性,使得我们可以将其部署在涉及人命或高美元价值交易的关键任务型应用程序上。

因此,在供应链管理基础设施、制造业或金融市场上部署区块链的梦想,必须等上整整十年,技术才能强大到足以满足这些标准。具有讽刺意味的是,尽管整个地球生态系统的命运理应被视为至关重要的任务,但区块链技术对这些问题的应用并不直接。相反,这一切都是关于专注于这些问题的人们的沟通和协调。简而言之,这是关于数字资产的社会用途。这就是为什么区块链是我们协调全球应对气候变化的迫切需要的关键组成部分。

娱乐[edit | edit source]

更具讽刺意味的是,公平对待创意阶层,尤其是娱乐圈的艺术家,可能是主流采用的最短和最便宜的途径。就像开发者最终成为技术导向市场的思想领袖一样,娱乐领域的艺术家通常也是主流社会采用某些平台的思想领袖。没有一个市场部门比音乐更有组织性。例如,2018年11月,当泰勒·斯威夫特在推特上表达她对参与政治进程的看法时,当天有 65, 000 人登记投票。

这种观察可以得出一些非常基本的算术。以 100 位各有 100 万粉丝的艺人为例,如果观众之间没有太多的交叉,那么这 100 位艺人加起来就能拥有 1 亿粉丝的观众。如果有一个 DApp,允许这些艺术家与他们的观众分享他们的音乐,并且那些追随者相当保守地每月听 10 首歌,那网络上最少将会有每月 10 亿笔交易,而且只由那一个 DApp 产生。相比之下,Ethereum 和比特币加起来每天产生约 100 万笔交易。这相当于每月 3000 万笔交易,这只是单个音乐 DApp 产生的一小部分。

进一步注意到娱乐领域的用户获取成本比社交媒体低得多,WhatsApp 的用户获取成本约为 20 美元/用户,而脸书的用户获取成本是前者的两倍多。这意味着获取 100 万用户的成本在 2000 万至 5000 万美元之间。而在音乐行业里,艺术家卖创作给他们的追随者。所以,如果艺术家采用某个平台,他们会带来自己的追随者,尤其是如果内容专门发布到某个平台上。这意味着,人们可以在排名前 100 位的艺术家身上花费每人 10 万美元,但仍然可以把用户的获取成本削减到原来的 1/5 到 1/2。

当然,RChain 的目标并不是将市场的行为玩世不恭地简化为数字。这一讨论主要是为了说明一点,即仔细考虑如何支持创意阶层将带来平台应用的巨大转机;这非常符合加速全球气候变化协调的目标。艺术家和创意阶层通常是最有可能引领必须发生的变革的人。帮助他们找到一个与观众和支持者自我驱动的、自主互动的方式,并帮助他们找到自己的再生经济,这将会成为引人注目的案例,说明一个社区如何能够自我组织起来,摆脱对腐败行业的共同依赖,转向更健康、更有利可图的行业。

总的来说,一个走向去中心化的、绿色经济的运动将会带来全面的好处,而不仅仅是在艺术和娱乐领域。只不过与艺术和娱乐行业开始去引领更广泛的市场提供了一种方法,这种方法最大限度上降低了风险。觉得必须构建去中心化应用程序的读者应该将艺术和娱乐视为区块链的第一波浪潮。就像互联网的发展一样,先从吸引主流受众的 DApps 开始,但不要在一次失败上损失一切。

验证者[edit | edit source]

随着成为比特币矿商的淘金热,市场上已经出现了为权益证明节点整合押注服务的热潮。RChain的 CBC-Casper 就是一个权益证明协议,我们看到了草根阶层对运行 RChain 验证节点的巨大兴趣。最初,合作社将运行根分片中的大部分节点,但最终,这应该转移到更去中心化的节点分布。然而,为了获得预期的事务吞吐量,根分片主干的硬件非常高端。

与所有围绕网络效应构建的产品一样,存在一种循环依赖,这种依赖既是最初的阻力来源,后来又成为经济再生的引擎:为了在经济上吸引验证者,网络需要高交易量;这意味着 DApps,简单明了。然而,为了在经济上吸引 DApps,网络需要足够数量的验证节点。当然,一旦达到临界数量,验证者就会涌向网络,因为他们可以赚到在以太坊上挖矿时的 10 倍,而只向用户收取1/100 的交易费。同样,DApps 将涌向网络,因为它是唯一一个提供这种交易吞吐量的网络,其信任模型类似于比特币,也解决了用户级智能合约安全问题。

我们认为,第一波验证者将是这样一群人,他们了解更广泛的使命,即建立一个协调基础设施,支持应对气候变化所需的全球协调,同时又能看到平台的真正经济潜力。这是 RChain 和高盛一致的地方。转向再生经济将创造巨大的财富。您认为自己属于哪个阵营并不重要,您当然可以两者都属于。如果您想通过运行验证节点来参与,不要犹豫接触合作社。我们准备支持您。

代币[edit | edit source]

当 RChain 达到产生网络效应的临界质量时,网络上的每个 DApp 都将需要 REV 令牌,这些 DApps 将构成一个充满活力的用户服务的生态系统,从去中心化的地图和位置服务到去中心化的支付服务,再到去中心化的优步和 AirBnB。我们希望与那些人合作:他们理解管理这种资源是管理自然界中类似的珍贵资源的虚拟化。这个星球上的每一个生物都会呼吸。氧气是所有生命的重要资源。同样,水对所有生命都是必不可少的。在对所有支持计算的关键用户服务所需的关键资源上进行实践,将成为学习如何使用更宝贵的资源的试验场。

正如多次提到的,负责任地管理这种资源与创造财富和富足并不矛盾。恰恰相反;学习如何负责任地管理关键资源是地球生命再生的核心。

机会总结[edit | edit source]

如果您想参与到 RChain 中,首先要做的是加入合作社。作为成员,您能够参与协议的治理,在使用 REV 令牌运行智能合同时获得折扣,并参与令牌的成员销售。此外,您可以运行验证节点来帮助保障网络的安全,并赚取交易费用。最后,您可以构建 DApp 来提供关键的用户服务,并将交易量带到网络。

这些都不是相互排斥的。每个 DApp 都希望运行自己的验证节点,以确保向网络支付交易,并赚取交易费来收回运行它们的部分成本。每个验证节点都需要令牌来进行押注,每个 DApp 都需要令牌来运行它们的智能合约。生态系统中的所有这些角色都受益于成为合作社的成员,并在协议的治理中发挥积极作用。

技术状况[edit | edit source]

RChain 主网上线,自 2020 年 2 月开始运营。网络统计数据可从以下区块链浏览器获得:https://revdefine.io

我们通过新功能和性能改进不断改进网络。您可以在周三参加每周的技术更新和社区汇报。

RChain 的所有代码都是开源的,可以在 Github 上获得这里。网站 www.rchain.coophttps://developer.rchain.coop/http://blog.rchain.coop/ 包含更多信息。

团队[edit | edit source]

https://rchain.coop/team.html 包含当前管理层、董事会和开发领导层的详细信息。

结论[edit | edit source]

“在陌生和不确定的时代,有时一个通情达理的人可能会绝望。但是希望是不合理的。而爱甚至比这更伟大。”—— 罗伯特·弗罗斯特

毫无疑问,我们正面临着生态系统的灾难性崩溃。我们不会毫发无损地度过难关。我们不能继续像往常一样做事情。区块链和其他关键技术一样,出现在我们需要技术支持进行大规模全球协调的时候。我们向一个更美好的世界过渡所需的所有要素都在我们的当下。这取决于我们是否认识到它们并加以利用。

RChain 不仅仅是一个由计算机和创造性的软件组成的网络。RChain 是一个由人组成的网络,了解情况的人不会屈服于绝望,而是愿意共同努力寻找解决方案。请加入我们,不是因为这很合理,而是因为你也感受到了那种不合理的、无法遏制的希望和希望之外的爱的温暖。