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(默克尔根)。
构建过程:
- 每笔交易的哈希(txid)作为叶子节点;
- 每两个交易哈希组合在一起再做一次哈希,生成上层节点;
- 重复上述过程,直到最终生成一个唯一的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
计算步骤(程序或区块链节点如何处理)
- 扫描整个区块链所有交易;
- 找出所有输出(output)中支付给该地址的;
- 去掉这些输出中已经被花费掉的(input 中使用过的);
- 剩下的就是该地址的所有 UTXO;
- 将这些 UTXO 金额相加,即为余额。
挖矿
什么是比特币挖矿
比特币挖矿(Bitcoin Mining)是指通过计算工作量证明(Proof of Work, PoW)来争夺比特币网络中新区块记账权的过程。
挖矿是使用计算设备(矿机)不断尝试解一个数学难题,成功解出者将获得记账权并获得比特币奖励。
- 目标: 争取新区块的打包权
- 方式: 不断尝试随机数(Nonce),使得区块头的哈希值低于特定目标值(难度目标),这是一个mining puzzle
- 共识机制: 工作量证明(PoW)
挖矿的流程
puzzle friendly: 只有不断地尝试不同的 nonce,没有捷径。因而这可以作为工作量证明。
-
收集交易: 矿工将尚未确认的交易打包成候选区块。
-
设置区块头信息: 包括前一区块哈希、Merkle根、时间戳、随机数等。
-
不断试验Nonce: 寻找一个使区块哈希满足目标难度值的Nonce。条件是指 hash(block header) <= target,其中 block header中包括一个 nonce 字段,因而需要不断的修改 nonce
- 挖矿难,验证容易(difficult to solve, but easy to verify)
- hash 用的是 SHA-256
-
广播新区块: 一旦找到合格的区块,广播至全网。
-
获取奖励:
- 当前(2024年后):每个区块奖励为 3.125 BTC(每4年减半)
- 还有用户支付的交易手续费
挖矿难度与哈希率
- 哈希率(Hash Rate): 矿机每秒计算哈希的能力,单位为 H/s、TH/s、PH/s 等。
- 难度调整: 每 2016 个区块(约两周)自动调整一次,保持平均 10 分钟出一个区块。
双重支付攻击(double spending attack)
在比特币系统中,Double Spending Attack(双重支付攻击) 是一种试图 用同一笔比特币资金支付两次 的欺诈行为。它是去中心化电子现金系统最需要解决的核心问题之一。
什么是 Double Spending?
双重支付是指:攻击者用同一个比特币 UTXO 向两个不同接收方发起两笔交易。
例如:
- 攻击者向商家发送一笔支付交易(如:购买商品)
- 同时,向另一个地址(自己控制的)发出一笔“冲突交易”,用的是相同的输入(Input)
- 如果后者成功被矿工打包进区块链而商家那笔没有被确认,那攻击者就得到了商品而没付出有效比特币
如何实施 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 联合抵制
- 51%攻击(51% attck)
- 因为需要发动51%攻击(51% attck)的成本越高
- 挖矿难度的调节: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
- 如果部分节点不更新软件,则分叉则会一直存在
- 比如 block size limit,block size决定了 thoughput
- soft fork 软分叉:只会临时性的出现分叉,之后分叉会消失
- 比如 block size limit变更,变小,1MB -> 0.5MB
- hard fork 硬分叉:扩展新功能,未升级版本的节点,则不认可该功能
P2SH: Pay to Script Hash
- redeem script
Bitcoin and anonimity(匿名性)
pseudonymity
- 如果比特币只在虚拟世界中转移,则匿名性会得到保障。
- 如果与真实世界产生了交互,比如
- 法币买比特币
- 场外交易(私下交易),不通过交易平台
- 在实体店,用比特币支付
如何提高匿名性
- application layer
- coin mixing
- network layer
- 多路径转发 可以实现匿名性
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个英文单词,用于钱包恢复 |