当前位置:首页 > 物联网 > 区块链
[导读] 在接下来的介绍中,区块网将研究比特币网络中使用的简单而强大的编码语言。比特币脚本语言(Bitcoin Script)在设计时只考虑了几个功能;它紧凑,图灵不完整,并且基于堆栈。通过这种方式,语言

在接下来的介绍中,区块网将研究比特币网络中使用的简单而强大的编码语言。比特币脚本语言(Bitcoin Script)在设计时只考虑了几个功能;它紧凑,图灵不完整,并且基于堆栈。通过这种方式,语言有效且安全地服务于某些目的。

尽管它的功能非常小,但与以太坊这样的网络相比,它在过去十年中已经证明了自己的强大,足以支持有价值的交易。

比特币脚本与“可编程货币”

在许多人看来,这种先锋加密货币背后的编程语言就是 Occam ‘s Razor的一个完美例子。

它是基础的,甚至与前加密货币编码语言相比也是如此。更重要的是,中本聪有意设计了这种简单性。一种具有多种功能并允许复杂数据交易的语言还允许更多的攻击向量。批评人士解释说,像Solidity这样的语言,虽然在范围上令人印象深刻,但在安全方面却远远不够。

在这一点上,比特币脚本语言的图灵是不完整的。相比之下,Solidity是图灵完备的,这意味着它可以复制任何图灵机或能够自主遵循特定算法的抽象机。掌握了这一概念,人们就可以开始理解智能合约是如何运作的。

回到最主要的焦点,比特币脚本语言没有提供这个功能,使用比特币区块链更深入地研究智能合约将是后面文章的主题。

比特币的主要用例一直是加密货币和其价值转移。因此,图灵完备语言的附加特性是不必要的。然而,这并不意味着脚本是有限的。

此外,比特币脚本语言的局限性阻止了无限循环被包含在任何单一交易中。这一限制消除了拒绝服务(DoS)攻击网络的可能性。这些约束的范围,例如不仅仅向X和Y发送值的交易,将在后面的部分中讨论。

比特币脚本语言的特点

比特币的编码语言使用“反向抛光”作为一种符号系统,意味着“3 + 4”这样的行会随着复杂性的增加而出现“3 4+”。另一项功能可以追溯到比特币脚本的根源——“类似Forth”。这个特性之所以相关,是因为这两种语言都是“基于堆栈的”。

栈是一种非常常见的数据结构,用Andreas Antonopolous的话说,它允许“栈顶”上的信息“推送”或“弹出”。前者解释了向堆栈中添加信息的过程,而后者描述了从堆栈中删除信息的过程。此外,信息弹出或推送的顺序遵循“后进先出”原则。

像“34+”这样的操作的行为如下:

将“3”按到堆栈上。

将“4”按到堆栈上。

“+”操作符获取这两个参数,将它们都从堆栈中弹出,将它们相加,然后将结果推回到堆栈中。(即。, pop, pop, add, push)

在本例中,结果操作导致堆栈上出现“7”,程序终止。

在比特币脚本语言中,该操作将遵循相同的步骤,但也将在每个变量之前包含前缀“OP”。接下来让我们看看这些新词汇是如何在真实的比特币交易中组合在一起的。

比特币脚本语言正在发挥作用

大多数操作都是签名交易。这包括支付、交换以及大多数涉及公钥和私钥的工作。让我们把发送者和他的同事Eddie Mitchell之间的交流分开来看。在这里,发送者将指定Mitchell(接收者)的公钥,Mitchell将通过指定使用相同公钥的签名来赎回发送的比特币。

接下来,此类交易的前两条指令是用于生成该签名的签名和公钥。该信息被标识为“《sig》”和“《pubKey》”,并被推送到堆栈中。Mitchell决定这些价值观,因为他是接受者。交易的前半部分通常称为“scriptSig”或“解脚本”。在操作的这一部分中,还引用了以前存在的未使用交易输出(UTXO)。

UTXO的加入确保了发送者确实拥有他希望发送给Mitchell的比特币的数量。比特币网络通过挖掘器和比特币全节点完成验证。在《掌握比特币》一书中,作者Andreas Antonopoulos这样解释:

每个输入都包含一个解锁脚本,并引用一个以前存在的UTXO。验证软件将复制解锁脚本,检索输入引用的UTXO,并从该UTXO复制锁定脚本。

交易的第二部分,即“锁定脚本”或“scriptPubkey”,然后由发送者执行。根据上面的图像,下一条指令“OP_DUP”从堆栈中弹出《pubKey》,复制它,然后将它返回给堆栈。

OP_DUP指令

这个顶值,即《pubKey》的副本,然后由“OP_HASH160”指令进行哈希值加密,并成为“《pubKeyHash》”。

