什么是智能合约

智能合约区块链技术的开创性层它允许用户通过“机器人中间人”相互交流和交易。智能合约可以被认为是一堆自动执行的代码,可以完成某些原本必须手动完成的活动。

那么,智能合约的意义何在?它们提供了区块链所需的去信任元素。您可以依靠不知名的人来跟进在线交易吗?显然不是。

此外,智能合约能够自动执行任务并托管去中心化应用程序(DApps)并提供信心。因此,DeFi 开发人员经常使用它们来自动化闪贷、标准贷款、质押和其他独特功能。

开发人员可以在基于区块链的平台上使用简单的界面创建智能合约应用程序。许多现有的区块链平台都能够支持智能合约。本文将介绍和分析五个最著名的智能合约平台:以太坊、Hyperledger Fabric、Corda、Stellar 和 Rootstock,并考虑它们在不断发展的社区中的受欢迎程度和技术成熟度。

智能合约开发平台

本节将讨论五个最流行的智能合约平台,以太坊、Hyperledger Fabric、Corda、Stellar 和 Rootstock。

什么是以太坊?

以太坊是一个去中心化的平台,允许执行智能合约。与比特币的图灵完备脚本系统相比,以太坊创建了 Serpent、Solidity、Low-level Lisp-like Language (LLL) 和 Mutan 等图灵完备语言来服务于非加密货币用户的应用程序。 

以太坊将 Solidity、Serpent、LLL 和 Mutan 智能合约转换为机器代码,然后加载到以太坊虚拟机 (EVM)中并执行。另一方面,以太坊智能合约具有基于账户的数据格式,其中每个参与者都被他们的数字钱包识别。

比特币一样,以太坊使用工作量证明 (PoW) 共识机制,这种机制的计算成本很高。然而,以太坊很快就会从 PoW转向权益证明 (PoS)。这一直是我们的意图,因为它是社区通过 Eth2 升级发展以太坊计划的重要组成部分。为了奖励矿工解决问题的成本,使用以太(ETH)而不是比特币(BTC)。换句话说,gas 充当完成交易的内部费用,以补偿 ETH 的波动价值。

通俗地说,交易的总成本可以使用公式 gas limit*gas price 来估算,其中 gas limit 是指可用于构建区块的最大 gas 量,gas price 是指单位 gas 的成本(以 ETH 计)。

用户可以花费不同数量的gas来迟早确认他们的交易(即,大量的gas导致快速确认)。由于 PoW 对计算的要求很高,因此它可能会在毫无意义的区块挖掘工作上浪费大量精力。如果将挖掘过程用于有价值的活动,例如协助解决数学难题和执行机器学习任务,则可以预期。

什么是超级账本结构?

Hyperledger Fabric 是一种分布式账本技术,也可用于运行智能合约。与使用虚拟机 (VM) 运行智能合约(即 EVM)的以太坊不同,Hyperledger Fabric 智能合约使用Docker 容器来运行代码。与虚拟机不同,容器可以在不影响隔离的情况下以较低的成本实现智能合约应用程序(即,一个容器中的应用程序运行在一个操作系统之上)。

Linux 基金会负责监督Hyperledger Fabric 项目。然而,他们确实收到了来自 IBM 的大量投资。无论如何,你们中的一些人可能熟悉它作为 IBM 区块链。Fabric 支持传统的高级编程语言,例如 Java 和 Go,而不是构建以太坊智能合约语言(又名 Golang)。 

另外,Fabric 是图灵完备的,Fabric 使用的数据模型是键值对(值和值的描述)。键值对的示例如下:“car”:“Mercedes”。在这里,汽车是关键,梅赛德斯是价值。

Fabric 的区块链网络是经过许可的(私有或联盟),因为它可以容纳广泛的企业应用程序。证书颁发机构 (CA) 在加入网络之前必须批准用户。由于职责不同,网络中多种CA共存。例如,注册证书颁发机构允许用户注册区块链。此外,用户必须在注册后向交易证书颁发机构寻求交易证书。在许可的区块链网络中,可以快速获得共识。

