我們現(xiàn)行的貨幣流轉(zhuǎn)系統(tǒng)里,在互聯(lián)網(wǎng)上發(fā)生的貨幣轉(zhuǎn)移(無論是與我們銀行賬戶可支取紙幣等值的電子化貨幣還是虛擬游戲幣等)都是依賴于一個中心機構(gòu)的,比如銀行、支付寶、QQ游戲運營中心;而要實現(xiàn)數(shù)字貨幣在互聯(lián)網(wǎng)上點對點的直接交易,遠(yuǎn)比我們直覺以為的要困難的多,可以試想下,如果沒有銀行這個中心機構(gòu)為每個用戶核實記錄賬戶資金的變動,那我們?nèi)绾文軌驅(qū)崿F(xiàn)轉(zhuǎn)賬這個行為?甚至如何擁有一個自己的賬戶?
比特幣區(qū)塊鏈則可以理解為一個賬務(wù)系統(tǒng),一段時間內(nèi)的交易信息被打包記入一個數(shù)據(jù)存儲單元(區(qū)塊)中,給這個區(qū)塊蓋上時間戳,一個個區(qū)塊按照時間順序鏈接起來形成一個區(qū)塊鏈賬本。
當(dāng)然,事實上,比特幣區(qū)塊鏈技術(shù)和其運行原理很復(fù)雜,理解它,我們可以先考慮——要實現(xiàn)電子貨幣的點對點傳輸必須解決哪些關(guān)鍵的問題呢?
1. 怎么認(rèn)證交易賬戶的身份?
即你只有證明你是你,你才可以對你賬戶內(nèi)資金進行支配(現(xiàn)行中心化系統(tǒng)中,中心單位通過在其總賬中為用戶設(shè)置賬號和密碼來進行確認(rèn))。
比特幣區(qū)塊鏈系統(tǒng)中,身份認(rèn)證通過一對密鑰完成,每一個賬戶創(chuàng)建時自動生成一對公鑰和私鑰,公鑰對外可見,私鑰僅由賬戶擁有者自己掌握。這對密鑰的特點是,其中一個密鑰加密過的信息,有且僅有另一個與之配對的密鑰才能解密,而且用其中一個密鑰無法推算出另一個密鑰。
交易過程中,支付方A使用私鑰對既定信息進行加密,交易的記錄者可使用公開的A的公鑰對加密內(nèi)容進行解密驗證(如下圖),來判斷其是否為A賬戶真實擁有者。類似地,支付方A用目標(biāo)收款方B的公鑰加密既定信息,收款方B需使用自己的私鑰解密驗證才能獲得收款資格。區(qū)塊鏈中所說的數(shù)字簽名,就是指這樣用唯一匹配的私鑰和公鑰完成加密解密驗證來證明身份的行為。
2. 怎么確認(rèn)一筆交易是不是有效?
其核心在于支付方如何證明自己的賬戶內(nèi)有足夠的資金進行支付(現(xiàn)行中心化系統(tǒng)中,中心單位在其總賬中為每個賬戶設(shè)置余額項,一筆收入之后余額增多,一筆支出以后余額減少,滿足支出額小于賬戶余額便可以執(zhí)行支出)。
比特幣區(qū)塊鏈中的驗證機制比較獨特,并不對支出賬戶的總余額進行查驗,而僅需證明支出賬戶中至少還存在需支出額度即可,比如A需要支出20個比特幣給B則只需要證明——自己的賬戶在歷史交易中曾經(jīng)收到過20個比特幣且這20個比特幣沒有被支出過??墒聦嵣蠚v史交易中不一定有一筆還沒被消耗的收入正好是20個比特幣,如果是存在一筆25個比特幣的收入當(dāng)然也可以,那其交易信息記錄為: