主页 > imtoken安卓下载地址 > 意见 | Jolestar:智能合约到底是什么?

意见 | Jolestar:智能合约到底是什么?

imtoken安卓下载地址 2023-12-04 05:09:27

编者按:本文是jolestar的一篇探讨“智能合约”意义和前景的文章,展现了他对计算机应用架构的深入理解。 在人们越来越不喜欢讨论“大问题”的今天,这样的思考已经很少见了。 我以为没有这样的思考,就没有所谓的“进步”。 粗体部分为小编补充。

简介 什么是“智能合约”?

区块链的“智能合约”是一个容易引起争议的概念。 曾经 Vitalik 还表示,他后悔使用了智能合约(smart contract)这个名字,而不是称之为“持久脚本”。

也有人问:这玩意儿就是一个程序脚本,它有多聪明? 但是这么一说,恐怕没有什么叫“智能”的东西配得上“智能”吧? 智能手机大概可以称为可以自由安装软件的手机吧? 更有什者,英文中的smart和intelligent都翻译成中文的“intelligence”,更容易引起误解。

所以在那次辩论中,也有人建议叫它“存储过程”,也就是数据库的存储过程:如果把区块链看成一个分布式数据库,从技术实现的角度来看,智能合约确实很相似到数据库存储过程。 使用新的编程语言并不是根本的区别,如果使用更通用的 VM,则可以使用与其他程序相同的编程语言。

另外,人们常说的确定性其实是图灵机本身的一个特性。 只要不引入随机机制,就很难写出非确定性程序。

为什么要创造新词汇? 套用一句俗语,当我们谈论“智能合约”时,我们究竟指的是什么?

如果从技术角度看没有太大区别,那我们就从法律“契约”的角度来看。 根据维基百科的定义:

合同:合同是具有法律约束力的协议,它承认和管理协议各方的权利和义务。

合同是具有法律约束力的协议,规定了各方的权利和义务。 也就是说,合同的表达形式其实并不重要,可以是文字的,也可以是口头的,关键是要具有法律约束力。

然后我们将其应用到“智能合约”中。 也可以说,智能合约的形式不是关键,关键是“约束力”。 这里我们给出一个定义:

比特币合约对冲锁仓_比特币合约多空比在哪看_比特币 智能合约

智能合约是一种“具有约束力”的计算机程序,它定义了各方的权利和义务。

计算机程序的“约束力”是怎么来的?

智能合约的约束力

在分析智能合约的约束力之前,我们先来看看法律合约的约束力。 法律约束力来自两个方面。 一方面,签订合同的当事人对合同的意思表示明确。 比如在酒桌上吹牛,就很难成为契约。 合同必须与日常对话和文本明确区分。 书面合同在这方面更容易,并减少误解的来源。 另一方面,公权力提供了这样的司法执行制度。 当合同不能正常履行时,可以寻求公权力强制执行。

如果说一个国家的司法系统相当于一个通过自然语言定义规则的操作系统,那么合约就是在这个操作系统上用自然语言编写的程序。 当然,自然语言的解释和执行要靠人脑来完成,但是由于自然语言的不精确性和人与人之间的差异,如何保证执行结果的确定性呢? 如何防止执行人作弊? 这两个难题是司法系统千百年来一直在探索的难题。

转用智能合约,由于图灵机的特性,程序执行结果的确定性容易保证。 关键问题是如何防止作弊,如何证明程序执行的结果没有被篡改过?

程序执行结果的可信度取决于控制程序执行硬件的组织或个人的可信度。 在目前的软件系统中,如银行或互联网应用,用户只能信任信任组织执行程序的结果,也就是说绑定力是单方面的,终端用户受程序约束,但服务提供者很难受程序约束。 如果用户对结果有异议,只能诉诸其他途径,比如诉诸司法,或者像前段时间某交易所的用户跑到公司门口拉横幅抗议。

如果程序可以在不同组织或个人拥有的硬件上反复验证,是否可以消除这种信任依赖? 同时实现对双方的约束? 司法系统也是如此,比如一审、二审、终审等机制,但是司法系统的执行成本太高,发生纠纷后又要重复验证,次数多了也是有限的。 但计算机程序的成本在这一点上要低得多,因此可以大规模地反复验证。

如果只有验证能力,实际上并不能产生约束力,还需要有执行能力。 如果双方争议的对象可以直接由程序操作,也可以实现验证和执行。 对此,区块链通过定义数字资产和经济系统来保证执行能力。

重复验证的瓶颈