什么是科尔达?

与用途广泛的以太坊不同,Corda 专注于数字货币应用。它是一个分布式账本平台,用于存储和处理过去的数字资产数据。但是,Corda 支持智能合约吗?Corda 智能合约在 Java 虚拟机 (JVM) 之上工作,并使用 Java 和 Kotlin 等高级编程语言。同时,为了实现可验证性,Corda 是图灵不完备的。此外,Corda 的数据模型是一种基于事务的方法。

Corda 经常用于启用私有平台,企业在这些平台中创建自己的网络以安全地交换数字资产。在私有区块链平台上可以快速达成共识。Corda 中的共识算法Raft。

Raft 是一种容错 (CFT) 排序服务,它在“领导者和追随者”的基础上运行,领导者节点被选举(每个通道),追随者复制其决策。CFT 为协议增加了一层稳健性,即使单个组件发生故障,算法也能继续处理并建立协议。

选择领导者、日志复制和安全保证都是在 Raft 中创建共识的方法。Corda 采用点对点消息系统,而不是在区块链中进行全球广播。消息接收者和要传输的特定信息必须由用户指定。

什么是恒星?

Stellar 是一个专门的数字货币应用平台,类似于 Corda。恒星币是一种比以太坊更简单、更易于访问的加密货币。另一方面,Stellar 可能支持多种语言,包括 Python、JavaScript、Golang 和 PHP。但是 Stellar 有智能合约吗?

是的,Stellar 支持智能合约,但 Stellar 合约不是图灵完备的,那么如何创建 Stellar 智能合约?Stellar 智能合约是使用各种约束的连接和执行交易的集合,旨在发送、存储和交易价值。

多重签名——一个需要多方签名来签署来自一个账户的交易的概念——和批处理/原子性——在一个交易中组合许多操作的概念——是 Stellar 智能合约限制的两个例子。原子性是一种承诺,即如果一系列操作中的一个操作失败,则事务的其余部分仍然可以工作。

Stellar 与 Fabric 一样,在 Docker 容器之上执行程序代码,从而降低了开销。例如,在 Stellar,单笔交易的执行成本仅为 0.0000002 美元,这几乎是微不足道的。此外,在 Stellar 中完成一笔交易平均大约需要 5 秒,而在以太坊中则需要 3.5 分钟。 

因此,Stellar 是数字货币应用的绝佳平台。Stellar 与以太坊一样,使用基于账户的方法作为其数据模型。恒星共识协议(SCP)是公司的共识算法。SCP 允许各方在不依赖封闭系统来跟踪金融交易的情况下达成一致。因为 Stellar 是经过许可的,所以达成共识很简单。

什么是砧木或 RSK?

RSK 在比特币之上工作,并允许更快的交易处理。例如,RSK 可以在 20 秒内确认交易。同时,RSK 与以太坊兼容(例如,采用 Solidity 来实现合约)。Rootstock 智能合约也是图灵完备的。RSK 还创建了用于运行智能合约的虚拟计算机。RSK 的数据模型也是基于账户的,尽管 RSK 是一个公共区块链系统。

RSK 创建了基于 PoW 的共识机制,并以轻量级的方式实现,降低了开销。RSK 与 Corda 和 Stellar 一样,旨在支持主要的数字货币应用程序。 

RSK 的有效性在于它比不基于区块链的系统安全得多,因为它建立在比特币之上。但是,它可能会给比特币区块链带来额外的压力。RSK 需要弄清楚如何补救这种情况。

智能合约平台比较

本节介绍了上述智能合约平台的主要方面。

执行环境

EVM 用于执行以太坊合约。JVM 和 RSK 虚拟机分别由 Corda 和 Rootstock 使用。另一方面,Fabric 和 Stellar 在 Docker 容器之上执行智能合约,降低了开销,同时影响了应用程序分离。

