作者 ripple0129 (perry tsai)標題 [閒聊] 還是沒搞懂比特幣如何計算私鑰餘額時間 Sat Mar 4 13:01:41 2023
一個比特幣私鑰可以產生大量公鑰
公鑰可以產生一堆地址
如果我使用比特幣錢包
基本上我創建一個錢包私鑰
然後用多個不同的地址去收款
錢包是如何加總我所有地址的餘額的?
----
Sent from
BePTT on my iPhone 13 Pro Max
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 75.157.229.193 (加拿大)
※ 作者: ripple0129 2023-03-04 13:01:41
※ 文章代碼(AID): #1a0j2tHT (DigiCurrency)
※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1677906103.A.45D.html
推 MACD: 加總是前端做的事1F 03/04 13:09
推 yyhsiu: 你自己不是都講完了…加法不就是機器最會做的事2F 03/04 13:28
推 kugwa: 你的錢包知道這些地址都是你的啊
當然其他任何人都不知道3F 03/04 13:47
推 wahaha99: 我對這問題也不太懂 我猜是反正私鑰對這些地址都有控制能力 所以餘額加總是自己錢包的事 鍊只管這些地址有錢猜錯請指正5F 03/04 13:58
推 GGylin: 交易有限阿 比特幣的區塊鏈 是記錄交易又不是記錄餘額9F 03/04 15:03
交易有限,問題是我怎麼知道此筆交易的地址是屬於我這個私鑰的
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
推 wahaha99: 不過除了稍微混淆一下追蹤者外 我是看不出太大意義
畢竟這種交易方式很浪費資源不是嗎14F 03/04 16:41
推 now99: 畢竟公開帳本,隱匿性也很重要18F 03/04 18:22
→ ofy: 是一個助記詞(Seed)能產生一堆公私鑰對,不是一把私鑰一堆公鑰HD錢包內部通常會預生成約10~100個地址(公私鑰對)
你的幣會從這裡加總,當有掃到使用紀錄(收付)時
會往後多掃N個地址(依各錢包軟體不同)
UTXO花用那些input一般由錢包軟體自動以支出output額度決定不過你會手刻一樣能手刻,input=output(含找回)+fee 就行了
只要你有能力給那些input有效簽章(有用到的地址私鑰)
你花用同地址的兩筆input只要用該地址的私鑰簽章
你花用不同地址的input,要用那些有用到的地址私鑰
某種程度這也是多簽交易,少了一把交易就不成立無法上鍊19F 03/04 19:04
推 DarkerDuck: @wahaha99,UTXO這種顛覆傳統的記帳模式絕對才是
中本聰最大的創見 (PoW也不算是中本聰獨立發明的)
確保隱私性只能算是UTXO最不重要的優點
可以說因為有了UTXO才讓Bitcoin有潛力變成
全球通用的電子現金
*UTXO原生性只能被花一次,所以可以達成零確認支付
https://youtu.be/sZ2aV0Iy8Qk
而account-based則一定要等待確認,甚至是多個確認
以BCH的日常支付來說,三秒等待double-spend proof
就已經非常安全,至於BTC被啥anti-feature搞自行研究*UTXO因為是stateless,對於全球擴容有極大的優勢
礦工不在乎各錢包甚至是各地址的狀態,就可驗證。
因為礦工驗證的是UTXO狀態而不是address或wallet狀態甚至有能力達成硬體化的平行驗證,達成極大的TPS
https://tinyurl.com/45suaaab29F 03/04 19:27
推 wahaha99: 感謝回應...我消化一下
想了一下,stateless做到0確認的前提是用的node可信吧?應該說,要多次確認除了店家怕遇到假帳與雙花,鍊也怕分岔歷史狀態驗證完就丟棄...那不就沒用到區塊鍊了?
只存在於pool的概念?54F 03/05 00:41
→ DarkerDuck: 要做到接受零確認支付的確前提是必須是well-connected而Bitcoin錢包預設就會和多個全節點"同時"連接
通常會是六個,也就是這六個節點必需共謀日蝕攻擊
這難度比連到一個不可信的節點還來的高太多
原始區塊鏈是一種timestamp server的觀念
對於一個已經在線上一直運作的節點而言
已經驗證過的區塊以後就不會再驗證一次
當然沒必要留在硬碟占空間,但是區塊鏈還是會一直增長一直都會有新的區塊需要驗證
而且無論如何一定還是要有一些archieve node
讓一些新加入的驗證節點,有需要的時候可以從頭驗證一定還是會有一些節點儲存完整的區塊鏈59F 03/05 03:13
--