主页 > imtoken钱包劫持 > 什么是基于比特币的智能合约

什么是基于比特币的智能合约

imtoken钱包劫持 2023-03-10 06:11:17

说明

由 Lumi 区块链钱包团队撰写,本文详细介绍了基于 BTC 的智能合约,包括其目前的发展状况和现有的改进方法。

以下为原文翻译:

人们经常将智能合约与以太坊联系起来。事实上,以太坊的成功很大程度上是基于为各种 Dapp 开发和实施智能合约。但并不是每个人都意识到,在 BTC 上,我们也可以使用智能合约。

比特币 合约

在了解基于BTC的智能合约之前,我们首先要了解一个问题,即既然我们已经有以太坊这样成熟的智能合约平台,为什么还要使用BTC?

原因

抛开与生俱来的好奇心,对于我们中的一些人来说,使用 BTC 作为交换对象可能已经是相对于 ETH 的优势(货币优势)。另一方面,ETH作为智能合约平台,其Solidity代码很难发现漏洞,再加上臭名昭著的DAO事件(2016年6月18日,黑客利用ETH智能合约漏洞,成功盗取并转移超过3.6百万 ETH),因此在很多方面 ETH 都有改进的空间。

相对于 BTC,黑客很难发现漏洞并进行攻击,因为 BTC 区块链提供了更高级别的安全运行环境。归根结底,安全才是最重要的,毕竟谁需要一个可以轻易被黑的多功能智能合约?

比特币 合约

发展状况及现有改善计划

BTC 交易包含一种脚本语言,该语言定义了当您需要获取一定数量的 BTC 时所需的条件。今天大多数 BTC 交易都是在交易者可以证明他们拥有正确的私钥的条件下执行的,这就是智能合约的基本工作方式。不过它的作用远不止这些,它实际上可以输入很多更复杂的脚本。

例如,您可以设置时间条件来限制他人获取 BTC 所需的时间,或者需要多个签名,或者将它们组合起来创建更复杂的编程合约。

如果要向基于 BTC 的智能合约添加更高级的功能,则将涉及各种其他改进。让我们看看使用了哪些改进。

比特币 合约

时间锁

如果以正常方式进行BTC转账,收款人在收到BTC后可以立即使用这些数字资产。但是,如果您希望接收者在某个日期之后能够访问这些资产怎么办?例如,假设您想为下一个假期节省一些钱,因此您决定将其锁定,直到旅行的第一天才解锁。在这个例子中,一个特定的智能合约可以产生很大的不同。但是如何才能做到这一点呢? 2015 年,在 BTC 的一次软分叉中,人们通过名为 CheckLockTimeVerify 的操作码引入了时间锁的概念。此操作码允许根据时间锁定转移资产。当有时间锁定时,特定资产只能在特定时间后使用。

侧链

侧链可以解决许多现有问题,例如可扩展性和交易速度。事实上,侧链也可以帮助实现基于 BTC 的智能合约。

比特币 合约

简单来说,当你想在侧链上执行 BTC 智能合约时,你需要将 BTC 转移到特定的地址,这些 BTC 会被自动锁定。同时,您将获得等量的侧链代币,可用于执行智能合约。操作完成后,您可以通过双向绑定将这些代币发回,从而解锁主网上的BTC。

MimbleWimble 协议

神秘的 MimbleWimble 协议建议实现一个值为 0 的输出内核,该内核不能被花费。这样您就不会对传输造成任何损害,因为您必须知道可花费的输出数量。随着多重签名的加入,这个协议变得几乎不可能被征服。在探索 MimbleWimble 协议的早期,我们提到不存储传输输入会使节点更小,从而更分散。这意味着更好的隐私,因为您无法映射传输的输入和输出。这在执行智能合约时非常重要。

施诺尔签名

比特币 合约

在确认转账时使用多个签名而不是单个签名显然更安全。用 Schnorr 签名替换目前在 BTC 上使用的签名模型将减少区块大小并解决两个主要问题:转账积压和高额转账费用。这也扩展了 BTC 智能合约的边界比特币 合约,因为它允许多个利益相关者使用相同的公共签名。想象一下比特币 合约,在智能合约的执行过程中,每个参与者都有自己独立的公钥。这些公钥是相互关联的,每个公钥也受到单独创建的私有签名的保护。

Schnorr 签名的优点之一是这些签名更小,而且大多数计算实际上是在执行传输之前完成的,大大提高了实际传输的速度。

传输的大小还取决于签名数据的大小。所以如果签名数据越多,区块中可以包含的转账越少,转账速度就会越慢,费用也会越高。在使用 ECDSA(BTC 公钥和私钥背后的加密算法)时,如果你想从几个不同的来源向朋友发送 1 个 BTC,每个来源都必须有自己的签名,这会占用大量宝贵的区块空间。如果使用 Schnorr 算法,只需要一个泛型签名,占用空间很小。

结论

以上是关于BTC智能合约发展现状的陈述,以及一些将智能合约带入BTC生态系统的应用实例。一般来说,基于 BTC 的智能合约是一个非常值得深入探索的有趣领域。