File tree Expand file tree Collapse file tree 5 files changed +147
-4
lines changed
Expand file tree Collapse file tree 5 files changed +147
-4
lines changed Original file line number Diff line number Diff line change 1+ 在比特币的底层系统中,并没有对手续费做规定。也就是说,手续费并不是强制要收取的。在早期,由于比特币价格低,链上转账数目少,很多矿工并不在意用户是否支付了手续费(也叫矿工费),所以很多没有支付手续费的比特币也被矿工打包确认了。但随着比特币价格的快速上扬,链上转账数目越来越多,为了让自己的利益最大化,矿工开始优先打包有手续费的成交。现在,如果转账不支付手续费,基本上不会被矿工打包确认。
2+
3+
4+ 影响交易费用的因素
5+
6+ * 字节大小
7+
8+ 比特币交易的大小以字节为单位,通常交易越大,费用也越高。交易的大小取决于输入和输出的数量。
9+
10+ 比特币转账的字节大小跟转账的金额无关,跟 UTXO 的数量有关。举个例子,张三、李四分别给王五转 6BTC,如果张三用的是一个面额为 7BTC 的 UTXO,李四用的是七个面额都为 1BTC 的 UTXO,那么很显然,李四的这笔转账字节要大得多。
11+
12+ 目前,主流的手续费标准是按照字节收费:每千字节收取 0.0001BTC 的手续费(不足一千字节的按照一千字节算)。
13+
14+ * 网络拥堵情况
15+
16+ 比特币网络的拥堵情况也会影响手续费。如果使用比特币链上转账的人很多,造成了比特币网络拥堵,而你想让自己的转账尽快确认,你就需要支付更高的手续费进行“插队”,提高被打包确认的优先级。当然,如果你并不着急,也不用因为比特币网络拥堵而提高转账的手续费。
17+
18+
19+ 估算方法
20+
21+ 1 . 使用交易所或钱包:许多比特币钱包和交易所提供自动计算的建议费用。用户可以根据推荐的费用进行交易。
22+
23+ 2 . 利用在线工具:有很多在线工具和网站提供实时的比特币交易费用估算,通常会显示当前的平均费用和推荐费用, 例如:
24+
25+ Mempool.space:(https://mempool.space/zh/)提供实时的 未确认交易和费用数据。
26+
27+ BTCscan:(https://btcscan.org/)显示当前区块链状态和推荐费用。
28+
29+ Blockchair: (https://blockchair.com/)提供详细的区块链分析和费用估算。
30+
31+
Original file line number Diff line number Diff line change 1+ 构建比特币交易的过程涉及多个步骤,以下是一个简化的步骤指南,帮助你理解如何在比特币网络上构建和发送交易。
2+
3+ ### 1. 准备工作
4+
5+ - ** 钱包地址** :你需要一个比特币钱包地址(通常是由公钥生成的)用于接收比特币。
6+ - ** 私钥** :这是控制你钱包的密钥,必须保密。
7+ - ** 比特币余额** :确保你的钱包中有足够的比特币用于交易。
8+
9+ ### 2. 创建交易
10+
11+ #### 交易基本结构
12+
13+ 一笔比特币交易通常包含以下几个部分:
14+
15+ - ** 输入(Inputs)** :引用之前的交易输出,表示你要花费的比特币。
16+ - ** 输出(Outputs)** :指定比特币的接收地址和金额
17+ - ** 交易金额** :你要发送的比特币数量
18+ - ** 手续费** :矿工费,用于激励矿工处理你的交易
19+
20+ #### 示例交易结构(JSON格式)
21+
22+ ``` json
23+ {
24+ "inputs" : [
25+ {
26+ "txid" : " previous_transaction_id" ,
27+ "vout" : 0 ,
28+ "scriptSig" : " signature" ,
29+ "sequence" : 4294967295
30+ }
31+ ],
32+ "outputs" : [
33+ {
34+ "address" : " recipient_address" ,
35+ "amount" : 0.01
36+ },
37+ {
38+ "address" : " change_address" ,
39+ "amount" : 0.009
40+ }
41+ ],
42+ "locktime" : 0
43+ }
44+ ```
45+
46+ ### 3. 签名交易
47+
48+ 使用你的私钥对交易进行签名。这一步骤确保了交易的安全性和有效性。签名的算法通常是椭圆曲线数字签名算法(ECDSA)
49+
50+ ### 4. 广播交易
51+
52+ 一旦交易被签名,你需要将其广播到比特币网络。这可以通过连接到比特币节点或使用第三方API来完成
53+
54+ ### 5. 交易确认
55+
56+ 交易被矿工打包到区块后,等待网络确认。通常需要六个确认才能认为交易是不可逆的。
57+
58+ ### 6. 检查交易状态
59+
60+ 你可以使用区块链浏览器来检查交易的状态,确认它是否已被矿工确认。
61+
62+ ### 代码示例
63+
64+ 以下是一个简单的Python示例,使用 ` bitcoinlib ` 库构建和发送比特币交易:
65+
66+ ``` python
67+ from bitcoinlib.wallets import Wallet
68+
69+ # 创建或加载钱包
70+ wallet = Wallet(' MyWallet' )
71+
72+ # 创建交易
73+ tx = wallet.send_to(' recipient_address' , amount = 0.01 )
74+
75+ # 查看交易详情
76+ print (tx.info())
77+ ```
78+
79+ ### 注意事项
80+
81+ - 始终保持你的私钥安全。
82+ - 确保使用可靠的钱包软件。
83+ - 了解网络手续费的变化,选择合适的手续费以确保交易被及时处理。
Original file line number Diff line number Diff line change 1+ UTXO(Unspent Transaction Output)是比特币交易的核心模型,代表未花费的交易输出。
2+
3+
4+ 工作原理:
5+
6+ 每笔交易通过输入(引用并消耗之前的UTXO)和输出(生成新的UTXO)完成转账。
7+
8+ 例如:当前用户A余额是1000元,如果用户A给用户B转100元,这笔转账会被记录成:
9+
10+ 交易1 用户A给用户B转账100元
11+
12+ 交易2 用户A给用户A自己转账900元 (UTXO)
13+
14+ 这里的交易2虽然是一笔交易,但从功能上来说他担当了账户余额的作用,表示在完成这笔100元转账后A的账户上还剩余900元。
15+
16+
17+ 特点:
18+
19+ 安全性高:UTXO模型通过验证每笔交易的输入,确保输入的UTXO是有效的且未被花费。这提高了交易的安全性,防止了双花攻击。
20+ 双花攻击是指同一个比特币被花费两次。UTXO模型通过记录每个UTXO的状态,有效地防止了这种情况的发生
21+
22+ 隐私性好:每个UTXO都是独立的,可以被多个交易分开使用。这使得交易难以被追踪,提高了用户的隐私性。
23+ 例如,你可以将一个大额UTXO分成多个小额UTXO,用于不同的交易,从而混淆交易的来源和目的
24+
25+ 可扩展性强:UTXO模型允许并行处理多个交易,提高了网络的可扩展性。每个节点只需要验证自己收到的UTXO,而不需要处理整个账户的余额。这使得比特币网络可以处理更多的交易,提高了网络的吞吐量
26+
27+
28+
29+
Original file line number Diff line number Diff line change 3636
3737### 1.3 交易
3838比特币交易的相关知识:
39- - ** UTXO解析** ⬜
39+ - ** UTXO解析** ⌛
4040- ** Coinbase交易** ⬜
41- - ** 交易构建** ⬜
42- - ** 费用估算** ⬜
41+ - ** 交易构建** ⌛
42+ - ** 费用估算** ⌛
4343- ** 签名算法** ✅
44- - ** 交易加速 ** ⬜
44+
4545
4646### 1.4 工具
4747比特币生态系统中的常用工具:
You can’t perform that action at this time.
0 commit comments