精通区块链编程

2 比特币的工作原理

2.1 交易、区块、挖矿和区块链

2.1.1 比特币概述

比特币系统是由用户,交易和矿工三方组成的。用户使用包含密钥的钱包,交易在整个网络传播,而矿工则生产出(通过竞争性计算)共识性区块链,也是所有交易的公共权威账本

2.1.2 购买一杯咖啡

2.2 比特币交易

一笔交易是告知全网这部分比特币的持有者已经把它转给新的持有者。

2.2.1 交易输入和输出

交易以一种所有者电子签名的形式包含了每笔被消费的比特币金额(输入)的所有权证明,这些交易可以任何人独立验证。

2.2.2 交易链

交易以前一次交易的输出作为输入。

2.2.3 找零

  • 许多比特币交易都包含指向新持有者的地址和现持有者的地址,亦被称作“找零”地址。
  • 找零地址并不一定和输入地址相同,出于隐私考虑,它通常是来自所有者钱包的一个新地址。

2.2.4 常见的交易形式

  • 最常见的交易形式是从一个地址到另一个地址的简单支付,这种交易通常也包含一些返回给支付者的“找零”
  • 另一种交易形式是归集多个输入到一个输出。

2.3 交易的构建

  • 钱包包含所有关于选择合适输入和输出来建立交易的逻辑,用户只需要指定目标地址和金额
  • 钱包可以在完全离线时建立交易

2.3.1 获取正确的输入

  • 一个运行全节点客户端的比特币钱包实际上包含整个区块链上每笔交易的未消费输出的副本。这使得一个钱包既能构建交易输入又能基于正确的输入快速验证收到的新交易。
  • 轻量级客户端只维护用户自己未消费的输出,可以通过不通服务提供者接口来查询

2.3.2 创建交易输出

  • 交易的输出以脚本的形式被创建,它设置对兑换价值的保护。只有引入对这个脚本的解答才能进行兑换。
  • 交易会收取一笔费用,用于支付矿工的费用

2.3.3 将交易加入账簿

  1. 交易的传送 通过点对点网络将交易传播给所有参与者
  2. 如何传播 任何收到之前没见过的有效交易的比特币节点,都会立即向连在它之上的所有其他节点转发
  3. Bob的视角 Bob能够独立验证交易是否被很好的构成

2.4 比特币挖矿

挖矿在比特币系统中起着两个作用:

  1. 挖矿节点通过比特币的共识规则检验所有交易。因此挖矿通过拒绝无效或者不正常交易为比特币交易提供安全保证
  2. 挖矿在构建区块链时会创造新的比特币。每个区块创造的比特币数量是有限的,并按照时间减少固定发行规则

2.5 在区块链中挖掘交易

交易->节点维护的未验证交易的临时池->矿工选择未验证交易进行计算->证明成功则加入全球区块链

2.6 消费交易

3 比特币核心客户端:参考实现

3.1 比特币开发环境

3.2 从源码编译比特币核心

3.3 运行比特币核心节点

3.4 比特币核心客户端应用程序编程接口(API)

3.5 其他替代客户端、库和工具包

4 密钥和地址

posted @ 2022-10-28 13:57  Fake_coder  阅读(156)  评论(0编辑  收藏  举报