PTT推薦

[閒聊] 還是沒搞懂比特幣如何計算私鑰餘額

看板DigiCurrency標題[閒聊] 還是沒搞懂比特幣如何計算私鑰餘額作者
ripple0129
(perry tsai)
時間推噓16 推:16 噓:0 →:54

一個比特幣私鑰可以產生大量公鑰
公鑰可以產生一堆地址

如果我使用比特幣錢包
基本上我創建一個錢包私鑰
然後用多個不同的地址去收款
錢包是如何加總我所有地址的餘額的?
----
Sent from BePTT on my iPhone 13 Pro Max

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 75.157.229.193 (加拿大)
PTT 網址

MACD03/04 13:09加總是前端做的事

yyhsiu03/04 13:28你自己不是都講完了…加法不就是機器最會做的事

kugwa03/04 13:47你的錢包知道這些地址都是你的啊

kugwa03/04 13:47當然其他任何人都不知道

wahaha9903/04 13:58我對這問題也不太懂 我猜是反正私鑰對這些地址都有控制

wahaha9903/04 13:58能力 所以餘額加總是自己錢包的事 鍊只管這些地址有錢

wahaha9903/04 13:58猜錯請指正

ripple012903/04 14:58不是啊,地址無限多耶,怎麼全部加總

GGylin03/04 15:03交易有限阿 比特幣的區塊鏈 是記錄交易又不是記錄餘額

交易有限,問題是我怎麼知道此筆交易的地址是屬於我這個私鑰的

DarkerDuck03/04 15:13UTXOs set是有限集合

DarkerDuck03/04 15:16https://tinyurl.com/yc476ft8

DarkerDuck03/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

wahaha9903/04 16:41不過除了稍微混淆一下追蹤者外 我是看不出太大意義

wahaha9903/04 16:41畢竟這種交易方式很浪費資源不是嗎

ripple012903/04 17:56問了AI是錢包軟體來整合UTXO

ripple012903/04 17:56XD

now9903/04 18:22畢竟公開帳本,隱匿性也很重要

ofy03/04 19:04是一個助記詞(Seed)能產生一堆公私鑰對,不是一把私鑰一堆公鑰

ofy03/04 19:04HD錢包內部通常會預生成約10~100個地址(公私鑰對)

ofy03/04 19:04你的幣會從這裡加總,當有掃到使用紀錄(收付)時

ofy03/04 19:04會往後多掃N個地址(依各錢包軟體不同)

ofy03/04 19:05UTXO花用那些input一般由錢包軟體自動以支出output額度決定

ofy03/04 19:07不過你會手刻一樣能手刻,input=output(含找回)+fee 就行了

ofy03/04 19:10只要你有能力給那些input有效簽章(有用到的地址私鑰)

ofy03/04 19:13你花用同地址的兩筆input只要用該地址的私鑰簽章

ofy03/04 19:13你花用不同地址的input,要用那些有用到的地址私鑰

ofy03/04 19:15某種程度這也是多簽交易,少了一把交易就不成立無法上鍊

DarkerDuck03/04 19:27@wahaha99,UTXO這種顛覆傳統的記帳模式絕對才是

DarkerDuck03/04 19:28中本聰最大的創見 (PoW也不算是中本聰獨立發明的)

DarkerDuck03/04 19:29確保隱私性只能算是UTXO最不重要的優點

DarkerDuck03/04 19:30可以說因為有了UTXO才讓Bitcoin有潛力變成

DarkerDuck03/04 19:30全球通用的電子現金

DarkerDuck03/04 19:33*UTXO原生性只能被花一次,所以可以達成零確認支付

DarkerDuck03/04 19:37https://youtu.be/sZ2aV0Iy8Qk

DarkerDuck03/04 19:38而account-based則一定要等待確認,甚至是多個確認

DarkerDuck03/04 19:39以BCH的日常支付來說,三秒等待double-spend proof

DarkerDuck03/04 19:40就已經非常安全,至於BTC被啥anti-feature搞自行研究

DarkerDuck03/04 19:42*UTXO因為是stateless,對於全球擴容有極大的優勢

DarkerDuck03/04 19:44礦工不在乎各錢包甚至是各地址的狀態,就可驗證。

DarkerDuck03/04 19:46因為礦工驗證的是UTXO狀態而不是address或wallet狀態

DarkerDuck03/04 19:47甚至有能力達成硬體化的平行驗證,達成極大的TPS

DarkerDuck03/04 19:52https://tinyurl.com/45suaaab

DarkerDuck03/04 19:54https://tinyurl.com/2ncdzvav

DarkerDuck03/04 19:54只要有利益,要讓礦工在TPS上再現算力的指數增長根本

DarkerDuck03/04 19:55小菜一蝶,實在無法想像為什麼現在卡在這邊了

DarkerDuck03/04 19:56而儲存空間也不成問題,前面已經講過礦工只在乎UTXO

DarkerDuck03/04 19:57所以歷史狀態都可驗證完後被丟棄。

DarkerDuck03/04 19:58Bitcoin白皮書第七章: https://tinyurl.com/y6ny6nnh

DarkerDuck03/04 20:01Bitcoin白皮書第八章提到的SPV錢包也必須依靠UTXO

DarkerDuck03/04 20:02現在的web3錢包並非是trustless,他必須有可信的RPC

DarkerDuck03/04 20:02但中本聰提出SPV錢包可以獨立驗證自己的交易是否可信

DarkerDuck03/04 20:03是一種真的可以在客戶端truetless又去中心化的錢包

wahaha9903/05 00:41感謝回應...我消化一下

wahaha9903/05 02:48想了一下,stateless做到0確認的前提是用的node可信吧?

wahaha9903/05 02:49應該說,要多次確認除了店家怕遇到假帳與雙花,鍊也怕分岔

wahaha9903/05 02:51歷史狀態驗證完就丟棄...那不就沒用到區塊鍊了?

wahaha9903/05 02:51只存在於pool的概念?

DarkerDuck03/05 03:13要做到接受零確認支付的確前提是必須是well-connected

DarkerDuck03/05 03:14而Bitcoin錢包預設就會和多個全節點"同時"連接

DarkerDuck03/05 03:15通常會是六個,也就是這六個節點必需共謀日蝕攻擊

DarkerDuck03/05 03:15這難度比連到一個不可信的節點還來的高太多

DarkerDuck03/05 03:19原始區塊鏈是一種timestamp server的觀念

DarkerDuck03/05 03:19對於一個已經在線上一直運作的節點而言

DarkerDuck03/05 03:19已經驗證過的區塊以後就不會再驗證一次

DarkerDuck03/05 03:20當然沒必要留在硬碟占空間,但是區塊鏈還是會一直增長

DarkerDuck03/05 03:21一直都會有新的區塊需要驗證

DarkerDuck03/05 03:21而且無論如何一定還是要有一些archieve node

DarkerDuck03/05 03:22讓一些新加入的驗證節點,有需要的時候可以從頭驗證

DarkerDuck03/05 03:22一定還是會有一些節點儲存完整的區塊鏈