LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 比特币交易以及现金上的智能合约

比特币交易以及现金上的智能合约

2020-01-12 会飞能打的涛哥哥 来源:区块链网络

比特币每一笔交易都是通过所谓的“交易输出”实现的。当这些交易输出在某个账户中可用,它们就被称为未用交易输出(UTXOs)。这些UTXOs被锁定脚本(或scriptPubKey)锁定,并被指定好了使用条件。尝试使用UTXOs时,会提供一个解锁脚本(或ScriptSig),然后这些脚本一起执行计算。仅当脚本执行无错误且结果值为正确(TRUE)时,交易才生效。

与EVM一样,所有比特币节点都执行这些脚本来验证交易,但是比特币区块链并没有Gas成本的概念,因此,按交易数据的每个字节向矿工支付费用。为了限制节点必须完成的工作量,在一些更密集的脚本操作上也加入了一些限制。

与智能合约互动

比特币中的智能合约的编写使用P2SH模式(头等仓注:有翻译为“向脚本哈希支付”)。P2SH模式中的锁定脚本包含脚本哈希,并且需要提供完整脚本(称为赎回脚本)以及该赎回脚本的解锁脚本的解锁脚本。

头等仓小知识:P2SH模式是为了简化复杂脚本的运用而被引入的(传统机制是P2PKH),将复杂的锁定脚本编译成一个含有20个字节哈希的简单脚本,就想比特币地址是基于Base58编码的一个含有20个字节的公钥。P2SH跟传统P2PKH方式的最大区别是把设置转出条件的人从发送者变成接收者。通过在赎回脚本中添加各种转出条件可以来实现形式多样的交易,例如多重签名交易。

比特币节点分两个阶段验证这些智能合约交易。首先,对“赎回脚本”进行哈希处理,并对照“锁定脚本”中的哈希值进行检查。如果它们匹配,则用“锁定脚本”去解锁“赎回脚本”,就好像“赎回脚本”才是初始的锁定脚本一样。

因为只有字节码的哈希值存储在比特币链上,所以完整的字节码必须存储在链外,并包含在任何合同执行的解锁脚本中。因此,比特币智能合约的“部署”是免费的,但以后执行合约的成本更高。相反,以太坊的初始部署相对昂贵,而后来的合约执行则便宜。

这些部署上的差异鼓励综合使用这两种智能合约。一个很好的例子是LocalCryptos,它支持以太坊和比特币的非托管本地交易。对于以太坊,它使用一个大的智能合约来跟踪所有交易,而对于比特币,它为每笔交易创建单独的合约。

每种加密货币都在其智能合约系统中进行权衡。以太坊是功能最广泛的最常用的智能合约平台。比特币通过其无状态脚本系统提供了更基本的智能合约版本,此无状态系统验证效率更高,但功能较少。比特币现金与比特币具有相同的基础,但是增加了新功能,试图在有效验证和有用的智能合约之间折衷。最后,所有人都朝着相似的目标迈进。

—-

编译者/作者:会飞能打的涛哥哥

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...