作者ripple0129 (perry tsai)
看板DigiCurrency
标题[闲聊] 还是没搞懂比特币如何计算私钥余额
时间Sat Mar 4 13:01:41 2023
一个比特币私钥可以产生大量公钥
公钥可以产生一堆地址
如果我使用比特币钱包
基本上我创建一个钱包私钥
然後用多个不同的地址去收款
钱包是如何加总我所有地址的余额的?
----
Sent from
BePTT on my iPhone 13 Pro Max
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 75.157.229.193 (加拿大)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DigiCurrency/M.1677906103.A.45D.html
1F:推 MACD: 加总是前端做的事03/04 13:09
2F:推 yyhsiu: 你自己不是都讲完了…加法不就是机器最会做的事03/04 13:28
3F:推 kugwa: 你的钱包知道这些地址都是你的啊03/04 13:47
4F:→ kugwa: 当然其他任何人都不知道03/04 13:47
5F:推 wahaha99: 我对这问题也不太懂 我猜是反正私钥对这些地址都有控制03/04 13:58
6F:→ wahaha99: 能力 所以余额加总是自己钱包的事 链只管这些地址有钱03/04 13:58
7F:→ wahaha99: 猜错请指正03/04 13:58
8F:→ ripple0129: 不是啊,地址无限多耶,怎麽全部加总03/04 14:58
9F:推 GGylin: 交易有限阿 比特币的区块链 是记录交易又不是记录余额03/04 15:03
交易有限,问题是我怎麽知道此笔交易的地址是属於我这个私钥的
10F:推 DarkerDuck: UTXOs set是有限集合03/04 15:13
12F:→ DarkerDuck: 直接看最後的余额章节03/04 15:16
Account based用习惯了,UTXO真是很难理解,我支付一笔交易,背後整合我的UTXO来支付,
要使用哪些UTXO,这部分又是谁来决定的,矿工或是我的钱包软体?我们使用者只是很直观
的从我的地址支付到另一个地址,但是整个运作底层根本不是这样XD
※ 编辑: ripple0129 (75.157.229.193 加拿大), 03/04/2023 15:46:35
※ 编辑: ripple0129 (75.157.229.193 加拿大), 03/04/2023 16:03:50
14F:推 wahaha99: 不过除了稍微混淆一下追踪者外 我是看不出太大意义 03/04 16:41
15F:→ wahaha99: 毕竟这种交易方式很浪费资源不是吗 03/04 16:41
16F:→ ripple0129: 问了AI是钱包软体来整合UTXO 03/04 17:56
17F:→ ripple0129: XD 03/04 17:56
18F:推 now99: 毕竟公开帐本,隐匿性也很重要 03/04 18:22
19F:→ ofy: 是一个助记词(Seed)能产生一堆公私钥对,不是一把私钥一堆公钥 03/04 19:04
20F:→ ofy: HD钱包内部通常会预生成约10~100个地址(公私钥对) 03/04 19:04
21F:→ ofy: 你的币会从这里加总,当有扫到使用纪录(收付)时 03/04 19:04
22F:→ ofy: 会往後多扫N个地址(依各钱包软体不同) 03/04 19:04
23F:→ ofy: UTXO花用那些input一般由钱包软体自动以支出output额度决定 03/04 19:05
24F:→ ofy: 不过你会手刻一样能手刻,input=output(含找回)+fee 就行了 03/04 19:07
25F:→ ofy: 只要你有能力给那些input有效签章(有用到的地址私钥) 03/04 19:10
26F:→ ofy: 你花用同地址的两笔input只要用该地址的私钥签章 03/04 19:13
27F:→ ofy: 你花用不同地址的input,要用那些有用到的地址私钥 03/04 19:13
28F:→ ofy: 某种程度这也是多签交易,少了一把交易就不成立无法上链 03/04 19:15
29F:推 DarkerDuck: @wahaha99,UTXO这种颠覆传统的记帐模式绝对才是 03/04 19:27
30F:→ DarkerDuck: 中本聪最大的创见 (PoW也不算是中本聪独立发明的) 03/04 19:28
31F:→ DarkerDuck: 确保隐私性只能算是UTXO最不重要的优点 03/04 19:29
32F:→ DarkerDuck: 可以说因为有了UTXO才让Bitcoin有潜力变成 03/04 19:30
33F:→ DarkerDuck: 全球通用的电子现金 03/04 19:30
34F:推 DarkerDuck: *UTXO原生性只能被花一次,所以可以达成零确认支付 03/04 19:33
36F:→ DarkerDuck: 而account-based则一定要等待确认,甚至是多个确认 03/04 19:38
37F:→ DarkerDuck: 以BCH的日常支付来说,三秒等待double-spend proof 03/04 19:39
38F:→ DarkerDuck: 就已经非常安全,至於BTC被啥anti-feature搞自行研究 03/04 19:40
39F:推 DarkerDuck: *UTXO因为是stateless,对於全球扩容有极大的优势 03/04 19:42
40F:→ DarkerDuck: 矿工不在乎各钱包甚至是各地址的状态,就可验证。 03/04 19:44
41F:→ DarkerDuck: 因为矿工验证的是UTXO状态而不是address或wallet状态 03/04 19:46
42F:→ DarkerDuck: 甚至有能力达成硬体化的平行验证,达成极大的TPS 03/04 19:47
45F:→ DarkerDuck: 只要有利益,要让矿工在TPS上再现算力的指数增长根本 03/04 19:54
46F:→ DarkerDuck: 小菜一蝶,实在无法想像为什麽现在卡在这边了 03/04 19:55
47F:→ DarkerDuck: 而储存空间也不成问题,前面已经讲过矿工只在乎UTXO 03/04 19:56
48F:→ DarkerDuck: 所以历史状态都可验证完後被丢弃。 03/04 19:57
50F:→ DarkerDuck: Bitcoin白皮书第八章提到的SPV钱包也必须依靠UTXO 03/04 20:01
51F:→ DarkerDuck: 现在的web3钱包并非是trustless,他必须有可信的RPC 03/04 20:02
52F:→ DarkerDuck: 但中本聪提出SPV钱包可以独立验证自己的交易是否可信 03/04 20:02
53F:→ DarkerDuck: 是一种真的可以在客户端truetless又去中心化的钱包 03/04 20:03
54F:推 wahaha99: 感谢回应...我消化一下 03/05 00:41
55F:推 wahaha99: 想了一下,stateless做到0确认的前提是用的node可信吧? 03/05 02:48
56F:→ wahaha99: 应该说,要多次确认除了店家怕遇到假帐与双花,链也怕分岔 03/05 02:49
57F:→ wahaha99: 历史状态验证完就丢弃...那不就没用到区块链了? 03/05 02:51
58F:→ wahaha99: 只存在於pool的概念? 03/05 02:51
59F:→ DarkerDuck: 要做到接受零确认支付的确前提是必须是well-connected 03/05 03:13
60F:推 DarkerDuck: 而Bitcoin钱包预设就会和多个全节点"同时"连接 03/05 03:14
61F:→ DarkerDuck: 通常会是六个,也就是这六个节点必需共谋日蚀攻击 03/05 03:15
62F:→ DarkerDuck: 这难度比连到一个不可信的节点还来的高太多 03/05 03:15
63F:推 DarkerDuck: 原始区块链是一种timestamp server的观念 03/05 03:19
64F:→ DarkerDuck: 对於一个已经在线上一直运作的节点而言 03/05 03:19
65F:→ DarkerDuck: 已经验证过的区块以後就不会再验证一次 03/05 03:19
66F:→ DarkerDuck: 当然没必要留在硬碟占空间,但是区块链还是会一直增长 03/05 03:20
67F:→ DarkerDuck: 一直都会有新的区块需要验证 03/05 03:21
68F:→ DarkerDuck: 而且无论如何一定还是要有一些archieve node 03/05 03:21
69F:→ DarkerDuck: 让一些新加入的验证节点,有需要的时候可以从头验证 03/05 03:22
70F:→ DarkerDuck: 一定还是会有一些节点储存完整的区块链 03/05 03:22