主页 > imtoken如何导入钱包 > 一篇文章让你了解什么是智能合约

一篇文章让你了解什么是智能合约

imtoken如何导入钱包 2023-03-11 06:39:34

比特币合约交易怎么玩_比特币合约多空比_比特币具备智能合约功能

当人们谈论智能合约时,他们到底在谈论什么?

在区块链和加密货币的背景下,智能合约的定义是:

……换句话说,智能合约是实现“如果发生这种情况,就做出那种结果”的小程序,由大量计算机运行并经过验证以确保可信度。

如果说区块链为我们提供了分布式可信存储,那么智能合约则为我们提供了分布式可信计算。

智能合约是以太坊区别于其他区块链的特征之一。

在这里我给出以下三个典型的智能合约在现实生活中的有效应用场景:

带有嵌入式指令的银行账户

用计算机代码代替法律术语

一个真实的智能合约示例

1 个带有嵌入式说明的银行账户

关于银行账户的一些事情就像智能合约一样。 每个月都会从我的银行账户余额中自动扣除固定金额并转账给我的房东。 如果我的银行账户中没有足够的钱,付款就会失败,我会被罚款,并且会触发另一个工作流程。

这是因为我有预先设定的银行账户指示。

这类似于智能合约可以做的事情,除了区块链上的智能合约由多方运行而不是由单方控制。

2 用计算机代码代替法律术语

比特币合约交易怎么玩_比特币合约多空比_比特币具备智能合约功能

智能合约是可以自动执行传统合约中“如果发生这种情况,就执行那种结果”的代码。 计算机代码始终按预期运行,没有人类语言中的歧义。 代码几乎没有潜在的争议点,因此在这一点上优于人类语言。 代码被复制到分布式/去中心化区块链(见下文)网络中的大量计算机并由其运行,这些计算机就代码的执行结果达成一致。

这种情况下的想法是,你可以采用通用的纸质合同,并在律师喜欢的“鉴于”条款的末尾添加一个条款,该条款指向区块链上的智能合约,并说“双方同意运行并遵守代码执行的结果。”。

3 一个真实的智能合约例子

下面是应用在以太坊区块链上的简单智能合约代码:

比特币合约交易怎么玩_比特币合约多空比_比特币具备智能合约功能

以太坊智能合约的示例。 来源:https://www.ethereum.org/token

Ethereum.org 解释了它的作用:

这个合约为合约的创建者生成 10,000 个代币,然后让那些有足够余额的人将它们发送给其他人。 这些代币是不可分割的最小可交易单位,但最终用户可以赠送 100 个单位,可以细分为 100 个子单位,因此拥有一个代币代表拥有总量的 0.01%。

这与银行自动付款有何不同?

1个控制

银行是银行账户的最终维护者。 它具有完全控制权,可以随意向我的帐户添加资金(笑)或借记资金(有趣的是,这种情况确实发生了,我将上诉回来)。

在一个正确设置的区块链生态系统中,不应该有单一的控制源。 具有共识机制的分布式架构意味着多个参与者不断地检查和更新账本,任何不符合预先约定的规则的情况都会被其他参与者拒绝。

2个代码

对于银行账户,每月进行自动交易的逻辑代码位于计算机上并由单方(银行)执行。 虽然存在内部控制和对账,但没有外部验证。

对于运行在区块链上的智能合约,逻辑代码在所有参与的计算机上并行运行,结果由所有参与者进行比较。 只有当参与者就结果达成一致时,他们才会更新他们的账本版本。 理论上没有人可以欺骗区块链。

3透明度

区块链生态系统的所有参与者都运行相同的代码,各自参与验证,智能合约的逻辑必须是对所有人可见的。 这意味着任何人都可以查看智能合约,如果您喜欢其中的逻辑,就可以使用它。 如果你不喜欢它,你就不会使用它。 有通用智能合约和专用智能合约。 透明度有两个方面。 有必要让合同的所有利益相关者就发生的事情达成一致; 但另一方面,不仅利益相关者可以看到发生了什么——网络上的每个人都可以看到。 区块链中的隐私是一个有争议的问题。 关于解决隐私和验证之间的紧张关系已经有很多讨论,一些解决方案使用零知识证明; 那将是另一篇文章的主题。

4 灵活性

我可以在银行账户中运行的逻辑仅限于定期付款或其他一些基本的东西——尽管我还没有完全调查过。 例如,不可能在晴天自动将钱从我的工资账户转入我的储蓄账户,然后在下雨天将其全部转回(“雨天存款”智能合约)。

所谓的“图灵完备”智能合约可以做普通计算机可以做的任何事情,尽管区块链版本比普通计算机运行得更慢且更昂贵(取决于区块链的设置),因为最终你要为所有网络上的计算机并行运行您的代码。

为什么智能合约如此有用?

正如我在关于区块链的文章中所讨论的,共享账本在多方参与时很有用,他们可能根本不信任彼此,并且所有参与方都将他们的事件版本相互比较。

