財(cái)經(jīng)365訊(編輯 章馨),今天來說下比特幣的轉(zhuǎn)賬機(jī)制,現(xiàn)實(shí)生活中,我們轉(zhuǎn)賬100元給朋友時(shí),都是先得知道朋友的卡號(hào),然后通過ATM或者網(wǎng)銀等方式轉(zhuǎn)賬。
如果跨行再扣除一定的手續(xù)費(fèi),點(diǎn)擊確定轉(zhuǎn)賬,其實(shí)就是提交到銀行系統(tǒng)的后臺(tái)處理,銀行會(huì)你的賬號(hào)減少100元,對(duì)你朋友的賬戶增加100元。
如果是跨行轉(zhuǎn)賬會(huì)經(jīng)過中央銀行進(jìn)行一次清算,然后對(duì)相應(yīng)賬戶的金額進(jìn)行增加與減少的更新操作。
上面是傳統(tǒng)的轉(zhuǎn)賬行為,里面有一個(gè)關(guān)鍵的概念就是賬戶,但在比特幣的世界是沒有賬戶這個(gè)概念的。
數(shù)據(jù)冗余與雙重支付
也就是說,傳統(tǒng)的轉(zhuǎn)賬邏輯和比特幣的轉(zhuǎn)賬邏輯是完全不同的。
在說明比特幣轉(zhuǎn)賬邏輯之前,我們先思考一個(gè)問題,如果比特幣也使用“賬戶概念”來搭建系統(tǒng)的話,會(huì)出現(xiàn)什么問題?
首先需要一個(gè)數(shù)據(jù)庫來記錄所有人的比特幣余額,每個(gè)人交易都會(huì)更新全網(wǎng)其他人的數(shù)據(jù)表,也就是比特幣余額,那就會(huì)造成數(shù)據(jù)的冗余,對(duì)于一個(gè)去中心化、分布式賬本這是非常不友好的。
再者,我們剛才也談到了每個(gè)人的交易都會(huì)更新其他賬戶的余額,為什么呢?因?yàn)樗苊怆p重支付。顧名思義就是一筆錢被重復(fù)支付兩次。
再一個(gè),我們?cè)谧蛱煲舱f了,比特幣是點(diǎn)對(duì)點(diǎn),沒有類似中央銀行這種權(quán)威機(jī)構(gòu)進(jìn)行記賬,達(dá)成一個(gè)共識(shí)是需要大多數(shù)的節(jié)點(diǎn)的確認(rèn)。
如果在這個(gè)過程中,因?yàn)榫W(wǎng)絡(luò)或者其他原因不能及時(shí)更新每個(gè)賬戶的余額的話,必然會(huì)出現(xiàn)雙重支付。
打個(gè)比方吧,小明從商戶A買一臺(tái)蘋果手機(jī),又從商戶B買了一臺(tái)安卓手機(jī),于是他把這兩筆交易分別告訴了兩個(gè)礦工,于是傳播商戶A的礦工就把這條信息給發(fā)布出去了。
但是,傳播商戶B的礦工因?yàn)榫W(wǎng)速慢,并沒有看到小明與商戶A的交易信息,也發(fā)布了一條交易記錄。這樣就會(huì)出現(xiàn)上面的問題。
我們總結(jié)下,上面的所遇到的問題,數(shù)據(jù)冗余從而導(dǎo)致龐大的數(shù)據(jù)庫以及雙重支付問題。
UTXO(Unspent Transaction Output)
那么比特幣是如何避免上面的問題的呢?我們今天就講一個(gè)概念:UTXO (Unspent Transaction Output),翻譯過來就是未花費(fèi)的輸出。
怎么理解,就是比特幣與傳統(tǒng)消費(fèi)不同之處在于比特幣記錄的是交易過程而非交易結(jié)果。
每筆比特幣的交易都包含交易輸入和交易輸出。交易輸入就是誰付給你的錢即資金的來源,交易輸出就是資金的去向,就是你收到的錢。
你可能會(huì)疑問,既然是我收到的錢那為什么叫輸出?因?yàn)樗皇菚簳r(shí)在你這,你以后還是要花的,所以在你沒花費(fèi)以前他就是未花費(fèi)的交易輸出(UTXO)。
如果花費(fèi)了,他就是真正的輸出了,比如你現(xiàn)在把這筆錢轉(zhuǎn)給我了,那么我的交易輸入就是你了。
我們用場景案例來演示下比特幣整個(gè)交易流程:我通過挖礦挖到10個(gè)比特幣,然后轉(zhuǎn)賬給你3個(gè)比特幣,然后,我們各出資3個(gè)湊足6個(gè)比特幣給小明。那么這個(gè)過程通過UTXO實(shí)現(xiàn)。
比特幣交易遵循兩個(gè)規(guī)則
一是除了coinbase交易之外,所有的資金來源都必須來自前面某一個(gè)或者幾個(gè)交易的 UTXO
二是任何一筆交易的輸入總量必須等于交易輸出總量,等式兩邊必須配平。
圖1是我通過礦機(jī)挖礦從而創(chuàng)建了一個(gè)區(qū)塊,也就獲得記賬權(quán),然后我就將交易輸出的地址寫上我的地址。
圖2,我需要轉(zhuǎn)3個(gè)比特幣給你,但是呢,在比特幣的世界里,挖出來的幣。
數(shù)量就相當(dāng)于一枚硬幣,是沒法拆開來花的,根據(jù)比特幣,每筆交易輸入與輸出配平原則,其實(shí)是直接輸出10個(gè)比特幣,然后你接收了3個(gè),另外的7個(gè)又轉(zhuǎn)給我了。當(dāng)然這個(gè)過程是由比特幣系統(tǒng)去操作的。
圖3就是你和我需要共同給小明6個(gè)比特幣,所以資金來源是你和我,和上面同樣的道理最后再轉(zhuǎn)我4個(gè)比特幣。
總結(jié)一下:比特幣沒有賬戶一說,如果非要說余額的話,余額就是UTXO,如果你把整個(gè)比特幣想象成一個(gè)水管網(wǎng)絡(luò),那么UTXO其實(shí)就是水管中的閥門。更多相關(guān)新聞資訊盡在財(cái)經(jīng)365外匯頻道!