一篇文章讀懂比特幣:區(qū)塊鏈底層技術之交易過程
這篇文章主要和大家介紹下比特幣的交易過程。
比特幣底層技術要點:節(jié)點 / 交易過程 / 區(qū)塊 / 區(qū)塊頭 / 區(qū)塊形成 / 區(qū)塊分叉
比特幣是不存在的
比特幣不存在與任何地方,包括你的電腦硬盤或者其他任何存儲設備。你持有的比特幣也只是擁有比特幣的地址。這樣的一個地址只是充當了一個銀行賬戶,沒有任何一個實物或者某個數(shù)據(jù)文件叫做比特幣。
比特幣的所有交易都存放在巨大的賬本文件中,這個賬本就是區(qū)塊鏈。你的“銀行賬戶”(比特幣地址)的余額,并不是直接存放在地址中,而是計算出來的。
UTXO是比特幣交易的基本單位
先來一張“比特幣之父”中本聰白皮書里的裝逼圖
UTXO(Unspent Transaction Outputs)是未花費的交易輸出,它是比特幣交易生成及驗證的一個核心概念。
到底什么是UTXO?
舉例說明基于賬戶的支付系統(tǒng):
張三有一個余額 100 元的賬戶,李四有一個余額50元的賬戶。當張三要付給李四20元時,做以下操作:
- 檢查張三賬戶余額是否充足,如果不足20元就終止交易,向張三報“余額不足”
- 在張三賬戶里減去20元
- 在李四賬戶里增加20元
舉例說明UTXO的支付系統(tǒng):
張三挖到12.5 枚比特幣。過了幾天,他把其中 2.5 枚支付給李四。又過了幾天,他和李四各出資 2.5 比特幣湊成 5 比特幣付給王五。那么,三人的賬戶變化情況使用UTXO記錄如下:
對比特幣的區(qū)塊鏈賬本來說記錄的只是3筆交易記錄。資金來源就是每筆交易的交易輸入,資金去向就是每筆交易的交易輸出。每一筆交易都要花費(Spend)一筆輸入,產生一筆輸出,而其所產生的輸出,就是“未花費過的交易輸出”,也就是 UTXO。
被斯坦福大學密碼學和計算機安全教授 Dan Boneh 評價為“extremely brilliant”的中本聰?shù)娜齻€偉大創(chuàng)新:一個是區(qū)塊鏈的設計,一個是UTXO,一個是智能合約。
比特幣的私鑰
比特幣的地址是隨機生成的一串字符串,好像一個透明的存錢罐,誰都可以看到。私鑰也是一串保密的字符串,猶如一把鑰匙,只有持有私鑰的人才能打開這個存錢罐。
為什么交易需要等待10分鐘?
比特幣協(xié)議里面設置了挖礦完成的大概時間是10分鐘。所以商家可能會等到你的交易所在的區(qū)塊被確認之后才會給你發(fā)貨。但是也有商家不會讓你去等,基于對你的一個信任,相信你不會在交易沒有得到確認之前有去拿同一筆錢花在別的地方。不過一般這只適用于小額交易。
10分鐘是被中本聰設計的時間,考慮計算并驗證一筆交易后傳播到全部互聯(lián)網(wǎng)需要幾分鐘的時間,為了避免“礦工A和礦工B在不知道對方都計算出結果的情況下同時發(fā)送計算結果”的情況,都假設需要10分鐘才可以完成計算。
?交易過程中的手續(xù)費
目前,很多礦工都不收手續(xù)費。但是隨著每次挖礦成功系統(tǒng)獎勵給礦工的幣不斷減少,未來肯定會有更多的礦工會收取手續(xù)費的。有些錢包可以讓你手動設置手續(xù)費。交易中那部分沒有被對方收到,同時也沒有找零回來的就是手續(xù)費。這筆錢最終會被得到記賬權的那個幸運的礦工所得到。
本文由 @?區(qū)塊鏈老垚 原創(chuàng)發(fā)布于人人都是產品經(jīng)理。未經(jīng)許可,禁止轉載。
題圖來自Pixabay
希望多寫一些東西出來 哈哈