比特币 智能合约_比特币合约多空比在哪看_比特币合约对冲锁仓

虽然计算机重复验证的成本远低于人肉,但如果每笔交易都需要重复验证执行,成本会很高。 这就是大家常说的区块链的TPS(transactions per second)问题。 那么,为什么法院的执行效率如此低下呢? 为什么它没有成为现实社会交易的瓶颈? 区块链目前的做法,相当于法院掌握了每个人的资产和合约执行细节。 每一份合同的执行都是通过法院进行的,这当然会成为一个瓶颈。

现实情况是,大部分合同都没有分歧或争议,所以不需要法院作出裁决,法院也不需要知道细节。 只有当有争议时,法院才需要作出判决。 这时,双方都可以提交相关证据。 这个机制能不能搬到链上? 这就是区块链的第 2 层(Layer 2)网络想要达到的目的。 关键问题是,如果没有链上的重复验证,链下合约的约束力如何产生?

以太坊社区将“反事实”的概念引入区块链,提出了反事实状态通道(Counterfactual state channel),试图总结出一个通用的区块链二层设计原则。 这里的“反事实”类似于法律体系中的“反事实”。 法律契约本身的约束力主要来自于这种反事实推理。 如果一方违反合同,另一方可以通过司法机关强制执行。 交易双方的最佳策略是忠实履行合同,因此合同具有约束力。 同样,如果一个智能合约不在链上执行,但如果有分歧,任何一方都可以让它在链上执行,这也产生了约束力。

这样理论上可以支持无限的TPS。

另一种形式的智能合约

上面提到的智能合约都是用编程语言来表达的。 链上执行的程序即使放在链下,也必须保证在链上执行,否则无法判断。 但是既然我们关注的是绑定,那么反复验证只是实现绑定的一种方式,还有没有其他方式可以实现绑定呢? 例如,法院在判决合同时,不是反复执行再核实,而是核实双方提交的执行结果证明,或者对方当事人认可结果的证明比特币 智能合约,比如签字。

比特币上的“智能合约”类似于这种机制。 在比特币模型下,锁定脚本相当于一把锁,决定了交易输出的BTC的归属。 数字资产的交换(相当于买卖合同)。 具体实现方法这里不详述。 有兴趣的可以看看原子互换、闪电网络、基于 Schnorr 签名的 Discreet Log Contracts。

该机制的思路是,无论合约如何执行,只要保证合约最终争议标的的归属,就​​可以达到约束效果。 当然,在这种机制下,合约可以表达的合约类型是有限的。

前段时间我们也做了一个小实验项目,尝试在闪电网络上实现智能合约。 参与者相互验证合约,当出现争议时,通过仲裁服务节点进行仲裁,通过闪电网络的哈希时间锁定机制将资产抵押给对方。 仲裁员可以决定保证金的归属,但不能直接拿走保证金。 虽然也有联合诈骗的可能,但联合诈骗也有信任成本,风险小于存款托管。

至此可以看出,如果着眼于智能合约约束力的构建,合约的验证、裁决、执行实际上是可以拆解的,不一定要在同一个平台上执行层。

比特币 智能合约_比特币合约多空比在哪看_比特币合约对冲锁仓

智能合约未来的两条路线

如果只追求约束力,智能合约的发展并没有太大区别,但智能合约也是一种程序,具有程序的所有特性,所以存在差异。

为了验证合约,智能合约的状态和输入参数将保存在链上,这意味着它提供存储容量、合约运行环境和计算能力。 有了这两个能力,理论上任何互联网应用都可以上链,而且是绑定的。 因此,以太坊将自己定义为世界计算机,EOS将自己定义为操作系统,两者都是运行去中心化应用程序(DApps)的平台。

然而,DApp 已经试验了几年,但仍然没有大的改进。 一开始大家以为是TPS的限制,所以EOS采用了DPoS机制来减少参与共识的节点数量,以达到更高的TPS。 理论上,也可以运行一个小规模的互联网应用,但是仍然没有太大的提升。 问题出在哪儿?

关键是我们一直在按照互联网应用的模式来思考DApp。 互联网应用的模式就是提供一个系统供大家使用。 应用程序本身所需的状态存储和计算能力与实现约束所需的状态存储和计算能力混合在一起。 在一起,所以几乎没有互联网应用价值可以支持区块链的复制和双重计算。

因此,智能合约和DApps的发展大致可以分为两个方向:

1、注意合约的约束力,必要的计算和存储只是实现约束力的基础。

