比特幣交易的工作原理

買賣虛擬貨幣
在本文中,我們將詳細討論比特幣交易的工作原理。我們將看到,比特幣交易與現實世界中的交易略有不同。1. 交易通常如何工作?什麼是帳戶/餘額模型?大多數時候,當我們談到交易時,我們習慣於想到帳戶/餘額系統。這意味著系統中的每個使用者都有一個帳戶,每個帳戶都與一個餘額相關聯,該餘額決定帳戶擁有多少錢或數字。

當系統中的一個使用者透過向系統中的另一個使用者傳送金錢來進行交易時,帳戶餘額將被更新。例如,如果A最初有10個比特幣,B有5個比特幣,如果A向B傳送2個比特幣進行交易,A最終得到10 - 2=8個比特幣,B最終得到5+2=7個比特幣。

交易如何在帳戶/餘額系統中運作
2. 什麼是UTXO(未使用的交易輸出)?比特幣使用UTXO(未使用的交易輸出)模型,而不是賬戶/餘額系統。這意味著區塊鏈並不直接跟蹤每個比特幣地址的比特幣餘額。相反,區塊鏈儲存了比特幣交易資料的整個歷史,而比特幣網路跟蹤網路中所有UTXO的集合,稱為mempool或交易池。特定比特幣地址的餘額是透過檢查和求和與該地址相關的所有UTXO來計算。當使用UTXO時,它將從交易池中刪除,這將在計算餘額時反映出來。

一個視覺化的演示如何在UTXO系統中計算平衡
在比特幣中,UTXO是一個離散的比特幣單元,它可以包含任何數量的固定不變值。一個UTXO可以代表0.1個比特幣,1個比特幣,甚至100個比特幣。無論該值本身的大小如何,該值都與惟一的UTXO關聯,UTXO可以透過其id來識別。根據定義,每個UTXO都是交易輸出的結果,並與一個特定的比特幣地址關聯。UTXO的基本特性是它們不能被分解——如果不進行交易處理,就不能將一個UTXO轉換成兩個或更多更小的UTXO。例如,如果A希望支付B 0.5 BTC,但A只有一個包含1 BTC的UTXO,那麼A就不能神奇地將他的UTXO轉換成值為0.5 BTC的兩個UTXO,並且只能透過將其中之一傳送給B進行一次交易。相反,當A將他的UTXO分成兩個UTXO,每個0.5個BTC,A將需要在兩個獨立的交易中使用兩個UTXO:她將傳送一個給B作為付款,另一個給她自己。這個問題將在下一個問題中得到更清楚的說明。
3.比特幣交易究竟是如何運作的?比特幣的每一筆交易都有一些輸入和輸出。輸入是屬於交易傳送方的UTXO,而交易的輸出是分配給接收方的新生成的UTXO。每個UTXO都使用一個鎖定指令碼ScriptPubKey鎖定。這個指令碼確保只有交易的預期接收者才能訪問傳送給他們的比特幣(UTXO)。ScriptPubKey由<PubKeyHash>組成,它是接收方公鑰的雜湊值,與接收方的比特幣地址相關。

比特幣交易的鎖定和解鎖機制。
交易的接收者可以透過使用解鎖指令碼ScriptSig訪問他們的UTXO,該指令碼被UTXO的接收者用來證明他們擁有UTXO中的比特幣。ScriptSig由使用ECDSA生成的使用者比特幣簽名<Sig>和使用者公鑰<PubKey>組成。對<PubKey>進行雜湊,並與ScriptPubKey中的<PubKeyHash>進行比較,以檢查試圖訪問UTXO的使用者是否確實擁有與比特幣地址關聯的公鑰。接下來,將<Sig>與<PubKey>進行比較,以驗證用於生成比特幣簽名的私鑰確實是生成(已正確驗證)公鑰的私鑰。
 只有使用ScriptSig才能解鎖UTXO並將其用作交易的輸入。在生成交易的輸出時,傳送方再次使用接收方的ScriptPubKey鎖定UTXO。因此,比特幣交易是一個鎖定和解鎖UTXO的連續迴圈。4. 我能舉個比特幣交易的例子嗎?我們可以用一個例子來理解比特幣交易是如何進行的。蛋糕買家希望從蛋糕賣家那裡購買一個價值5比特幣的蛋糕。由於買蛋糕的人沒有一個恰好是5 BTC的UTXO,她選擇了2個UTXO來覆蓋5 BTC的價格,生成了5 BTC的輸出傳送給蛋糕賣家,0.5 BTC的變化返回給蛋糕買家。
演示如何在交易中建立和使用UTXOs的視覺化程式。
在交易級別上,蛋糕購買者使用ScriptSig(作為輸入)解鎖UTXO_3和UTXO_5的ScriptPubKey。一旦這樣做,就會生成兩個輸出並使用自己的ScriptPubKey鎖定它們。當蛋糕銷售商想要使用這個UTXO時,他必須使用他的ScriptSig來解鎖它。
買蛋糕的人開啟她以前的UTXO用於消費,並建立新的UTXO傳送給蛋糕銷售者和她自己。
5. 如何向節點廣播交易?對於大多數使用者,沒有必要這樣做。您只需使用一個比特幣walletclient,輸入您希望進行的交易的詳細資訊,然後單擊send。客戶端將為您廣播交易。由於比特幣是一個對等網路,客戶端搜尋傳送交易的對等點(節點)。當它找不到任何對等點時,就回到硬編碼到客戶機的可靠備份對等點列表中。6. 每個比特幣塊可以有多少交易?
每個比特幣塊可能擁有的交易數量取決於該塊中包含的單個交易的型別和大小。最初的塊大小限制是1兆位元組。如果每筆交易都是任意小的,那麼一個比特幣塊可以有任意多的交易。實際上,到2019年1月,每個區塊的平均交易數量約為2100筆。這個數字可能比它應該的低,因為存在著正在開採的空塊。(注:Segwit(隔離見證)是比特幣網路中的一個軟分支,它允許將交易資料儲存在一個擴充套件塊中,允許大於2兆位元組的塊儲存更多的交易資料。截至2019年2月,Segwit交易約佔比特幣交易總額的40%。)結束語在本文中,我們研究了UTXO模型的細節以及比特幣交易的工作原理。在下一篇文章中,我們將解釋比特幣的最後一塊:採礦。我們將看看採礦是如何工作的,以及採礦在比特幣中扮演的角色。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;