【Blockchain】Cryto - Bitcoin(比特币)

Posted by 西维蜀黍 on 2025-06-05, Last Modified on 2025-07-22

Bitoin 比特币

数据结构

block header

  • version
  • hash of previous block header
  • merkle root hash
  • target
  • nonce

Block body

  • Transaction list

Block

比特币中的每个区块是一个数据容器,包含一组交易记录。每个区块由两部分组成:

Block = BlockHeader + Transactions

  • 创世纪块(genesis block):是整个比特币区块链的起点,是区块链中编号为0的第一个区块,由中本聪(Satoshi Nakamoto)于 2009年1月3日 创建。
    • 没有“前一个区块” - 创世区块的 prev_block_hash 为全 0
  • most recent block: 最后创建的区块

区块头(Block Header)

80字节结构,这是区块的摘要信息,主要用于挖矿与链结构连接。

字段 字节数 含义
version 4 协议版本号
previous_block 32 上一个区块的哈希(对整个区块取哈希,包括区块header和body)
merkle_root 32 当前区块所有交易的 Merkle Root
timestamp 4 时间戳(UNIX 时间)
bits 4 当前难度目标(压缩表示)
nonce 4 用于满足难度条件的随机数(挖矿用)

previous_block 记录了上一个区块的哈希,是对整个区块取哈希,包括区块header和body。

该设计(tamper-evident log)使得如果之前的任何一区块被篡改,该篡改会影响到后续连接的所有区块。因而通过记录当前块中的header中的previous_block,就能检测出是否存在对之前区块的篡改。

因而,有的节点并不会保存整条链中的所有区块,而是只保存部分区块。当需要时,再去拉取这些需要的区块。拉取后,基于上述逻辑校验未篡改性。

Tamper-Evident Log(防篡改日志)

防篡改日志是一种特殊设计的日志系统,其核心目标是确保日志记录的完整性,使得任何未经授权的修改(如篡改、删除或伪造)都能被轻易检测到。它的设计通常结合密码学技术和数据结构,广泛应用于安全审计、区块链、合规性监管等领域。

防篡改日志的核心设计原则

1.数据不可篡改(Immutable)

  • 日志一旦写入,就不能被修改或删除,任何尝试篡改的行为都会破坏日志的完整性。
  • 实现方式:
    • 只追加(Append-Only):日志只能新增记录,不能修改或删除旧记录。
    • 哈希链(Hash Chain):每条新记录包含前一条记录的哈希值,形成链式结构,篡改任意记录会导致后续所有哈希不匹配。

2.篡改可检测(Tamper-Evident)

  • 任何篡改行为都会留下可验证的证据,例如哈希值不匹配、数字签名失效等。
  • 实现方式:
    • 密码学哈希(Cryptographic Hash):每条日志记录计算哈希值,篡改后哈希值会变化。
    • 数字签名(Digital Signature):使用私钥对日志签名,篡改后签名验证会失败。

3.可验证性(Verifiable)

  • 第三方(如审计人员)可以独立验证日志是否被篡改,而无需依赖日志系统本身。
  • 实现方式:
    • 默克尔树(Merkle Tree):高效验证大量日志的完整性(如区块链使用)。
    • 可信时间戳(Trusted Timestamping):结合时间戳服务器(TSA)证明日志未被事后篡改。

区块体(Block Body)

Block Body 主要存储交易数据,数据结构如下:

  • Transaction Count (可变长 VarInt)
    • 表示当前区块中包含的交易数量(包括 coinbase 交易)
    • 使用 变长整数编码(VarInt) 节省空间
  • Transactions[ ],交易列表,包含 coinbase(铸币交易) + 普通交易
    • 一个数组,包含了所有交易(每笔交易都是结构化的二进制数据)
    • 第一笔交易是 coinbase transaction(矿工奖励),后续是普通交易
    • 每笔交易结构如下:
Transaction
├── Version (4 bytes)
├── Input Count (VarInt)
├── Inputs[ ]
├── Output Count (VarInt)
├── Outputs[ ]
├── LockTime (4 bytes)

每个交易的输入(Input)和输出(Output)分别也有嵌套结构(TxIn / TxOut),例如:

TxIn(交易输入):

