在區塊鏈技術中,有兩種可能的方法來跟蹤網路中的參與者所擁有的資金。比特幣網路使用的系統是所謂的基於交易的分類賬。我將在另一篇文章中集中討論這個問題。最直觀的使用方式是基於帳戶的分類賬。簡單地說,在這個系統中,每個使用者都有一個具有以下屬性的帳號:
account = {publicKey,Funds}
因此,該帳戶是一個包含使用者及其資金的公鑰的資料集。存在的每個帳戶都儲存在塊鏈中。資金將隨著每一個正在生成的塊而更新。如果一個使用者想要將他的一些硬幣轉移到另一個公鑰,他就會生成一個事務。交易是一個包含以下資料集:
事務 = {發件人、收件人、資金、簽名}
變數傳送者代表資金髮送者的公鑰,而變數接收者代表接收代幣的公鑰。可變基金指的是被轉移的代幣數量。簽名是使用橢圓曲線密碼術生成的,並證明私鑰確實是由傳送代幣的人擁有的。如果您對這個過程不再熟悉,請再次檢視一下了解如何編寫橢圓曲線密碼術。一旦交易資料集位於區塊鏈的最新塊中,資金就會被正式轉移。賬戶分類帳系統中的區塊結構可能是這樣的:
每個事務資料集都包含傳送方的公鑰、接收方的公鑰、所轉移的資金數額和傳送方的簽名。帳戶資料是一個帳戶列表,其中每個帳戶只是一個只包含一個公鑰和資金數額的資料集。
網路中的事務
使用者生成事務後,將該資料集傳送到整個網路,以便對其進行驗證。理論上應該是這樣的。實際情況是一個由完全節點和輕節點組成的網路。這些完整的節點是網路參與者,負責收集事務資料集、對它們進行驗證並將它們新增到它們生成的塊中。輕節點只是網路的使用者,它們傳送和接收資金。因此,產生事務的輕節點將事務資料集傳送到整個節點,然後對其進行驗證。
確認程式要求整個節點檢視簽名是否有效,如果匯款人在錢包中的資金數額足以轉移硬幣。因此,他得到區塊鏈的最後一個塊,並查詢帶有使用者公鑰的帳戶,以檢查自有資金的價值是否至少與所轉移資金的價值一樣高。如果簽名和基金檢查結果為正值,傳送方和接收方的帳戶將被更新,交易將被新增到最新的塊中。在一個實際生成該塊的網路參與者收集了足夠的事務之後,他將該塊傳送給塊鏈中的每個人。其他網路參與者檢查塊中的資料及其有效性。在得到每個節點的接受之後,區塊鏈就會被更新,資金就會被轉移。資金轉移程式見下表。
因此,現在您可能已經瞭解瞭如何使用區塊鏈技術處理加密貨幣的基本知識了。在下面的文章中,我們將編寫一個基於帳戶的分類帳系統。
更多數字貨幣資訊:www.qukuaiwang.com.cn/news