我們曾簡單的了解過比特幣交易過程,并引發了一些新的問題,于是在區塊鏈到底是什么?存儲在哪里了?文章中,我們首先了解了區塊鏈是什么以及如何存儲的。
比特幣錢包是如何幫助用戶完成一筆交易的?
回答此問題,我們需要解答下面兩個問題,便自然了解了。
1.礦工在交易過程中做了什么事?
現實生活中,銀行是一個大的記錄賬本的中心機構(對銀行是個大賬本的比喻如果有不懂的用戶,請瀏覽第一課課后輔導①:區塊鏈到底是什么?存儲在哪里了?)。如果我們用現金進行交易,其實是沒有經過銀行的,也就是說,銀行并沒有把你和別人的現金交易記錄在案。但是一旦涉及到銀行卡轉賬,或者網上銀行轉賬,每一筆交易都會被銀行這個中心大賬本所記錄。
在比特幣的世界里,由于每筆交易都是在網上操作的,并且中本聰在設計整個機制時規定了,如果有交易,就必須要被記錄、被驗證,否則這筆交易無效。所以,每筆交易都需要記錄在案。于是中本聰在設計整個機制時,設立了“接收交易、驗證交易并打包收錄交易”這一角色,我們把這個角色叫做“礦工”。每筆交易都需要礦工來負責記錄,不僅要收錄,還要對這筆交易做驗證。所以,如果不告訴礦工,礦工是不能確認這筆交易的合法性的:
2.錢包是如何把交易信息告訴全球礦工的?
首先,我們需要知道的是,用戶的比特幣并不是一個整體,而是多個地址所保存的比特幣的總額。我們可以把多個地址想象成多個銀行賬號。也就是說,假設張三有13個比特幣,他有8個比特幣存在銀行賬號A中,有3個比特幣存在賬號B中,有2個比特幣存在賬號C中。
接下來,張三在錢包軟件中輸入了10,并輸入了李四的收款地址(收款的銀行賬號),點擊發送時,錢包就知道了張三要發送10個比特幣。然后錢包找到了屬于張三的地址A、地址B、地址C,從地址A中取了5個幣,從地址B中取了3個幣,從地址C中取了2個幣。但是張三只想發10個幣,地址A中最后還剩3個幣,仍然存放在地址A中嗎?
錢包的開發團隊在設計錢包的交易機制時,為避免安全風險,每次交易找零的比特幣,都將找零存放到新地址中。我們可以理解為,錢包為張三新創造了一個銀行賬號D,銀行賬號A中在交易時如果有剩余,則將剩余的比特幣全部存放在銀行賬號D中。
于是有了如下的交易信息:
交易流水單號由錢包自動生成。
接著,錢包將這個交易信息通過互聯網網絡,發給與此錢包鄰近的幾個礦工,礦工驗證交易沒問題后,再發送給與這幾個礦工鄰近的其他礦工,使這筆交易迅速擴散。一會兒的功夫,這筆交易信息便傳播到了全球的各個礦工那里。
后面的流程,在通俗易懂第一課 | 簡單了解比特幣交易過程簡單講解過,某個礦工爭得了將新區塊加入主鏈的權力,順便將此交易打包到新區塊中,廣播給了全球所有礦工,每個礦工將此新區塊記錄在自己的硬盤中,到此,此交易便可以被認為是已被確認的交易了。
新聞熱點
疑難解答