图灵完备性

以太坊、Fabric 和 RSK 都有图灵完备的智能合约;然而,Corda 和 Stellar 具有图灵不完备的智能合约。图灵完备的合约通常比图灵不完备的合约更具表现力。然而,图灵完备性增加了软件缺陷变得容易受到恶意攻击的可能性。

智能合约的应用

与 Corda 不同,Stellar 和 RSK 专门支持数字货币,而 Ethereum 和 Fabric 提供更广泛的应用,包括数字货币、数字资产管理、资本投资、政府和共享经济。Corda、Stellar、RSK 及其后代可能会在未来支持更多通用用途。

支持的语言

以太坊支持以太坊特定的编程语言 Solidity、Serpent 和 Mutan。目前支持 Fabric 和 Golang,而 Corda 使用 Java 和 Kotlin。Python、Javascript、Golang 和 PHP 只是 Stellar 可以支持的几种语言。RSK 使用 Solidity 作为其合约语言以与以太坊互操作。

允许

以太坊和 RSK 是公共(即无需许可)智能合约平台,这意味着任何人都可以随时加入网络。相比之下,Corda 和 Hyperledger 是只有经过身份验证的用户才能访问的私有平台。Stellar 是一个跨多个企业部门的联盟区块链,位于公共和私有区块链(或组织)之间。

共识算法

以太坊和 RSK 使用 PoW,因此区块可信度的验证类似于计算具有挑战性的问题(即难题)的解决方案。大多数 PoW 共识算法对计算的要求很高。 

Fabric 选择了实用拜占庭容错 (PBFT) 共识机制,该机制涉及经过身份验证的节点之间的多轮投票以做出决定。因此,PBFT 是网络密集型的。Corda 没有使用全球系统,而是使用称为 Raft 的基本共识机制在单个交易级别上在不同部门之间达成共识。另一方面,Stellar 实施了一种称为 SCP 的简单共识技术来达成共识。

数据模型

与比特币类似,Corda 使用未使用的交易输出 (UTXO) 机制。UTXO 模型中的每笔付款都必须提及先前未使用的交易作为输入。然后完成所述交易。对于新的未使用交易,将进行调整。 

相比之下,以太坊、Stellar 和 RSK 使用基于账户的模型。在基于账户的模型中,直接记录地址的余额,而不是计算所有未使用的交易金额。Fabric 利用键值概念,其中数据作为键值对存储在区块链中。

上述智能合约平台的特点总结如下表。

智能合约平台比较

为什么智能合约开发对公司很重要?

公司面临的最重要问题之一是在与第三方打交道时缺乏信任。由于缺乏信任和透明度,组织在达成协议时会谨慎行事,并在中介机构上花费大量时间和金钱。

当可以公开查看合同条件时,智能合约可以通过消除中介来提供帮助。使用区块链技术,这些合同增加了两方之间的信任和透明度。此外,它们使创建不可变且可访问的合约成为可能。

智能合约是一种新技术,可以提高各行各业的效率。随着技术的改进,更多的企业将使用它来削减开支并促进快速安全的交易。当可以公开和数字方式查看协议细节时,智能合约可以充当调解协议的代理。例如,智能合约可以通过自动化繁重的操作来取代依赖传统侵权、财产、民事诉讼、证据或合同分析的法律程序中的律师。

由于典型合同中涉及的中介和文书工作,最终确定合同非常耗时。但是,智能合约可以更快地完成,因为它们不需要中介。此外,由于智能合约是用计算机代码编写的,因此在整个合同起草过程中,更少的参与方会犯人为错误。

此外,区块链技术因其分散的结构而使交易更加安全。例如,如果黑客想要改变交易中的美元金额,他们需要控制至少一半的区块链计算能力。尽管该技术不会使系统无法穿透,但它确实使程序更加困难。

发表评论

后才能评论