来宾发帖人克里斯汀·威廉姆斯
自获得博士学位以来,Mike Stay一直在做一些非常酷的事情。他一直在与格雷格·梅雷迪斯,研究了π演算和Abramsky一起,然后进行了有影响力的研究与设计在软件行业之前,一些伟大的想法将他引入了权力下放的新领域。他们和一支伟大的团队正在发展R链,基于第页反射的小时伊格尔-o个序π-演算ρ-演算.
他们在第一年取得了重大进展,并于4月17日至18日举行了RChain开发者大会科罗拉多州博尔德。就在五个月前,第一次会议只有少数人参加;现在,这已经收到了一百多封信。程序员,风险 资本家、区块链爱好者、软件、金融和数学专家:来自全球各地的无数观点加入了新互联网的曙光。我们就说,这需要接受很多。这个项目是真正的交易–理念革命性,语言有力,建筑优雅;雄心勃勃,技术娴熟的开发人员实际上正在实现这一目标。没有必要大肆宣传:你会听说RChain的。
文档 ,github ,建筑
以下是文档中的内容:
开源RChain项目正在构建一个分散的、经济的、抗审查的公共计算基础设施和区块链。它将托管和执行通常被称为“智能合约”的程序。它将是可信的、可扩展的、并发的,并具有证明共识和内容交付。
权力下放运动雄心勃勃,将为新的社会和经济互动提供极好的机会。权力下放还为权力集中的大型组织中偶尔发生的滥用权力和腐败提供了一种平衡。权力下放支持自决和个人自我组织的权利。当然,一个权力更加分散的世界的现实也将面临挑战和问题,例如如何满足国际法、公益和同情的需要。
我们钦佩比特币、以太坊和其他平台的令人敬畏的创新,这些创新极大地提升了分散系统的状态,并开创了加密货币和智能合约的新时代。然而,我们也看到了一些症状,即这些项目没有使用最佳的工程和正式模型来进行扩展和正确性,以支持关键任务解决方案。关于伸缩性和可靠性的持续争论是基础架构问题的症状。例如,对于在地球上进行的所有区块链交易,坚持明确的序列化处理顺序是一种可扩展的设计吗?
成为区块链解决方案工业规模效用RChain必须以Facebook的规模提供内容交付,并以Visa的速度支持交易。在对许多区块链项目的当前状态进行尽职调查后,在与其他区块链开发人员进行深入合作后,在了解他们各自的路线图后,我们得出结论,当前和近期的区块链架构无法满足这些要求。2016年年中,我们决心构建一个更好的区块链架构。
与区块链行业一起,我们仍然处于这场去中心化运动的黎明。现在是时候放下坚实的建筑基础。对于那些认同这一雄心勃勃愿景的人来说,未来的旅程既富有挑战性,又值得一试,本文件总结了这一愿景以及我们如何努力实现这一愿景。
我们首先承认以下最低要求:
- 动态、响应迅速且可证明正确的智能合约。
- 同时执行独立智能合约。
- 数据分离可减少其他独立令牌和智能合约的不必要数据复制。
- 动态响应的点对点通信。
- 计算非扩展共识/验证协议。
构建高质量的软件具有挑战性。更容易构建“聪明”的软件;然而,最终生成的软件往往质量很差,充满了错误,难以维护,也难以进化。继承和使用这样的软件对开发团队来说可能很可怕,更不用说他们的客户了。在构建一个支持任务关键型经济的开放源码系统时,我们拒绝最低限度的成功思维,而支持端到端正确性.
为了实现上述要求,我们的设计方法致力于:
- 假设细粒度并发和动态网络拓扑的计算模型。
- 一种可组合的动态资源寻址方案。
- 函数式编程范式,因为它更自然地适应分布式和并行处理。
- 利用模型检查和定理证明的正式验证的、正确构造的协议。
- 内涵和组合原则。
RChain领先于业界几光年。为什么?它坚持通过构造更正具有数学的深度和严谨性。多年来,迈克和格雷格一直在发展原创想法用于分布式计算:特别是,作为分配定律的逻辑是一种“从计算演算的形式表示中导出空间行为类型系统的算法”。这是一种强大的集成方法操作语义翻译成一种语言,并证明可靠性具有单一的自然转化;它还提供了一种极具表现力的查询语言,您可以用它搜索整个世界,找到“做x的代码”。迈克在更高范畴理论方面的深厚背景使格雷格的思想得以形式化,格雷格在几十年来对计算世界进行了深入而全面的思考。在所有这些中,有一个概念是RChain的心脏和脉搏,它将系统统一为理性整体:ρ-微积分.
那么什么是好主意?首先,一些历史:早在80年代末,格雷格就开发了一种称为“4C”的计算模型分类:
完整性,
成分性,
(好主意)复杂性、和
并发.
他发现没有一个同时具备这四个特征,并预测了其中一个的存在。几年后,米尔纳发明了π演算从那以后,它一直统治着这个网络计算的自然语言。它提出了一种完全不同的思维方式:π演算从根本上来说是并发的,而不是表示单个机器的顺序指令-过程或代理人沟通姓名或频道,计算通过相互作用个进程。语言简单但功能强大;它与博弈语义和线性逻辑,已成为系统工程和生物计算:请参阅用于区块链编程的移动流程结石.
这里是基本的语法变量x、y是名称,P、Q是过程:
P、 问:=0 |(νx)P |x?个?(y) ●●●●。P(P) |x!(y) 。P(P) |P|Q公司
(什么都不做|创建新x;在x上运行P|receive并绑定到y;在x上运行P |发送值y;运行P |并行运行P和Q)
计算引擎是与lambda演算的beta约简类似的基本约简,它是通信规则:
通信:x!(y) ●●●●。P|x?(z) ●●●●。问 →P|Q[年/年]
(给定沿同一通道的并行输出和输入过程,值从输出传输到输入,并替换连续过程中出现的所有输入变量)
定义进程演算必须指定结构同余:这些表示进程之间的等价性,例如,({P},|,0)形成交换幺半群。
这个π演算在最基本的层面上,将计算改革为合作的活动。为什么这很重要?要有一个永久自由的互联网,我们必须能够在不依赖中央集权的情况下支持它。这是最简单的一点,但有许多深层次的原因,我还没有足够的知识来表达。这都是关于开放这是应用范畴理论的特点:历史上,我们发展了相互孤立、世界孤立的理论和实践,不得不虚构它们之间的相互联系和合作特别的; 这让我们不必要地与不足的系统作斗争,并限制了我们的思想和行动。
当然,在商店里做出重大改变的方式一定比通过冯·诺依曼瓶颈来回推送大量单词的方式要简单得多。这根管子不仅是一个问题数据流量的字面瓶颈,更重要的是,它是一个智力瓶颈,使我们一直被束缚在逐字逐句的思考中,而不是鼓励我们从手头任务的更大概念单元的角度思考。因此,编程基本上是规划和详细说明通过冯·诺依曼瓶颈的巨大文字流量,而这些流量中的大部分与重要数据本身无关,而是与在何处找到数据有关。-约翰·巴克斯,1977年ACM图灵奖
对这类问题已经有了各种缓解措施,但认知局限性仍然存在,需要彻底更新;这个π演算完全重新构想了社会中计算的本质,并开启了巨大的可能性。我们可以开始把许多相互交织的计算层想象成一个连贯的、流动的整体。虽然我在会议期间的许多会谈中都没有深入了解,但我开始意识到这确实是一次综合的创新:RChain几乎改革了计算的各个方面,从最高抽象一直到金属。如前所述,聚合架构是形式演算作为核心指导原则。有人担心,由于ρ-演算与传统语言如此不同,可能会有人抵制采用;但我们的时代是一个范式转变,呼唤一种新的思维方式,我们必须适应。
那么我们为什么要使用反射高阶π演算,ρ演算?因为传统π演算只有一个问题:它预设了原子名的可数无穷集合。这些不仅难以产生和管理,而且缺乏结构是一种巨大的浪费。在这方面,π演算是不完整的,直到Greg意识到可以用反射,一种强大的自我参照形式:
代码←→数据
咒语是名称是引用的进程; 这一理念渗透并指导了RChain的设计。无需导入无限多不透明、无意义的符号——代码本身就是清晰、有意义的语法。如果存在引用和取消引用(或“引用和取消引”)的内在方法,则可以将代码转换为数据,作为消息发送,然后再转换为代码;被称为“代码移动性”的人可以像电子邮件一样轻松地交流大型程序。这允许元编程在工业层面上,不仅人们编写程序,程序也编写程序。这对于创建强健的虚拟基础架构至关重要。
那么,如何使π演算具有反射性呢?通过求解递归方程的最小不动点,该方程按名称将过程参数化:
P[x]=0|x?(x) ●●●●。P[x]|x!(P[x])|P[x]|P[x]|@P[x]|*x
RP公司 =P【RP】
这让人想起Y组合子通过给定任何函数的不动点Yf=f(Yf)来启用递归。语法的最后两个术语是参考和取消引用将代码转换为数据,将数据转换为代码。注意,我们没有为输出包含一个延续:ρ-演算是异步,意味着发送者没有得到消息已被接收的确认;这对于有效的并行计算很重要,对应于极化线性逻辑。我们采用名称是输出,进程是输入的约定。完成正式ρ-演算语法的最后两个修改是多输入和图案匹配:
P、 Q:=0空进程
|对于(p1←x1,…,pn←xn)。P输入保护过程
|x!(@Q)输出名称
|*x取消引用,评估代码
|P|Q并行组合
x、 p:=@p名称或引用的进程
(每个“pi”都是一个“模式”或公式,用于收集频道“xi”上的术语-这非常有用和通用,并支持整个系统的强大功能)
很简单。当然,这还不是一种真正的编程语言,尽管它比纯λ-演算更有用。罗朗RChain的实际语言增加了一些基本功能:
ρ-演算+变量+有用的基本项+新名称构造+算术+模式匹配=Rholang
这里是规范,语法和语义、和可视化; e(电子)权智代码和示例在GitHub中学习合同设计在文档中,您甚至可以尝试对rchain.云! 对于那些不喜欢单击所有这些链接的人,让我们来看一个具体的示例合同Rholang中的基本程序:具有持久状态、关联代码和关联地址的进程。这是一个单元格,它存储一个值,直到被访问或更新:
合同单元格(获取、设置、状态)={
选择{
案例rtn<-get;v<-状态=>{
rtn!(*v)|状态!(*v)|单元格(获取、设置、状态)}
case newValue<-set;v<-状态=>{
状态!(*newValue)|单元格(获取、设置、状态)}
}}
参数是合同沟通的渠道。单元格从两种可能性中进行选择:要么正在访问,即有数据(返回通道)要接收得到然后输出到rtn并维护其状态和调用;或正在更新,即有数据(新值)要接收设置,然后它更新状态并再次调用自身。这表明了语言的本体如何实现自然递归,从而实现持久存储:状态是Cell“自言自语”的方式——因为Rholang的顺序方面是功能性的,一个“循环”数据以保持。存储层使用了类似的思想;语义可能与追踪单体范畴.
奇怪的是,ρ-演算的范畴语义被证明是难以捉摸的。一般认为λ:顺序:π:并发,后者确实是基本的,但Curry-Howard-Lanbek同构虽然已经取得了部分成功,但尚未规范化推广,包括函数范畴指称语义、线性逻辑和会话类型尽管ρ-演算具有强大的力量和普遍性,但它在数学中仍然有点神秘:这一事实应该引起任何关心逻辑、类型和类别作为抽象思维基础的人的兴趣。
现在,实际的系统建筑学由五层交织而成(文档中有更好的解释):
保管部:基于特殊K–“一种网络模式语言”。该层通过基本的d日性数据库和查询-如果您没有找到要查找的内容,请将您本应执行的操作留在原处,当它到达时,该过程将继续。格雷格将这个想法描述为排中律.
[频道、模式、数据、延续]
RChain对资源–计算、内存、存储和网络,并线性计算它们的生产和消费。
执行:Rho虚拟机实例是ρ-演算的上下文减少存储元素的数量。整个状态区块链的一个重要术语是Rholang,它由一个事务更新:接收调用一个更改关键值的过程,并且必须通过协商一致来验证差异。键永久维护状态转换的整个历史记录。虽然目前基于Java VM,但它将以本机方式托管。
命名空间:一组渠道,即资源,由逻辑用于访问和权威主要意义在于可扩展性–用户不需要处理整个链,只需要处理相关的名称空间。”命名空间定义可以控制空间中发生的交互,例如,通过指定:接受的地址、命名空间或行为类型;最大或最小数据大小;或投入产出结构。”它们处理两个基本“竞争条件”的不确定性,即资源争夺:
x!(@Q1)|对于(ptrn<-x){P}|x!(第2季度)
对于(ptrn<-x){P1}|x!(@Q)|表示(ptrn<-x){P2}
与其他区块链的平面公钥相比,域与域名服务器并通过合成树结构对其进行扩展。作为命名通道的每个节点本身就是一个名称空间,因此可以通过精确控制归纳地建立定义。
共识:验证对一个big-Rholang-term状态的部分更改顺序;块结构应该保持为有向非循环图。算法是权益证明–在名称空间中验证的能力与一个人持有的“股份”有关。Greg通过纠结以及复杂的CASPER协议自然工作带RChain.
合同:“RChain合同是一个规范、行为良好且正式验证与其他此类程序交互的程序。”(K框架) ; (DAO攻击)“行为类型是一个对象的属性,它将对象绑定到一系列离散的操作模式。行为类型不仅约束输入和输出的结构,而且约束在不同条件下通信和(可能)并发过程之间允许的输入和输出顺序… 罗朗行为类型系统将使用模态逻辑运算符对术语进行迭代修饰,模态逻辑运算符是关于这些术语行为的命题。最终,数据信息流、资源访问等属性将具体化到一个可以在编译时检查的类型系统中。Rholang将支持的行为类型系统使得可以根据合同集合的代码是如何形成的以及它的行为来评估合同集合。因此,Rholang合同将语义提升到了类型级别的有利位置,在这里我们能够确定整个协议如何安全地进行接口。”(钢包)
那么你可以在RChain上构建什么呢?什么都行。
分散的应用程序:身份、声誉、代币、时间戳、金融服务、内容交付、交换、社交网络、市场、(分散自治)组织、游戏、预言(以太坊dApps),……新形式的代码尚待想象。它不仅仅是一个更好的互联网:RChain是一个理性全球社会的潜在抽象基础。该系统是一个普遍原则设计的极简主义框架;这是一幅画布,我们可以用它来探索世界应该如何真正运转。如果我们是开放的,有思想的,如果我们足够关心,我们可以学会做正确的事情。
该项目的规模不得而知,广泛采用可能是RChain面临的最大挑战之一。诚然,它是新的;但教育并不容易。对于一个认为(技术)进步是逐步提高规格或增加功能的公众心态来说,这是一个太大的改革;这是概念发展,对许多人来说是一个陌生的概念。这就是为什么这个规模较小但不断增长的社区至关重要。这篇文章什么都不是;我显然没有资格点击链接,阅读报纸,观看视频。雄心壮志的规模、洞察力的深度、设计的清晰性、理论与实践的统一——这是值得一看的。这是真的。水银将是完成12月。现在就发生了你可以成为其中的一部分。学习,传播信息。参与进来; 加入讨论,甚至参与开发——RChain网站提供了您所需的所有资源。
世界上40%的人口生活在距离海洋100公里的范围内。格雷格指出,如果我们甚至无法处理今天的难民危机,那么当洪水上涨时,可能会发生什么?至少,我们迫切需要更好的大规模协调系统。我们会进入下一个千年吗?我们可以——只是意志的问题。
谢谢你的阅读。你太棒了。
此条目于2018年5月12日星期六凌晨2:23发布,存档于计算机科学,会议。您可以通过RSS 2.0馈送。你可以留下回应,或追踪从你自己的网站。