TxIn
├── Previous Tx Hash (32 bytes),前一个交易的哈希
├── Output Index (4 bytes),对应输出的 index
├── ScriptSig Length (VarInt),解锁脚本
├── ScriptSig (bytecode),解锁脚本
└── Sequence (4 bytes),顺序控制字段(常为 0xFFFFFFFF)

TxOut(交易输出):

TxOut
├── Value (8 bytes, 单位:聪),支付金额(单位为 satoshi)
├── ScriptPubKey Length (VarInt)
└── ScriptPubKey (bytecode),上链的锁定脚本(如 Pay-to-PubKey-Hash)

UTXO(Unspent Transaction Output)

UTXO(Unspent Transaction Output,未花费交易输出) 是比特币等基于账户模型的区块链中的一种基本概念,用于跟踪哪些币还“未被使用”,也就是说,哪些比特币可以用来支付下一笔交易。

你可以把 UTXO 想象成数字现金碎片

  • 每一笔比特币转账实际上是:
    • 花掉之前收到的一些 UTXOs
    • 产生新的 UTXOs 给别人或自己
Alice 有两个 UTXOs:
- 0.5 BTC
- 0.3 BTC

她要转 0.6 BTC 给 Bob,那么:
- 她会用 0.5 + 0.3 = 0.8 BTC 作为输入(Input)
- 创建两个新的输出(Outputs):
  - 0.6 BTC 给 Bob
  - 0.2 BTC 找零给自己(新的 UTXO)

Merkle Tree(默克尔树,哈希树)

在区块链中,尤其是比特币和以太坊,Merkle Tree(默克尔树) 是一种关键的数据结构,用于高效、安全地验证大量数据(如交易)。它确保区块中所有交易的完整性和一致性,同时支持轻量级验证(如 SPV 客户端)。

最终,整棵树汇总为一个唯一的顶点:Merkle Root(默克尔根)

构建过程:

  1. 每笔交易的哈希(txid)作为叶子节点;
  2. 每两个交易哈希组合在一起再做一次哈希,生成上层节点;
  3. 重复上述过程,直到最终生成一个唯一的Merkle Root(默克尔根)

示例图示(4笔交易):

        Merkle Root
           /    \
     Hash01      Hash23
     /   \        /   \
 tx0   tx1     tx2   tx3

Merkle Root 的作用:

  • 存在于区块头中(block header);
  • 提供了对整个区块交易的完整性校验;
  • 支持轻量级节点(SPV)验证某笔交易是否存在于某区块中,无需下载整个区块

举个例子(假设有 4 笔交易),步骤:

1.计算每笔交易的哈希(tx0, tx1, tx2, tx3):

h0 = SHA256(tx0)
h1 = SHA256(tx1)
h2 = SHA256(tx2)
h3 = SHA256(tx3)

2.每两个哈希组合并再哈希,得中间节点:

h01 = SHA256(h0 + h1)
h23 = SHA256(h2 + h3)

3.最后合并得出根节点(Merkle Root):

root = SHA256(h01 + h23)

结构图:

        Merkle Root
           /     \
        h01       h23
       /  \      /   \
     h0   h1   h2   h3

Merkle Tree 的优势

功能 描述
完整性验证 根哈希能唯一代表所有底层数据项
节省带宽 SPV(轻节点)只需下载区块头+一条哈希路径即可验证交易
高效校验 通过路径验证只需 log₂(n) 次哈希运算,即可确认一笔交易的存在性
抗篡改 任一交易变动都会导致整棵树的根哈希变化,能被快速检测到

在比特币中的应用

比特币每个区块头中包含:

  • Merkle Root:表示该区块中所有交易的聚合哈希结果;
  • 节点通过对比该根哈希来确认交易数据没有被篡改;
  • 轻节点(SPV)可以只验证某一条交易路径(Merkle Proof),不必下载完整区块。

如何验证未篡改性/区块中存在一个交易 - merkle proof (默克尔证明)

这也称为 proof of membership or proof of inclusion

merkle proof (默克尔证明)的作用是在不暴露整棵 Merkle 树的情况下,高效验证某个数据是否存在于一组数据中。它是一种 轻量、可验证的证明机制,广泛用于区块链、分布式存储等领域。

轻节点(SPV,Simplified Payment Verification)是比特币白皮书中提出的一种机制,允许无需下载完整区块链的客户端,仅通过区块头 + Merkle Proof 来验证一笔交易是否存在于某个区块中,进而判断该交易是否真实、有效、未被篡改。

