主页 > imtoken钱包app下载 > 揭秘比特币的真实交易原理(20200921194149).pdf 6 页

揭秘比特币的真实交易原理(20200921194149).pdf 6 页

imtoken钱包app下载 2023-06-01 05:56:53

火币,安全可靠的数字货币交易平台,揭示比特币真实交易原理作者:火币区块链研究中心未经许可不得在比特币区块链中复制。交易是核心内容。从前面的描述中,我们知道比特币使用了基于密码学的公私钥系统,交易的发起者可以使用自己的私钥对交易进行签名,其他人可以使用自己的公钥进行验证,这在数学上是有保证的用户资金安全。那么交易的结构究竟是怎样的呢?下面火币区块链研究中心带你揭秘比特币的真实交易原理。 1. 简化模型 在中本聪的白皮书中,比特币被定义为链式数字签名字符串。币的所有者通过对上一笔交易和下一笔交易的公钥签署数字签名,并将签名附加到交易中来完成转账。转账的接收方可以通过验证签名来验证链的所有者是否是发送方。交易的操作图如下: 这样设计的交易系统存在的问题是收款人难以验证之前的资产所有者是否进行了双重支付(双重支付)。通常的解决方案是引入受信任的第三方(例如银行)来检查每笔交易以防止双重支出。如果要排除第三方中介,那么交易信息就应该公开,整个系统的所有参与者都需要有唯一被认可的历史交易序列。收款人需要确保在交易过程中绝大多数节点都同意该交易是第一次发生。

2. 账本系统不是基于“账户”的。比特币区块链本质上是一个基于互联网的去中心化账本系统,这个账本上记录的是一个比特块。对于币种地址之间的转账交易比特币设计原理,具体的交易流程如上图所示。整个系统应该如何构建?经常有一种简单的说法比特币设计原理,比特币公钥类似于用户的银行卡号,也就是用户的账户。那么最容易想到的交易系统的记账方式就是基于账户。简化图是这样的:安全可靠的数字货币交易平台火币是最容易想到的。然而,比特币区块链不这样做。重要的事情说了三遍,比特币的交易系统不是这样的,不是这样的,不是这样的。原因很简单。如果采用这种记账方式,每当有新的交易发生时,系统都要回溯所有的交易历史,来判断最近一笔交易是否合法,如上图所示。 ,用户C有钱吗?当系统很大,交易量很大的时候,每次都进行这样的检查无疑是繁琐和低效的。 3. 那么比特币交易系统是如何构建的呢? UTXO 是比特币交易的基本单位。 UTXO(Unspent Transaction Outputs)即未使用的交易输出,是比特币交易生成和验证的核心概念。事务形成一组链结构。所有合法的比特币交易都可以追溯到一笔或多笔远期交易的输出。这些链的来源是挖矿奖励,最终是当前未花费的交易输出。

所有未使用的输出都是整个比特币网络的 UTXO。比特币规定,每笔新交易的输入必须是某笔交易的未花费输出,每一个输入也需要由上一次输出对应的私钥签名,并且每个比特币节点都会将当前的UTXO存储在整个区块链上,全网节点通过UTXO和签名算法验证新交易的合法性。通过这种方式,节点可以验证新交易的合法性,而无需回溯历史。比特币的输入输出的交易不是通常意义上的交易,而是转账。为每次转账构建交易数据会很笨拙。为了使价值易于组合和拆分,比特币交易被设计为包含多个输入和输出。也就是说,一笔交易可以转移给多个人。从生成到在网络中传播,到工作量证明,整个网络节点的验证,最后到比特币区块链,就是交易的整个生命周期。交易的本质是一个包含交易发送方、接收方、资产转移等相关信息的数据结构。其数据结构如下: 从整体结构上看,一笔交易的两个主要单元字段是交易的输入和输出。输入标识交易的发送者,输出标识交易的接收者和自己的找零,交​​易费用是输入之和与输出之和之间的差额。由于所有的交易输入都必须是前一笔交易的输出,所以交易的核心字段就是交易的输出。

安全可靠的数字货币交易平台火币网某笔交易的数据结构图如下: 比特币交易输入(TxIn)共有三种,分别是Standard TxIn(标准输入)、Spend Coinbase TxOut(花费Coinbase TxOut挖矿奖励),Coinbase/Generation(产生挖矿奖励),下图描述了这三个TxIn的结构: 安全可靠的数字货币交易平台有两种交易输出(TxOut Script)火币网比特币,即Standard TxOut(标准交易输出)和Coinbase TxOut(挖矿奖励输出)。下图描述了这两个 TxOut 的结构: 安全可靠的数字货币交易平台火币 4. 脚本安全 可靠的数字货币交易平台火币网脚本是交易中的另一项重要技术。严格来说,每笔交易的每个输出都不是指向一个地址,而是指向一个脚本。脚本就像一组规则,用于管理接收者如何使用锁定在此输出上的资产。交易的合法性验证也依赖于脚本。目前它依赖于两种类型的脚本:锁定脚本和解锁脚本。锁定脚本基于可变模式,通过脚本语言实现,位于交易的输出端。解锁脚本对应于锁定脚本。只有按照加锁脚本的规则解决,脚本上对应的资产才能被花费,位于交易的输入处。

脚本语言可以表达无限数量的条件变体。这也是比特币作为“可编程货币”所具有的特点。该脚本通过类似于我们编程领域的“虚拟机”进行解释,该虚拟机分布并运行在比特币网络中的每个节点上。比特币脚本目前主要分为两种,一种是普通类型的P2PKH(Pay-to-Public-Key-Hash),即支付到公钥的hash就是地址,接收方只需要使用对应的地址输出可以通过用私钥对输出进行签名来使用。另一个是P2SH(Pay-to-Script-Hash),支付脚本的哈希。以多重签名为例,它要求输出有 M 个私钥( M