用人話解釋比特幣原理
究竟是什么讓一枚虛擬貨幣的匯率在3年間翻了25000倍,是什么力量讓央行副行長“感興趣”但“不承認(rèn)”,拋開投機(jī)與商業(yè)欺詐比特幣作為一種工具究竟有沒有價(jià)值?歡迎收看今天的走進(jìn)“偽”科學(xué)——用普通人也能理解的話解釋比特幣。
比特幣大熱,北京時(shí)間上周六下午五點(diǎn)多,比特幣網(wǎng)絡(luò)剛剛成交了有史以來***的一筆交易——19 萬比特幣被拋向了市場,按照當(dāng)時(shí)的價(jià)格 5000 左右計(jì)算,一個(gè) 10 億人民幣級的富翁就這樣誕生了,你們隨便感受下。
但是,這篇文章并不是教你如何投機(jī)的,小編也無意慫恿任何人進(jìn)入比特幣投機(jī)市場。請務(wù)必看準(zhǔn)這幾個(gè)大字再繼續(xù)往下閱讀:
比特幣市場風(fēng)險(xiǎn)巨大,投機(jī)請異常謹(jǐn)慎!
好了,該打的預(yù)防針打了,接下來我們談?wù)拢哼@篇文章并不討論比特幣的商業(yè)邏輯,也不討論它是不是騙局,而是將比特幣的原理用通俗易懂、非極客也能聽理解的語言進(jìn)行解釋,讓大家來看看這個(gè)讓央行副行長表示“有特點(diǎn)”而且“很有啟發(fā)性”的電子貨幣究竟是個(gè)啥東西。因?yàn)榭紤]到要做到淺顯易懂的原因,有些地方的解釋并不十分嚴(yán)謹(jǐn),有基礎(chǔ)想要進(jìn)一步研究的同學(xué)可以去看這篇比特幣的原始論文《比特幣:一種點(diǎn)對點(diǎn)的電子現(xiàn)金系統(tǒng)》。
下面,我們就開始走進(jìn)比特幣……
首先,從比特幣的本質(zhì)說起,比特幣的本質(zhì)其實(shí)就是一堆復(fù)雜算法所生成的特解。特解是指方程組所能得到無限個(gè)(其實(shí)比特幣是有限個(gè))解中的一組。而每一個(gè)特解都能解開方程并且是唯一的。
以人民幣來比喻的話,比特幣就是人民幣的序列號,你知道了某張鈔票上的序列號,你就擁有了這張鈔票。
而挖礦的過程就是通過龐大的計(jì)算量不斷的去尋求這個(gè)方程組的特解,這個(gè)方程組被設(shè)計(jì)成了只有 2100 萬個(gè)特解,所以比特幣的上限就是 2100 萬。
到這里為止,比特幣本質(zhì)和挖礦的部分就解釋完了,很扯對吧?憑什么我知道了鈔票號碼錢就是我的?那我把錢花出去了還記著號碼不行么?
不行。
比特幣網(wǎng)絡(luò)是一個(gè)在線系統(tǒng),比特幣本身作為一串?dāng)?shù)(特解)離開了比特幣網(wǎng)絡(luò)一點(diǎn)用處也沒有,這些數(shù)只有放進(jìn)比特幣網(wǎng)絡(luò)里才能正常運(yùn)作。換句話說,在這里將比特幣比作下片的種子,將比特幣網(wǎng)絡(luò)比作下載用的網(wǎng)絡(luò),離開了下載工具,徒留你一大把種子也下不到瀧澤蘿拉不是么?
比特幣網(wǎng)絡(luò)被設(shè)計(jì)成了一種分布式存儲數(shù)據(jù)庫,換句話說,就像你在銀行存了錢,銀行將這些錢拿出去借貸了但是你仍然能夠在你的網(wǎng)銀賬戶里看到錢數(shù),其實(shí)就是銀行在數(shù)據(jù)庫里寫下了你的賬戶金額。比特幣也存在這么一個(gè)數(shù)據(jù)庫,但是這個(gè)數(shù)據(jù)庫并不存在某個(gè)中心的服務(wù)器里而是面向所有人公開:每一個(gè)比特幣錢包都是一個(gè)節(jié)點(diǎn),這些節(jié)點(diǎn)用類似于 BT 下載的 P2P 網(wǎng)絡(luò)相連,現(xiàn)在比特幣錢包安裝后下載的數(shù)據(jù)大約為 7G,記錄著全世界所有人比特幣錢包里的數(shù)據(jù)。當(dāng)然,如果以后發(fā)展比特幣錢包繼續(xù)增大也可以拋棄一些陳舊且無意義的交易細(xì)節(jié)。
為什么要這么做?
還記得比特幣只是一串?dāng)?shù)嗎?為什么能保證這串?dāng)?shù)在同一時(shí)刻只會擁有一個(gè)合法的主人呢?
答案來了:每當(dāng)你發(fā)起一次交易的時(shí)候,都會向整個(gè)比特幣網(wǎng)發(fā)出廣播,內(nèi)容如下:
“我是節(jié)點(diǎn) A,有特解 123,現(xiàn)在要轉(zhuǎn)賬給節(jié)點(diǎn)(錢包)B,你們看好了昂?”
比特幣網(wǎng)絡(luò)里的其他節(jié)點(diǎn)收到這個(gè)信息紛紛與自己的本地?cái)?shù)據(jù)庫進(jìn)行比對,并回應(yīng):
“我?guī)敕匠趟懔讼?,這確實(shí)是個(gè)解,而且我看到了 A 是有 123,B 節(jié)點(diǎn)也存在,我承認(rèn)這筆交易。”
當(dāng)確認(rèn)的節(jié)點(diǎn)數(shù)達(dá)到一定量的時(shí)候(取決于收款方想要有多穩(wěn)妥),交易就成功發(fā)生了。
接下來,越來越多的節(jié)點(diǎn)收到了這個(gè)消息,并且沒有人提出異議,這個(gè)交易記錄就被整個(gè)比特幣網(wǎng)絡(luò)所接受,從此特解 123 成為了 B 錢包里的所有物。
#p#
如果你在交易結(jié)束之后,欺騙本地客戶端,又讓 A 錢包發(fā)出信息:
“我是節(jié)點(diǎn) A,有特解 123,現(xiàn)在要轉(zhuǎn)賬給節(jié)點(diǎn) C,你們看好了昂?”(即之前提到的記人民幣號手法)。
其他節(jié)點(diǎn)收到信息與本地?cái)?shù)據(jù)庫一對比:
“不對,我這寫著特解 123 在 B 手里,不承認(rèn)交易。”
越來越多的節(jié)點(diǎn)拒絕了交易,于是你的交易就失敗了。
挖礦也是同樣的原理,利用大量的計(jì)算力去計(jì)算方程組特解,而你的礦機(jī)程序會先與本地的數(shù)據(jù)庫進(jìn)行對比,發(fā)現(xiàn)自己這里從來沒有這個(gè)特解,于是向全網(wǎng)廣播:
“我是 A,我這有個(gè)新比特幣,叫 234,你們要沒見過我可就收下了?”
之后的原理與交易就相同了。
比特幣網(wǎng)絡(luò)有一定的容錯機(jī)制,可以保證即便是有一定的欺詐者(一直發(fā)發(fā)布虛假信息)和搗亂者(一直拒絕承認(rèn)別人的交易)也不會影響到整個(gè)網(wǎng)絡(luò)的運(yùn)轉(zhuǎn)。
也因此,比特幣雖然是匿名的但是也是完全透明的,只要你想的話,你可以在本地的數(shù)據(jù)庫中追查到某個(gè)比特幣從被發(fā)現(xiàn)之時(shí)起所有交易經(jīng)過的節(jié)點(diǎn)。通過這些交易記錄與那些各大比特幣交易所的市場深度進(jìn)行對比,其實(shí)要人肉某個(gè)賬戶相對來說也是比較容易的。
有人又會問:既然比特幣的算法是開源的,數(shù)據(jù)庫是開放的,網(wǎng)絡(luò)是無人控制的,那么難道不能以舉國之力來“破解”比特幣網(wǎng)絡(luò)么?
知乎上有這么一個(gè)問題:“如果用天河二號做比特幣挖礦機(jī)效果如何?”
簡而言之就是比特幣網(wǎng)絡(luò)中現(xiàn)有的計(jì)算量已經(jīng)非常龐大,即便是讓***超級計(jì)算機(jī)加入比特幣網(wǎng)絡(luò)也不一定能獲得優(yōu)勢,考慮到比特幣的價(jià)格不穩(wěn)定說不定還付不起超算的電費(fèi)。而且在算法上,比特幣保證了當(dāng)整個(gè)網(wǎng)絡(luò)的計(jì)算量提升的時(shí)候運(yùn)算難度也會相應(yīng)的提升,超算加入比特幣網(wǎng)絡(luò)大概也就只能領(lǐng)先一周左右。
還有同樣的來自開源的問題:如果比特幣的算法是開源的,那么怎么能夠保證它的上限只有 2100 萬,為什么不能修改?
誰告訴你不能修改的?當(dāng)然可以修改
比特幣官方客戶端源代碼中這個(gè)文件的第 998 行附近:
- int64_t GetBlockValue(int nHeight, int64_t nFees)
- {
- int64_t nSubsidy = 50 * COIN;
- // Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
- nSubsidy >>= (nHeight / Params().SubsidyHalvingInterval());
- return nSubsidy + nFees;
- }
只要修改那個(gè) 50 就可以增加比特幣上限值,但是問題是比特幣是開源的,標(biāo)準(zhǔn)是開放的,網(wǎng)絡(luò)是沒有中心管理的。“官方”客戶端改了用戶不一定愿意用,第三方客戶端一看用戶不愿意用人家也不跟進(jìn),所以某一家改了這個(gè)數(shù)字一點(diǎn)意義都沒有。除非有足夠大足夠多的節(jié)點(diǎn)統(tǒng)一采用了新上限的客戶端才會導(dǎo)致比特幣網(wǎng)絡(luò)的貨幣存量上限上升。
所以,比特幣的 2100 萬上限不會增加并不是一個(gè)不能的問題,而是一個(gè)大家都不想于是達(dá)不成統(tǒng)一意見的問題(客觀上確實(shí)就是增加不了)。
針對商業(yè)上的邏輯就不好分析了,是不是旁氏騙局仁者見仁,不過比特幣所浪費(fèi)的計(jì)算力確實(shí)是貨真價(jià)實(shí)的浪費(fèi),可不是像 SETI@Home 那樣給什么研究機(jī)構(gòu)做了貢獻(xiàn)。不過因?yàn)楸忍貛潘惴òl(fā)明人中本聰身世撲朔迷離,發(fā)表了開頭的那篇比特幣初始算法和體系的論文之后就人間蒸發(fā)了,也說不定人家是某個(gè)神秘科學(xué)家正在利用大家的計(jì)算量和宇宙未知力量作戰(zhàn)。
不過,有一點(diǎn)到值得一提,現(xiàn)在中美都有金融界的相關(guān)學(xué)者提到了這樣一個(gè)有趣的用途:比特幣的這套系統(tǒng)和算法可以被用來代替現(xiàn)有的 SWIFT 國際資金清算系統(tǒng),它的結(jié)算速度比現(xiàn)有的結(jié)算系統(tǒng)更快速,而且也十分安全可靠(這里是指算法可靠)。
但是,即便真的比特幣算法被當(dāng)作一種新型的國際間結(jié)算標(biāo)準(zhǔn)使用,也不會使用現(xiàn)有的比特幣網(wǎng)絡(luò)來做。就像同樣采用 BitTorrent 標(biāo)準(zhǔn),國內(nèi)的某些下載客戶端可以保證只給自己的客戶端供源而無視其他客戶端一樣。銀行肯定會修改一定的算法作為一種銀行業(yè)專用的私有系統(tǒng)進(jìn)行結(jié)算,現(xiàn)有的比特幣也肯定不會得到這個(gè)新私有網(wǎng)絡(luò)的認(rèn)可,所以和大眾也沒什么關(guān)系,這并不算是一個(gè)十足的利好消息。
再吼一遍:比特幣風(fēng)險(xiǎn)巨大,投機(jī)異常謹(jǐn)慎。
作者:逍遙小妖
感謝 Hi-PDA 壇友 速度七十邁 iamcj 對本文的貢獻(xiàn)。