前文提到,比特幣沒有賬戶,比特幣使用UTXO。
UTXO就是找零
UTXO(Unspent Transaction Output):指未花費的交易輸出。
比特幣和基於比特幣的許多協議,都使用UTXO(未花費的交易輸出)來儲存交易和計算出使用者餘額資料。
每筆比特幣交易都有輸入和輸出。
輸入可以是一筆或者多筆。輸出也可以是輸出給幾個地址。
同時,礦工從交易中獲得的費用——交易費。交易費取決於輸入和輸出交之間的差額。
公式如下:
輸入總額 - 交易費 = 輸出總額。
舉個栗子:2019年,愛莉莎要需要花0.8BTC買輛車(往低了想,夏利?往高了想,特斯拉?^_^),如下圖:
左邊是輸入: 0.5 + 0.2 + 0.2 = 0.9 BTC,你從幾個地址,湊了0.9BTC
右邊是輸出: 0.8 + 0.05 = 0.85BTC,其中0.8BTC轉給了4S店,0.05BTC轉入愛莉莎的地址1。
交易費: 總輸入 - 總輸出 = 0.9 - 0.85 = 0.05 BTC
輸出到愛莉莎地址1,未被花費的交易輸出,就是愛莉莎地址1的——UTXO。
再舉個栗子,比如比特幣地址:18gN18dr8hiREYHNHYgfSzQ5HLttDyEzKd
開啟網址:
https://blockchain.info/address/18gN18dr8hiREYHNHYgfSzQ5HLttDyEzKd
然後網頁上方顯示,賬戶餘額是:8筆交易,輸入輸出後,UTXO為0,即無未花費的交易輸出。
找零UTXO,像紙幣,也是不可分割的。就像咱不能把100元撕成兩半,變成2張50元那樣。
但是,UTXO的面額,可以隨意(當然,比特幣的最小單位是聰,UTXO面額只能是聰的整數倍),不像紙幣,只有固定的面額。
用法幣買東西,店家可能會找給你幾張錢,用比特幣交易,區塊鏈會給你一個UTXO。
UTXO,分散到一筆筆交易中,分散到一個個區塊鏈中。
比特幣沒有帳戶餘額,只有被該地址所有者鎖住的分散的UTXO。
全網掃描,該地址的UTXO總和,就是改地址的比特幣總額。
比特幣錢包裡存的是什麼?
錢包,是比特幣生態系統中,一個非常重要的組成部分,主要執行三項重要任務。
1)持有你的私鑰
2)獲得賬戶餘額
3)確定交易費用
比特幣錢包,擁有你的私鑰,並使用它們簽署要傳送的交易。
比特幣錢包,比特幣錢包檢視所有UTXO(未使用的交易輸出), 透過計算UTXOs,得到錢包中比特幣的當前“餘額”。
比特幣錢包,還計算你在交易時,向比特幣網路支付的交易費。
所以,比特幣錢包,不是存的比特幣,而是存的私鑰。
錢包可以分為:
熱錢包:就是連著網生成私鑰,或者連著網執行的錢包。如果你的計算機中了惡意病毒,病毒能截圖或者獲取鍵盤輸入,那麼熱錢包非常不安全。
冷錢包:就是不聯網的錢包。因為不聯網,所以,冷錢包大大降低了被駭客盜取的概率,相對安全。
通常建議,大數目存在冷錢包,小數目存熱錢包。