在这种思路下,开发者应该对应用本身进行分析,拆解需要约束的计算和状态,即代表应用方和用户之间契约的部分,然后构建证明和验证机制,只向链上裁决提交必要的数据,链上无需重复执行申请,与合约无关的计算和存储仍在链下。 大多数二层网络,以及多链和跨链系统的约束和仲裁机制,都是往这个方向走的。

在这条路线下,最容易落地的就是DeFi的应用。 因为这类应用需要约束的状态很明确比特币 智能合约,就是资产,通过智能合约的约束力来解决资金托管的问题。 而且,现实中的大部分合法合同其实都是与资产相关的。 如果现实中的合法合约可以转移到链上执行或仲裁,想象空间非常大。 这条路线面临的最大问题不是技术,而是与实际规律和社会认知变化的冲突。

2. 专注于计算或存储能力。 绑定力只是用户信任硬件资源提供者的一种手段。

比特币 智能合约_比特币合约对冲锁仓_比特币合约多空比在哪看

有了这种约束力,就可以构建一个开放的系统,吸收更多、更便宜的硬件资源。 如果只是为了保证必要的安全性,可以减少重复验证和存储副本,为DApp提供比云平台更便宜的计算和存储能力,至少成本不会太高,差价可以通过开放实现。 弥补。 如Filecoin、Truebit等。该路线下,短期内在成本和可靠性上超越云平台的难度还是比较大的,技术难度也比第一种路线高,但优势就是实际阻力没有那么大。

当然,这两个方向各有难度,并不冲突。 最好两个方向都成功,然后可以相互结合。 但是如果你试图在同一层同时实现两个方向,就会有冲突,我个人认为是不可能的。

对司法系统的影响

既然智能合约可以通过区块链执行裁决,那么现实中的法律合约是否也可以模拟这样的系统来降低司法成本呢? 那么让我们假设如果实际的法律合同要由计算机仲裁需要什么条件。 例如,在借款合同中,一方声称已还款,有转账记录为证,但另一方认为转账未还款,本次转账不属于还款,这又是一个道理。 软件裁决是如何实现的?

首先,有一种编程语言来表达这个合约。

其次,双方必须拥有一套数字证书身份才能签署智能合约。

第三,银行在转账时需要提供一种将转账记录与合同关联的机制。 同时向双方提供数字证书和证书的验证接口。

最后,法院判决程序通过数字证书验证双方身份,通过银行数字证书验证还款交易,运行合约进行验证。 基本上可以做出裁决,银行收到裁决结果后就可以执行了。

这个过程虽然简化了一点,理论上是可行的,基础技术也具备了,但是目前不同的系统还是比较碎片化,无法提供数字证明机制,数字证书身份体系还很缺失。

因此,我一直建议法律专业人士也可以关注智能合约技术。 虽然这项技术还没有达到成熟阶段,但它相对于法律合约的优势非常明显:

比特币 智能合约_比特币合约对冲锁仓_比特币合约多空比在哪看

表达没有歧义,执行结果一目了然。

跨越自然语言,通用。

可由计算机判断,并可预先执行。

虽然不敢说未来会流行到什么程度,但至少理论上,随着未来资产的数字化,大部分与资产相关的合约都可以通过智能合约来表达和执行。

总结

区块链领域有一句话叫Code is law。 代码就是法律。 其实我觉得应该倒过来,说Law is Code。 区块链和智能合约是想通过代码建立一个绑定系统,用代码来描述这样的规则(法律),通过代码来表达和执行规则(法律)。

这个机制,如果从法制的角度来看,是千年未有之大变局。 其意义堪比几千年前人类将文字刻在石头上作为法律。 如果试验成功,就有可能构建一个独立于国家主权的法律体系。 前两天,美国的开源基金会就软件出口限制引起了不小的争议。 为什么开源基金会要在某个国家注册? 因为开源基金会也需要资金运作和银行账户,一旦发生经济纠纷,也需要依靠现有的司法体系进行裁决。 但是,区块链已经创造了数字资产。 有了定义组织和裁决系统的能力,就有可能拥有独立于国家的开源组织。

当然,现实中有没有可能完全取代法制呢? 这也是不可能的。 毕竟,最终的制裁,还是制裁人体。 除非有一天,人类真的把自己的大脑上传到互联网上,否则现实中的肉体和资产对人类来说将完全失去意义。 但也许? 费米悖论的一种解释是,外星人觉得真实宇宙太大太无聊,所以把自己上传到数字世界。

相关链接

谨慎的日志合同

在闪电网络上实施智能合约的试点项目