比特币每一笔交易都是通过所谓的“交易输出”实现的。当这些交易输出在某个账户中可用,它们就被称为未用交易输出(UTXOs)。这些UTXOs被锁定脚本(或scriptPubKey)锁定,并被指定好了使用条件。尝试使用UTXOs时,会提供一个解锁脚本(或ScriptSig),然后这些脚本一起执行计算。仅当脚本执行无错误且结果值为正确(TRUE)时,交易才生效。 与EVM一样,所有比特币节点都执行这些脚本来验证交易,但是比特币区块链并没有Gas成本的概念,因此,按交易数据的每个字节向矿工支付费用。为了限制节点必须完成的工作量,在一些更密集的脚本操作上也加入了一些限制。 与智能合约互动 比特币中的智能合约的编写使用P2SH模式(头等仓注:有翻译为“向脚本哈希支付”)。P2SH模式中的锁定脚本包含脚本哈希,并且需要提供完整脚本(称为赎回脚本)以及该赎回脚本的解锁脚本的解锁脚本。 头等仓小知识:P2SH模式是为了简化复杂脚本的运用而被引入的(传统机制是P2PKH),将复杂的锁定脚本编译成一个含有20个字节哈希的简单脚本,就想比特币地址是基于Base58编码的一个含有20个字节的公钥。P2SH跟传统P2PKH方式的最大区别是把设置转出条件的人从发送者变成接收者。通过在赎回脚本中添加各种转出条件可以来实现形式多样的交易,例如多重签名交易。 比特币节点分两个阶段验证这些智能合约交易。首先,对“赎回脚本”进行哈希处理,并对照“锁定脚本”中的哈希值进行检查。如果它们匹配,则用“锁定脚本”去解锁“赎回脚本”,就好像“赎回脚本”才是初始的锁定脚本一样。 因为只有字节码的哈希值存储在比特币链上,所以完整的字节码必须存储在链外,并包含在任何合同执行的解锁脚本中。因此,比特币智能合约的“部署”是免费的,但以后执行合约的成本更高。相反,以太坊的初始部署相对昂贵,而后来的合约执行则便宜。 这些部署上的差异鼓励综合使用这两种智能合约。一个很好的例子是LocalCryptos,它支持以太坊和比特币的非托管本地交易。对于以太坊,它使用一个大的智能合约来跟踪所有交易,而对于比特币,它为每笔交易创建单独的合约。 每种加密货币都在其智能合约系统中进行权衡。以太坊是功能最广泛的最常用的智能合约平台。比特币通过其无状态脚本系统提供了更基本的智能合约版本,此无状态系统验证效率更高,但功能较少。比特币现金与比特币具有相同的基础,但是增加了新功能,试图在有效验证和有用的智能合约之间折衷。最后,所有人都朝着相似的目标迈进。 —- 编译者/作者:会飞能打的涛哥哥 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
比特币交易以及现金上的智能合约
2020-01-12 会飞能打的涛哥哥 来源:区块链网络
LOADING...
相关阅读:
- 区块链猫猫8.6:主流保持高位震荡,U的下跌为币价提供支撑性。2020-08-06
- 币圈短线之王:8.6比特币行情 反转还是诱多空 行情扑朔迷离2020-08-06
- 黄金价格首次突破2,000美元2020-08-06
- BAND,REN,BNT,下一步是什么?2020-08-06
- 随着新交易所的推出,印度的比特币P2P交易激增2020-08-06