例如,当两家银行在不通过清算所的情况下进行复杂的衍生品交易时,它被称为“场外交易”或场外交易。 这是两家银行之间的协议,没有第三方验证。 这些交易通常是赌博——比如“如果这种情况发生在年底之前,那么你付钱给我,否则我付钱给你”。

双方都有原始贸易文件(贸易条款和条件)的副本,并且双方对贸易的外部依赖性都有自己的看法。 因此,他们应该都同意交易的结果,即谁赢了赌注。 然而,情况并非总是如此。

出于多种原因,当各方对交易结果存在分歧时,可能会出现不匹配或“中断”:

有了智能合约,就会有一组用计算机代码编写的贸易条款,这比法律术语要简单得多,并且是事先商定的。 外部依赖性(油价、Apple 股票价格等)可以由双方商定的来源提供。 合同将存在于区块链上,并在事件发生或赌注到期时运行。

赌注可以存储在智能合约本身中:双方将他们的最大可能损失金额“加载”到合约中,然后在事件发生时支付。 这可能比现有流程更清洁,但仍然存在隐私问题,其他区块链参与者可以阅读此合约并能够查看两个竞争对手之间的投注条款。 当今金融服务中的大部分交易都是通过信贷和保证金或抵押品完成的; 需要预先全额支付货币/资产的潜在支出是没有吸引力的。

目前的智能合约产品

现有的区块链可以在不同程度上运行智能合约。 具体系列如下。

比特币平台非常适合处理比特币交易,但在计算能力方面非常有限。 在比特币交易脚本中实现丰富逻辑的能力非常有限。 比特币可能实现的一种逻辑是要求多个签名者在支付前签署交易,例如,一张支票需要两个签名者。 然而,在比特币区块链上实施智能合约需要对挖矿方法和挖矿激励方案进行重大改变。 详见比特币简介。

侧链,即连接比特币主链的区块链,可以实现智能合约功能:通过让不同的区块链与比特币并行运行,支持比特币主链和侧链之间的转账在跳转之间,侧链可用于执行逻辑。

NXT 是一个公共区块链平台,包括一系列当前正在运行的智能合约。 然而它不是图灵完备的,这意味着你不能为所欲为,而必须使用现有的模板。

以太坊是一个公共区块链平台,也是目前最先进的支持智能合约的区块链。 以太坊采用“图灵完备”编码系统。 理论上,你可以将任何逻辑放入以太坊智能合约中,并由全网运行。 以太坊有防止滥用的机制,你需要通过支付“ETH”代币来支付计算能力,这些代币用于支付运行代码的矿工。 详情请参考以太坊简介。

怀疑

权力下放是昂贵的。 运行代码的计算机越多,实现最终结果的成本就越高。 权力下放不是免费的。 如果你使用的系统有 10,000 台计算机运行代码,你需要支付这些计算成本:计算机操作员不会免费提供这些服务。

在公共网络上,用户必须付费才能在网络上运行机器。 让系统中的每台计算机(“节点”)都存储数据(例如区块链)并运行嵌入其中的智能合约代码比只有一两个参与者运行代码要昂贵得多。 目前,即使节点不尝试挖掘区块,节点也必须计算所有内容,因为验证区块的唯一方法是自己运行代码并将结果与​​已经挖掘的区块进行比较。

将代码写在区块链上当然很棒,这样各方就可以确定他们承诺的智能合约是什么样的比特币具备智能合约功能,然后可以单独运行代码,也许由交易各方来运行? 这将节省计算成本。 代码可以被矿工和节点视为纯文本,而不是需要执行的指令。

作为业内人士,我们需要能够阐明为什么去中心化的数据存储和计算系统很有价值。 一个更高效、更便宜的选择是一个组织集中充当存储和计算平台的中心,用户/参与者可以登录并上传他们的智能合约,让交易双方签署这些合约,然后双方可以依赖操作的结果。 当然,这就失去了去中心化的保证(包括不变性等)。

智能合约的未来

这个行业还有一个不为人知的秘密:人们喜欢冒险。 在许多合同中,一些条款是有意写入的,以便为仲裁留出渠道。 例如,在房屋租赁合同中,承租人造成的磨损是可以接受的,但重大损坏需要赔偿维修费用。 代码如何定义这些东西? 不可抗力一词出现在许多合同中,为相关各方提供回旋余地。 在智能合约环境中,一方如何描述这个含义而不滥用它或将其交给仲裁员。 这么多的灰色地带,太多的东西要弄清楚......

最后比特币具备智能合约功能,我毫不怀疑共享账本将在消除多方协议之间的信任需求方面发挥作用。 降低操作风险的智能合约对各方都有意义,可以被视为一组在没有特定中央协调者的情况下实现各方之间自动信任的工作流。 然而,使用起来有一些障碍,就像一般的区块链一样。

如何使用智能合约? 具有前瞻性的律师事务所应该在这方面走得更远,加强和建设内部智能合约编码能力。 法律相关的学生应该学习法律和计算机编程的双重技能。 那些能够弥合法律与计算机科学之间差距的人将在不久的将来受到高度追捧。

比特币合约交易怎么玩_比特币合约多空比_比特币具备智能合约功能