主页 > 怎么在华为下imtoken > 比特币和区块链简介 - 阅读 MasteringBitcoint 的笔记

比特币和区块链简介 - 阅读 MasteringBitcoint 的笔记

怎么在华为下imtoken 2023-01-18 19:37:15

比特币和区块链简介 - 阅读 MasteringBitcoin 笔记

简介

在读书时记录你觉得重要的事情

术语比特币交易网站 CointBaseBitstamp 交易单位

1比特币(bitcoin)=1亿聪(satoshi)比特币(1 satoshi是英文的satoshi)

第二章比特币原理2.1 交易、区块、挖矿和区块链

区块链数据查询网站:

提供区块链数据查询的网站就像一个比特币搜索引擎,你可以搜索比特币地址、交易和区块,以及查看它们之间的关系和资金流向。

常见的区块链数据查询网站

比特币系统由用户、交易和矿工组成

2.2 次比特币交易

p>

最常见的交易形式是从一个地址到另一个地址的简单付款,这通常还包括对付款人的“更改”。

交易形式

交易费用:

为了让网络尽快处理交易,输入和输出的差额就是交易费用,这个差额会被矿工放入区块的交易中作为交易费用

,最后放入区块链账本。

在区块中挖掘交易记录

平均每 10 分钟生成一个区块

第 3 章:比特币客户端第 4 章密钥、地址、钱包4.1 简介

比特币使用椭圆曲线乘法作为其公钥加密的基础算法

密钥对由一个私钥组成,并由从它派生的唯一公钥加密。

用比特币支付时,比特币的当前所有者需要在交易中提供公钥和签名(每笔交易的签名不同,但由同一个私钥生成)

可以从私钥计算出公钥

私钥和公钥的关系:

比特币里t币是什么币

私钥⇒椭圆曲线乘法(单向)公钥⇒哈希函数(单向)比特币地址私钥\xRightarrow[]{椭圆曲线乘法(单向)}公钥\xRightarrow[]{hash函数(单向)}比特币地址私钥椭圆曲线乘法(单向)到)​​公钥哈希函数(单向)比特币地址

私钥用于生成支付比特币以证明资金所有权所需的签名

私钥是一个介于 1−22561 - 2^{256}1−2256 之间的数字,256bit

公钥是通过椭圆曲线与 Satoshi 私钥相乘计算得出的。也就是说,

K=k∗GK=k*GK=k∗G

私钥公钥和比特币地址

k 是私钥,G 是被调用是生成该点的常数点,K 是生成的公钥。

比特币地址

比特币地址是一串数字和字母,可以与任何想给你比特币的人共享。公钥生成的比特币地址以数字“1”、“1”、“1”开头

比特币地址可以通过公钥通过单向加密哈希算法获得。地址是 Base58Check 编码的

从公钥到比特币地址的过程:

从公钥到比特币地址

比特币钱包

钱包是存放私钥的容器,通常通过有序文件或简单数据库实现。

比特币钱包只包含私钥,不包含比特币

第五章交易比特币交易的生命周期

创建比特币交易 ⇒ 转移比特币 向比特币网络发送交易 ⇒ 在比特币网络中传播比特币交易 创建比特币交易\xRightarrow[]{} 向比特币网络发送比特币交易\xRightarrow[]{}在比特币网络中的比特币交易比特币网络传播创建比特币交易​将比特币交易转移到比特币网络​比特币网络中比特币交易的传播

交易结构

比特币交易是一个包含输入和输出值的 A 数据结构

交易结构描述如下:

尺寸字段说明

4 个字节

版本

指定此交易涉及的规则

比特币里t币是什么币

1-9 个字节

输入计数器

包含的输入数

不确定

输入

一个或多个交易输入

1-9 个字节

输出计数器

包含的输入数

变量

输出

一个或多个交易输出

4 个字节

时钟时间

UNIX 时间戳或块号

交易输出和输入

比特币交易的基本单位是A使用的交易输出,简称UTXO(未使用的交易输出)

“比特币余额”:这个概念是通过比特币钱包应用程序创建的。比特币钱包通过扫描区块链并聚合属于该用户的所有 UTXO 来计算用户的余额。

一个 UTXO 可以是 satoshi 的任意倍数

大小字段说明

8 个字节

总计

以 satoshis 为单位的比特币价值

1-9 字节(可变整数)

比特币里t币是什么币

锁定脚本大小

Word 节表示的以下锁定脚本的长度

可变长度

锁定脚本

定义支付输出所需条件的脚本

锁定脚本会将输出锁定到特定的比特币地址,从而将一定数量的比特币的所有权转移给新的所有者。

大小字段说明

32 字节

交易

指向交易中包含的已用 UTXO 的哈希指针

p>

4 个字节

输出索引

已用UTXO的索引号,第一个为0

1-9字节(可变整数)

解锁脚本大小

后续解锁脚本的长度(以字节为单位)

变量

解锁脚本

满足UTXO锁定脚本中条件的脚本

4 个字节

序列号