目标 - 轻节点不存储所有交易数据**,但可以:

  • 验证某笔交易是否确实被挖入某个区块;
  • 验证该区块是否被主链所承认;
  • 避免被欺骗或伪造交易。

验证过程

**假设:**轻节点要验证某个地址的交易 tx 是否真的出现在区块 B 中。

步骤 1:轻节点下载区块头(block header)

比特币的每个区块头大小固定为 80 字节,包含:

  • 上一个区块的哈希
  • Merkle Root(表示交易的哈希树根)
  • 时间戳、难度、Nonce 等

轻节点通过 P2P 网络获取目标区块的区块头 H(B)。

步骤 2:获取交易 tx 的 Merkle Proof(默克尔证明)

轻节点向全节点请求:

  • tx 的哈希值(txid)
  • tx 所在的区块交易树中的“Merkle 路径”,即从 txid 到 Merkle Root 的哈希路径所需的邻居节点哈希。

示例:

假设交易列表为 [tx0, tx1, tx2, tx3],tx1 是我们要验证的:

        Merkle Root
           /    \
      h01        h23
     /  \        /  \
   h0   h1     h2   h3

若 tx1 哈希为 h1,Merkle proof 路径是:

Proof = [h0, h23]   # h0 是兄弟节点,h23 是上层另一半

步骤 3:轻节点本地重建 Merkle Root

轻节点自己计算:

step1 = SHA256(h0 + h1) = h01
step2 = SHA256(h01 + h23) = root_candidate

步骤 4:校验 Merkle Root 是否匹配区块头中的 Merkle Root

  • 将 root_candidate 与 H(B) 中的 Merkle Root 字段进行比较
  • 若匹配,说明这笔交易确实存在于该区块中,且区块头未被篡改 ✅

步骤 5:验证该区块是否属于主链(工作量足够)

轻节点会:

  • 要求多个区块头组成一条“最长链”(工作量最大的链);
  • 只信任被至少 6 个后续区块确认的区块;
  • 防止假节点伪造区块头(因为伪造者需要大量算力来构造更长链)。

验证一个区块中是否存在一个交易

  • 时间复杂度:O(logn)

区块链(Blockchain)

一种链式结构的哈希链,每个区块头包含前一个区块的哈希值:

Block0 → Block1 → Block2 → ... → BlockN

这种结构使得:

  • 篡改任何一个区块会使所有后续区块的哈希失效;
  • 确保区块链不可篡改,形成“工作量最长链”。

脚本系统(Script)

比特币交易中的输入和输出均含有脚本,用于执行支付验证逻辑。

类型 说明
scriptPubKey 锁定资金的条件(通常在 TxOut 中)
scriptSig 解锁资金的条件(通常在 TxIn 中)
脚本语言 基于堆栈的非图灵完备脚本语言
示例 P2PKH:Pay to PubKey Hash(最常见类型)

内存池(Mempool)

非区块结构,但重要:

  • 用于存储尚未被矿工打包的待确认交易;
  • 所有全节点都会维护本地 mempool;
  • 矿工从 mempool 中挑选交易打包成新区块。

节点类型

Full node / fully-validated node 全节点

  • 一直在线

  • 在本地硬盘上维护完整的区块链信息

  • 在内存里维护UTXO集合,以便快速检验交易的正确性

    • UTXO
  • 监听比特币网络上的交易信息,验证每个交易的合法性

  • 决定哪些交易会被打包到区块里

  • 监听别的矿工挖出来的区块,验证其合法性

  • 挖矿

    • 决定沿着哪条链挖下去?
    • 当出现等长的分叉的时候,选择哪一个分叉?

Light Node / SPV (simplified verification payment) client /轻节点

  • 只保存block header,不保存block Body

    • 因而,一般来说,没办法独立验证交易的合法性,因为没有存之前的交易信息
  • 系统中大部分都是 light node

  • 不是一直在线

  • 不用保存整个区块链,只要保存每个区块的块头

  • 不用保存全部交易,只保存与自己相关的交易

  • 无法检验大多数交易的合法性,只能检验与自己相关的那些交易的合法性

  • 无法检测网上发布的区块的正确性

  • 可以验证挖矿的难度

  • 只能检测哪个是最长链,不知道哪个是最合法链

账户模型 - 基于交易的账户模型

在比特币系统中,“账户管理”与传统银行或中心化金融平台的账户系统不同。比特币采用的是去中心化、基于密钥的管理机制,下面是其核心组成:

账户的本质:没有账户,只有地址

比特币并没有“账户”这个概念,而是通过以下方式实现资产归属:

  • 比特币地址(Bitcoin Address):由一对密钥(公钥、私钥)生成,充当资金的接收方,相当于“收款账户”。
  • 地址本身不存余额:比特币网络通过追踪所有**UTXO(未花费交易输出)**来决定一个地址可支配的金额。

密钥管理机制

  • 私钥(Private Key):掌握者拥有该地址中的比特币控制权,需妥善保管 - 类似银行账户密码。
  • 公钥(Public Key):用于生成地址,可公开,用于收款 - 类似银行账户
  • 助记词(Mnemonic Seed):钱包通过 BIP-39 标准将私钥以一组人类可读的单词形式生成并管理,便于备份与恢复。

余额管理方式:UTXO 模型

比特币使用 UTXO(Unspent Transaction Output)模型 进行资产管理:

  • 每一笔交易的输出可以作为新的交易的输入;
  • 钱包会自动将属于该地址的所有 UTXO 汇总,计算余额;
  • 付款时从多个 UTXO 中“凑钱”,剩余部分找零给自己。

钱包(Wallet)的角色

钱包是用户管理比特币地址和私钥的工具,常见类型有:

  • 热钱包(在线,便于交易,如软件钱包、交易所钱包)
  • 冷钱包(离线,更安全,如硬件钱包、纸钱包)

钱包帮助用户:

  • 生成密钥对
  • 储存和备份私钥
  • 构造交易、签名并广播

隐私与地址再利用

  • 出于隐私保护的目的,每次收款最好使用一个新的地址

  • 钱包可自动生成多个地址(BIP-32、BIP-44)。

  • A -> B (10 BTC)

    • B -> C (3 BTC),此时剩下的 7 BTC,需要 B 显式地转为自己的另一个账户 B'

如何算账户余额

  • 比特币:基于UTXO(未花费交易输出,Unspent Transaction Output)模型来实现
    • 比特币没有“账户”的概念,只有一组地址和对应的未花费输出(UTXO)。一个地址的余额 = 该地址上所有UTXO金额之和。

举例说明

假设地址 A 拥有以下 3 个 UTXO:

交易ID 输出序号 金额 (BTC)
tx1 0 0.5
tx2 1 1.2
tx3 2 0.3

则该地址的余额为:

📌 0.5 + 1.2 + 0.3 = 2.0 BTC

计算步骤(程序或区块链节点如何处理)

  1. 扫描整个区块链所有交易
  2. 找出所有输出(output)中支付给该地址的;
  3. 去掉这些输出中已经被花费掉的(input 中使用过的);
  4. 剩下的就是该地址的所有 UTXO
  5. 将这些 UTXO 金额相加,即为余额。

挖矿

什么是比特币挖矿

比特币挖矿(Bitcoin Mining)是指通过计算工作量证明(Proof of Work, PoW)来争夺比特币网络中新区块记账权的过程。

挖矿是使用计算设备(矿机)不断尝试解一个数学难题,成功解出者将获得记账权并获得比特币奖励。

  • 目标: 争取新区块的打包权
  • 方式: 不断尝试随机数(Nonce),使得区块头的哈希值低于特定目标值(难度目标),这是一个mining puzzle
  • 共识机制: 工作量证明(PoW)

挖矿的流程

puzzle friendly: 只有不断地尝试不同的 nonce,没有捷径。因而这可以作为工作量证明。

  1. 收集交易: 矿工将尚未确认的交易打包成候选区块。

  2. 设置区块头信息: 包括前一区块哈希、Merkle根、时间戳、随机数等。

  3. 不断试验Nonce: 寻找一个使区块哈希满足目标难度值的Nonce。条件是指 hash(block header) <= target,其中 block header中包括一个 nonce 字段,因而需要不断的修改 nonce

    1. 挖矿难,验证容易(difficult to solve, but easy to verify)
    2. hash 用的是 SHA-256
  4. 广播新区块: 一旦找到合格的区块,广播至全网。

  5. 获取奖励:

    • 当前(2024年后):每个区块奖励为 3.125 BTC(每4年减半)
    • 还有用户支付的交易手续费

挖矿难度与哈希率

  • 哈希率(Hash Rate): 矿机每秒计算哈希的能力,单位为 H/s、TH/s、PH/s 等。
  • 难度调整: 每 2016 个区块(约两周)自动调整一次,保持平均 10 分钟出一个区块。

双重支付攻击(double spending attack)

在比特币系统中,Double Spending Attack(双重支付攻击) 是一种试图 用同一笔比特币资金支付两次 的欺诈行为。它是去中心化电子现金系统最需要解决的核心问题之一。

什么是 Double Spending?

双重支付是指:攻击者用同一个比特币 UTXO 向两个不同接收方发起两笔交易。

例如:

  1. 攻击者向商家发送一笔支付交易(如:购买商品)
  2. 同时,向另一个地址(自己控制的)发出一笔“冲突交易”,用的是相同的输入(Input)
  3. 如果后者成功被矿工打包进区块链而商家那笔没有被确认,那攻击者就得到了商品而没付出有效比特币

如何实施 Double Spending?

常见攻击方式包括:

类型 描述
Race Attack(竞速攻击) 商家未等区块确认,攻击者同时广播两笔交易,希望欺诈交易先被矿工确认
Finney Attack 攻击者自己挖矿,将欺诈交易预先打包到一个未广播的区块中,等商家确认后广播该区块
51% 攻击 攻击者控制全网超过 50% 的算力,可篡改区块历史,把原本已确认的交易替换成冲突交易

如何防止

区块链(Blockchain)结构

  • 所有交易必须被打包进区块并链接成链。
  • 每个新区块都包含前一个区块的哈希,形成不可篡改的顺序记录。
  • 一旦交易被打包进一个有效区块,并被后续区块确认,其被替代的可能性大大降低。

作用:提供单一的“历史版本”,避免并存交易记录。

工作量证明(Proof of Work)

  • 比特币通过 PoW 共识机制来选出下一个可接入的合法区块。
  • 要重写一段区块历史(如篡改一笔交易),攻击者必须重做所有之后区块的 PoW

作用:增加重写历史的计算成本,使得双花攻击在经济上不可行。

交易验证和 UTXO 模型

  • 比特币使用 UTXO(未花费交易输出) 模型:
    • 每笔交易输出只能被使用一次;
    • 如果两个交易试图使用相同输入(input),节点和矿工会只接受其中一个,丢弃另一个。

作用:从结构上杜绝一笔资金被多次花费。

全网广播与交易传播规则

  • 当交易被创建后,会通过节点网络快速传播。
  • 每个节点:
    • 会验证交易是否“双花”(即是否尝试引用已使用的 UTXO);
    • 检测到双花会丢弃冲突交易;
    • 矿工只会打包有效、未被使用的 UTXO。

作用:第一笔被网络广泛接受的交易更容易被矿工采纳,后续的冲突交易被拒绝。

区块确认机制

  • 比特币建议用户等待若干区块确认(通常为 6)来保证交易不可逆。
  • 交易被写入的区块越深,越难被重写。

作用:通过时间与计算成本构建交易不可篡改性。

Misc

distributed censensus 分布式共识

distributed hash table

Paxos

  • Strong consistency

Consensus in BitCoin

  • membership based:
    • 只有授权实体能参与网络
      • Hyperledger fabric - 联盟链(permissioned blockchain)

女巫攻击 sybil attack

  • 用超算来大量高速创建账户
    • 这意味着算力没有增加

longest valid chain 最长合法链

  • forking attack:通过往区块链中间插入交易来回滚已经发生的交易
  • implict consensus
  • orphan block: 孤立块

获得记账权的节点

  • 可以获得

    • 发行比特币(凭空创造币)的唯一办法:coinbase transaction

    • 出块奖励 block reward:每21万个block后,奖励减半(从50BTC开始)

      • 每一个block发行时,能产生50BTC
  • 如何获得记账权:靠算力(puzzle friendly)- mining

    • 算力的能力:hash rate
    • miner 旷工:争夺计算权的节点

The BitCoin Network

  • application layer: BitCoin Block chain
  • network layer: P2P Overlay network(所以节点都是对等的)
    • 非对等网络:super node, master node
    • 要加入网络,需要有seed node
    • 通过 tcp 连接

设计原则:simple, robust, but not efficient

flooding

  • 随机选择邻近节点

一个交易发生后,发布到网络时,是best effort