pubKeyHash

比特币交易中使用的特定哈希函数称为SHA-256(安全哈希算法),它是更大的函数组SHA-2的一部分,这个函数组是1993年美国国家安全局(National Security Agency)开发的。SHA-2家族的其他成员包括SHA-224、SHA-256、SHA-384和SHA-512,每个数字表示它们生成的消息的位。

这些应用在信息安全领域非常广泛,其中最相关的是比特币和Haschash的工作量证明(Proof-of-Work, PoW)共识机制。SHA-256最显著的特性是它能够防止上面提到的DoS攻击。

回到发送者和他的同事之间的交易,用户仍然需要向堆栈中添加另一段数据。接下来的信息是作者在交易开始时指定的公钥。需要生成签名来赎回所请求的比特币。

此时,堆栈顶部有两个关键的哈希值数据:作者指定的公钥的哈希值和Mitchell使用的公钥的哈希值。从这里开始使用“OP_EQUALVERIFY”指令,确保发送者确实使用了正确的公钥。在早期经历了几次比特币交易失败后,作者再三检查了Mitchell的公钥。 当公钥匹配时,OP_EQUALVERIFY指令将消耗这些数据点。用户现在只剩下一个签名和一个公钥。最后一步是验证该事务的签名是否正确。

签名和公钥堆栈

比特币脚本语言在这里很有优势,因为它不需要从大量的库中提取来确认签名的有效性。所有这些都内置在语言中。

最后的“OP_CHECKSIG”指令,然后将剩余的两项从堆栈中弹出,如果《sig》匹配《pubKey》,则该操作将被呈现为有效。

比较、对比和增加复杂性

虽然以上的介绍很简短,但它应该提供了一个关于如何执行比特币交易的基本概念。在此基础上,开发人员和爱好者可以开始尝试更高级的操作,这将是稍后简要介绍的主题。

在此基础上的后续文章将深入探讨数字签名(ECDSA)、多签名操作、付费到脚本哈希值(P2SH)和TImelocks。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

现如今数字经济完全依赖各大平台的服务,交易能否达成与双方信用直接挂钩。平台往往在交易过程中抽取大量服务费用,导致了交易成本的提高。

关键字: 元宇宙 区块链 虚拟活动

业内消息,本周比特币盘中一度突破64000美元,续刷2021年11月以来新高。这是比特币自2021年11月以来最高价格,距离历史最高点68991美元仅一步之遥。随后,比特币涨势回落,截至发稿,比特币报60377.42美元...

关键字: 加密货币 爆仓 比特币 以太坊 狗狗币 BNB

随着人工智能(AI)技术的不断发展和创新,其应用领域也在不断拓展。AI正在逐步渗透到各个行业中,为我们的生活和工作带来诸多变革。本文将为您探讨人工智能在各个领域的应用。

关键字: 人工智能 区块链 应用领域

本文中,小编将对区块链技术予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 区块链 Blockchain

深圳2023年9月8日 /美通社/ -- 近日,超算领域国际顶级会刊SC23公布了论文入选名单,由微众银行区块链团队发表的论文——《FISCO-BCOS:An Enterprise-grade Permissioned...

关键字: 区块链 OS 开源 联盟链

(全球TMT2023年9月6日讯)耀世星辉新文娱集团控股有限公司宣布,根据2023年8月16日签署的《股份认购协议》,完成发行总计8,064,516 股普通股,认购价格为每股2.48美元,总计2000万美元的战略投资完...

关键字: 云计算 移动互联网 区块链 生态系统

上海2023年8月17日 /美通社/ -- 低碳经济的新机遇和挑战激发了电池制造业的创新热情。为了引领行业电池安全生产标准的制定并保持市场领先地位,一些电池制造公司,已在电池创新技术上投入巨大的研发力量。 在这个背景下...

关键字: 区块链 新能源电池管理 区块链技术 AI

(全球TMT2023年8月17日讯)耀世星辉新文娱集团控股有限公司宣布与两家新的投资机构签署战略投资股份认购协议。根据协议,公司同意向两家机构发行总计8,064,516 股普通股,每股价格为2.48美元,总额2000万...

关键字: 云计算 移动互联网 区块链 生态系统

近日,SABIC携手区块链软件提供商Circularise共同推出区块链试点项目,旨在评估其技术在追踪特定材料从“端到端”流动的碳足迹方面的使用情况。

关键字: 区块链 碳中和

区块链技术是一种基于去中心化、分布式、不可篡改的数据存储和传输技术,其应用场景广泛,涉及到数字货币、供应链管理、智能合约、数字身份验证、物联网等多个领域。以下是区块链技术的几个具体应用:

关键字: 区块链 数字货币
关闭
关闭