当前未使用的交易替换功能,设置为0xFFFFFFFF

交易费用影响处理优先级,这意味着费用足够的交易将更有可能被包含在下一个挖出的区块中。

比特币里t币是什么币

交易费用根据交易的大小,以千字节计算,即每千字节有多少比特币(如0.每千字节0001个比特币)

交易费用 = sum(所有输入) - sum(所有输出) 交易费用 = sum(所有输入) - sum(所有输出) 交易费用 = sum(所有输入) - sum(所有输出)

交易链和孤立交易

交易以交易的形式形成一条链,消耗前一笔交易(父交易)的输出,并用于后续交易。 (子事务)创建输出。

没有父事务的事务池称为孤立事务池

限制存储在内存中的孤立交易数量,以防止针对比特币节点 (DoS) 的拒绝服务攻击

比特币交易脚本和脚本语言

比特币客户端通过执行具有类 Forth 脚本语言边界的脚本来验证比特币交易。

比特币的交易验证引擎依赖于两种类型的脚本来验证比特币交易:锁定脚本和解锁脚本

每个比特币客户端都会执行锁定和解锁脚本来验证交易。

比特币交易脚本语言(简称脚本)是一种基于栈的语言

标准交易

五个标准脚本分别是:P2PKH、P2PK、MS(限15个键)、P2SH和OP_Return

第六章比特币网络6.1 P2P网络架构

比特币采用基于互联网的P2P网络架构,P2P是指同一网络中的每台计算机都是对等的,每个节点共同提供网络服务,没有“特殊”节点。

分散控制是核心设计原则。

6.2节点类型分工

虽然比特币P2P网络中的节点是平等的,但每个节点可能根据提供的功能有不同的分工。每个比特币节点都是路由、区块链数据库、挖矿和钱包服务的功能集合。

挖矿节点通过在特殊硬件设备上运行的工作量证明算法相互竞争以创建新块。

用于扩展比特币网络的不同节点类型:

扩展比特币网络的不同节点类型

6.4 网络发现

当一个新的网络节点启动monkey时,为了能够参与协作操作,它必须发现网络中的其他比特币节点。新的网络节点必须至少发现网络中的一个现有节点并建立连接。

新节点如何发现网络中的对等节点?

比特币里t币是什么币

你可以传递种子节点

种子节点是长期稳定运行的节点。

存在于由比特币客户端维护的列表中比特币里t币是什么币,或最初将至少一个比特币节点的 IP 地址提供给起始节点。

如果建立的连接没有数据通信,它所在的节点会周期性的发送信息来维持连接。如果一个节点在没有任何通信的情况下继续连接 90 分钟,则认为它与网络断开连接,网络将开始寻找新的对等点。

6.5 个全节点

全节点是指维护包含所有交易信息的完整区块链的节点。更准确地说比特币里t币是什么币,这样的节点应该被称为完整的区块链节点。在比特币的早期,所有节点都是全节点;当前的比特币核心客户端也是完整的区块链节点。

6.6 交换“库存清单”

一个完整的节点连接到一个peer Monkey,首先要做的是构建完整的区块链。

区块链需要在节点之间同步

具有较长区块链的对等节点比其他节点拥有更多的块,并且可以识别哪些块是其他节点需要“补充”的。

可以使用 inv(库存)消息传播这些块的哈希值。

6.7 简单支付验证 (SPV) 节点

对于一些空间和功率受限的设备,简化支付验证 (SPV) 方法可以使它们工作而无需存储完整的区块链。这种类型的客户端称为 SPV 客户端或轻量级客户端。

SPV 节点只下载区块头,而不是每个区块中包含的交易信息。没有交易信息的最终区块链仅是完整区块链的 11000\frac{1}{1000}10001。

6.8 布隆过滤器

布隆过滤器是一种过滤器,允许用户描述一个特定的输入比特币钱包地址是关键字),并且不一定是精确的概率过滤方法。它允许用户在保护隐私的同时有效地搜索关键字。

6.10 个交易池

比特币网络中的几乎每个节点都维护着一个未确认交易的临时列表,称为内存池或交易池。

节点使用此池来跟踪网络锁已知但尚未包含在区块链中的事务。

例如,持有用户钱包的节点将使用此交易池记录网络已接受但尚未确认且属于用户钱包的预付款。

一些节点还维护一个单独的孤立交易池。如果交易输入与未知交易相关,例如缺少父交易,则孤立交易会暂时存储在孤立交易池中,直到父交易的信息到达。

事务池和孤立事务池都存储在本地内存中,而不是永久存储设备(如硬盘驱动器)中。

一些比特币客户端实现还维护一个 UTXO 数据库,也称为 UTXO 池,它是区块链中所有未支付交易输出的集合。

UTXO 池可以存储在本地内存中,也可以作为包含持久存储索引的数据库表。

6.11 条警告消息

Warning Messages 是比特币的“紧急广播系统”,Bitcoin Core 开发人员可以使用该功能向所有比特币节点发送紧急消息文本消息。