主页 > imtoken钱包地址转账查询 > 四、比特币密钥

四、比特币密钥

imtoken钱包地址转账查询 2023-01-18 17:51:10

一、比特币架构

1

1

二、区块结构区块是比特币存储交易的结构,一个区块总是指向它的父节点。一个区块包含三个字段:区块头、区块交易号和交易列表。交易的数量受区块大小的限制,输入、输出和脚本的数量都占用了区块空间,矿工往往更喜欢获得最高费用的交易列表。

1、区块头

比特币区块头包含当前区块和前一个区块的元信息,我们可以用它来验证区块体的正确性。虽然比特币区块头定义只包含 6 个字段,但每个字段对于当前区块链的运行都是必不可少的。

比特币区块头长度为80字节,数据结构包括nVersion、hashPrevBlock、hashMerkleRoot、nTime、nBits、nNonce字段。区块哈希可以通过对区块头进行两次 Sha256 操作来获得。

2、块体

比特币块用于存储实际交易记录。块体包含交易的有序列表,通过默克尔树算法生成的根哈希存储在块头中,从而可以通过块头中的少量信息来验证块体中的交易。

三、比特币钱包

此处的比特币钱包是指用于存储和管理用户密钥的数据结构,而在比特币上下文中,钱包还指用于管理密钥、比特币地址、地址余额以及创建和签署交易的应用程序。

比特币钱包不包含“加密货币”,只有一个私钥/公钥对的钥匙串,“加密货币”以UTXO的形式存储在区块链中。比特币钱包与用户身份无关,可以随时创建。一个用户可以拥有一个或多个比特币钱包。

比特币包含两种类型的钱包:

四、比特币密钥

比特币密钥格式包含三部分:私钥、公钥和地址。私钥、公钥和地址之间的推导是单向的,即私钥->公钥->地址,不能反向推导。

比特币私钥是从随机生成的 256 位二进制数生成的。私钥通过椭圆曲线计算公钥。比特币地址由公钥通过 base58Check 编码。

五、比特币交易模型

1、UTXO

比特币交易由输入交易和输出交易组成。每笔交易消耗输入然后产生输出,产生的输出就是UTXO。比特币链上存储的其实是一笔交易(Transactions),所有属于一个账户的UTXO就是该账户的金额。

2、事务脚本

比特币协议允许添加简单的计算,并且脚本使用比特币协议开发人员设计的受限语言。这是一种基于堆栈的、无状态的、非图灵完备的语言。

1)解锁脚本

脚本通常是一个签名和一个公钥,如果脚本执行任何类型的功能,诚实的节点都会放弃交易。

2)P2PKH

该脚本验证公钥哈希和输出所有者的签名

公钥哈希为:RIPEMD-160(SHA256(PubKey))

脚本是:

OP_DUP OP_HASH160  OP_EQUALVERIFY 
OP_CHECKSIG 

相关的脚本签名是:

  

3)P2SH

OP_HASH160  OP_EQUAL

符号:

 [sig] [sig...] 

3、改变

变化是指当一笔交易的输出用于另一笔交易的输入时,如果比特币没有完全用完,就会发生变化。更改将生成一个新的比特币地址并将差额返回到该地址(如果未进行任何更改,差额将用作矿工费)。

六、比特币机制

1、事务优先级

交易池中的实体将根据交易优先级进行排序。当区块空间紧张时比特币定义,会按照交易优先级进行打包。事务优先级由多种因素决定:

2、难度调整机制

调整比特币难度以保持平均每 10 分钟一个块的出块率。难度调整公式为:

新难度值=旧难度值*(前2016个区块的出块时间/20160分钟)

3、延迟交易确认

一般在实践中认为,交易被打包进区块后,会等待6个区块产生后,区块才被完全确认,这称为比特币的延迟交易确认。

4、防止双花的两个关键点

① 时间戳机制:

块有明确的时间顺序。交易信息广播后比特币定义,第一笔进入区块的交易被认为是合法的,后续交易将被网络拒绝。

② 最长链原理:

在比特币的 POW 共识机制中,矿工通过记账获得挖矿奖励。基于最长链原理,只有在最长链上挖矿的矿工才能获得奖励。

七、比特币网络

比特币网络采用 P2P 网络模型。这个网络中的每个节点都是点对点的,没有中央服务器。该网络模型符合高可靠、去中心化、开放包容的设计思想。

比特币挖矿是通过工作量证明机制在工作量证明过程中完成区块打包的过程。

比特币挖矿过程是比特币运行的必要过程,对比特币意义重大。尤其:

八、比特币分叉 [320 页]九、比特币侧链 [321 页]