挖矿

  • H(block header) <= target
    • 找到一个 block header,则挖到一个
    • target越小,挖矿难度越大
  • 出块时间的长度
    • 如果两个节点在差不多的时间都出块,则会出现分叉
    • BitCoin 的出块时间为10m
    • 分叉过多,
    • 系统的总算力越强,越安全
      • 因为需要发动51%攻击(51% attck)的成本越高
        • 51%攻击(51% attck)
          • split attack
          • Boycott 联合抵制
  • 挖矿难度的调节:target = target * actual time/ expected time
  • 挖矿设备
    • CPU
    • GPU
    • ASIC Application Specified Integredted circle
      • ASIC resistence - 让通用计算机也能挖矿

pool manager 矿池的矿主

  • 包含多个 矿工miner
  • 作为全节点

分叉 fork

  • state fork: 对链的状态的分歧导致的分叉
    • deliberate fork
    • forking attack
  • protocol fork: 因为比特币协议升级 导致的分叉
    • hard fork 硬分叉:扩展新功能,未升级版本的节点,则不认可该功能
      • 比如 block size limit,block size决定了 thoughput
        • 1M -> 4M
        • 如果部分节点不更新软件,则分叉则会一直存在
    • soft fork 软分叉:只会临时性的出现分叉,之后分叉会消失
      • 比如 block size limit变更,变小,1MB -> 0.5MB

P2SH: Pay to Script Hash

  • redeem script

Bitcoin and anonimity(匿名性)

pseudonymity

  • 如果比特币只在虚拟世界中转移,则匿名性会得到保障。
  • 如果与真实世界产生了交互,比如
    • 法币买比特币
    • 场外交易(私下交易),不通过交易平台
    • 在实体店,用比特币支付

如何提高匿名性

  1. application layer
    1. coin mixing
  2. network layer
    1. 多路径转发 可以实现匿名性

Zero-knowledge proof 零知识证明

对于全节点,把 (key, value) 储存在 levelDB里

  • key 是 block的 hash
  • value 是 Block 的内容(包括 header, body)
    • 这个block header存储了上一个block 的hash
    • 通过查询 levelDB,就可以查出上一个 block 的内容

比特币的稀缺性 - 总量恒定

比特币的总量是一定的(即 上限为 2100 万枚),这是中本聪在比特币系统设计中 刻意设定的通货紧缩特性,原因主要包括以下几点:

防止通货膨胀(Anti-inflation)

传统法币(如美元、人民币)可以由中央银行任意增发,容易导致通货膨胀,购买力下降。而比特币的总量有限,能够确保稀缺性,从而保护购买力

模仿黄金的稀缺性

比特币常被称为“数字黄金”,其设计灵感来自黄金的稀缺属性。

  • 黄金:总量有限、开采难度逐步增加
  • 比特币:总量有限、挖矿难度动态调整,且每四年减半

系统规则写入代码,不可更改

比特币的总量限制是写死在代码里的:

区块奖励 = 初始 50 BTC,每 210,000 个区块(约四年)减半
总奖励 ≈ 无限级数求和 → 极限值为 2100 万 BTC

这个减半机制意味着比特币在理论上永远不会超过 2100 万枚:

总比特币 = 50 + 25 + 12.5 + 6.25 + … → 收敛到 2100 万

建立用户信任,促进早期采用

有限总量给了用户信心 —— “不会被恶意增发”、“规则公平透明”,这对早期推广非常关键。

激励早期矿工参与

随着时间推移,奖励会递减,早期矿工收益更高。

这种机制让人们尽早参与系统,帮助比特币网络快速启动和壮大。

比特币 钱包

比特币钱包”是用于生成、存储和管理比特币私钥与地址的软件或硬件工具。它允许你发送、接收和管理比特币,同时保护你的私钥安全。钱包本身并不存储“比特币”,而是控制访问你区块链资产的私钥

按密钥存储方式

类型 描述
热钱包 (Hot Wallet) 私钥存在联网设备上,方便使用,但风险高
冷钱包 (Cold Wallet) 私钥离线存储(如硬件钱包或纸钱包),更安全,适合长期持有

钱包中的核心概念

概念 描述
私钥 控制比特币的“钥匙”,谁拥有私钥谁就拥有比特币
公钥 从私钥生成,用于生成地址
地址 公钥的哈希,是收款用的公开标识
助记词 表示私钥的12/24个英文单词,用于钱包恢复

Reference