標籤:

比特幣 (Bitcoin) 系統是如何運行的?


都寫的太複雜了。

本人從2011年開始關注比特幣,給山寨幣貢獻過代碼,yacoin-p2pool的作者,比特幣協議基本上全都研究過一遍,寫過交易網站,長期跟蹤過silkroad,幾乎見證了大半個比特幣的歷史。

正如《戰爭之王》開頭尤里所說「I"m just gonna tell you what happened.」本篇會用大量的乾貨來描述到底在發生什麼。

比特幣原理

下面開始用簡練的話來介紹比特幣原理:

1.首先你要知道公鑰和私鑰的概念(已經懂的不用看這部分了)

公鑰私鑰是現代密碼學分支非對稱性加密裡面的名詞,通常都是用公鑰加密信息,用私鑰解密信息,為什麼要這樣? 因為你看電視劇的時候,發電報那種都是對稱性加密,這種加密方式缺點是顯而易見的,如果被人知道了密鑰和加密方法,於是按照加密方法反著來就能解密。 一直到非對稱性加密這種情況才有所改觀,公鑰就是可以對全世界公開的密鑰,比如你和google通訊,用google給的1024位的公鑰加密,送到google那裡只有他有對應的私鑰,只有他能解密,於是就保證了通訊安全

2.比特幣主要用了ECDSA,也就是橢圓曲線簽名演算法,這個演算法有兩個特性,注意這兩點對下面至關重要

a.只要知道私鑰,可以算出相應的公鑰;

b.你用私鑰簽名過的東西,可以用公鑰算一下是不是你簽的;

3.知識準備完了,下面開始講比特幣的交易,比特幣其實沒有錢包,只有交易賬單,整個比特幣就是一大堆交易賬單

比如:

賬單1 從A轉到B 轉了XXX比特幣

賬單2 從B轉到C和D 轉了XXX比特幣

賬單3 從C轉到E 轉了XXX比特幣

。。。。

任何人只要下載了客戶端都能接收到從比特幣成立那一天起的所有賬單,所以,只要把所有賬單都下載全了自然知道每個賬戶上應該剩多少錢(這裡仔細思考下)

4.比特幣的賬戶,就是剛才講的一段公鑰

5.下面我開始貼一個比特幣的賬單,這裡是核心部分了!!! 每個賬單都是一段數據,你簽完了以後會發送到全網,把數據結構逆向成易懂的中文解釋如下:

FROM(誰發送的,包括兩部分)

Previous tx: 你要花的這筆錢的那個賬單的id, 也就是說,你花的任何一筆錢都應該有人轉給你過,需要出示那個賬單的id

scriptSig: 你對這筆交易的簽名,就是把單子用你的私鑰做hash,只有你能做這個hash

TO(誰接受,包括兩部分)

Value: 要發多少

scriptPubKey: 對方的公鑰,比特幣賬戶就是一段公鑰

6.等你簽完單子以後,開始往全網發送,怎麼發呢? 比特幣通訊沒那麼複雜,你可以類比成IRC頻道,但和普通的「IRC」不同的是,任何一個客戶端都是一台「IRC」伺服器,當你啟動客戶端的時候,會接收到周圍的有公網IP的客戶端地址,就是「伺服器」列表,這個列表也不斷的刷新,都是其他的比特幣用戶,於是你在這個「IRC」喊一句話的時候,周圍的人會聽到,進而擴散的全世界。

7.把簽單發送到全世界以後,所有收到這個單子的客戶端會效驗你這個單子對不對,比如會效驗你的簽名,是不是你發的,會效驗你是否有那麼多錢(根據歷史交易可以推算出你有多少錢可以花)

如果這個交易大家算過沒問題了,基本上就算轉賬成功了。

8.實際上現在對方已經接受了比特幣,但是要想花的話,他得有那個地址(公鑰)對應的私鑰。於是他就能填下一個單子的 FROM頭部,Previous tx就是剛才這筆交易的序號,scriptSig填用他私鑰簽名過的hash

如此往複。。。

挖礦

然後再解釋挖礦部分,我在極力的簡化整個過程,以方便大家理解,所以上面特地去掉了挖礦、雙花問題(偽造貨幣、同一筆錢花兩次)這些

其實上面那個解釋讀完了就會有個疑問,既然都是交易記錄,那最初的錢是哪裡來的?交易得有原始的那部分錢,那筆錢就是挖礦進來的

挖到礦以後也會得到一個交易記錄的東西,但是FROM那邊很特殊,整個體系也認可這個FROM

另外實際上,賬單是要附著到塊(block)上的 ,賬單發到全網以後,需要全網去計算正不正確

剛才不是說全網一塊算么,比特幣規定,第一個算出來的有獎勵,就是挖礦所得,現在這個獎勵數額是25比特幣,那麼。。。。。

我只用一台pc算是不是太弱了,於是就有了礦機,挖礦這東西的作用就是核算比特幣的交易是不是正確,礦機就是為了比別人算的快

洗錢

很多談論比特幣的人如果不是真的資深,都無法解釋洗錢的問題,而這個問題才是關係到比特幣的本質。 比特幣為什麼能洗錢,這個也是比特幣的特性決定的,在上面我解釋過比特幣的賬單,那個只是1個進(FROM),一個出(TO),實際上比特幣的協議允許無數個進,無數個出,只要FROM的總額等於TO的總額就可以,為了大家更加形象的了解我特地從實際的比特幣交易記錄裡面找了一筆多個FROM多個TO的交易,截圖如下,鏈接見這裡https://blockchain.info/zh-cn/tx/2a93e411d7cc829675d93fe2cd18fe32c89d8833757cede9d27d8fb2485ef968

這些都了解了以後,我們來看這樣一個交易:如果一個從事毒品交易的人A要想賣家B付款,可以搞一個這樣的交易,左邊無數個無辜的人,就一個毒品買家,右邊無數個無辜的人,就一個賣家。

當FBI知道毒品賣家賬戶的時候,要想查源頭,需要追溯無數個無辜的人,挨個去核實他是不是買家,實際情況下,樓上這種交易可以重複幾百次,於是最後想回溯金錢來源變的很困難,因為可能涉及幾萬幾十萬人,這些人又有可能分部在全世界各個國家.............

那有人會疑問,你光在這兒空說,有真的提供洗錢服務的網站嗎? 有! 並且很有名,就是http://blockchain.info這家網站提供的錢包服務的其中一項——shared address(顧名思義,共享地址,公共地址,讓比特幣在公共地址轉一圈,黑的白的攪合一塊)具體可以見他網站的說明: Send Shared - Blockchain.info 中文的報告見:Blockchain 推出Shared Coin 洗幣服務

截止目前為止http://blockchain.info上累計轉賬金額有400多億美金吧,至於這裡面有多少是黑的有多少是白的,其實分不清了,從某種意義上說,投資比特幣的人炒作比特幣的人,就是上面說的「白「的,無辜的人,他們的錢和毒品、軍火、恐怖分子的錢混合一塊再出來,他們其實是其中的一份子。

關於洗錢更多的可以看這篇比特幣(bitcoin)匯總整理。作者也是我,裡面有FBI關於比特幣洗錢的PDF,還舉了一個典型的例子——毒品交易網站絲綢之路(前兩天已經被FBI關閉),以及這網站是具體如何做到匿名的。

賭博

賭博是比特幣的第二大支柱,主要是因為一個網站,SatoshiDICE 翻譯成中文叫「中本聰色子」,這個網站跟彩票類似,但是與以前各種彩票都不一樣的是,他利用比特幣的blockchain研製了一種演算法,使得去他網站下注站方一定是無法作弊的,從演算法上保證了公正性,一定不會出現雙色球黑幕那種事情,所以深受賭徒們的歡迎,而他只收取交易提成。 6月份的數據顯示,這個網站的交易金額佔比特幣所有交易的51%。賭博網站SatoshiDice:2013年6月佔全部比特幣交易量51%

小結

因為有洗錢和賭博這兩個「剛需」在裡面支撐著,比特幣一時半會很難死掉,或者說二級市場上是崩潰了再拉起來,因為裡面有A股莊家,他們是利益集團,會讓比特幣一直活躍,比特幣又能做空,操控起來如魚得水,證監會又管不到他們,所以同樣的伎倆會他們可以一直玩下去。而真正使用比特幣洗黑錢的人根本就是把錢兌換到比特幣黑箱裡面洗完了馬上再兌換出來,整個過程大概不超過幾分鐘吧。

中國人在其中的角色

  • 第一類人,製作礦機,賣礦機的。基本上世界上所有的礦機不管是洋牌子,還是中國牌子,全部是中國製造,比如著名的蝴蝶礦機(BFL)他們就是在中國生產,南瓜張博士更不必說,更有華強北做手機的人,有一陣山寨機沒利潤,手機行業差能過剩,所以很多做手機的把板子一改挖礦去了。
  • 第二類人,礦工。世界上最大的一個礦團在中國,中國區的礦機運算量佔了全世界很大一部分,中國人挖礦有得天獨厚的條件——公家電,還有的人用單位的集群挖礦。
  • 第三類人,做交易網站的。以Bitcoin China-中國比特幣網站(比特幣中國)老闆楊林科為代表,迄今為止,btcchina的交易量已經躍居世界第一,中國區三大兌換商+一家期貨交易商796 Xchange已經壟斷了世界比特幣交易,每天的總交易額大概得有10億到15億,A股工商銀行一天才1-2億人民幣交易額
  • 第四類人,莊家。最近以中國為首的這波比特幣上漲就是他們的作品,這些人來自於A股,他們在A股市場被稱為漲停敢死隊,如此一幫瘋狂的人進入了一個不受監管的市場,後果可想而知,有消息稱德隆系舊部介入比特幣:中國土豪是最大炒家
  • 第五類人,黑客。其中的代表是http://souku.pw/這家網站,11月初此網站開始按條數出售個人信息,基本上輸入你常用的id,馬上能搜出身份證甚至支付寶賬戶信息,此網站就是採用比特幣支付,不過網站開了兩天以後站長可能嚇破了膽,關門大吉。口說無憑,具體可以看:"社工庫"這網站上面的數據怎麼來的?http://www.v2ex.com/t/88317國內90%的比特幣交易者是黑客? 裡面大量乾貨、截圖
  • 第六類人,比特幣長線投資者,以李笑來和神魚為代表,他們長期看多,也不怎麼交易,入場很早,基本都發財了
  • 第七類人,比特幣短線投機者,表現是每天在各大交易網站買入賣出,我在btc-e的交易頻道和這些人交流過一段時間,不過還是無法理解為什麼會有人選擇風險如此大的市場。

未來

崩潰問題

比特幣因為和黑色相關的東西很多,而這些黑色的東西往往因為人性固有的黑暗無法徹底消滅,所以比特幣會長期存在的。比如莊家會靠這個長期盈利,他們的伎倆無非是拉高派發的同時高槓桿做空,比特幣漲他們掙錢跌也掙錢,跌下來收集籌碼再來一輪,一直這麼持續下去,僅此而已(到A股操縱股價會被抓,到這裡如魚得水呵呵), 長期的瘋漲瘋跌又會引來各路媒體的關注,於是又有更多的人入場。 比特幣中國交易平台不知道比特幣是被操控的嗎? 國外最大的交易平台MTGOX不知道比特幣是被操控的嗎? 裡面操盤的莊家會乖乖的退出不再干預嗎? 一些收了錢的媒體會停止報道嗎? 中國的瘋狂投機者會在可以預見的將來變的理性嗎? 這些問題只能呵呵,監管部門不作為才是奇怪的。

暴漲暴跌問題

比特幣的波動問題,原因有幾個:

  • 用戶增加。比如從最近開始,一個是本來非常小非常小圈子裡面的東西突然曝光給幾十億人,任何一個東西耗費了如此多的媒體資源曝光,本身就給比特幣帶來了大量資金。
  • 媒體帶來的新人裡面基本上大部分是投機客,投機客的特點是過分高估比特幣的升值潛力,假如比特幣的真正使用者(比如上面提到的黑市)平均每年增長100%的話,投機客蜂擁而入,有可能會把以後幾年比特幣的增長前景全部透支,吹成10000%,也就是格林斯潘說的泡沫。 在股票市場裡面這叫提前消化利好,等於說現在的比特幣價格已經算進了一段時間以後的增值潛力。這就比如貸款買房透支了今後20年的工資,如果工資稍微斷頓的話會發生什麼?
  • 莊家。這個長期存在,大家都知道有庄,尤其是這波上漲與莊家更是密不可分。
  • 政府的政策影響,尤其是中國,因為中國的比特幣交易量佔世界比例很大,所以自然中國政府的政策對比特幣有重大影響。

我經歷過的比特幣從歷史上從5美元到30美元,再跌到2美元左右,再到90美元,再跌下來,再後來曾經有段時間在橫盤過好幾個月,因為這幾個月實在是新用戶沒增加,新進場也都疲倦了,老用戶一看橫盤也懶得交易,莊家在裡面做波段。再後來的暴漲是媒體大肆渲染、新人大量湧入、莊家操作的幾方面的結果。

所以比特幣不是沒有穩定過,穩定狀態下洗錢的人兌換進去再兌換出來時間應該很短,價格波動影響不是太大。比特幣穩定的前提是:

  • 盤子足夠大,大到沒有任何莊家、任何交易所能夠壟斷住交易, 一個莊家做空,另一個大戶可能持恰恰相反的意見,當盤子足夠大的時候波動1%,其實影響就很大了(例如黃金、外匯、股票、期貨),盤子大1%的波動和盤子小一天30%其實一個味兒;
  • 媒體不會像最近這樣大驚小怪,比特幣的用戶趨於穩定,每天的交易額也維持在一個相對固定的規模上,而不是像現在這樣扔在指數級增長。

要想重新達到一種穩態,目前來說短期內是不可能的:

  • 僅僅是在2011年比特幣中國一天交易量也就是1w人民幣,去年一天也就3000w,而今年一天到過四五億,明年交易量到多少不清楚,明年盤子多大也難以預言;

  • 持有大量比特幣的人仍然很多,可以說比特幣裡面嚴重財富不均,這些人都是潛在的可以讓比特幣暴漲暴跌的人。不過話又說回來了,他們一旦拋出了籌碼,雖然一方面賺到了錢,另一方面也失去了控制權,他們要想繼續炒作,也只能自己去市場上買籌碼,那也有被套的風險;

  • 比特幣衝擊了國家秩序,必然會遭到打壓,在他成熟之前恐怕最大的風險來源於各國政府,而政府採取的策略就很多了,可以禁止交易、可以用大量計算資源攻擊、可以qiang掉比特幣協議,可以讓國家隊進場操控,面對一個國家,比特幣還是很弱的。

通縮問題

你無法阻止更多從A股來的投機者入場,再加上比特幣總量是有限的,長期通縮,所以放在」年「這個時間尺度上來看,比特幣是會漲的,短期則是巨幅波動。 至於要不要投資? 這個看個人喜好了,有的人不喜歡風險,那就餘額寶國債逆回購奏起,有的人實在閑的錢沒地方投資了,可以買一兩頓飯錢的玩玩,但是也得等到市場低迷的時候(和股票一樣,大街小巷都在談的時候,都認為不會跌的時候,都想買的時候,往往是最後的瘋狂)。

可能的藏匿財產問題

由於天朝眾所周知的官員財產問題,比特幣有可能成為藏匿財產的工具,目前但是目前還沒有這個先例,我們拭目以待了。為什麼我會有這個擔憂? 因為有腦錢包這個東西,具體可以自己搜這個關鍵詞,也可以看比特幣教學之:你對腦錢包密碼了解多少 簡單的說腦錢包有如下特性:只要你記住一個特有的字元串(一句詩詞+你的id,你最喜歡的一句話+電話號碼,隨便怎麼寫都行),或者知道一個特殊的文件(比如windows安裝盤最後一個文件),按照這個字元串或者特定的文件的hash值就能生成一個比特幣錢包(一對公鑰和私鑰),這個錢包只有你知道只有你能用。於是對那些攜款逃跑的人來說,再也不用擔心錢放了家裡被抄, 埋了地里被人挖到,攜帶黃金偷渡被地頭蛇敲詐,攜帶鑽石不易兌換,一切只需要記住一句話,於是到世界任何一個角落都兌換出來花掉,你說可不可怕?

被極端勢力運用的問題

最後比特幣最大的疑問是是否會成為恐怖分子的資金來源,一旦此物被新疆的一些極端勢力運用後果不堪設想,所以國家應該長期跟蹤這個東西,儘早擬定監管方案,否則不僅會對金融秩序造成衝擊,恐怕還會引起政治問題。

附錄

很多人關心做空問題,為了大家更直觀的了解比特幣的金融衍生品發展到什麼地步了,截幾個圖。

買多,10倍左右槓桿

賣空,也是10被左右槓桿

比特幣買賣上證指數的股指期貨

買賣IPO發行的比特幣股票

融資融券

據稱該交易所最近打算開展直接的現金匯兌(等於繞過了香港金管局),所以比特幣的問題很複雜,更像是一種不受監管的、高度投機的、帶有洗錢功能的金融衍生品===================================

2014年6月2日更新:

時隔半年基本上此文寫的東西很多得到了印證,包括央行對比特幣的管制措施進一步嚴厲,比特幣價格在無人問津之後又漲到680美元(bitstamp價格,如果mtgox還在的話溢價會更高),這是一個高度投機的遊戲,漲漲跌跌會一直持續下去的,我們拭目以待。


深入淺出比特幣

作者地址:136LvpXuWFRjfuVBCmoqFFGSstbMQkNEKr

在不刪除作者地址,不刪改原文的前提下,本文可在任何形式媒體上自由轉載。(是的,署名都不需要保留)

插播廣告,這是我一年前未完成的項目,實在沒有太多時間搞了,求有興趣的人參與:https://github.com/oxfeeefeee/kaiju

第負一章 反饋

第負一章第一節 風險警示

鑒於有人說這是軟文,作以下聲明:

1.作者目的在於闡述原理,並主觀判斷比特幣作者的本意不在於「騙錢」。但是如果大家認為目前的過分樂觀的宣傳是為了忽悠後來者接盤,我並不否認這種可能性。

2.比特幣隨時可以價值歸零(或者基本歸零) 2013-03-12 IEEE Spectrum: Major Bug In The Bitcoin Software Tests The Community。政府可以隨時宣布比特幣非法。

3.由於比特幣漲跌幅度巨大,我不願意有人因為我的文字買或者沒買而遭受巨大損失,以後如果再答題的話將僅提供純粹信息,不包含任何主觀意見。

4.誰能讓@李笑來 給我發點工資?地址見上。那樣我就名至實歸了。

第負一章第二節 刪節版

鑒於大多數人(包括我在內)認為此文又臭又長,特提供刪節版,希望有所幫助。

function mine()
{
while(true)
{
longestChain = getLongestValidChain()

-- A number that changes every time, so that you don"t waste time
-- trying to calculate a valid blockHash with the same input.
nonce = getNewNonce()

currentTXs = getUnconfirmedTransactionsFromNetwork()

newBlock = getNewBlock(longestChain, currentTX, nonce)

-- http://en.wikipedia.org/wiki/SHA-2
-- and this is what all the "mining machines" are doing.
blockHash = sha256(newBlock)

if(meetReqirements(blockHash))
{
broadcast(newBlock)
-- Now the height the block chain is incremented by 1
-- (if the new block is accepted by other peers),
-- and all the TXs in the new block are "confirmed"
}
}
}
////////////////////////////////////////////////////////////////
function sendBTC(amount)
{
sourceTXs = pickConfirmedTransactionsToBeSpent(amount)
tx = generateTX(sourceTXs, targetAddrs, amount, fee)
signedTx = sign(tx, privateKeysOfAllInputAddress)
broadcast(signedTx)
}
////////////////////////////////////////////////////////////////

第零章 玩具

最近比特幣又火了,而且得到了主流媒體的普遍報道。可惜的是大概一萬個談論比特幣的人中也沒有一個真正懂它是怎麼工作的,於是只要一提到比特幣,什麼龐氏騙局,傳銷之類的話馬上就殺過來了。弄得普及比特幣知識的人一個個都是騙子。要知道比特幣在進入大眾視野之前,是一幫hackers和geeks慢慢養大的玩具,他們絕對不是生長騙子的土壤。

改變世界要從自己做起。所以我今天下定決心,寫一篇讓初中生也看得懂的文章(如果你覺得還是看不懂,絕對不是你智商不夠,而是我無知自大,寫得不好。那些說自己智商不夠的朋友讓我覺得惶恐),來介紹比特幣運行的原理。也許你看完跟我一樣,會佩服其天才的設計:原來他是這樣把「個人發行貨幣」這種荒誕不經的想法變為現實的。

通俗易懂是本文的初衷,同時又希望篇幅盡量小,勢必要忽略細節,或做不精確的比喻,必定貽笑大方,還請諒解,而且歡迎各種批評指正。文中包含了大量比喻,對這部分千萬不要當真。我會用非專業性的語言盡我所能地描述事實真相,但是如果想真正懂得原理,請去官網。當然本文也可以用於研究官方文檔前的預熱。

比特幣是個比較複雜的系統,如果你想10分鐘就弄明白,神仙也辦不到。還希望多開點耐心的預算。

第一章 賬單

第一章第一節 撕紙遊戲

比特幣本質上是一個廣播和管理賬單的系統。也許有點讓人難以相信的是,每個標準客戶端都保存有有史以來每一筆帳單。而且沒有任何特殊結點(伺服器),因而稱之為去中心化的點對點系統。

很顯然帳單必須唯一,那麼在一個點對點的系統中如何能做到這一點呢?想像100個互不信任的人住在一個小島上,他們沒有物理貨幣,只能相互給賬面上錢,並且每給一筆都喊一句讓所有人知道。如果他們每人都可以記帳,顯然就亂套了:當兩個人的帳單對不上號怎麼辦?如果由一個指定的人來記帳,那他又有可能以權謀私。

比特幣怎麼解決這個問提?每個人都可以記帳,把每一筆交易都記在一張牛皮紙上,簽個名。那麼,誰的牛皮紙算數呢?很簡單,所有人都得把這張紙撕成等面積的兩半,讓誤差小於一定值,比如0.1%。如果滿足這個條件,那麼你的就被大家認可,每人複印一份拿回家。什麼?你撕完了發現誤差是0.100001%?對不起,大俠請重新來過。為什麼要撕紙呢,因為紙一分為二形成的那一條線,是獨一無二的,具備了防偽的功能。而撕成誤差極小的兩半,是有「難度」的,沒有難度無法成為遊戲。

沒事幹玩撕紙遊戲幹嘛?因為大家約定,每個人都可以在帳單上添一筆,說「比特島公共基金給本人25元」。你的賬單被判為有效的話,你就得到了這25元。這個撕紙遊戲就叫挖礦,因為遊戲過程就像淘金一樣。

比特幣的挖礦就是用電腦來進行這種撕紙撞大運的遊戲,當前的數據是全絡「撕」61,000,000,000,000次每秒,換句話說大概每61,000,000,000,000 x 600 次嘗試產生一個幸運兒。無疑這需要巨大的硬體和能源,但是如你現在所知,這是維持比特幣這個金融系統必須付出的成本,而不是所謂的「純粹浪費資源」。要明白現實中的金融系統要比這個昂貴得多,一個銀行客服的成本相當於多少台電腦?

第一章第二節 賬單鏈

所有的有效賬單組合在一起,才能成為完整的賬單。怎麼做到這一點呢?每一份賬單都把前一份賬單縮小成1/10,貼在自己的角落上,換句話說每個賬單都知道上個賬單是哪個,一個鏈就形成了。這對玩記賬遊戲的人有產生問題了:假如第123份賬單生成好了,A和B都拿這個作為前一個節點,記賬,撕紙,然後他們幾乎同時撕出了符合要求的賬單怎麼辦?那個稍微慢一點點的(假定是B)怎麼甘心認輸呢?方法很簡單:大眾只認最長的那一條鏈。所以,當一個新賬單生成並被廣播時,每個玩家會立即放棄當前這一局遊戲,拿到最新的賬單縮小成1/10,貼在自己的新的一張賬單的角落上,開始下一輪遊戲。否則就算你撕出了合法的賬單,也會被孤立,變得無效。

明白B是怎麼被淘汰的了嗎?想像這樣一個有趣的無限接力賽遊戲:環形賽道,每一棒一圈,每圈跑完以後你就把棒子插到一個「下一代接力棒生成器」中,生成一大堆下一代接力棒供下一棒的選手們使用。只要你的棒子的下一代被大多數人使用,你就為這一輪的勝者。顯然下一棒的選手們會去拿最早生成的新一代棒子,因而其他的上一棒的選手會自動就放棄。哪怕是由於慣性B也跑到交棒點,然後順手把棒子插到一個「下一代接力棒生成器」中,也是徒勞的。因為大家都已經跑了,再也沒人理會你的接力棒了。

但是如果真的有兩個人同時跑到終點怎麼辦?那也沒關係,下一輪就會有拿著兩種棒子的人跑了。平局的這一輪兩個人如何決勝?你應該也已經想到,「我不比你快,我兒子比你快就行」。在現實挖礦中,這種兩種棒子同時跑的現象是十分常見的,所以礦工每隔一段時間就要經歷一次「空歡喜」。具體可見Orphaned Blocks。

第一章第三節 遊戲規則

記賬是個日常事務,所以礦工每時每刻都在試圖製造合法的賬單。那麼假如我希望每天一份賬單就好,但是這些礦工技術越來越好,玩的人越來越多了怎麼辦呢?沒關係,如果賬單生成得太快,就提高誤差要求,反之降低要求,以達到動態平衡。比特幣的控制目標是十分鐘一個賬單,就是傳說中的一個"Block".

怎麼保證沒有人偽造賬單呢?答案是不能100%保證,但是偽造非常困難。由於賬單鏈的存在,偽造一份賬單必須把從這份賬單以後的所有賬單全部偽造一遍。否則,比如你偽造的是第123份,大眾拿手裡的第124份的複印件中的第123份的縮略圖一對比,會發現撕紙的痕迹不一樣。因而拒絕承認你的合法性。你也無法直接竄改那牛皮紙,因為撕紙遊戲規定一旦有改動,該紙立即作廢。因而那個被大眾所承認的賬單鏈代表的,其實是歷史上所有的最高效的撕紙生產力的總和。你要推翻它就必須拿出比這個更大的生產力偽造一條新的更長賬單鏈,然後指鹿為馬說,你這條鏈才是合法的,因為大眾只認可最長的那一條。

這裡需要註明的是,不是說如果一個人控制了51%的資源的話他就能為所欲為了,他能做的只是把自己曾經花錢的賬單抹掉,或者把自己花出去的某一筆錢的收款人改掉。也就是說他不可能給自己憑空加錢,或者吧別人的賬單改掉。這也是為什麼有很多山寨幣就這樣被攻擊也沒有死掉的原因。

注意,這不是不可能。現實中新一代礦機的製造商完全有這樣的能力,因為他們的生產力是別人的成百上千倍,再加上規模化製造礦機,這個是很容易實現的。但問題是很顯然這背離了他們的利益,這會是對他們自己賴以賺錢的平台的核心機制毀滅性打擊,所以這種事情是不會發生的。

如果對這個還是不放心的話,其實已經有修補這個漏洞的方案,只不過似乎目前並未實施。

第一章第四節 2100萬

如同很多人知道斯諾克滿分是147一樣,很多人最先了解到比特幣的信息之一便是,比特幣總數上限是2100萬。對普通人來說,這就是最大的賣點。而這又是如何實現的呢?其實這個上限就是前面提到的比特島公共基金的總量,通過撕紙遊戲分配給獲勝者。顯然總有一天是要坐吃山空的,怎麼辦呢?兩個辦法。一是往後拖:每四年撕紙的獎勵減半,09年還獎勵50呢,如今13年就只有25了。這麼玩要玩到下個世紀才算瓜分完。二是伸手要:假如你給別人錢的同時,給記賬的一點小費,別人就優先給你記賬,你的交易就較早第得到確認。原作者的假設是,到最後礦工只通過小費獲得收益。

這裡面隱藏的一個重要的信息是,比特島公共基金是通過這個遊戲做了另外一件非常重要的事,把錢分發出去的。發現了吧,記賬和分發貨幣,這兩個最基本的工作,就是由這個巧妙的遊戲完成的。

第二章 支付

第二章第一節 匿名

說了這麼多,其實最根本的問題還沒有聊到,那就是比特島上的人都是沒有名字的,這個賬單要怎麼寫?更重要的是,D 說 D 給了 WM 0.5元,記賬的如何知道 D 的賬戶上有沒有0.5元,又如何記錄 WM 從此多了0.5元錢呢?比特島人是通過「發微博」實現的,神奇吧。

假定 D 的微博號是 188Nxs23XGUonU8og9u6n4CNwr5oqqsVjE(以下簡寫為188N),WM 的微博號是 19XRiapec1aDN4NCJMmLkkp7iXegEQvBGz(以下簡寫為19XR)。只要 D 在微博上發 「我支付給 @ 19XR 0.5元」 就好了。為什麼這句話直接就被判定為真話呢?@羅永浩說自己的ROM比MIUI好,大家都會懷疑他是不是吹牛,但是如果他說自己的ROM比MIUI差,就不會有人質疑他了。同樣的道理如果@188說「@19XR支付給我0.5元」,是不會有人直接採信的,但反之則可。

我們來一個案例分析,其中有三名參與者。除了上文提到的 D,WM 外,再加上微博號為 136LvpXuWFRjfuVBCmoqFFGSstbMQkNEKr(以下簡寫為136L)的比特島居民 DS。DS辛苦挖礦得到25元,然後上交20元給 D, 後來 D 又支付0.5元給WM。

首先是 DS 贏得了某輪的撕紙大賽,那個全島唯一,人手一份的賬單鏈上的最後一份賬單是 DS 生成的。那麼這份賬單上就有一條寫著「比特島公共基金支付 @136L 25元」。(當然如果這位 DS 真名是雷鋒,他就會寫成 「比特島公共基金支付 @188N 25元」,完全把自己的勞動成果奉獻給 D,這也是完全可以的。)

然後 DS 通過微博賬號@136L 發微博說「我支付 @188N 20元」。這時所有礦工們(也就是記賬的)都看到了,要不要記錄在冊呢?他們首先要去查賬單鏈,看看@136L總共收到多少錢,又送出去多少錢,如果其餘額大於20的話,那這筆賬就是有效的,可以記下了。礦工們查完發現@136L 只存在於一筆獲得25元的交易上,餘額就是25元,當前交易有效。

後來 D 又通過微博賬號@188N 發微博說「我支付 19XR 0.5元」。同樣由於根據賬單鏈發現@188N餘額大於0.5元,交易被記錄。

總結一下。 第一,一組微博的用戶名密碼就是承載比特幣的一個容器,所謂的「錢包」就是記錄你所擁有的所有的微博用戶名密碼的文本文件。第二,賬單鏈中保存的全部都是「微博用戶名」,你根本無法知道是誰擁有這些用戶名對應的密碼,這就是所謂的匿名。

但是從另外一個角度看,比特幣又是完全透明的。因為任何一個「微博用戶名」的財富總量都是公開的數據。如果你有興趣可以去觀摩一下高富帥的交易歷史,比如Bitcoin Address 1933phfhK3ZgFQNLGSDXvqCn32k2buXY8a

第二章第二節 點對點

現實生活中比特幣的交易是完全點對點的,不依賴於微博這麼蠢的東西。(事實上任何網站都不是比特幣系統的一部分,不管是官網,還是最大的交易網站mtgox,或者是http://blockchain.info。它們都只是這個生態圈的一部分,比特幣的運轉,不依賴於它們任何一個。)而做到這一點,比特幣用的是數字簽名技術。而且比特幣系統並不會刻意跟蹤某個地址擁有多少錢,而是通過管理每筆交易的輸入輸出來記錄賬目的。

數字簽名比較複雜,比特島人是用不慣的,他們如何操作呢?還是撕紙。我們還是拿 D 給 WM 0.5元為例子。我們先假定 DS 在第1024頁賬單的419條目給了 D 25元。

第一步,WM 隨便拿張紙,隨便撕成甲乙兩半。然後吧其中甲部分交給 D,這半張紙就是一個比特幣地址。

第二步,D 向大眾廣播這樣一封信:「我是第1024頁賬單的419條目的受益方,我要將其中的0.5元轉讓給這半張紙(附上 WM 給他的半張紙)。」

第三步,記賬者收到消息,調出第1024頁賬單的419條目,查看此條目的受益方收到的錢夠不夠,然後驗證次受益方就是本次交易的發起人。全部確認後,則把這則賬目包括這半張紙(或者其複印件)納入賬單中。假定此條目為1984頁1989條。

現在,當 WM 要把錢轉讓給別人時,他就可以拿出他剩下的那張紙的乙部份,證明的收益方是他,因為世界上只有他這半張紙跟1984頁1989條中記載的那半張紙匹配。

再回來看第二步,其實D也是通過提供某張紙的乙部份來證明他是第1024頁賬單的419條目的收益方的。

總結一下,一個交易包含一下信息:

1.資金來源,即前面某個賬單中的某個條目。

2.資金去向,即某張紙的甲部分的複印件,和金額大小。用於指定本次交易的受益方和金額。

3.簽名,即資金來源條目中所副的那張半張紙對應的乙部份的複印件,用於證明此次交易是由資金來源所指向的收益方發起的。

這裡要註明的是,我們假定撕開的紙的甲部分是可以無限重複複印的。而乙部份由受益方持有,且只有從原件複印出來的第一代複印有效,換句話說簽名只有乙部份的持有人才可以做。

實際上在這個例子中,一張紙的甲部分就是比特幣地址,比如我提供的136LvpXuWFRjfuVBCmoqFFGSstbMQkNEKr,而乙部份則是被我嚴格加密保存在wallet.dat中的一個秘鑰,他跟136LvpXuWFRjfuVBCmoqFFGSstbMQkNEKr是一對。而所謂的附上乙部份的第一代複印件,就是利用秘鑰對信息簽名的過程。

換句話說,「我向136LvpXuWFRjfuVBCmoqFFGSstbMQkNEKr打入0.0001BTC」實際的意思是「我把0.0001BTC的控制權交給了136LvpXuWFRjfuVBCmoqFFGSstbMQkNEKr對應的秘密字元串的擁有者」。

第二章第三節 重要的細節

一個典型的比特幣客戶端含有N個地址及其對應的私鑰,而不是一個。而且這N個地址相互沒有什麼特殊關係,只不過在界面上它會顯示所有地址所擁有的比特幣的餘額。這是相對於常見的一用戶名一密碼模式的最大區別。這個帶來的問題是「錢包備份」的問題:別以為備份一次就萬事大吉了,有可能有新產生的地址秘鑰沒有得到備份。當然這樣的備份方法也是有的,這裡只是提醒要安全備份,就不展開說了。

再介紹另外一個有趣的細節。如上文所說,當你把比特幣打給另外一個地址時,你所發出的消是,「我要吧第M號交易的輸出到地址X的一些比特比作為輸入源,輸出給地址Y」。這裡有一個非常重要的規定,就是每筆交易都必須輸入源的金額用光!所以比特幣客戶端的做法是創建一個「找零地址」,把額外的輸入輸出給這個找零地址。舉個例子,假如我的某地址136LvpXuWFRjfuVBCmoqFFGSstbMQkNEKr某次交易獲得了1萬個比特幣,然後當我拿這筆錢中的0.01個幣買一瓶礦泉水時,公眾就會從全局賬單看到地址136LvpXuWFRjfuVBCmoqFFGSstbMQkNEKr打到地址DZA 0.01個幣,同時打到DZB 9999.99個幣。當然公眾無從知道這個DZB只是我的一個找零地址。所以有些搞數據分析的專家看到頻繁的大規模財產轉移就會以為這是刻意的轉移/掩蓋財產,最後發現鬧了笑話。

第三章 沙發 --總結以及FAQ

第三章第一節 主觀臆斷

這一章叫沙發,因為文章主體已經結束了。

相信很多人都搶過沙發,或者是在論壇上搶整。我想問大家一個問題:把時間倒回2009年,當比特幣還一錢不值的時候,你們會去挖礦搶幣嗎?我想我一定會的,原因跟搶沙發類似,但是比搶沙發更有意思:

a. 我所搶的東西是個「好」東西,它好到可以讓人崇拜。正如你會去搶你喜歡的人的沙發。

b. 稀缺,如果沒有總量上限,我就不會去「搶」了。沙發也如此,是限量供應的。

c. 絕對可靠的物權,只要沒有丟掉我的私鑰,我的就永遠是我的,沒人能拿走。

我想,不管當初鍾本聰開發比特幣時,是抱著實驗的心態,還是真的預見到自己要改變世界,對於普通玩家來說,在最初很長的一段時間內,挖礦只是一種優雅的搶沙發的方式,當然也許還有認為它日後真的能生根發芽的一種「信仰」。

總有人問我,比特幣有什麼「實際價值」,一般來說有此會引發一堆關於法幣,黃金或者是「Rai stones」的大辯論。這裡我不想糾纏於這個問題,只想回答另外一個問題:比特幣問什麼有價格?有人想要,可以交換,稀缺這三個要素構成了價格形成的必要條件。可以交換,稀缺是比特幣天生的,那麼」有人想要「這個判斷為不為真呢?當然!我只需要舉出一個例子,那就是我,本文作者。

回到那個虛擬的比特島,如果把世界上的所有人分成兩類,相信比特幣的和不相信比特幣的,然後前者都住在比特島上。那麼,不管在島外的人看起來多麼可笑,對於島上的人來說,比特幣就是黃金。

比特島外的人也是可以持有比特幣的,因為儘管他不承認這種貨幣,但是只要他隨時可以到比特島換回」真金白銀「就可以了。

聽說過那個2010年有人用1萬比特幣買一個pizza的故事嗎?比特幣不是一個突然冒出來的價值上千人民幣一個的怪物。只不過是比特島的人口一直在不緊不慢的增長,比特幣的潛在價值也在不緊不慢地增加,在這個IT時代的參照系中,比特幣發展得沒有你想像的快。但是比特幣的價格並沒有像其潛在價格一樣增長,而經常是積蓄上漲的力量,然後突然像火山噴發一樣,吸引全世界的眼球。

比特幣真的會改變世界嗎?如果你問我而且只能用「會「或」不會「來回答,我的回答是」不會「。正如比爾蓋茨所說「I think it"s a techno tour de force, but that"s an area where governments are gonna maintain a dominate role.(我認為比特幣是個技術傑作,但是政府會在這個[貨幣]領域保持統治地位)」取代法幣是妄想。比特幣的下限是繼續淪為少數人的玩具,上限是成為IT時代的黃金。

以上是主觀臆斷。

第三章第二節 客觀事實

客觀事實是:比特幣不是騙局,所以任何形式的騙局都跟比特幣無關。對我個人而言,說比特幣是龐氏騙局會讓我很難受,就像我本來有個女兒像奶茶妹一樣漂亮卻被人說長得跟鳳姐一樣。

先簡單介紹一下龐氏騙局:我要騙錢,於是我成立了一個基金,但是我並不投資,只是做假賬,跟投資者說我的基金回報又穩定又高。這樣一來我的基金必然會出現越來越大的實際虧空,這沒關係,只要有越來越多的人把錢投入我的基金,我的現金流就不會枯竭,騙局也就不會被拆穿。眾所周知的詐騙500億美元的Bernard Madoff就是因為金融危機才導致其騙局顯形。

說比特幣是龐氏騙局的人認定比特幣創始人 Satoshi Nakamoto(註:沒人知道Satoshi是一個人還是一個組織,而且目前他已經」退出江湖「) 就是 Bernard Madoff。因為Satoshi作為最早的挖礦者之一,是大量比特幣的持有者,所以比特幣升值他就是最大的受益者。因而他就是背後的騙子。這個理論最大的問題在於一個」騙「字。在比特幣的世界,一切都是透明的,騙從何來?任何人如果購買比特幣都是基於自己對公開信息的判斷,Satoshi既沒有也無法跟投資者保證又高又穩定的回報,而這個是龐氏騙局的基本特徵。

任何一個龐氏騙局都有一個死穴,那就懷揣一本假賬。Madoff以前總是以商業機密為由,拒絕透露投資細節。任何一個基金只要將自己的投資流向完全公開,就可以洗脫龐氏騙局的嫌疑了。那麼我想問,如果Satoshi想要洗脫嫌疑,你作為懷疑者想要他公開什麼?他持有的比特幣的數量?好吧,就算他如人們所猜測擁有100萬比特幣,站在鏡頭前像全世界宣布這個事實,那又怎麼樣呢?比特幣就土崩瓦解了?我看不出來為什麼這會對比特幣有什麼致命性的影響。沒有誰騙了誰,沒有陰暗的秘密,騙局無從談起。

現在說說傳銷,比特幣是我見過最滑稽的傳銷了。假如我擁有十個比特幣,那麼我傳銷一個比特幣獲得的收益有多少呢?我們可以大致估算一下:假定傳銷出去一個比特幣給比特幣帶來的升值約相當於銷毀一個比特幣所帶來的,那麼每傳銷出去一個比特幣我持有的每個比特幣大約升值 1/(2100萬)。換句話說,我這是為所有的比特島人搞傳銷,或者說共產主義傳銷。這麼崇高的共產主義傳銷你見過嗎?

傳銷的特點是,每個人*直接*從其下家獲利,比特幣完全不具備這個特點。實際上持有比特幣的人鼓吹比特幣,跟持有黃金的人鼓吹黃金,或者持有北京房子的人鼓吹房價沒有什麼區別。是有點討人厭啦,但是傳銷這帽子扣得大了點。我個人一般都在鼓吹的同時警示風險,表示不懂的話不要玩。

為什麼大家都喜歡說比特幣是騙局呢,並不是因為他們真的通過分析比較,然後從邏輯上得出這樣一個論斷。而是因為他們對比特幣的看法是「沒有實際價值,最後下家買單」。長得這麼反革命,自然就是反革命了,拖出去遊街批鬥!

比特幣長得這麼反革命不是沒有原因的,但是我想把「沒有實際價值,最後下家買單」改成「可能低於實際價值,可能最後下家買單」。對比特幣的惡評,無非是來源於對其巨大的泡沫風險和不確定性風險的反感。是的,查理芒格爺爺說得沒錯」比特幣是老鼠藥「。對於一個不了解它的人,最好把它當做老鼠藥:不要碰!

第三章第三節 結語

比特幣是什麼?本質上,跟HTTP 或者 Bittorrent 一樣,它是基於網際網路的一個協議,一個天才的發明創造。跟HTTP 或者 Bittorrent 一樣,它以互聯網為基礎,使得以前不可想像的事情變成可能。

在現實中,它被說成是一幫無政府主義者的烏托邦,也被說成是人類經濟史上的一次大革命;它被認為是天才的技術創造,也被認為是有很多缺陷的一個開源軟體;它被利用成投資或是投機的工具,也被當做不可接觸的老鼠藥。

由於不同的背景,不同的看問題角度,每個人眼中必然有不同的比特幣。蓋茨說它是技術傑作,而芒格說它是老鼠藥,從某種角度看,他們都能自圓其說。作為鍵人我,唯一的希望是,你看完這篇文章後不要再說比特幣是「騙局」了。這種說法真的顯得很沒文化,你不覺得嗎?

---------------------------------

[更新 2013-8-2]

添加 51%攻擊細節

[更新2013-11-6]

應要求增加Copyfree版權聲明。

[更新2013-11-13]

風險警示

[更新2013-11-22]

刪節版


文章翻譯自Bitcoin: How would you explain bitcoins to a five-year-old?(如何向五歲小孩解釋比特幣)

我從2010年開始就嘗試著如何能夠清楚地解釋比特幣是什麼,下面是一個世界上最簡單的類比:我發現它解決了什麼叫transactions(轉賬事務處理),anonymity(匿名性)和coin production(比特幣生產)者幾個特性。

比如:有個房間是每個人都能進入的,但是這個房間有一個攝像頭在每時每刻地拍著房間里的一切變化,每個人還能查看攝像頭裡的內容。而且攝像頭裡的內容在網上是每時每刻都能查閱到的,而且這個內容永遠不會改變。這個房間里充滿了用透明玻璃製成的堅不可摧的錢罐子(如下圖的小豬,但是錢罐子是砸不破的)。自然,這些錢罐子是有一個小口的,每個人都能看見每個錢罐子里有多少錢,錢罐子永遠無法離開房間。

每個人都有一個鑰匙來打開錢罐子,比如說:我想買一雙襪子,然後你正好想把它們賣出去

首先,你得告訴我房間里那一個錢罐子是你的,然後,我走進房間,帶上一個絲襪面罩(就是劫匪戴的那種),世界上每個人都在攝像頭中看到了我,但是不知道我是誰

接著,我解開了我的錢罐子,拿出了一些比特幣,把比特幣放進了你的上了鎖的錢罐子,然後我離開了房間。

最終,世界上每個人都知道了你的錢罐子里有了之前在我的錢罐子里的比特幣,這就是每次轉賬的過程,所以每個人都知道每個比特幣的歷史。

「所以這些比特幣是從哪裡來的呢?怎麼開始的,誰拿到的第一個比特幣」

在房間里有一個機器人在發放彩票,每過一段時間,這個機器人就隨機地選擇一個在房間里的錢罐子,然後放50個比特幣進去。剛開始時(2011年),房間里沒幾個錢罐子,因為根本沒幾個人知道有這個房間,所以你很容易中獎。現在,房間里有上百萬個錢罐子,所以你中獎的概率越來越小了。

「好吧,那肯定有人能製造出假的比特幣吧」

不可能,因為每個人都有房間里每個比特幣交易的所有記錄,並且他們知道什麼時候機器人會發放新的比特幣,如果一個騙子想要把假的比特幣放進自己的錢罐子的話,每個人都會知道這個比特幣不是機器人發放的,所以其他人不會接受偽造的貨幣

"好吧好吧,那到底是誰製造了這個機器人"

現在,大家認為是一個叫做「中本聰」的日本人製造了這個機器人,但是沒有人明確知道他到底是誰。因為攝像頭是從2009年開始啟用的,我們可以看見那時候在第一天機器人向一個錢罐子里放了一些比特幣,我們假設那個人是中本聰,但是其他的我們就不知道了。

"太瘋狂了"


之前說過要講解區塊鏈和比特幣的原理,開始填坑~

在這個答案下,主要講解比特幣是什麼?它的運行原理是什麼?當然如果你有耐心看到最後,那就最好了,因為我相信看到最後你也會明白區塊鏈的原理以及比特幣與區塊鏈之前的關係。

一、什麼是比特幣

比特幣是一種在網路世界裡的電子貨幣、虛擬貨幣。

而「電子」貨幣跟你手裡的紙幣的區別就是:它沒有實體,它只是計算機世界裡的一串數字。

可能你會說:沒拿到手裡的錢還是錢嗎?我覺得「電子」貨幣根本不能用來買東西的~

但為什麼不能呢?就因為它是計算機世界裡的一串數字,就不能用來買東西了?

這很可能是每個人的直觀感受:一串計算機里存儲的數字,它沒有任何價值啊,我們為什麼要接受它,並把我的有價值的商品給對方?

可是想想你手裡的鈔票吧,它也只是一張普普通通的紙而已,一張紙的實際價值不比計算機里的數字高多少吧~那你為什麼就相信這張紙了呢?

所以關鍵點在這裡:一種貨幣能不能用來買東西,不是它自身的價值決定的,而是你身邊的每一個人是否相信這種貨幣?如果大家都相信這種貨幣,不論這個貨幣是什麼形態的,都可以用來買東西。

與「是否能信任電子貨幣」相對應的是,手裡的紙幣就值得人們信賴嗎?一個國家的紙幣是由這個國家央行發行並提供信用擔保的,也就是由國家確保你手裡的紙幣一定能夠花出去。但是如果國家耍無賴,你手裡的紙幣也會貶值,甚至一文不值。那些提著一塑料袋鈔票才能買到一個雞蛋的國家,是真實存在的。

那麼為什麼大家會相信比特幣?我們在下一章節展開介紹。

延伸閱讀1——石幣之島的故事之一:雅蒲島是在太平洋西部加羅林群島中的一個島,也是密克羅尼西亞聯邦(西太平洋的一個島國)最西的一個州。上面的原著土著居民使用石頭作為貨幣。1903年美國人類學家William Henry Furness在雅浦島上住了幾個月,並把土著人使用石頭作為貨幣的情況記載在他的著作《石幣之島》中。據書中記載,德國政府1898年從西班牙殖民者手中買下這個島嶼,並要求幾個部落的酋長組織修路。但修路對於土著居民完全沒有意義,而德國殖民者許諾給予土著的德國馬克(德國的貨幣)在土著人的眼裡可能只能用來生火(因為那時土著們連擦屁股都用樹葉),所以德國人的命令下達了多遍都無人理睬。後來德國政府研究了雅浦島的文化習俗,突然找到了突破點:他們下令對違抗命令的部落徵稅,徵稅的方式是,派酷吏到每家每戶,把他們最珍貴的石幣上塗上黑十字標記,並聲明這些石幣已經歸的過政府所有了。這個辦法奏效了,所有的土著人都覺得政府搶劫了自己,為了使那些石頭不被搶走,只得乖乖去替政府修路。故事的結尾,路修好了,德國政府就把那些標記抹去了,於是土著們的生活又恢復了自己「富有」的生活。

延伸閱讀2——一個國家貨幣的淪陷:2015年6月,辛巴威央行宣布採取「換幣」行動,從6月15日起至9月30日內,175千萬億辛巴威元可換5美元(對於2009年以前發行的津元,250萬億津元可兌換1美元)。從最早的比美元更值錢,到現在連計算器都按不過來,津元如何一步步成為人類貨幣史上的恥辱?辛巴威是一個礦產資源豐富,土地肥沃的非洲南部國家,於1980年獨立,曾經經濟實力僅次於南非,曾被譽為「非洲麵包籃」。津元最早比美元值錢,1980年獨立的時候,津元與美元匯率為1:1.47。但在2000年時,辛巴威政府推行了激進的土地改革政策,簡單點說就是把白人農場主的土地沒收,然後分配給自己的「黑人兄弟」,致使辛巴威的農業、旅遊業和採礦業一落千丈,經濟逐漸瀕於崩潰。2001年開始,辛巴威政府財政上出現嚴重赤字,為了貼補這種入不敷出的局面,津政府開始大規模印發鈔票,引發的通貨膨脹令人觸目驚心。2006年8月,津央行以1比1,000的兌換率用新元取代舊幣。2008年5月,津央行發行1億面值和2.5億面值的新津元,時隔兩周,5億面值的新津元出現(大約值2.5美元),再一周不到,5億、25億和50億新津元紙幣發行。同年7月,津央行發行100億面值的紙幣。同年8月,政府從貨幣上勾掉了10個零,100億新津元相當於1新新津元(新津元二代)。2009年1月,津央行發行100萬億面值新新津元。於是,一個在2001年,還可以以100比1兌換美元的貨幣,在十年不到的時間裡,就變成要以10的20幾次方比1兌換美元的垃圾。2009年4月,津政府宣布,新津元退出法定貨幣體系,以美元、南非蘭特、波札那普拉作為法定貨幣,以後的幾年中,澳元、人民幣、日元、印度盧比又加入到津國法定貨幣體系。(下圖為面值100萬億的辛巴威元)

二、為什麼信賴比特幣

1、你會相信什麼樣的貨幣?

一種貨幣,如何才能讓大家都信賴它呢?

最重要的一點,當然就是這種貨幣是否可靠!人們對於一種貨幣是否「可靠」的最初認知就是:看得見摸得著。

回想一下你們的長輩,是不是有過「把錢存在銀行不安全,壓在箱底才最安全」的想法?這就是老一輩人對於「可靠」的理解。甚至後來,即便大家開始接受把錢存在銀行中,但老一輩人仍然更傾向選擇更像貨幣實物的存摺,而非銀行卡。他們感覺每月明細清清楚楚打在摺子上會讓人更加放心,而如果是銀行卡,則只能到櫃面讓櫃員幫你查到裡面的內容(那時ATM還少的可憐,更沒有什麼網銀、手機銀行云云)。因此,即便手裡已經沒有鈔票了,即便鈔票已經變為了存摺本上一行行密密麻麻的小字,也要拿在手裡看在眼裡最有安全感。這就是對於貨幣實物的依賴。

但是隨著時代的發展,越來越多的人開始接受看不見的貨幣了。拿到錢先存到銀行是最普遍的做法,而且存摺在很多銀行已經開始退出歷史舞台。通過轉款等非現金交易的方式在大額交易中已經非常普遍,現如今,用手機微信零錢包里的一串數字作為零錢進行支付的方式,大家也已經習以為常了。

為什麼老一輩人覺得「看得見摸得著」更有安全感?因為在哪個年代,只有貨幣在我的手中,才能控制好兩件事情:

1、我手中(收到)的貨幣數量是不可被更改;

2、只有我的授權才能支付;

看得見摸得著=我手中(收到)的貨幣數量不可被更改+只有我的授權才能支付

後來,人們開始逐漸信任銀行,並把「看得見摸得著」的錢存入銀行,這是因為銀行具備保證「我手中(收到)的貨幣數量不可被更改+只有我的授權才能支付」的能力。銀行通過建立龐大的IT系統,存儲每個客戶資金的數據,確保這些數據不被篡改,並通過技術手段確保資金在得到所有者的授權後才能支付。所以在銀行的系統里,通常會有一個存儲了所有儲戶賬戶餘額的表單,我們把它叫做Ledger,即賬本。就像下面這樣:

Ledger告訴了我們,Alice有5.3元,Bob有100元……銀行會投入大量的精力和物力去保證系統中這張表的準確性,確保每個人對應的金額不能隨意的增減。他們建立自己的機房、搭建獨立的網路環境、購買最先進的伺服器、聘請最資深的專家。也正是因此,我們才相信銀行能夠保證Ledger的準確性,於是我們就把錢存到了銀行。

後來,就像相信銀行存儲的Ledger一樣,我們還同樣相信政府存儲的每個人的社保信息,相信支付寶里的餘額信息,相信微信里的零錢信息……

漸漸的,我們的「身家性命」真的全部變成了這些機構伺服器上存儲的一個文件、一串數據。這些機構也在想盡辦法讓自己的數據更加的安全、系統更加健壯,比如:採用各種數據備份機制、採用分散式存儲技術……但即便如此,也偶有災難事件發生。

延伸閱讀3——舊聞兩則: (1)這是《經濟學人》雜誌比較著名的一個故事:2009年宏都拉斯警方衝進了Mariana Catalina Izaguirre家裡並驅逐她離開她住了30多年的家。原因是來自當地政府房屋委員會的資料顯示,該房屋屬於另外一個人,而這個「房主」向法院申請驅逐令,最終 M.C.Lzaguirre女士被迫離開。而等到政府房屋委員會糾正了自己資料上的錯誤時,M.C.Lzaguirre女士的家已經被拆掉了。(2)2015年5月28日11時起,攜程官網及APP無法使用,直至當天23時29分,才全面恢復正常。官方消息是由於刪除了生產伺服器上的執行代碼導致。也有消息表示是由於資料庫數據遭到惡意刪除導致此次事件。

於是人們開始思考一個問題:是否可以有一種不依靠某一家機構的人力、物力、技術能力,而是藉助整個互聯網的力量,為每個人的財富數據提供保障的方案呢?

就這樣,比特幣出現了!

2、比特幣去中心化的存儲機制

與傳統的存儲方案不同,比特幣採用了一種特殊的去中心化的賬本存儲方案。簡單說就是:所有加入比特幣網路的電腦上,都會存儲一份這樣的賬本。

由於賬本存儲在網路的各個節點上,其中一個節點出現問題,還是可以從網路上的其他節點獲取到正確數據的。可以對比一下傳統中心式的存儲體系與比特幣去中心化的存儲體系的區別。

由於這種去中心化存儲賬本的特點,在某一個節點更新賬本數據的時候,就要通知其他節點一起修改賬本記錄。舉一個例子,如果Alice給Bob轉了5個比特幣(BitCoin,也稱做BTC),那麼最初進行這筆轉賬處理的節點,就要把這個處理的情況傳播給臨近的其他節點,然後其他節點再傳播給臨近的節點……直到網路上所有的節點賬本都被更新了。

3、比特幣交易——如何實現「只有我的授權才能支付」

在這種去中心化的環境下,沒有銀行這種機構的統一管理,不需要建立伺服器集群或聘請龐大的維護團隊,所有比特幣的交易業務都是基於預先設定好的程序或演算法,在互聯網上自發生長。

那麼,在這樣一種去中心化的環境中,如何能保證收款和支付的安全性,最終達到「我手中(收到)的貨幣數量不可被更改+只有我的授權才能支付」的目標呢?

首先,來看「只有我的授權才能支付」這一點,比特幣是用「私鑰」和「公鑰」來實現的。

「公鑰」「私鑰」是現代密碼學非對稱性加密裡面的概念,而非對稱性加密又與對稱性加密相對應。對稱性加密中只有一個密鑰,即用來加密又用來解密。比如以前戰爭年代常用一本密碼字典(比如什麼字對應哪本書中的第幾頁第幾個字)把一句話加密為密文。這本密碼字典就是密鑰,可以看出密鑰十分關鍵,如果密鑰泄露,那拿到密鑰的人就可以進行解密。這種加密方式的缺點顯而易見,你要讓對方解密你的密文,就要把這個密鑰也給對方,這樣就極大的增加了密鑰泄露的概率。

這一情況,直到非對稱加密出現後才得到改觀!

非對稱加密中,每個人都有兩個密鑰,一個「公鑰」,一個「私鑰」。「公鑰」是公開的。而私鑰只有自己手裡才有。「公鑰」、「私鑰」的特點可以簡單理解為:用一個人的「公鑰」加密,只能用這個人的「私鑰」解密;而用一個人的「私鑰」加密,只能用這個人的「公鑰」解密。

這樣,就解決了傳遞「密鑰」過程中,「密鑰」泄露的問題。因為如果我想給你一個只有你能看的信息,因為我手裡有你的「公鑰」,而你的「私鑰」只在你手裡才有,因此我只要用你的「公鑰」加密就行了。

比特幣系統就是採用了這一加密方式。但你可能會好奇,比特幣系統里的「私鑰」、「公鑰」機制是怎麼實現的?

簡單來說,比特幣系統讓每個參與交易的人,先隨機產生一個字元串,作為自己的唯一的「私鑰」。然後會通過「私鑰」生成對應的唯一「公鑰」。生成後,「公鑰」在比特幣網路上公開給每個人,而「私鑰」你要自己藏好,不能讓別人知道。由於「私鑰」生成「公鑰」的過程是不可逆的,因此別人即便拿到了你的「公鑰」,也不可能知道你的「私鑰」是什麼。這樣,我們很容易就能實現下面的功能:當別人用你的「公鑰」鎖定一個數據時,只有擁有「私鑰」的人(也就是你)才可能解鎖這個數據。

註:舉個簡單(但不實際)的例子,比如你隨機生成兩個質數(173、881),拼成一個6位「私鑰」173881,我們生成「公鑰」的規則就是將兩個質數相乘173X881=152413。這時網路上的人都會拿到「公鑰」152413。當某個人想讓某個數據只能被你修改時,他可以在這段數據後面加上「公鑰」152413,並聲明,只有私鑰左3位乘右3位等於公鑰的人,才可以修改這個數據。這樣也就只有你能修改這個數據了。 如果,網路上有個黑客想不經你的同意篡改這個數據,即便黑客知道「私鑰」生成「公鑰」規則是兩個質數相乘,他也不知道是哪兩個質數,因此,他只能進行X乘Y的暴力破解找到「私鑰」:001X001,001X002,001X003,002X001,002X002……。當質數很大時這個過程是比較艱難的。 當然上面例子中所使用的規則太過簡單,用計算機暴力破解是可以很快通過「公鑰」找到「私鑰」的。但是比特幣系統使用的橢圓曲線演算法從「私鑰」生成「公鑰」,現有技術手段很難破解。同時,實際的比特幣系統中私鑰解密過程也是很複雜的,是通過一種基於逆波蘭表示法的堆棧執行語言實現的。如果有興趣深入了解,你可以google一下或者翻閱《精通比特幣》一書。

好了,明白了比特幣系統中的「公鑰」和「私鑰」原理後,後面理解起來就會容易很多:

我們把參與轉賬的人變得多一些,假設有3個人,Charles先給Alice轉了5個BTC,然後,Alice又把這5個BTC轉給了Bob。

我們站在Alice的位置進行分析,Alice為何能給Bob轉這5個BTC呢?因為Alice能夠用自己的「私鑰」解鎖這5個BTC。而這5個BTC是如何鎖定的呢?聰明如你一定想到了,Charles給Alice轉帳時用Alice的「公鑰」鎖住了這5個BTC。

而Alice再給Bob轉賬時,又用Bob的「公鑰」把這5個BTC給鎖定了。只有當Bob要用這5個BTC時,才能用自己的「私鑰」解鎖並使用這5個BTC,其他人因為沒有Bob的「私鑰」,是不能動用這5個BTC的。

所以,比特幣系統里很智慧的一點:就是把一個人的「公鑰」當作這個人的收款賬號(或收款地址)。這樣當你在給別人轉賬時,你輸入了別人的收款賬號——也即別人的「公鑰」,比特幣系統會自動幫你把這筆款用那個人的「公鑰」鎖定。這樣這筆錢就屬於他了,將來他必須用他的私鑰解鎖,才能使用這筆錢。這樣也就達到了「只有我的授權才能支付」這一點。

註:其實公鑰到收款地址還需要做一些轉換,本文為了寫得簡單易懂就忽略這些細節了,但是收款賬號與公鑰是有極強的相關性的。

神奇吧,錢並沒有實際握在你的手裡,只是存在於比特幣的網路里,但它就是屬於你!

延伸閱讀4——觸不到的貨幣:《貨幣的禍害》一書里提到這麼一個故事:1932年,法蘭西銀行擔心美國不再盯住金本位(按20.67美元換1盎司黃金的傳統價格用美元兌換黃金),於是要求紐約聯邦儲備銀行將它存在美國的大部分美元資產的轉換成黃金。美國的黃金儲備開始減少,法國的黃金儲備開始增加,美元走軟,法郎走強,並導致了1933年的銀行業恐慌。但事實上黃金並沒有留到法國,仍然在美聯儲的地下金庫里,法蘭西銀行的美元兌換為黃金的形式是將美聯儲銀行底下金庫中美國抽屜中的金塊搬到法國抽屜中。我們再來看看美國這個神秘的地下金庫,從網上查到的資料看,紐約聯儲金庫位於地下25米,比海平面低15米,比紐約地鐵系統還低10米左右。金庫建成近80年來,從未發生過劫持偷盜等案件。進入金庫的正常通道直郵一個鋼門,重達90噸,高度近3米,TNT炸藥也不能傷其分毫。在金庫里,共有122個儲藏間,最大的可以存放近11萬塊金磚,堆起來有3米高、3米寬、5米多長。整個金庫存放的黃金約7000多噸,約佔全球官方黃金儲備2.9萬噸的四分之一。在紐約聯儲金庫里,交易只是換房間,因為很多國家的黃金儲備存放在紐約聯儲地下金庫中,這主要出於兩點考量:一是交易的便捷性;二是運輸造成的安全成本和經濟成本。交易雙方達成交易後,黃金只是從一個帶有編號的房間搬到另一個編號的房間。在金庫中有許多來自世界各地的金磚搬運工,每天的工作就是將金磚搬到車上運到指定的儲藏室,再卸下來碼放整齊。但是,沒有人知道是金磚是從哪國搬到哪國,因為房間上只有編號。看到這裡,你也許已經有個概念了,貨幣的概念一直在變遷,每個場景下都有不同的含義。在一些地方,例如使用石幣的雅浦島,再例如有著地下金庫的美聯儲銀行,貨幣只是一種記賬方式,比特幣等區塊鏈貨幣也是如此。當Alice宣稱她擁有1000枚比特幣,不是說她的抽屜或某個保險箱里安安靜靜的躺著1000枚比特幣,而是說比特幣網路上有1000枚比特幣是屬於Alice的比特幣地址(即用Alice的公鑰加密過的),只有Alice有權動用。(下圖為美國電影《紐約大劫案》[也譯作:虎膽威龍3]中模擬出的地下金庫場景)

看到這裡,我想你應該不介意再趁熱打鐵多了解一些比特幣交易數據結構方面的知識,因為這對你後面知識的理解會很有幫助:)

上面提到,Alice給Bob轉賬,既要用Alice的「私鑰」解鎖,又要通過Bob的「公鑰」加密,因此,比特幣交易的數據結構分為inputs和outputs兩部分:

inputs主要是Alice(這筆轉賬的輸入方,也即」發起方")的信息,主要包括:

ScriptSig——Alice的數字簽名信息,即:Alice的「私鑰」信息的Hash值,這個Hash值里包含了「私鑰」的特徵,是用來「解鎖」用的。(如果你不明白Hash值是什麼,不要緊,在這裡並不關鍵,而且後文會詳細介紹Hash值)

outputs主要是Bob(這筆轉賬的輸出方,也即「接受方」)的信息,主要包括:

Amount——金額

scriptPubKey——用Bob「公鑰」生成的一段鎖定腳本,裡面包含著Bob「公鑰」的特徵,將這筆金額鎖定後,只有含有Bob「私鑰」特徵的簽名信息才能夠解鎖。

你有沒有覺得少點什麼?對了,上面的數據結構里只有Alice的「私鑰」信息,卻沒有Alice的「公鑰」信息,如何能實現對Alice「私鑰」與「公鑰」的匹配,從而實現解鎖呢?

原來,在inputs里,還要有一個交易序號(txn),這個txn代表Charles給Alice轉5個BTC的那筆交易,因為在那筆交易里,Alice是接收方,交易的outputs裡面有Alice的「公鑰」地址。

當Alice使用比特幣時,比特幣系統會從Alice給Bob轉賬的交易中,找到Alice的ScriptSig(相當於是「私鑰」),再通過這個交易里記載的上一個交易的txn,順藤摸瓜找到上一個交易中Alice的scriptPubKey(相當於是「公鑰」),然後進行「私鑰」和「公鑰」的驗證,驗證通過後,Alice才有權使用這5個比特幣,Alice給Bob轉賬的交易才能成功。

講到這裡,你應該已經了解了比特幣系統中,交易數據是什麼樣子。它們絕大多數都是下面這個樣子的:

inputs

txn: 我要轉出的比特幣是從哪筆交易來的?

scriptSig: 用我的「私鑰」生成的解鎖腳本,以便解鎖我要轉出的比特幣

outputs

Amount:我要轉出的比特幣金額多大?

scriptPubKey: 將這筆金額用收我錢的那個傢伙的「公鑰」鎖定

而且你可以通過txn一直追溯下去,一直追溯到這筆比特幣的源頭:

到這裡,又出了個新問題,如果Alice轉給Bob的交易是5個BTC,那這筆交易的上一筆交易一定也必須是5個BTC嗎?

比特幣系統給了你一個很靈活的處理體系,在這個體系下,inputs可以是多筆:

例如下面這個例子,Bob收到了Alice的5個BTC,這5個BTC是由Charles給Alice的3個BTC和Fred給Alice的2個BTC組成的。當然Alice收到的這兩筆轉賬交易一樣有它們之前的交易,Fred給Alice的2個BTC是通過一筆之前的交易得到的(inputs里有一筆交易txn#772...),而Charles給Alice的3個BTC是通過兩筆之前的交易得到的(inputs里有兩筆交易txn#343...,txn#05a...)。

在真實的比特幣網路中,你會看到更為複雜的交易結構,比如下面這筆交易,它是由6筆交易作為inputs。6筆交易總共的比特幣金額是139.616 BTC。接下來,你會發現一個有趣事情,就是這筆交易的outputs對應多個「公鑰」腳本(也就是多個收款地址):一個是收款方「公鑰」信息,一個是你自己的「公鑰」信息。收款方「公鑰」信息的Amount是139.606 BTC,你自己「公鑰」信息的Amount是0.01 BTC。它的意思是:前面匯款給我的6筆交易總共包含139.616 BTC,我只要支付其中的139.606 BTC給收款人,剩下的0.01 BTC用我自己的「公鑰」信息鎖定,也就相當於將剩下的「零錢」轉回給我自己。

看到這裡,你已經了解了比特幣交易的主要特點了。比特幣網路里充斥著這樣數以千萬記的比特幣交易,交易間通過交易序號txn連接起來,通過這些由交易序號串聯起來的路徑,你可以了解你拿到的比特幣從哪來的?要到哪裡去?編織成一個錯綜複雜的支付路徑。

3、比特幣賬本——如何實現「我手中(收到)的貨幣數量不可被更改」

還記得上一節中我們提到的賬本Ledger嗎?

保證「我手中(收到)的貨幣數量不可被更改」也意味著保證賬本中我的賬戶餘額不能被隨意的篡改。這是怎麼實現的呢?

其實,在比特幣系統中,這張Ledger中沒有每個人的餘額,有的只是那幾千萬條交易:

那每個人的餘額怎麼來的呢?是的,就是你想到的最麻煩的辦法,比特幣系統按照每個人的收款地址(相當於每個人的「公鑰」),將這個收款地址下所有的轉入、轉出額度加總,就得到了這個收款地址的餘額了。比如:下面例子中,一個以13kjhfg開頭的收款地址,他的餘額就是這麼一點一點累加出來的~

這樣的賬本下,你的餘額是無法篡改的,或者說,如果你要篡改餘額,那就必須偽造交易。但是從前面的文字,你應該也明白交易與交易之間的關係是多麼的緊密,隨便偽造一筆交易是十分困難的。下面的章節會進一步說明偽造、篡改交易的其它困難~

4、區塊鏈上的交易為何無法偽造或篡改?

1)偽造最近的一筆交易

如果你想偽造最近的一筆交易,那麼很不幸,幾乎是不可能的。

還記得上文我們提到的比特幣交易結構嗎?每一筆比特幣交易都能夠追溯到它的上一筆交易。因此,下面的例子中,當Alice從其他3筆交易中分別收到1BTC、2BTC、2BTC後,將這3筆交易作為inputs,向George發起一筆5個BTC的轉賬時,比特幣系統會先去往Alice收到BTC的3筆交易中,檢查一下Alice是否已經用過這3筆交易中的BTC。只有這3筆交易中的BTC都未曾被支付過時,比特幣系統才認為Alice向George的轉賬是合法的。

「檢查Alice收到的BTC是否被支付過」在比特幣系統中是很好實現的,只要先找一下哪些交易的outputs中含有Alice的地址(這些就是支付給Alice的交易),然後檢查一下它們的交易序號txn是否出現在其他交易的inputs里(確認這些交易是否被支付過)。

但是在全網千萬筆交易的環境下進行這個檢查會很耗時,因此比特幣系統會生成一個未被支付交易索引,隨著每次新交易的產生,這個索引會不斷更新:去掉被支付的交易,加入新的未被支付的交易,並隨著新交易信息傳遞給網路上的每一個節點。所以,實際上檢查「Alice收到的BTC是否被支付過」時,看一下inputs里的交易的txn是否在未被支付交易索引中即可~

另外,前文提到的比特幣系統對於交易inputs和outputs的處理方式,也會保證inputs的金額之和與outputs的金額之和相等,從額保證每筆交易的金額不能隨意篡改。

2)篡改歷史交易

既然上面提到,每一筆交易與它前一筆交易是緊密相關的,因此新發生的交易等於被舊交易牽制著,也就不能隨意篡改、偽造。那你可能有疑問了,那麼我是否可以通過偽造或篡改歷史交易,將整個交易鏈條上的交易全部篡改,從而改變你的交易行為以及你的賬戶餘額?

答案是:不可能的。

要了解為什麼「不可能」,我們需要先學習一個小知識——「Hash函數與Hash值」。

「Hash函數」的作用是將一大段文字內容,按照一定的規則輸出為一個定長的摘要信息,這個摘要信息即「Hash值」。這個「Hash值」只與原來的文字有關,即一模一樣的文字的「Hash值」是一樣的,但只要文字稍做修改,「Hash值」就會變化。由文字生成Hash值的過程是不可逆的,也就是說我只能從文字得到Hash值,但是從Hash值是反推不出代表什麼文字的。

如果你覺得不好理解可以想想一串數字求餘數的過程,比如我們有個很大的數字:231451723794,拿它對3111117相除求餘數,得到餘數174579。我們就可以把174579看成231451723794的摘要。此外,如果這時改動231451723794中任意一個數字,這個得到的餘數極大概率是不一樣的,基本實現了數字與摘要的一對一關係。同時,如果先給你餘數174579,你還原回231451723794是很難的。

當然,上面的求餘數太簡單了,每3111117個數字,餘數就會重複一次。Hash演算法採用了複雜得多的取餘數演算法,以盡量保證兩個不同的文本輸出的Hash值不一樣,並盡量保證Hash值不能反推回原始信息。如果很不幸,兩個不同的文本輸出了同樣的Hash值,這種情況就叫做「碰撞」。「碰撞」是我們不希望看到的情況,因此,Hash函數的演算法也在不斷的更新換代,MD4、MD5、SHA等等都是不同的Hash函數演算法,隨著演算法越來越複雜,「碰撞」的概率越來越低,一次Hash運算處理的時間也越來越長。比特幣採用的是SHA256的Hash演算法。對於SHA256的Hash演算法,我們來看一個Hash函數輸出結果的實例:

可以看到,一句話僅僅多了一個句號,它的Hash值就大相徑庭了。

比特幣系統是如何運用Hash函數的呢?

比特幣系統在進行交易數據存儲的時候,會將交易分組打包存儲(目前一個包的大小為1M,而一筆交易數據至少250位元組,基本上每個包可以容納近千條交易),這個包就是我們常說的區塊(Block)。區塊與區塊之間,會通過每個區塊的特徵參數連接起來,即,每個區塊都記錄了前一個區塊的特徵參數,形成了一種鏈式的存儲結構,「區塊鏈」這個聞名遐邇的詞語就是打這兒來的~

那這個將每個區塊都串聯起來的特徵參數到底是什麼呢?

聰明如你一定猜到了,這就是這個區塊所包含「內容」的Hash值。

一般一個區塊中包含哪些「內容」呢?一是上一個區塊的Hash值,二是一堆交易,三是一個叫做Nonce的變數(Nonce做什麼用的後面的章節會詳細介紹,這裡暫時留下一個懸念)。所以,一個區塊的Hash值,可以簡單理解為對上面三項「內容」求出的一個Hash值。

綜上,生成一個區塊的大致過程基本是這樣的:

a、交易發生後進入計算機的內存,先進行一些基本驗證(比如:這筆交易的input中引用的交易,是否是未被支付過的交易)。若驗證不成功,則交易會被認為是invalid Transaction——無效交易。若驗證成功後這些交易會被認為是Unconfirm Transaction——未確認交易,「未確認交易」會靜靜的躺在內存的有效交易池中等待被裝入區塊中。由於前面提到,比特幣是一種全網記賬的系統,因此這筆交易發生後,也會在全網廣播,周邊的計算機節點接到這筆交易後,也一樣先放入內存,再進行驗證,驗證通過即等待被打包進區塊。

b、比特幣網路中負責發起記賬動作的節點會從內存的有效交易池中,抽取近千筆Unconfirmed Transaction,然後進行打包。打包時,會將上一個區塊的Hash值也加入包中。

c、然後對整個包求Hash值,這個Hash值就是這個區塊的特徵參數。這個特徵參數很重要的,因為後面再生成新的區塊時,還要用到它。

d、由於比特幣是一種全網記賬的系統,因此,當該節點生成新區塊後,整個過程並沒有結束,該節點接下來會發起一次全網記賬。它會將新區塊的數據廣播給周邊的節點,周邊的節點再傳遞給周邊的節點,直到全網都收到這個信息。當周邊的節點收到這個信息後,也開始在本地進行一樣的處理,即:將新區塊數據記錄到本地的電腦中,以確保本地的區塊鏈數據更新為最新的數據。

看到這裡,你會發現一個有趣的現象,比特幣這種鏈式存儲的結構,每一個區塊的Hash值都是由上一個區塊的Hash值決定的,因此,如果你要修改了歷史上的一筆交易,那麼這筆交易所在的區塊數據的Hash值就會變化,那麼引用這個Hash值的下一個區塊的Hash值也要變化,影響一直隨著區塊鏈延伸下去。

現在,你應該明白修改歷史交易的難度了。修改歷史交易並不只是修改幾百筆交易那麼簡單,修改歷史交易,意味著該筆交易後面所有的數據記錄全部出現不匹配的情況。如果你要調整後面所有的數據讓他們匹配起來,這幾乎是一項不可能的任務。

5、比特幣系統運行機制的高階知識——雙重支付風險與防控機制

看完上面的內容,你已經基本對比特幣和區塊鏈的知識有了一定了解。下面的內容就是一些進階知識了,有興趣的讀者可以繼續往下看,有些燒腦但很有意思~

你可能會說,哇,比特幣看似無懈可擊嘛,無法偽造和篡改交易,餘額是每筆交易累起來的,非常的安全。

但事實真的是這樣嗎?其實還有一種特殊的風險,我們慢慢來分析。

我們先來回顧一下一筆交易發生的過程:

比特幣交易發生後,會在自己這個節點進行驗證,並同時在全網廣播,周邊的節點接到廣播後,也開始驗證。一旦交易驗證通過,則更新到各自內存的有效交易池中。

由於在全網廣播的過程中,無法控制先到達哪個節點後到達哪個節點,因此,節點先接到哪筆交易,後接到哪筆交易完全是隨機的。

比如,上面這個例子中,最右下角那個節點就先接到了後發起的交易。

這樣,會存在這樣一種情況:Alice給Bob地址轉賬的同時,又發起了一筆給自己地址的轉賬。

在交易進行廣播的時候,一些節點收到了Alice給Bob地址轉賬的交易,另一些節點收到了Alice給自己地址轉賬的交易。於是,先收到Alice給Bob轉賬交易的節點,會驗證通過Alice給Bob轉賬的交易(因為後面來的Alice給自己地址轉賬的交易,會因為inputs中的交易已被支付給Bob而被拒絕),並放入自己的有效交易池中。類似的,先接到Alice給自己轉賬交易的節點,會驗證通過Alice給自己轉賬的交易,並放入自己的有效交易池中,如下圖。

這時,網路上的節點分為兩個陣營,即Bob陣營和Alice陣營。

現在我們進入下一步,組裝區塊。

Bob陣營的節點會組裝出一個區塊,接到整個區塊鏈的最後;而Alice陣營的節點會組裝出另外一個區塊,接到整個區塊鏈的最後。這樣,比特幣系統的區塊鏈就分叉了,出現了兩條鏈,以哪條鏈為準呢?

按照比特幣系統的運行規則,要以最長的鏈為準

這裡,我們再舉個直觀一些的例子來說明:

最開始,比特幣網路上相安無事,記錄的都是一條統一的鏈條。

在某一時刻,加拿大的節點發現了一個紅色區塊,與此同時,澳大利亞的節點發現了一個綠色的區塊,它們將新區塊接在了鏈條的最末端,各自開始向周圍節點進行廣播,它們周圍的節點逐步都收到了它們的信息。為了形象,我們把加拿大節點的廣播路徑顯示為紅色,把澳大利亞節點的廣播路徑顯示為綠色,可以看到,它們在逐漸把藍色變為自己的顏色。

最終,網路上出現了兩個鏈條。一部分節點記錄著包含紅區塊的鏈,一部分節點記錄著包含綠區塊的鏈。

這時,紅色陣營的節點在不斷的嘗試在自己鏈條(即:末尾為紅色區塊的鏈條)結尾新增區塊,而綠色陣營的節點也在不斷的嘗試在自己鏈條(即:末尾為綠色區塊的鏈條)結尾新增區塊。

突然,綠色陣營位於俄羅斯的節點發現了新的區塊,即粉色區塊,於是這個新節點開始了新一輪廣播。

這次廣播比較有趣,當廣播到綠色陣營的節點,綠節點們很開心的在自己鏈條結尾加上了粉色區塊,而當廣播到紅色陣營的節點,紅節點們則立刻倒戈,遺棄掉自己的紅區塊,而是保留下更長的「綠色區塊+粉色區塊」的鏈條。

如果你的交易剛好在被遺棄的區塊里,那你這筆交易將被重新扔回內存里!

看到這裡你是不是開始有一些擔心了?回到Alice給Bob轉賬買東西的場景。Alice給Bob轉賬的交易被記錄在區塊鏈中後,Bob給Alice寄出了商品。但就在此時,Alice生成了一條更長的包含Alice給自己轉賬交易的區塊鏈,這時,那條包含Alice給Bob轉賬交易的區塊鏈就會被更長的鏈所取代。

而Alice給Bob轉賬的那筆交易,回到內存中後也進不了有效交易池。它會被認為是一筆invalid Transaction,而被遺棄掉。因為,在驗證時會發現,這筆交易inputs里的那筆交易並不是一筆未支付的交易,因為它已被支付給Alice自己。結局是,Bob寄出了物品,卻沒有收到錢~

這就是比特幣里常常提到的雙重支付風險(也叫「雙花」風險)。

為了解決這個問題,比特幣系統就要想出一種辦法,讓Alice不能輕易的製造出更長的鏈條。

這種辦法就是:讓所有的節點計算一道很難的謎題,只有找到答案的節點才有權組裝新的區塊,並發起一次記賬動作。

那麼這道謎題是什麼呢?就是讓新區塊的Hash值小於一個目標值。很難理解吧?來聽我慢慢解釋。

還記得前面章節提到,每一個區塊都會有一個Hash值嗎?而這個Hash值,是通過區塊中的三項內容計算出的:一是上一個的Hash值,二是一堆交易,三是一個叫做Nonce的變數。(講到這裡,Nonce這個變數終於要閃亮登場了!)

每個節點在組包時,節點會不斷的調整Nonce的大小,使得由「1.上一個區塊的Hash值,2.一堆交易,3.Nonce變數」這三項內容組成的文本串發生變化,從而使其對應的Hash值也發生變化~

重點來了,Hash值在不斷的變化,而只有當某次計算出的Hash值小於目標值的時候,這個節點才能宣布自己解出了謎題,並可以發起一次全網記賬動作!而記賬的內容呢?就是以「上一區塊的Hash值、一堆交易、目前的Nonce變數值」等信息組成的一個新區塊。

舉個例子~

一串文本「I am Satoshi Nakamoto」(我是中本聰)如果後面加上一個不斷變化的nonce,那它的Hash值也會不斷的變化:

假設我們要找到的目標值是以0開頭的(即小於10000000....)Hash值,我們發現,當nonce為13時即滿足了條件。而比特幣系統中也是這麼做的:

在上面的例子中,我們會發現很快就找到了答案,這是因為題目太簡單了。如何加大難度呢?找一個00開頭,或者找一個000開頭的Hash值肯定更具挑戰性。而且前面的0越多,謎題也就越難。

在真正的比特幣系統中,目標值通常是一個由多個0開頭的16位數字,這就導致每個節點要進行數以億計次計算,才可以找到滿足條件的Hash。同時,比特幣系統還會調整目標值,以達到控制謎題難度的目的。

其實特別好理解的比喻就是扔骰子,你可以看成是節點們在不斷的扔2個骰子,當扔到小於目標值的數字時就能成功拿到組包記賬的權利。而目標值一開始是12,於是很簡單,只要節點們不扔到兩個6就滿足條件。這時比特幣系統覺得大家玩的太嗨了,要提高一下難度,於是把目標值調整成3了,於是節點們都哭了,因為只有扔到兩個1才能滿足條件~

為什麼要控制謎題的難度呢?因為不斷有新的節點加入到比特幣網路中,解題的節點越多,就越可能在短時間內算出滿足條件的Hash值。於是,比特幣系統就要調整謎題難度,以確保基本每10分鐘才能解出一次謎題。

這種通過解謎題來確立節點組包記賬權的方式,有一個在區塊鏈界響噹噹的名字——工作量證明Proof of Work(PoW)。

所以,在上面的情況下,Alice是不可能迅速形成一條更長的鏈條的。她如果想實現雙重支付,就必須與其它節點賽跑。但是她是不可能贏過其它節點的,因為她只有一個節點~

你可能會說,如果Alice有一台運算速度很快的電腦呢?或者,有1百台、成千上萬台強大的電腦呢?那她也沒有取勝的可能,因為她對抗的是全世界所有的節點~

很明顯,只有當Alice控制了全世界多一半的節點時(如控制了全世界51%的節點),她製造出更長的鏈條的可能性才會更大~這就是一些比特幣相關文章中,經常提到的「51%攻擊」。

6、比特幣系統運行機制的其它知識

其實講到這裡,比特幣系統運行的絕大部分知識就已經介紹完了。下面你看到的一些名詞或短語,是你在看比特幣文章時可能遇到的,所以也在這裡逐一解釋一下。

1)節點

看完上面的文字,相信你對於比特幣系統全網記賬的機制已經有了比較深刻的印象了。在全網記賬的過程中,每個節點在裡面起到的作用就至關重要。上面提到了節點與節點間會進行交易廣播、會進行區塊鏈信息的廣播,節點還可以進行記賬。其實真實比特幣網路中,不同的節點會有不同的功能,下面把比較重要的幾種節點簡單介紹一下:

a.全節點:這種節點會將歷史上所有的區塊數據(包含所有交易)都下載下來,因此,這種節點可以獨立的進行比特幣地址的餘額驗證、交易有效性驗證、歷史交易驗證等工作。由於全節點需要保留比特幣網路上所有的交易數據,因此它會根據網路上廣播的新區塊信息,不斷的新增最新的數據,保證區塊鏈數據處於最新的狀態。由於上述原因,全節點對比特幣交易的驗證是最安全的。我自己安裝的就是這種節點類型的客戶端。但是這種節點的缺點也很明顯,由於需要下載歷史上所有交易數據,這種節點顯得特別笨重。根據我自己的經驗,2013年時全節點大小在幾十個G,最近(2017.8)全節點大小已經達到130G左右。

b.SPV節點:由於移動設備的飛速發展,在手機、Pad等便攜設備上進行比特幣交易的需求越來越旺盛。顯然在存儲空間有限的便攜設備上,無法安裝「全節點」。因此比特幣系統支持一種輕量級的節點客戶端。這種客戶端只會下載區塊的關鍵數據,比如區塊的Hash值,Nonce數值等數據~通過這些數據就可以知道區塊鏈概況。這些關鍵數據只有區塊全量數據的1/1000,因此客戶端會顯得很輕便。但SPV節點的問題是,在進行交易驗證時,必須通過網路從全節點處獲取驗證所需的信息,才可以進行驗證。如果你身邊有黑客建立的偽節點(如受到Sybil攻擊),可能會干擾你的驗證過程。因此,要保證萬無一失的安全性,最可靠的方法還是建立一個「全節點」。

c.礦工節點:前面講到,部分節點要通過大量、不停歇的計算,去爭取組裝區塊及發起全網記賬的權利(上面提到過,這個過程叫工作量證明PoW)。這樣的工作不是每個節點都要做的,而只有礦工節點才會去做。為什麼叫做「礦工」節點呢?因為每次這類節點算出謎題並爭取到組包記賬的權利時,比特幣系統會給這個節點獎勵一定數量的比特幣。這個過程非常像是一個礦工在很費力的挖礦,獎勵的比特幣就是這個礦工挖到的礦。這也是為什麼,有的文章說「挖到1個block,就可以得到XXX個比特幣」,其實它的實際意思是:礦工節點通過不停運算,爭取到組裝1個新block並發起全網記賬的權利後,可以得到XXX個比特幣的獎勵。講到這裡,你也該明白:其實只要控制了51%的礦工節點就可能發起51%攻擊。

註:可能你會好奇,獎勵的比特幣怎麼打入礦工的賬戶的呢?其實簡單來講,獎勵的比特幣也是一筆交易,但這筆特殊的交易沒有inputs,只有outputs。outputs里記錄的就是礦工節點上登記的公鑰地址~所以挖出的比特幣只有礦工節點所有者用自己的私鑰才可以解鎖,這樣就實現了對礦工的獎勵。

上面介紹的是最典型的幾類節點,在比特幣網路上還有礦池節點等其它一些節點,就不做過多介紹了。當然上面幾類節點的功能完全可以搭建在同一個節點上,這取決於節點搭建者具體想用節點來做什麼。

2)比特幣的總量

按照比特幣系統的設計原理,比特幣的發行總數是個定值——2100萬。而比特幣的發行,本質就是對「挖礦」的礦工給予的獎勵資金。因此,「挖礦」的獎勵金額是遞減的,每四年會減半一次,會逐漸趨近於0。

也是因此,比特幣是一種不能隨意增發的貨幣。

3)比特幣的貨幣緊縮

貨幣緊縮不僅體現在上面提到的不能隨意增發。想像一下這樣的情景,Alice的擁有5個比特幣,但有一天,她的電腦完蛋了,硬碟上的數據全部丟失,包括她的私鑰,而且她沒有備份她的私鑰。這意味著什麼呢?她的5個比特幣將永遠無法使用,因為用公鑰倒推不出私鑰,而且其它人也沒有她的私鑰。這5個比特幣將永遠「死」去。

隨著時間的推移,像Alice一樣的人會越來越多,「死」去的比特幣也會越來越多,所以這也將加劇比特幣的緊縮。

4)隨機生成的私鑰

前面講到,每個用戶的私鑰是由比特幣錢包隨機生成的。可能有人會有疑問,這樣隨機生成的私鑰安不安全,會不會我隨機生成私鑰跟別人的私鑰恰好重複了?這個你不用過於擔心,因為,比特幣私鑰是一串很長的文本,理論上比特幣私鑰的總數是:

這是個什麼概念?有人估計過地球上的沙子是7.5乘以10的18次方,然後你想像一下,每粒沙子又是一個地球,這時的沙子總數是56.25乘以10的36次方,仍然遠小於比特幣私鑰的總數。所以在這樣一個龐大的地址空間下,私鑰重複的概率微乎其微。

5)六個區塊的證明

還記得上面提到的,某些特殊的情況下區塊鏈可能分叉,這些情況可能是惡意的雙重支付攻擊;也有可能是碰巧在同一時點,地球上兩個礦工節點同時計算出了小於目標值的Hash值,並同時發起了組包記賬(這種情況發生的概率極低,但確實曾經發生過)。分叉時,比特幣系統會自動選擇最長的鏈條,拋棄短的鏈條。在這種機制下,越新生成的區塊約有可能被拋棄,越早生成的區塊越穩定、越安全。

所以一般在比特幣網路上,會有一條不成文的約定,就是只有你的交易達成並被裝入區塊後,後面又生成了5個新區塊後(加上包含你交易的區塊總共6個區塊),你的交易才是基本安全的。以每10分鐘生成一個區塊的時間來計算,也就是你在交易被確認後1個小時左右才能真正確認你的交易是可靠的。

三、總結比特幣系統是如何運行的

最後,我們來把比特幣系統的運行方式串一遍,也算是一個總結。

1、首先,每個比特幣的用戶會通過比特幣客戶端生成一個私鑰,並通過私鑰生成公鑰(公鑰與收款地址相關性極強,可以簡單理解為收款地址就是公鑰),這等於就是這個用戶的戶頭~別人向這個人轉賬必須輸入這個收款地址。

2、用戶Alice向Bob轉賬時,輸入了Bob的收款地址,也即是用Bob的公鑰將這筆比特幣鎖定了,未來只有Bob才能使用這筆比特幣。

而用戶Alice為什麼能使用這筆比特幣呢?因為,比特幣系統可以追溯到上一筆Charles給Alice轉賬的交易,在那筆交易里,用戶Charles用Alice的轉賬地址,將比特幣鎖定,因此只有Alice使用其私鑰解鎖,才能夠使用這筆錢。

所以比特幣的絕大部分交易都是由inputs(來自),outputs(目標)組成。inputs用來追溯上一筆交易,以便明確轉出者是否有權動用這筆錢,outputs用來進行一次新的加密,加密後只有收款者才能解密並動用這筆錢。

3、交易發生後,將廣播全網。很短的時間內,全網所有的節點會接到這筆交易。接到這筆交易後,每個節點會先把交易放入內存,然後對交易進行合法性檢驗,檢驗通過後,這筆交易進入有效交易池,等待被裝入區塊。

4、與此同時,網路上面所有的礦工節點,正在瘋狂的計算著謎題。謎題的解題方式就是:將有效交易池裡的近千筆交易(TX0,TX1,TX2...),上一個區塊的Hash值,Nonce參數組合成一個文本,然後計算這個文本的Hash值。通過Nonce的不斷變化,計算出的Hash值也會不斷變化。

直到當某一個節點成功計算出小於目標值的Hash值,這個節點就解答出了謎題,並有權將計算Hash值所使用的信息組裝成一個新區塊,記錄在自己的硬碟上,並發起一次全網記賬。

周圍的節點在收到廣播的消息後,也都記錄下這個新區塊。

5、由於礦工節點每次都會使用含有上一個區塊Hash值的文本來計算當前區塊的Hash值,因此,每一個區塊都有上一區塊的基因,這使得區塊們串成了一個牢不可破的鏈條。

如果篡改某一區塊中的某一交易,那麼其後所有的區塊數據都無法匹配了。也就形成了區塊鏈不可篡改的特點。

6、比特幣系統就這樣周而復始的更新著自己的區塊鏈條,不斷的進行全網記賬,不斷的運行下去。

結語:

我從2011年開始接觸比特幣,還記得2013年自己買了一塊兒板卡,註冊到礦池挖礦的情景(當然好景不長,幾個月板卡就燒掉了~)。後來逐漸專註於比特幣技術原理。很早就關注這個話題,很早就希望在這裡把自己的所學所想與大家一起分享,但工作繁忙一直沒有時間起筆,直到6月份抽出時間開始寫起這篇答案。本來以為很快就能寫完,結果斷斷續續寫了兩個月。一些概念之前覺得挺明白的,但真要寫出來又模糊了,於是又翻了幾遍《精通比特幣》,鞏固了一下自己的知識。所以寫這篇答案對我來說也是收穫滿滿。

這篇答案個人認為還是比較容易讀懂的,但是篇幅有些長,所以如果你沒有耐心一次看完,可以收藏起來慢慢研究。個人認為答案中已經把比特幣的一些重要的概念都講到了,而且也算講的比較深入。答案中的很多配圖來自於一個叫做《How Bitcoin Works Under the Hood》的視頻(有一些配圖是我結合這個視頻的截圖及網路圖片自己製作出的動畫,希望您能喜歡)。這個視頻我認為也是快速、全面了解比特幣的一個很好的讀物,如果您感興趣也可以看看。在答案中,我根據自己的理解將視頻的一些講解順序做了調整,並以自己的敘述方式講解出來,以方便大家更好的理解「比特幣系統是如何運行的」。最後,感謝大家閱讀了這麼長的一篇文章~

(完)

我的公眾號:金融極客(Finance_Geek)

更新比較慢,最近有點荒廢了-__-||| 不過我會振作起來的!

我的比特幣地址:1P9hxaoznbwiKJiaLEsfpPEnffyoW9vU37

其他一些推薦的通俗易懂類答案,感興趣的朋友可以閱讀:

作為一個非金融從業者怎樣才能看懂電影《大空頭》? - GRAYLAMB 的回答 - 知乎

如何通俗易懂地解釋「協方差」與「相關係數」的概念? - GRAYLAMB 的回答 - 知乎

關於外匯標價方法的定義,直接標價法到底是什麼? - GRAYLAMB 的回答 - 知乎

如何淺顯易懂地解說 Paxos 的演算法?

GRAYLAMB:債券屬性「久期」的本質是什麼?


@王洋子豪 發了英文版,湊巧我手裡有壹比特雜誌,其中有中文版的,就拍了照傳上來。

—————————————————————————————————————————

修改:

翻譯者回復了我,找到了清晰的圖,就傳上來了!!

感謝@rockxie 的翻譯!!!!


比特幣基礎課程一——從基礎概念搭建理解比特幣

原創 2016-08-22 黃世亮 閃電HSL

第0章 引言

比特幣是由一系列概念和技術作為基礎構建的系統。本系列文章希望通過描述這些概念和技術來講清楚比特幣是什麼。

第一課先講比特幣里涉及到的最基礎的概念。

第1章 什麼是P2P網路

P2P網路(peer-to-peer,簡稱為P2P),又稱為對等式網路,也叫說點對點網路。這是一種無中心伺服器、完全由客戶端交換信息的互聯網體系。

有中心伺服器的中央網路系統可以用下圖來描述:

而P2P網路,可以第二張圖來理解。

和有中心伺服器的中央網路不同的是,P2P網路的每一個用戶端即是一個客戶節點,又具有伺服器的功能。P2P網路的一個重要的目標就是讓所有的客戶端都能提供資源,包括帶寬,存儲空間和計算能力。這種網路的容量可以遠超過有中心伺服器的網路。中心伺服器結構的網路你每增加一個客戶端,就意味著所有用戶的數據傳輸速度要降低,而P2P網路不會。

P2P網路的健壯性也遠超過中央伺服器結構的網路。因為只要中央伺服器出現問題,那整個網路就崩潰了。而P2P網路任意客戶端出現問題,整個網路照樣正常工作。

比特幣系統就是一個P2P網路系統,我們先記下這個概念。

第2章 什麼是分散式計算

我們知道計算一個簡單的數學問題,比如1+1等於幾,用一台電腦就夠了。但如果要計算一個超級複雜的問題呢?這可以使用多台電腦一起來運算,而如果這些多台電腦都處在互聯網上,那它們如何相互鏈接?如何傳遞消息和通信?如何協調各自的任務和分工?這些問題就是分散式計算系統要解決的事。

分散式系統是一系列電腦,通過網路相互鏈接傳遞消息與通信後並協調它們的行為而形成的系統。電腦之間彼此進行交互以實現一個共同的目標。把需要進行大量計算的工程數據分區成小塊,由多台計算機分別計算,再上傳運算結果後,將結果統一合併得出數據結論的科學。

因為計算能力超強的超級計算機實在是太昂貴了,世界上很多非常複雜的科學問題,就是通過分散式計算來完成的。比特幣就是其中之一。

第3章 什麼是比特幣

比特幣本質上就是一個分散式的P2P網路系統。它由一系列電腦(或其它計算設備)相互連通構成一個P2P網路。每個電腦上都裝有一系列的軟體,這些軟體就構成一個分散式計算系統,用於協調這些電腦完成相互鏈接、相互傳遞消息和通信、協調各自的任務和分工。最終這些電腦彼此交互要實現一個共同的目標——維護一套資料庫的完整和更新。

這套資料庫就被稱之為比特幣區塊鏈,而這套被稱為區塊鏈的資料庫記錄的內容就被我們當成貨幣來用。這和我們使用的網銀是銀行里記錄的資料庫是一個道理。

從狹義上說比特幣就是一貨幣,可以用來儲存和傳輸價值。而在廣義上講比特幣是一種P2P網路、是一種分散式計算系統。這套系統除目前應用最廣泛的就是貨幣,當然它還有其他功能或者說表現形式。

第4章 一個簡化的比特幣系統模型

想像這麼一個場景,有一個村莊有10個人,每個人都有一台電腦。這些電腦里都存在全村所有人的資產賬本,張三有多少錢、李四有多少錢……。這套賬本還詳細記錄了所有人的資金流動記錄,張三在某個時間點給了李四多少錢、李四在某個時間點給了王五多少錢……。

現在的問題是,每個人都完全控制自己的電腦,每個人都可以自由修改自己電腦里的賬本里記錄,比如張三可以給自己的賬戶上加幾個零。而且全村又沒有一個絕對的權威來仲裁誰作弊了。

那在這個場景中,如何將這10台電腦聯成一個對等網路,並且通過一套分布計計算的系統讓每一台電腦真實記錄全村的資金流動和各個村民的資產,並且達到以下要求:

  1. 一個人的賬戶向另外一個人發送了資金,所有電腦都能及時更新賬本,並保持一致;
  2. 電腦之間交換數據(即資金流動)的過程不被篡改;
  3. 所有電腦里的歷史記錄不可篡改;
  4. 任何人都可以自由開機加入,或者關機退出這套系統,並且不會影響整套系統的正常工作。

這麼一個場景及這套P2P網路和分散式計算就構成了比特幣的簡化模型。這樣村民就可以使用這套系統來充當貨幣,完成經濟活動的支付。當然比特幣發展到現在,已經相當複雜。

比特幣就是一套全球級別的P2P網路系統,比特幣協議以各種開源軟體的形式實現,這些軟體可以在PC機、智能手機、專用的計算設備等上運行,用戶可以借用這些終端自由接入比特幣系統,而且不需要任何人審批。這套系統能完美地在沒有任何中心機構和政府的控制下完成記錄所有參與者的資金流動,從第一筆比特幣到現在所有的比特幣流動和所有權都完整無差錯地記錄來下,形成了一整套叫比特幣區塊鏈的數據,這套系統就可以被當成一個全球化的無國界貨幣。

第5章 結束語

比特幣是由一系列概念和技術作為基礎構建的系統,理解起來並不會很難,只要一個一個概念慢慢摸清楚,就OK了。

(想第一時間閱讀我的比特幣科譜文章,請關注我的公眾號: 閃電HSL)

http://weixin.qq.com/r/mERza3vEZSYarT8I9xGK (二維碼自動識別)


比特幣是什麼? - 江卓爾的回答 中我寫了一個百科全書式的基礎科普,摘抄其中關於比特幣系統如何運行的內容。

和上面動輒ECDSA橢圓曲線,面對技術人群的答案不同,

本文適合無技術背景的普通人閱讀。

==================目錄==================

  • 2、比特幣是怎麼運行的?

2.1、中心化賬本(銀行)

2.2、去中心化賬本

2.3、去中心化賬本(比特幣)

2.4、去中心化的意義

  • 5、比特幣是怎麼發行的,什麼是比特幣挖礦?

5.1、什麼是比特幣挖礦

5.2、挖礦設備的演變

5.3、礦池

5.4、比特幣挖礦的意義——分發初始比特幣

==================正文==================

  • 2、比特幣是怎麼運行的?

從運行上來看,比特幣實際上是一個互聯網上的去中心化賬本

2.1、中心化賬本(銀行)

銀行是一個中心化賬本,賬本存儲在銀行的中心資料庫,上面寫著:

張三的A賬號餘額3000元,李四的B賬號餘額2000元……

當張三想要通過A賬號轉賬1000元給李四的B賬號時:

① 張三到銀行,向銀行提交轉賬要求。

② 銀行通過銀行卡密碼等方式確認張三身份,並檢查張三的A賬號是否有足夠餘額。

③ 檢查通過後,銀行增加一條轉賬記錄:A賬號向B賬號轉賬1000元,

並修改賬本:A賬號餘額=3000-1000=2000元,B賬號餘額=2000+1000=3000元

2.2、去中心化賬本

假設有這樣的一個小村莊,大家不是靠銀行,而是自己用賬本來記錄誰有多少錢,每個人的賬本上都寫著:

張三的A賬號餘額3000元,李四的B賬號餘額2000元……

當張三想要通過A賬號轉賬1000元給李四的B賬號時,

① 張三大吼一聲:大家注意啦,我用A賬號給李四的B賬號轉1000塊錢。

② 張三附近的村民聽了確實是張三的聲音,並且檢查張三的A賬號是否有足夠餘額。

③ 檢查通過後,村民往自己的賬本上寫:A賬號向B賬號轉賬1000元,

並修改賬本:A賬號餘額=3000-1000=2000元,B賬號餘額=2000+1000=3000元。

④ 張三附近的村民把轉賬告訴較遠村民,一傳十十傳百,直到所有人都知道這筆轉賬,以此保證所有人賬本的一致性。

2.3、去中心化賬本(比特幣

比特幣用戶在電腦上運行比特幣客戶端軟體,這樣的電腦稱為一個節點(node)。

大量節點電腦互相連接,形成一張像蜘蛛網一樣的P2P(點對點)網路。

當張三想要通過A賬號轉賬1比特幣給李四的B賬號時,

① 張三向周圍節點廣播轉賬交易要求:A賬號轉賬1比特幣給B賬號,並用A賬號的私鑰簽名。

(A賬號的私鑰可簡單理解為A賬號的密碼,只要知道A賬號的私鑰就能使用A賬號上的比特幣)

② 張三周圍的節點通過A賬號的公鑰檢查交易簽名的真偽,並且檢查張三的A賬號是否有足夠餘額。

③ 檢查通過後,節點往自己的賬本上寫:A賬號向B賬號轉賬1比特幣元,

並修改賬本:A賬號餘額=3比特幣-1比特幣=2比特幣,B賬號餘額=2比特幣+1比特幣=3比特幣。

④ 節點把這個交易廣播給周圍的節點,一傳十十傳百,直到所有節點都收到這筆交易。

比特幣的去中心化公開賬本稱為區塊鏈。這是比特幣運行的一個最簡化描述,當然比特幣的實際運行遠比這複雜,我們在後續會對其進行進一步講解。

2.4、去中心化的意義

比特幣的最大特點就是在互聯網上去中心化運行,比特幣網路由全體比特幣用戶共同控制,除非絕大部分比特幣用戶一致同意做出某個改變(例如規則修改或版本升級),否則任何人或組織都無法改變或停止比特幣運行

塞普勒斯危機中,儲戶的銀行存款被政府強制扣減;希臘債務危機中,儲戶被限制一天只能取60歐元現金。雖說私有財產神聖不可侵犯,但人們對此毫無辦法。在比特幣中這些劣行將不復存在,比特幣是一個完全脫離銀行,只依靠互聯網運行的貨幣系統,即使是政府執法部門,也無法查封或沒收比特幣;除非關停互聯網,否則也無法封殺比特幣網路,比特幣是人類歷史上第一次用技術手段保證了私有財產神聖不可侵犯。

  • 5、什麼是比特幣挖礦,比特幣是怎麼發行的?

5.1、什麼是比特幣挖礦

如前文 「2.3、去中心化賬本(比特幣)」 中所述,比特幣節點互相連接時,會從對方處獲取自己沒有的交易。但由於比特幣長期積累天量的交易,兩個節點逐條對照你缺了哪些交易/我缺了哪些交易,是非常困難的事情。

為解決這一難題,中本聰發明了區塊鏈(Block chain)這一重要技術。節點藉助區塊(block)來同步交易,保證了所有節點數據的統一性,並通過競爭區塊打包權(也就是挖礦)的方式,保證了區塊鏈的唯一性。

① 區塊和區塊鏈

一段時間內的交易打成的一個包稱為區塊,比特幣全網平均每10分鐘產生一個區塊,每一個區塊都鏈接到上一個區塊,依次相連形成區塊鏈。

② 以區塊為單位同步交易數據

區塊從1開始編號,因此節點A連接節點B後,只要檢查雙方的區塊編號高度,就能方便地同步交易數據。例如節點A自己的區塊高度是100,發現節點B的區塊高度是110,則只要向B請求同步101~110這10個區塊即可。

③ 打包區塊的獎勵

為保證有節點打包比特幣交易,比特幣系統規則規定:打包交易的節點將獲得比特幣作為酬勞。

A、打包獎勵的一部分來自交易創建者支付的交易手續費(每KB交易大小100~1000聰手續費)。

B、另一部分來自初始2100萬個比特幣的分發,最開始獎勵是每個區塊50比特幣,之後每經過21萬個區塊(約4年時間)獎勵將減半一次,直到2140年左右區塊獎勵不足1聰為止,此時區塊獎勵總和為2100萬比特幣,這就是比特幣2100萬總量的來源(準確地說是 20999999.97690000個)。

2140年後打包獎勵將只來自於交易創建者支付的交易手續費。

④ 對區塊打包權的競爭

節點打包交易只需要消耗很低成本的網路和計算資源,打包獎勵的存在(目前每個區塊的打包獎勵25比特幣約為4萬元),使得有大量節點想打包交易。為保證區塊鏈的唯一性,比特幣系統規定:節點使用類似「扔硬幣」的方法爭奪交易打包權。節點不斷地扔硬幣,誰首先扔出符合系統規則結果,誰就能獲得這個區塊的交易打包權,以及這個區塊的打包獎勵。

⑤ 競爭交易打包權的方式

「扔硬幣」在實現上是由計算機做一次哈希(SHA-256)運算,並檢查運算結果從第一位開始是否有足夠多連續的0(可以簡單理解為一次扔256個硬幣,然後看從第一個硬幣開始是否有足夠多的連續硬幣正面)。「扔硬幣」獲勝的唯一訣竅是提高每秒扔硬幣的次數,一個每秒能扔100億次硬幣(做100億次哈希計算)的節點,搶到打包權的概率是每秒扔1億次硬幣節點的100倍。

⑥ 獲勝節點打包交易並廣播

一旦有某個節點扔出符合系統規則的硬幣結果(例如區塊379543的哈希值 000000000000000008bdeb575056584429ea4be876ea7ca4ce70262d3edb8c8b),他就會立即將這段時間搜集到的交易打包成一個區塊,附上「扔硬幣」的結果、區塊序號379543、上一區塊關係等附加信息廣播出去,其它節點一旦收到區塊379543並驗證無誤,就會停止「扔硬幣」搶這一區塊,轉而在這一區塊的基礎上開始「扔硬幣」搶下一區塊(379544)。

⑦ 「挖礦」和「礦工」的由來

節點大量進行哈希計算需要計算機設備,並消耗大量電力,這個過程在本質上和金礦挖礦很相似(通過挖礦設備,消耗能源換取黃金)。比特幣總量恆定,產量越來越少的產生方式也和黃金很相似。

因此人們形象地將比特幣搶打包權的過程稱為挖礦(mine),將搶打包權的比特幣節點稱為礦工(miner)。

5.2、挖礦設備的演變

① 最早的礦工使用CPU進行挖礦,速度在M級別(1M=1000K=10^6=每秒100萬次哈希運算)。

② 之後進化到使用有數百個流處理器的顯卡挖礦,速度在百M級別。

③ 之後經FPGA(現場可編程門陣列,一種半定製電路)礦機的短暫過渡(速度數百M到G級別,1G=1000M),進化到ASIC(專用集成電路)礦機時代,速度亦從G級別逐步進化到T級別(1T=1000G)。

④ ASIC礦機是一種只能做SHA-256計算的專用設備,也就是說除了「扔硬幣」和做電暖氣以外什麼都做不了,但由於專門設計的集成電路,其每秒能進行數萬億次哈希運算,相當於一百萬個CPU的計算能力。也就是說目前全球排名第二的天河二號超級計算機如果用於挖礦,其312萬個CPU核心的計算能力僅相當於價值幾千元的T級別礦機。

⑤ 2013年起比特幣價格的飆升,上百萬台ASIC礦機的大量部署,使得比特幣全網算力目前已達到驚人的435P(1P=1000T),下圖為KnCMiner在瑞典的大型礦場。

5.3、礦池

由於有數以萬計的礦工競爭打包權,單個礦工搶得打包權的概率非常小,產出非常不穩定,有可能走狗屎運1小時就搶到一次,也有可能一年都搶不到一次。

為穩定挖礦產出,礦工往往選擇加入礦池挖礦,礦池將大量礦工的算力整合在一起,在全網總算力中佔據一定的份額,由此得到較穩定的挖礦產出,礦池在收取2%~4%礦池手續費後,將產出按礦工算力分配給礦工。這就好比一個人買彩票很難中獎,於是礦池把很多人組織在一起買彩票,中獎了再按出資額分配給大家。

隨著礦池的發展,還出現了像萊比特(http://LTC1BTC.com)這樣的自動切換礦池,俗稱機槍池。機槍池會在各種山寨幣收益高時切換到山寨幣挖礦,以此提高礦工的收入5%~10%。

5.4、比特幣挖礦的意義——分發初始比特幣

比特幣反對者指責挖礦白白消耗了大量資源去做無意義的扔硬幣,支持者則舉例黃金挖礦也是白白消耗了大量資源去做無意義的挖洞。對於比特幣系統而言,這種消耗大量資源挖礦的最大意義在於:公平地分發2100萬個初始比特幣,就像消耗資源挖黃金一樣,消耗資源獲挖比特幣是唯一公平的分發初始比特幣的方式。

比特幣由於其代碼開源,因此出現了數以千計的抄襲者、競爭者、改進者。通常將只是簡單抄襲模仿比特幣的稱為山寨幣,在比特幣基礎上加入一定新特性的稱為競爭幣,有的幣在比特幣基礎上加入智能合約等其他功能模塊,並自稱「二代幣」。這些林林總總的幣嘗試了所有你能想像得到的初始幣分發模式,例如將初始幣平均分發給每個冰島人的冰島幣(Aurcoin),將初始幣分發給73個眾籌參與人的未來幣(Nextcoin),由開發者控制並緩慢分發大部分初始幣的瑞波幣(XRP)等等。

但所有這些分發初始幣的方式,其公平性都遠弱於燒錢獲取初始比特幣的模式,而公平性又是一個貨幣系統的最核心問題,因此比特幣挖礦雖然消耗了大量資源,但和消耗資源挖金礦一樣是合理的經濟行為。


在我見過的眾多BTC系統運行講解中,下面的圖片是最生動和易懂的:

一些朋友在評論里提了有關bitcoin工作原理的問題,其實這些問題在最初的論文, http://bitcoin.org以及bitcoin wiki上都有很權威的解答了。只是由於語言關係,可能一些朋友不願去閱讀。我還是建議去以上幾個地方尋找對bitcoin任何問題的解釋。

最後是厚著臉皮加上的這段文字:如果覺得這條答案對你有所幫助,你也有一些多餘的bitcoin的話,可以給我捐贈一些來表示感謝 :-)15ZkugcE8WhWNiT6i3ZoJxPFt3WCJE5ipp


視頻:詳解比特幣的原理和運行機制

老外的比特幣科普視頻,非常全面,有中文字幕,看一遍,都懂了:)


比特幣,就首先必須明白,貨幣是什麼?貨幣是一般等價物,那麼好了,什麼東西充當一般等價物?

貨幣不能吃,不能用,只能用來交換,沒有勞動產品來用貨幣購買,貨幣什麼用都沒有。不管是紙幣,電子貨幣,黃金都是一樣。給你一間屋子,裡面堆滿黃金,但是沒有吃的,你也只能餓死。阿拉伯帝國末代哈里發就是這樣跟蒙古征服者吹噓的,結果被放在阿拉伯帝國的金庫里餓死。

貨幣首先是鹽,其次是貝殼,然後是金銀,其中的性質是什麼?為什麼我們用鹽,貝殼,和金銀來充當貨幣?是穩定嗎?確實有穩定的性質,那麼為什麼我們不用石頭呢?

這是今天非洲一些原始部落還在用的貝殼貨幣。

原因在於,石頭隨處可得,而對於封閉的原始部落來說,貝殼需要到很遠的海邊去貨幣,並不是那麼容易獲得。金銀需要開採冶煉,也不是那麼容易。簡而言之,需要付出勞動時間。換言之,付出勞動時間而獲得穩定的產品,就可以成為貨幣。

==================================

下面有一個最好的例子,太平洋的雅鋪石幣

雅浦島石幣(Rai Stones)是原始貨幣之一,產自雅浦島。雅浦島是一個位於太平洋,人口只有約5000到6000人的小島。島上的土著人使用一種巨大石幣作為流通貨幣。由於當地不出產金屬,於是石頭便成為當地重要的資源,當地人只有到帛琉等地將石材用獨木舟等運回自己的家鄉,再將其進一步加工成石幣。並發展出以石頭充當交易媒介的貿易模式。當地人稱這種石幣為費(Fei)。

加拿大中央銀行的石幣複製品

島上的居民十分信任石幣內含的購買力,居民擁有石幣的數量和大小代表了財富的多寡。島上有一戶人家,他祖先曾得一巨大且質地佳的石幣,但由於運回雅浦島的途中遇上海難而石沉大海,但當地的居民仍相信,即便物理上石幣已從眾人眼前消失,但理論上石幣依然存在,只是不在擁有者家中,石幣的購買力並不會因為石幣所處的地點而有所下降,所以這戶人家仍儲存了石幣代表的價值,得到了該費所代表的財富。

石幣的擁有者完全沒有必要減少自己的擁有物。在做成一筆交易之後,如果這筆交易所涉及的費太大,大到無法便利地搬動石幣的地步,石幣的所有者會很樂意接受單純的所有權認可,他們甚至都不願意費累去做個標記來表明這種交換,石幣仍然靜靜地躺在以前那位擁有者的地頭。

什麼?你覺得這個很荒謬原始人很愚昧?

你的錢難道不是存在銀行,大家不是都看不見嗎?不就是靠幾個電子顯示屏或者電腦網站顯示一個數目嗎?大家不就是認可你的財富嗎?你在銀行的各種轉賬,難道不是點擊一下屏幕就完成了?你會去搬動錢嗎?

從土著人看來,你外面的人居然用紙片或者電子符號這樣的東西當成貨幣,還要死要活的為這個錢這才是最可笑的事情。

貨幣的本質已經呼之欲出,不是貨幣承載的物理性質是什麼,而是貨幣本身所有的需要通過一定的勞動時間而獲得性質穩定的產品。比如貝殼,比如石頭幣,比如黃金,比如今天的比特幣。。

從人類的漫長歷史來看,現在這樣的用紙幣可以隨便亂印而老百姓買單的的金融體系,是人類歷史最不公平,最剝削老百姓的金融體系。請問,為什麼我們老百姓還要認同這個紙幣的效力,為了紙片去玩命呢?

比特幣是通過勞動時間付出成本而獲得的貨幣,他的可靠性,比紙幣美元強多了,如果每個人都像黃金那樣認同比特幣的效力那這個世界不會更公平的金融秩序嗎?

當然,比特幣有各種的問題,比如分配不公平,比如上限,正如黃金也有問題。比特幣會讓有大量挖礦機的人獲得更多的收貨,就像黃金有礦的人也會獲得更多黃金。比特幣越挖越少越挖越難,就像金礦挖到後面也是越挖含金量越低,收益也越少。

但是,比特幣和黃金,石幣有兩個最最根本的優點,是現在的金融體系無法具備的。1,每個人都可以去挖,而不是現在的中央銀行印紙幣普通人沒有造幣的權利。2,只要你付出一定勞動時間和成本,都可以獲得貨幣,充分保證了含金量。換言之不會讓你隨便亂印紙幣,那種通貨膨脹,紙幣變成廢紙的事情不會發生。

====================================================

下面構建一個經濟模型,讓大家明白金融的運作規律。

現代社會,因為工業革命,實際上產品是很容易過剩的,真正從事生產的人,很少就可以滿足全人類的需求,其實古代也是一樣,有時候種田的人就那麼多,就可以解放出其他人從事手工業和其他的各種思想家。

假設有一個社會,共有一百個人,他們總共只對兩種產品有需求,一是食物,二是衣服,假設食物單一,就那麼一種,這一百個人需要的食物,是一天一份,所需要的衣服,也是一天一份。所謂一天一份,這個份的單位可以商量,例如,假設三百多份衣服代表一件也可以。之所以假設成「份」為單位。假設當時的生產力,平均一個人一天能夠生產出四份食物,或者生產出四份衣服。這樣一來,這一百個人中,有二十五人生產食物,就能夠滿足一百個人的需求,有另外二十五個人生產衣服,也就能夠滿足一百個人的需求。那麼,還有五十個剩餘勞動力幹什麼?

現代社會的回答是服務業,但是不管如何,服務業業是無法消化全部人口的,生產過剩,就是所謂的「資本主義總危機」。

而如果這些多的人,都有一個金礦去挖金子呢?他們不是都就業了嗎?這就是凱恩斯說的製造需求,他說對付資本主義過剩的最好辦法,就是製造需求,或者說,把美元埋在地里,讓人去挖出來。這其實就是有一個金礦的概念。

所以,每次大的GOLDEN RUSH,就是淘金潮,幾乎都是吸納富餘人口,大規模促進經濟增長的時代。比如加州淘金潮,比如克朗代傑淘金潮。

而金子總會挖完,金子完了,就沒有挖了,這些人都又失業了,要麼去找下一個可以挖的金礦。比特幣,其實就是一個虛擬的金礦。。

======

那麼我們假設世界的金礦是無限的

這個社會分為三個公司,食物公司,服裝公司,和黃金公司。在遊戲開始的時候,這一百個人中,有二十五個人在食物公司,每個人每天生產出四份食物,因此食物公司每天生產出剛好夠一百個人需要的食物。還有二十五個人在服裝公司,每個人每天生產出四份衣服,因此公司也生產出剛好夠一百個人需要的衣服。剩下的五十個人,全部進入黃金公司生產黃金,假設這個社會的黃金資源,導致了黃金的礦產是穩定的,平均每個人每天生產出多少黃金,也是穩定的。這裡假設,黃金也按份為單位,且平均每個人一天能夠生產出四份黃金,則五十個人一天的黃金產量,就是二百份黃金。

每天的交易是這樣,黃金公司每天拿出五十份黃金,向食物公司購買五十份食物,供五十個員工享用,再拿出五十份黃金,向服裝公司購買五十份衣服,供五十個員工享用,這樣二百份黃金花掉了一百份,還剩一百份,平均分配給五十個員工,每個員工得二份黃金,用來做什麼?用來做積蓄。

而食物公司以每份食物值一份黃金的價格,向其餘七十五個人出售了七十五份食物,因此換回七十五份黃金。從中拿出二十五份黃金,從服裝公司購買二十五份衣服,供公司的員工享用,這樣還有五十份黃金,平均分配給二十五個員工,每個員工得黃金二份,也是用來做積蓄。

而服裝公司以每份服裝值一份黃金的價格,向其餘七十五個人出售了七十五份食物,因此換回七十五份黃金,從中拿出二十五份黃金,從食物公司購買二十五份食物,供公司的員工享用,這樣也還有五十份黃金,平均分配給二十五個員工,每個員工得黃金二份,也是用來做積蓄。

現在我們假設這裡是一個市場經濟的模型,因此,上面所說的公司,也可以稱為「生產部門」,或者「行業」,不妨假設每一個人都是個體戶,而且他想生產什麼都可以,如果他覺得生產食物更掙錢,他可以去生產食物,否則,他也可以生產衣服,黃金,等等。

因此,每一個人都是和其它的人經過討價還價獲得上面的這種分配的,而不是行政命令產生上面的分配的。這樣一來,市場的反饋調節機制就會起作用。

比如說吧,食品公司如果試圖漲價,每份食物想換取一份半黃金,而且如果確實做到了,則從事食品業當然更為划算,這樣,就會有人從生產黃金改為生產食物,導致社會上的食物供應量增加,則在競爭機制下,大家只好競相降價,否則食物有可能賣不出去。而如果食物的價格被壓得過低,則生產食物就不划算了,會有人改為生產服裝或者生產黃金,這樣,食物的供應少了,則價格就有機會又抬上去。

其它的行業也是這樣。這樣,經過一番競爭,勞動力轉移,最後會達到一個平衡狀態,就是無論從事哪個行業的人,都會覺得自己所在的這個行業,掙的錢和其它的行業是差不多的,這就必然產生我上面給出的分配結果,就是每個人每天一份食物,一份衣服,還有兩份黃金做積蓄。

在上面的系統中,食物可吃,衣服可穿,黃金積蓄來做什麼?為什麼大家手中的黃金要越來越多,這樣不斷地多下去會產生什麼結果?

本來,就生產力而言,這一百個人中只要五十個人勞動,就足以讓一百個人過好日子了,另外五十個人,是可以輕鬆愉快,不用勞動的,唱唱歌,跳跳舞,去旅遊,總之幹什麼都可以。但是,如果真有五十個人,什麼也不幹,則勞動的那五十個人,會覺得不公平。憑什麼我們勞動你們不做事情?因此,生產食物的人會拒絕向閑散的五十個人提供食物,生產服裝的人會拒絕向閑散的五十個人提供衣服。這裡的意思也在於,人這種動物,從本質上講,就是一種追求公平的動物。也就是說,一些人勞動,就不能夠容忍有其它的人不勞動光享受。

那麼,另外五十個人,就只好去生產黃金,黃金這東西有用在於,它是一般等價物,使得衣服啊食物啊都有一個統一的價值度量標準。生產黃金的五十個人,拿著黃金去交換食物和衣服的時候,其實也是在告訴對方「我們也沒有閑著,我們在努力生產黃金。」在這種情況下,生產食物和生產衣服的人才會想得通,才會願意用衣服和食物換回黃金。因為,大家都勞動了,而且強度是一樣的,因此是公平的。

黃金還有一個重要的作用,就是它是一種信息,一種「閑暇的權利」的信息,或者說,一種「不幹活」的權利的信息。每個人積累得越多,他就有越多的不幹活的權利,休息的權利,玩的權利。

拿上面的模型來講,每個人每天的生活費用,是兩份黃金,但是每個人每天如果都勞動,就會每天生產出四份黃金,其中兩份黃金購買了生活必需品,另外兩份黃金,就作為積蓄保存了下來。積蓄了什麼?積蓄了「閑暇」。

例如,當一個黃金公司的員工,黃金積蓄已經有了十份的時候,他就可以出去渡五天假,這五天他不勞動,照樣每天用積蓄的黃金向食物和服裝公司購買生活必需品。但是五天之後,他的積蓄花完了,就沒有辦法了,就只好回來勞動。

但是,無論如何,社會上的黃金是越來越多的,會不會有許多人去渡假呢?這種渡假,會不會引起漲價呢?下面要分析。

假設黃金公司的二十五名員工,覺得自己存的黃金已經足夠多了,因此就去渡假。假設食物公司的人看了不服氣,因此要將自己的食物漲價,比如說,漲到二份黃金才能夠購買一份食物。而且,假設果然實現了。這個時候就假設渡假的員工就認倒霉了。但是,還沒有渡假的黃金公司的員工,會感到不划算。因為,他們生產黃金的速度並沒有變,還是一天生產四份黃金,而這個時候食物公司的員工因為漲價,一天能夠掙到八份黃金了。

這樣,正在勞動的黃金公司的員工,會感到不公平,因此,就會轉移到食物公司去生產食物。這就會導致食物的供過於求,在激烈地競爭下,食物的價格會降下來,會降到讓許多人認為生產食物不划算,因此又轉行生產黃金。

在這裡,「生產黃金的速度沒有變」這是個關鍵。也就是說,當人們生產一樣東西的速度,或者說獲得一樣東西的難度,在沒有變化的時候,即使絕對數字增加了,卻不會導致這樣東西的價格下跌。

這裡的關鍵也在於,這個系統必須保證人們角色的易換性,就是說,當一個人嫌食物貴了,或者黃金貴了,或者衣服貴了,他能夠立即變換角色,從買食物變為賣食物。也就是說,當一個人賣食物給另一個人,叫出了一個價錢的時候,這個買主會思考,如果自己也轉而賣食物,也會給這樣的價,他就會接受這個價錢。否則的話,或者他拒絕交易,或者他轉而幹這一行,他也賣起食物來了。再說一遍,人是公平的動物,一切都是從這個公平二字出發的。

也就是說,我們不必擔心人們手裡的積蓄越來越多,只要,只要什麼呢?只要這個積蓄的每一份,都是通過同樣艱苦的勞動創造換來的,我們應當相信每一個人,會尊重自己的勞動的,不到萬不得已,不會拿自己辛苦工作十天換來的東西去交換人家只用一天工作換來的東西,否則的話,他會產生去做那個工作的願望和企圖。

上面強調了角色的易換性,這是市場經濟的關鍵所在,如果不能夠做到角色的易換,則市場經濟的運行,就一定會遇到障礙。

比如說,如果有人認為做警察太划算了,那麼「你來做警察試試?」,如果他真的就可以試試,則警察就不會比其它行業更划算。如果他沒有辦法試試,說明勞動力的流通就遇到了障礙。一旦勞動力的流通遇到障礙,這市場經濟就不靈了。再比如說,有人認為城管隊員很差勁,那麼你願意不願意干?比如任何被城管隊員追著跑的人,他想當城管隊員就立即能夠當上,那你不願意當,怪誰?

例如,一旦人們不能夠隨便進入食品公司,則食品公司的員工,就有可能牟取暴利。一旦人們不能夠隨便當上警察,那麼警察牟利就是必然的。一旦人們不容易當上公務員,則公務員就成了一種肥缺。這一點,也是市場經濟的無情的看不見的手在起作用,你就是再談什麼反腐敗也不起作用。

但是,還是要遇到這個人們手中的黃金越來越多的問題,我這個系統的模型,就是這個樣子。但是,這個問題還可以通過一種辦法來達到平衡。那就是「遺產稅」。就是說,任何一個人,來到世上不過就是幾十年,撐死一百年,如果他死了以後,把他手裡的黃金,全部沒收後,再埋回地下,讓人們以同樣的難度去開採,不允許下一代繼承,那麼,社會上的積蓄,也就不會沒完沒了地增加。

但是,如果真的這樣設立了遺產稅,系統又會向什麼樣的方向發展以達到平衡呢?下面我要說明,會朝著黃金公司幾乎停產的方向以達到平衡。

因為已經規定了一個人的所有的積蓄,在他死的時候統統沒收,這樣,他積蓄了一輩子,最後沒有享受到這個「閑暇的權利」,他會覺得很不划算。因此,任何人的自然的選項就是,在死的時候正好所有的積蓄花完,一分錢不剩。

最後達到的平衡其實是這樣。遊戲一開始,食物公司和服裝公司的那五十名員工,身無分文,而另外五十個人,每個人手裡有二十份黃金,以每天必須用一份黃金換食物,一份黃金換服裝來計算,這五十個人去渡假十天,其結果就是,在這五十個人渡假結束的時候,每個人的二十份黃金正好花完,因此不得不回來工作,而食物公司和服裝公司的五十個員工,在此期間每個人掙了二十份黃金,因此決定開始渡假,這樣,原來渡假的員工和原來工作的員工,正好角色相互轉換。在這種情況下,都是每個人工作十天再休閑十天。這種循環往複是可以不斷地持續下去的。

這最後的情況正好符合系統的對於生產過剩的理想狀態,就是大家輪流休息。而手中的黃金,仍然是屬於一種勞動的結果,一種「閑暇的權利」的證明。

這樣,生產黃金的公司就完全產量為零了。但是,卻不能夠完全關閉,必須保證任何人只要願意,他還是能夠去生產黃金。這是因為,當食物和服裝公司試圖向渡假的那些人漲價或者降價的時候,仍然會有人選擇去黃金公司生產黃金。哪怕是少量的。這裡面,生產黃金代表了一個工作的難度,也是一個辛勤工作的證明。它也構成了一個勞動多少的正確度量儀器。任何人只要認為生產黃金比生產食物划算,他就會去黃金公司生產黃金。

只要黃金足夠,這個體系是可以長久的持續下去的。。。而且可以杜絕通貨膨脹和失業。。。這就是因為這兩個最大的優勢:1,每個人都可以去挖,而不是現在的中央銀行印紙幣普通人沒有造幣的權利。2,只要你付出一定勞動時間和成本,都可以獲得貨幣,充分保證了含金量。你去挖金子,也能獲得收入。

設想有這麼一個星球,其中黃金分子是非常稀疏地在空氣中漂著的,而且用一種單人操作的空氣煉金器,用人手工搖動就可以生產黃金,所有的人生產力都一樣,而且法律上規定禁止使用不可再生能源做這件事情,任何人只要失業,就去煉金,空氣煉金器作為福利人手一份。則在這種情況下生產系統將得以完全的維持,永無經濟危機和金融危機。

那麼沒有黃金了怎麼辦?

請問我們是因為什麼選擇了黃金作為貨幣?因為穩定,獲得需要巨大的勞動時間,我們就虛擬一個貨幣出來。開發一個人為的另外的「造黃金機制」,也就是說,社會上要開發出一種虛擬的貨幣來起到類似黃金這樣的產品的作用。

一般的辦法是這樣的,就是產生出一個能夠可靠防偽的印鈔機,控制在國家手裡。但是,國家不能夠隨意發放它,而是,要利用它構成一個虛擬的「金礦」,要使所的失業的人,只要通過一種虛擬的程序,就是說,一種費力的勞動,就可以開發出一定數量的這種金子。

這種程序應當是怎樣的呢?只要滿足,能夠耗費人們的體力腦力,或者說耗費人們的功夫,而且,生產速度恆定,則任何有意義無意義的事情都可以。比如說,就弄一個操場,一個跑道,任何人只要沿著跑道跑一圈,就可以獲得一張這樣的紙幣。

這樣的造幣機制產生之後,會不會有其它行業的人眼紅,也過來掙這個錢呢?是不會的。因為,他們經過比較,在其它的行業勞動,每天掙的錢,和來這個地方繞操場跑一圈,費的勁是一樣的,他們就不會來跑那麼一圈了。

當然,我這裡舉的是無意義的事情,指出甚至這樣的事情,都可以使社會避免危機。但是,既然如此,當然還是做一些有意義的事情比較好,例如發展文化事業啊,唱歌啊,等等。但是,即使是無意義的,比如折磨人一下,拿繁體字來折磨他,也可以的。從經濟學的角度講就是這樣。但是這裡的關鍵在於,「央行」必須在人家做了任何這類有效或者無效的勞動的時候,都要直接從印鈔機中印刷出鈔票來發給勞動的人。因此,這裡的技術要點,就是改變以往的非要用紙幣來代表綠金的做法。

這種央行直接給「勞動」發鈔的辦法,我稱之為造幣。這種技術,因為美國到現在為止都是不知道的,美國的政府很奇怪,它沒有印鈔權,居然被所有的人認為是合理的。美國是傻乎乎的,還搞什麼納稅人之類的。其實,按我的觀點,根本社會用不著納稅,中央政府如果想要鈔票,通過「抽象勞動」就可以直接印鈔了。而且,這個「准入性」是必須保證的,就是說,任何人想參與這種「造幣」,不得阻止。央行所要做的就是測量這個人的勞動量,使得他獲得紙幣的難度,始終是保持一樣的。

這樣一個任何人都有權進入,不得阻止的造幣機制,才是避免金融危機的關鍵之著。這其實就是比特幣的本質!!

========================================

想想吧,如果一個社會,出現了失業人員,都會有一個最基本的「金礦」去安置這些人,那會是多麼美好的社會。

比如,一個跑道,跑一天,就給200元,這就相當於是一種金礦。

比如,一個地方,唱歌一天,給200元,這也相當於金礦。

。。。。。

這就是比特幣的一個變種。很荒謬是嗎?請問,那些看大門的,是不是坐一天,就200元?那些合唱團伴舞的,當背景的,跑龍套的,拉大幕的,是不是搞一天就200元?

勞動造幣是最符合人類天理的,亂印紙幣才不符合人類天理。

當然我們可以做很多有意義的事情,比如學習,比如爬山,比如挖沙,比如修長城,比如修講堂。歐洲的教堂一修幾百年,我懷疑就跟這個有關係。一旦有個幾百年的工程,那麼隨時都可以去這個工程安置空餘的人員。

這就是比特幣的升級版。他滿足了我說的條件:1,每個人都可以去挖,而不是現在的中央銀行印紙幣普通人沒有造幣的權利。2,只要你付出一定勞動時間和成本,都可以獲得貨幣,充分保證了含金量。你去挖金子,也能獲得收入。

這樣安置了失業,而且因為勞動造幣,貨幣的含金量保證,永遠不會有通貨膨脹。

==============================================================

一個市場經濟的社會要想運作良好,就必須有一種稱之為「幣」的產品,在不斷地生產中。理想的情況是,幣的生產力,永遠不變,所有的人,都有加入造幣行列的權利。本帖子要簡單地回顧一下人類的造幣史,甚至可以得出一些結論,就是人類的許多災難,甚至戰爭,有可能是造幣機制的混亂造成的。甚至也可以說,只要有良好的造幣機制,則將永無經濟危機和金融危機,甚至,有可能不會有戰爭。這是相當右派的觀點和馬克思主義也不相同。

在封建社會期,人類的生產力的發展是緩慢的,而且,基本上任何生產集團,都擁有造幣權,因此是不會有什麼金融危機的。當時的主要問題是生產力的不行,就是說,一旦遇到災年,就不能夠生產出足夠的食物,導致饑荒發生。

而工業革命一旦發生,蒸汽機的發明及發展,導致了不可再生性能源的大規模使用,就是說人們的生產可以不是光憑體力,而是憑藉大量的能源來生產。這就導致了生產力的迅速上升,人類社會只需要不多的勞動力,就足以生產出大量的產品供人們享用。這個時候的造幣機制仍然是自由准入的,人們都有淘金的權利。但是,問題是出現在煉金的生產力也在迅速上升。

這種上升造成了經濟危機,或者也可以稱為金融危機。那就是已經有的貨幣迅速貶值,或者說通貨膨脹。而另一方面就是金礦資源的迅速枯竭,導致了幣的生產的不穩定,一會兒生產力高導致貶值,而一會兒又因為金礦枯竭而導致難獲得而通貨緊縮。而另一方面就是地產造成的障礙,導致了煉金的准入權受到限制。例如,金礦就那麼幾個,已經被一些老闆所把持,任何失業的人無法進入金礦工作。這就產生大量的失業。其實三十年代的大蕭條就是這樣產生的。

但是,歷史上的各個政府,在病急亂投醫的情況下,在胡亂想一些辦法的情況下,事實上造成了本貼子提出的造幣機制,起到了造幣機制的作用。

例如,一些政府在失業率高企的情況下,強行地通過負債而僱用了大量的勞動力來做事情,這就在事實上產生了某種造幣機制。但是,其實負債是沒有必要的,只需要簡單地從印鈔機中印刷出鈔票給辛苦工作的人既可,談何負債?

而且,通常戰爭總是具有緩解危機的作用,原因也在於,一旦戰爭發生,則政府的所有人,都不得不特別賣力,這就符合上面講的一個要求,就是造幣隊伍都必須賣力。此外,戰爭需要兵員,這就導致了軍隊就成了造幣隊伍,而且對所有的人准入。而一支軍隊只要是高效的,賣力的,就會形成良好的造幣機制,會導致經濟都呈繁榮狀態。

例如,在一戰結束後,德國經濟原本處於崩潰狀態,但是希特勒上台之後,擴軍備戰客觀上造成了一個造幣機制,導致國內的經濟危機緩解。當然,這種擴軍備戰導致了人類的災難。

國內則是依託美元建立了一個良好的造幣機制,就是說,所有的出口企業,事實上構成了造幣行業,美元成了新的金礦,而且美元的價格當時也是相對穩定的。因此,隨著生產力的不斷上升,導致多餘勞動力源源不斷地進入到出口企業去「造幣」,就是說,生產出美元,而央行則根據生產出來的美元而印刷人民幣。這樣就導致了人民幣和美元一樣的堅挺。

一個社會的貨幣的源頭,應當是在造幣隊伍,只要造幣隊伍工作得很辛苦,就根據辛苦程度發給他們錢。但是一般而言,當然也需要分一下等級制度,高文化水平和低文化水平,領導和群眾的差別。

=========================================

所以歸根結底就是,真正的貨幣,人類歷史經得起考驗的貨幣,必須是滿足了我說的條件:1,每個人都可以去挖,而不是現在的中央銀行印紙幣普通人沒有造幣的權利。2,只要你付出一定勞動時間和成本,都可以獲得貨幣,充分保證了含金量。你去挖金子,也能獲得收入。

比特幣只是一個開始,顯然不完美,但是稱得上是一個劃時代的變革,現行的美元體系是非常不合理,非常變態的。幾百年後的人看著我們現在拿著紙片當貨幣,一定會笑的出聲的。我想像中最完美的一種貨幣,是用外星的元素構成,地球沒有必須要製造火箭付出大量的勞動和努力才能獲得,運回來之後,就變成人類的貨幣。這個,跟當年跑很遠去海邊撿貝殼,和去其他島挖大石頭製造貨幣是一個道理,而且這個還可以促進人類的航天技術發展。


珍惜生命,遠離比特。近一個星期以來在知乎掀起的新一輪比特科普潮只是在尋找接盤俠罷了。比特的泡沫碎裂不止一次了。知乎現在已經淪為網路營銷的平台,任何言論都需要受眾用心分辨其背後目的。再說一遍,過過腦子,珍惜生命,遠離比特。


比特幣概念提出者「中本聰」的論文

Satoshi Bitcoin Translation Zh-cn.pdf

比特幣:一種點對點的電子現金系統

原文作者:中本聰(Satoshi Nakamoto)

中文翻譯:http://Bitcoinblogger.com


以前,我們用貴金屬做貨幣。因為貴金屬產量不高,貨幣新增加的速度有限,而經濟體在不斷增大,市場需要更多的貨幣來讓商品盡量的流通。有需求就有價值,從這個意義上來說,貴金屬本身製造別的東西具備的價值是次要的,經濟體需要貨幣來流通商品這個需求才是主要的。而貴金屬產量有限,且曾經流通著的貴金屬貨幣由於各種原因會退出市場,那麼即使是新造的貴金屬貨幣也有同樣甚至更高的價值。

Bitcoin 為什麼保值,BTC (Bitcoin 的貨幣簡稱)存在於一個龐大的 p2p 網路中。使用 Bitcoin 的群體公認了一種演算法,這種演算法在現今的條件下,每小時只會新產生大約 6 組新的 BTC ,目前一組是 50 個。也就是說,這個世界上,每個小時大約只會產生 300 個 BTC 。這個產量還會由網路自動調整難度來限制產量。你沒辦法通過修改所有人的 Client 的演算法及參數(client 是開源的)來加快貨幣產量。偽造的貨幣會被網路丟棄(除非你可以控制大部分網路節點)。

BTC 本身有什麼價值?

BTC 的價值就是交易渠道本身。一組新製造出來的 BTC 提供了把舊的 BTC 從一個帳戶轉移到另一個帳戶的數學保證。這個安全保證背後的代價是大量的計算力。生產這麼一個安全通道是需要消耗大量能源的,所以整個 BTC 用戶群體,獎勵那個造幣者(目前是 50 BTC)。

簡單說,我的理解就是,現在世界上所有的 BTC 背後都是用運行計算機的能量產生出來的,它們的總價值,(到現在一共有大約 12w 組 BTC 被生產出來,每組 50 個,市場價格大約 7.3 美金一個),應該是少於消耗掉的能源的總市場價值的。不過我想,用於生產 BTC 的能源大都原本就是不用也被浪費掉的資源。

一個沒有中心節點的「銀行」是怎麼讓大家信任並工作起來的呢?

答案是,這個 p2p 網路上每個節點都記錄了 BTC 誕生以來的每筆交易的詳單,並從中可以推測出每個 BTC 唯一的屬於誰。這樣你接受一筆交易時,就能知道別人給你的錢是不是合法的。

從最基本的說起:

每個帳戶其實就是一對公私匙,有私匙的人就是帳戶的主人。如果 A 要給 B 轉一筆錢,A 就把錢的數量加上 B 的公匙,用自己的鑰匙簽名。而 B 看到這個簽名,就可以了解,的確是 A 轉給了他如數的 BTC 。

那麼這筆交易需要一個見證人,擔保交易發生過。這樣,以後 B 想用這筆錢的時候才是合法的。擔保人就是整個使用 BTC 的網路。

A 在發起這筆交易的時候,必須把簽過名的交易單盡量的廣播到 p2p 網路上,最終會讓每個節點都知道這件事。B 從 p2p 網路上不斷的收到別人的確認信息。當它收到足夠多的確認信息後,就認為 A 的確發出了這條交易單。這以後,B 就可以自由使用這筆錢了。

當 B 使用 A 轉給它的錢給 C 時,也會廣播給足夠多(最終所有人都收到)的人讓他們擔保。每個擔保人只有確信 B 有足夠多的錢可以支付的時候才做確認。本質上,BTC 網路並沒有記錄每一塊錢屬於誰,它記錄的是從誕生起到當前的每一筆交易,並推算出每個帳戶里有多少錢。任何人試圖確認一個交易單時,它需要確認的是轉出帳號上有沒有那麼多錢。

Bitcoin 需要解決的核心問題是,如何避免一筆錢被花兩次。

整個帳單序列是一環套一環的。每個人在完整的全局帳單上籤上新的一筆的時候,都需要利用前面信息生成後面的。這個帳單序列被稱為 chain of blocks 。每個 block 裡面包含有若干條經過確認並 hash 簽名 (難以偽造) 的交易記錄。每個 block 都和全局表上的上一個 block 有關聯。每條帳單都會通過 p2p 網路最終被轉發給製造新 block 的節點上。

這個製造新 block 的過程被叫做 mining ,製造新 block 就是把最近收到的帳單打包在剛製造的 block 里。這個打包的過程即製作的過程,只有極其稀少的幾率被製造成功。(你可以理解成把新收到的帳單合在一起,一次成型不可修改,如果製造失敗就要再來一次)一旦製造成功,你就把新的 block (被認為是對老的全局 block 鏈的延續)廣播出去。

因為是 p2p 網路,可能有許多人都在同時製造新的 block ,但有一個排序機制保證只有最優(最難,花費最大計算時間的)的那個新 block 被網路群體接受,掛在全局的 block 鏈上。重複一次,整個 BTC 網路只有一個全局帳單表,每個節點都完整的保存有一份。

這個全局帳單表會越來越大,block 鏈越來越長,在最新的部分,必然有許多分茬。這是因為 p2p 網路的 mining 過程是分開並行進行的,每條新帳單也不能立刻廣播給所有的節點。每個 mining 的節點都有責任把他新收到的,在他認可的老的全局帳單上不存在的帳單,合在他準備製造的新 block 中。一旦新 block 被製造出來,就立刻廣播出去,爭取得到更多人的認可。主要是得到那些想 mining 的人的認可,這些人會在這個 block 的基礎上製造新的 block 。

如果 p2p 網路過大,交易帳單不能盡量的迅速的廣播到全網路。就會出來 p2p 的網路的局部保持有小群體共同認可的一份全局帳單。多個全局帳單的分支同時發展是有可能的。因為每個小群體都可能認為他們看見的那部分更長更有效。但是,只有有人發現另一條分支更長,它就會轉換陣營。所以,有一定的可能性,你的帳單被一個小群體接受,但在一段時間後,被更大的陣營拋棄。

不過,演算法參數決定了,新的 block 產生速度很慢,如果你的帳單被多達 6 個人確認,基本上就保證了它合併到的那份全局帳單,就是 p2p 網路全體認可的。

via 雲風的 BLOG: Bitcoin 的基本原理


記錄,過會來答。

--------------------

好了,開始。

先說為什麼回答,很簡單,2貨太多了,很多完全錯誤的認識。

這個問題樓主問的是比特幣系統如何運行,基本上,有人答過了,再簡要說一下。

比特幣系統主要包括兩部分:比特幣支付系統和比特幣。類比於銀行系統和銀行里的存款。當然有許多不同,暫不展開。

比特幣支付網路,是基於P2P的系統。比特幣,是依賴於比特幣網路識別和運行的。和普通銀行不同的,比特幣網路兼有發行功能。也就是說,它的發行,支付是一體的。

有上面這個基本概念,結合其他同學的描述,基本上,可以解釋比特運行的技術問題。

需要糾正的是另一些更為基礎的概念,一些更為本質的問題。這些問題包括:

1 比特幣是貨幣嗎?

2 它會不會消亡?

3 它為什麼產生?

4 它是騙局或者傳銷嗎?

5 比特幣的發展問題。

以下逐一回答。

1 比特幣是貨幣嗎? 要回答這一問題,首先要理解的是貨幣的概念。歷史上,貝殼是貨幣,金銀是貨幣,現在,主要是各國法幣。法幣的信用或者價值,是以國家信用為基礎,比如盧布,辛巴威幣,都是典範。現在支付寶,信用卡流行,持現金的越來越少,實際上很多時候,金錢只是一個數字。

貨幣的本質是什麼?進一步說,其實只是一種價值認同。你認為它是錢,它就是錢。當然了,你認為它不是,它就不是。嚴格一點說法是:你認為它是錢,它對你來說就是錢。比如說,白條是錢,充值碼也是錢,積分是錢,Q幣也是錢,遊戲幣也是錢,雖然只是它們只對某些人群有意義,它還是錢,股票也是錢,很簡單,有人接收它,你能方便地把它轉給那些認可它的人,它就有價值,在一定程度上說,都是貨幣。

更一般地說,貨幣只是認同度更高一點的商品而已。

基於上面這些,比特幣是錢。你可以通過它購買商品,轉賬,有人認可它,所以,它是錢,是貨幣。

2 它會不會消亡?不會。比特幣的基礎是區塊鏈,分散式記賬,這是一種新的技術,新的協議,相對傳統銀行系統,它就象Linux之於Windows,它是開源的,只會進步,當然不會消亡。

3 它為什麼產生?不理解這一問題,就不會理解比特幣。中本聰是個人也好,是個組織也罷,他的主要觀點,是現在貨幣系統有嚴重問題,富人通過這個複雜的工具,控制世界,它們超發貨幣,而作為普通人的我們,只能眼看自己的財產縮水。

我們必須理解,這個世界是人的世界,一切事物,本質上是人和人之間的關係。互聯網是一場壟斷式的過程,也是平民化的過程,這其中是各種勢力的角逐爭鬥。這些有點抽象。我舉個例子,新浪,搜狐,網易,優酷,土豆,微博。你每天看新聞,隨便哪個客戶端,看到的全是同樣內容,這是壟斷化的特徵,同時,土豆視頻,微博,這是平民化也就是去中心化的特徵。

再抽象點,世界是個太極,陰中有陽,陽中有陰。如果說傳統貨幣是陽,陽極陰生,那比特幣就是這個陽中的陰。是極端中心化,控制下的反作用。這種反作用是普遍存在的,表現在貨幣上,就是比特幣罷了。這是它存在的哲學基礎。

至於人群,極客,黑客這些,它是它存在的技術基礎。

貶毒,洗錢,這是它存在的經濟基礎---我這裡要特別說明的是,有些SB只是看到這一點,只看到毒品了,其實,間諜也喜歡這東西,國家也可以使用它,合法財產也可以用它來保護不被強行搶走,隱私也可以通過它得到保護,---本人最受不了這些SB,只看到技術的陰暗面,看不到它的光明一面。---而且,光明和陰暗也不是絕對的,這裡不展開。

4 它是傳銷或者騙局嗎?如果上面1,2,3都不懂,我也不再展開來講。比特幣不是為低智商群體準備的,至少目前不是。

5 比特幣的發展問題。

5.1 競爭幣。由於比特幣是開源的,隨便改一下或者不改,只要運行程序,就可以建立類似系統,所以有人據此認為它沒有價值。說這話的同學,請問你申請個域名,起個名字叫傻虎,肝浪,搜牛,然後雅虎,新浪,搜狐就失去意義了,是傳銷?

當然了,如果你做得好,理論上你的競爭幣可以超過比特幣,就象你也做個淘貝,理論上也可能超過淘寶。

強調一下,競爭幣當然有意義,李笑來貶低競爭幣,這和他自己持有比特幣有關。

5.2 價格波動。比特幣是個沒有法人的公司,比特幣同時是它自身的股票,價格波動是因為測不準原理,它的主要價格是由關注它認可它的人決定,而這些人的大部分只是純粹的投機SB,這些SB是買漲殺跌的,也就是它的價格和投機者是相互影響的,所以價格是波動的。

更由於它的股票性質,以及人性的貪婪,它註定是起伏不定的。當然了,現在是2015年10月2日,今天的價格是人民幣1550元左右,相比去年,又跌了很多。

5.3 最後強調一下,它是一項技術,一個互聯網協議,一個分散式系統,它是貨幣,同時是貨幣發行和支付網路,它同時是自身的股票,它是開源的,意味著會持續進化,就象Linux一樣。要理解比特幣,需要理解相關技術,更需要理解經濟和哲學,理解這個世界。


針對目前得票最高及最長的回答,我覺得不用解釋的那麼複雜。

比特幣系統其實就是以某種規則生成了某種很特別的數據塊。對絕大多數人來說這數據塊毫無意義,什麼都不是。對剩下的一大部分人來說,是投機工具。對最後的一小群人來說,是「信仰」。沒了。


比特幣就是龐氏騙局!傳花擊鼓的遊戲,就是利用其它人的無知和貪婪而炒作起來的!十分期待在哪一天可以在龐氏騙局的頁面上看到比特幣的相關連接!

比特幣沒有其它人把錢投進來,完全是分文不值,很多炒比特幣的人用於其它方面投資的錢全投進去了,沒有後來的人去投錢,那前面可能有很多人就被套!還有前面挖礦的要套現有沒有?

如果比特幣是有價值的,完全是有相對比較穩定的匯率,像美金人民幣一樣,而不是瘋漲瘋跌!也可以用來換取物品,而且是有定價的。比如三元一斤米,如果說只能挖出二千多萬個比特幣,那美國價值多少個比特幣?難道以後未來的整個世界就被那幾十台計算機玩一個遊戲,然後計算出的一串遊戲數字給主宰了?還有比這更白痴的遊戲嗎?

再複習一下龐氏騙局的概念和危害性。

龐氏騙局是一種最古老和最常見的投資詐騙沒有物質的根基,隨時存在崩塌的危險。是金字塔騙局的變體,很多非法的傳銷集團就是用這一招聚斂錢財的,這種騙術是一個名叫查爾斯·旁茲的投機商人「發明」的。龐氏騙局在中國又稱「拆東牆補西牆」,「空手套白狼」。簡言之就是利用新投資人的錢來向老投資者支付利息和短期回報,以製造賺錢的假象進而騙取更多的投資。

  龐氏騙局得以長期延續的方式:無限接近極限、不斷調整騙局標的物、拆東牆補西牆。龐氏騙局形式上不盡相同,但實質上是一致的。判斷龐氏騙局的特徵:

  一是鼓吹無極限的單向性增長(尤其是幾何級數的增長);

  二是增長的基礎建立在「良好預期」,而「良好預期」遠遠偏離現實狀況;

  三是維持某種持續增長局面的前提是社會公眾普遍持有某一「信念」,而這一「信念」並無可信的物質基礎;

  四是當某一「信念」變得脆弱之時,「信念」標的物出現調整,而通過樹立新的「信念」來維持局面不被打破。

低風險、高回報的反投資規律

眾所周知,風險與回報成正比乃投資鐵律,「龐氏騙局」往往反其道而行之。騙子們往往以較高的回報率吸引不明真相的投資者,

拆東牆、補西牆的資金騰挪回補特徵

由於根本無法實現承諾的投資回報,因此對於老客戶的投資回報,只能依靠新客戶的加入或其他融資安排來實現。

投資訣竅的不可知和不可複製性

騙子們竭力渲染投資的神秘性,將投資訣竅秘而不宣,努力塑造自己的遠離非法集資「天才」或「專家」形象。實際上,由於缺乏真實投資和生產的支持,騙子們根本沒有可供仔細推敲的「生財之道」,所以盡量保持投資的神秘性,宣揚投資的不可複製性是其避免外界質疑的有效招術之一。當年《波士頓環球時報》的記者曾經撰文揭露龐齊的騙局,卻被龐齊以「不懂金融投資」為由加以批駁。

投資的反周期性特徵

「龐氏騙局」的投資項目似乎永遠不受投資周期的影響,無論是與生產相關的實業投資,還是與市場行情相關的金融投資,投資項目似乎總是穩賺不賠。萬畝大造林計劃彷彿從不受氣候、環境、地理因素的影響,麥道夫在華爾街的對沖基金也能在二十年中數次金融危機中獨善其身,這些投資項目總是呈現出違反投資周期的反規律特徵。

投資者結構的金字塔特徵

為了支付先加入投資者的高額回報,「龐氏騙局」必須不斷地發展下線,通過利誘、勸說、親情、人脈等方式吸引越來越多的投資者參與,從而形成「金字塔」式的投資者結構。塔尖的少數知情者通過榨取塔底和塔中的大量參與者而謀利。即便是高深莫測的納斯達克前董事會主席麥道夫也免不了拉攏下線的俗套,大量利用朋友、家人和生意夥伴發展「下線」,有的人因成功「引資」而獲取傭金,「下線」又發展新「下線」,滾雪球式的壯大為「金字塔」結構。

龐氏騙局危害性

較之一般的金融詐騙,「龐氏騙局」受害者更多,影響面更廣,危害程度更深,隱蔽性更強,具有更大的社會危害。  第一,金

一是受害者人數眾多。「龐氏騙局」固有的金字塔型投資者結構和欺騙拉攏下線的傳銷方式決定了受害者必須達到一定規模,方能有效維繫騙局所需的現金流。因此,典型的「龐氏騙局」受害者往往人數眾多,如龐齊當年受騙的投資者達4萬之眾,以非法集資為特點的哥倫比亞「金字塔騙局」受害人數達200萬之多,新近的麥道夫案件受騙人數難以計數,除美國本土,麥氏欺詐案還波及英國、法國、瑞士、西班牙、日本等國。

二是受騙金額巨大。「龐氏騙局」的肇始人根本沒有想過償還投資本金(比特幣崩盤誰去負責?),因此他們從不擔心涉案金額過大,並且騙子們認為集資金額的增大,有助於提升自己的知名度,從而吸引更多的投資者參與。因此,在滾雪球效應累積下的「龐氏騙局」,其涉案金額往往高於一般的金融詐騙。如龐齊當年詐騙了1500萬美元,哥倫比亞非法集資案涉案金額達8億美元,麥道夫案件更是達到了空前的600億美元。

三是社會影響面廣,影響層次眾多(貪心的人太多了,總是想一本萬利)。「龐氏騙局」的受騙人數和受騙規模決定了其社會影響面遠超過一般的詐騙案件。其影響層次呈現出多元化的走向,既有政府官員和社會名流,也有金融投資從業人員,更有風險承受能力較低的一般民眾和退休人員,由此造成的社會危害也較為嚴重。如果處置不當,很可能因為民眾情緒而危及金融穩定與社會秩序。例如哥倫比亞金字塔騙局就在一些地區引發了大規模騷亂。

四是危及投資信心和金融穩定(很多人是借錢來玩的,甚至是賣房子貸款,想一夜致富,如果崩盤估計很多投資者要跳樓)。鑒於「龐氏騙局」的影響力和危害性,其對投資者信心的打擊是致命的,每次「龐氏騙局」過後,總要用相當長的時間去修復受損的金融秩序,而恢復投資者的投資信心更非一朝一夕可以完成。以麥道夫弊案為例,由於大量的金融機構捲入其中,造成金融機構的客戶對金融機構喪失信任感,引發大規模的連鎖訴訟,使已經遭受金融海嘯重創的華爾街再添新傷。

五是騙術的欺騙性和隱蔽性造成監管追查的困難(已經有比特幣交易中心捲款逃跑了,投訴無門)

高明的「龐氏騙局」 多採用晦澀難懂的投資技術,使生財之道看上去似是而非,又彷彿切實可行,輔之以穩定的超額回報,能夠有效地欺騙一般投資者甚至專業投資者。「龐氏騙局」的知情者往往掌控著集團的核心信息,任人唯親,並嚴格保守集團的財務秘密,從而降低了被外界揭露或查處的風險。比如,麥道夫公司的資產管理部門和交易部門分別在不同樓層辦公,麥道夫對公司財務狀況一直秘而不宣,甚至對作為公司高管的子女親戚也從不透露,而投資顧問業務的所有賬目、文件都被麥道夫鎖在保險箱里。缺乏透明度和各種各樣的欺瞞手段使得「龐氏騙局」往往能在監管者的視野外維持相當長時期。


之前過一次比特幣,剛好循環利用(* ̄▽ ̄)y

全部個人意見,有不同意見的請輕拍。另外金融方面不專業,可能會有硬傷,打臉的時候還請客官下手輕點

————————————————————————————————————————

技術方面科普就不說了,百科裡一堆,只說個人對比特幣的看法。

1:比特幣是披著高科技外皮的投資工具。本質上和股票沒多大區別。甚至還不如股票——普通貨幣有國家和政府作為信用支撐,但比特幣沒有一個足夠強大的信任基礎來支撐,只是說你信我信那就可以交易了,但完全忽略了旁邊那個一點都不信的人。所以他缺少一個大眾範圍內流通的條件

2.比特幣現在的價值極不穩定,而且匯率受第三方貨幣(以美元為例)的控制——投入的人多進入這個市場的美元越多比特幣匯率也就越高。但這樣的東西難道不是更像一支熱門股票么?大家都買進所以股價才高。這段時間比特幣的大起大落也說明了這點。而且大家看比特幣的時候考慮的都是他可以換多少美元而不是說可以買多少東西——人民幣對美元匯率也一直在動,但你肯定不會一看到人民幣就去想可以換多少美元

3.即使比特幣可以在線下流通支付了,他的價值判定也是受第三方貨幣影響的。比如說一杯咖啡我定價0.1比特幣,晚上的時候比特幣匯率突然大漲,那我肯定要給他減少定價了——因為我的其他支出用的都是人民幣,所以比特幣必須衡量成人民幣來計算。什麼,你說假如全民都用比特幣支付?開什麼玩笑。一共才2100萬個貨幣,全世界60多億人,平均下來每個人是多少個?你指望這種貨幣全民流通?付賬的時候用1*10^6做基準的貨幣和1*10^-6做基準數的貨幣都是在耍流氓。所以在這基礎上,比特幣到底是通脹還是通縮根本沒人會在意。因為流通範圍限制太大,被第三方貨幣狠狠地牽制著,大家都只關心手上這麼點比特幣可以換多少人民幣

——————————————————————————————————

語無倫次的說了一堆也不知道各位有沒有看懂,其實如果比特幣如果換個名字比如說比特魔力,那估計完全不會有現在這麼大影響——現在無非是因為和貨幣搭了點邊加上人民幣貶值速度快,所以被不少科技媒體捧紅了。

從他的產生方式,流通範圍以及實際價值來看的話,其實完全可以看成是論壇掛機攢積分的模式,然後有的人就和同樣玩這個論壇的人用積分做了比實物交易。接著有人開始告訴別人這裡可以用積分買實物誒,然後馬上來了一堆投機的,他們不通過掛機而是直接用現金收購他人手中的積分,從而導致短時間裡積分一下子就值錢了,然後吸引了更多投機的人進來,接著之前的投機者把積分高價賣出去就抽身而退了。剩下一堆掙扎的。等到有一天投機者把現金都撤出來了,然後你會發現這積分又和一開始一樣不值錢了。而且從頭到尾用積分都只能和那個論壇的人做實物交易而已。而你大部分物品其實都不是那裡買的。。


零基礎帶你了解比特幣、區塊鏈和ICO(無需計算機專業知識背景)

  該文適合完全不懂比特幣、不懂計算機技術的知友閱讀,如果希望很深入了解比特幣的知友,可以在其他回答中尋找答案。

  第一次寫知乎,很多地方可能弄不好,希望大家諒解。

  比特幣作為一種新的金融產品(儘管我國不承認),以一種新奇的存在形式慢慢地滲透到我們生活中。或許未來10年、20年,你會像離不開支付寶一樣離不開它。但是很多人至今無法理解比特幣是怎麼一回事。所以我將用最簡單易懂的方式告訴大家。如果大家發現有錯,也請及時為我糾錯。廢話太多,別急,接下來就聽我娓娓道來。

一、區塊鏈原理的概述

  比特幣是一種存在於網路世界的虛擬貨幣。實則為一串計算機數據。比特幣產生是以區塊鏈技術作為基礎。那麼,什麼是區塊鏈技術?簡單來說,區塊鏈技術可以看做是一種新型的資料庫的儲存、應用的技術。如何理解呢?傳統的資料庫儲存模式是中心化的,也就是說數據保存在固有的一個或者幾個伺服器中。比如你這個月的消費賬單保存在你自己的電腦中,那麼你電腦就是唯一擁有你賬單的伺服器。這就使得只有伺服器的擁有者才對這該數據擁有查閱和修改的權利。而區塊鏈技術是一種分散式存儲,它使數據存在所有的用戶手中,沒有中心伺服器,所有人人手一份數據,都可以看到數據信息。這就使數據變得公開、公正,解決了信息不對稱的問題。而比特幣正是應用了這種公開、公正的技術特徵,建立了一套沒人可以作假、增發的貨幣體系。

二、比特幣基本原理

  如果你原先對比特幣一知半解,那麼現在大家可以拋開對比特幣的了解,從空白開始。假設自己是一個制度的創造者,來和我一起構建一套制度。

  我們可以這樣先做這樣一個背景假設:在一個資源匱乏的村子裡有10個人,他們想建立一套貨幣體系,那麼用什麼當貨幣呢?筆?書?鞋子?

  於是有個很聰明的人(中本聰)告訴他們,何必這麼浪費,人手一份賬本(區塊鏈資料庫),找個記賬的人把大家的資產和交易記錄下來就好了。

  那麼這種"記錄賬本"的貨幣體系是如何進行的?現在假設給十個人每人隨機分配一個兩位數編號(地址),像這樣:

   甲:12

   乙:23

   丙:34

   丁:45

   ……

  我們假設每個人都有5元的資產充值到自己的編號地址下,那麼賬本應該這樣記:

   12:5

   23:5

   34:5

   45:5

   ……

  當某天甲(12號)需要支付2元給乙時(23號),甲就對著記賬人大喊:喂,記賬的,把12號地址轉2元到23號地址里去。於是記賬的就盡心地把所有人的賬本都更新一遍(全網廣播)。於是賬本變成這樣:

  12:5-2

  23:5+2

  34:5

  45:5

  ……

  當然,有幾點需要注意的是:第一,賬本必須是同步的,也就是每筆交易需要全網廣播。所有人都能看到相同賬本和交易記錄,才能確保信息的真實,正確,一致。如果有人的賬本與他人不一致,可能存在兩種情況:本地數據被篡改;數據更新不及時。此時,系統會以「少數」服從「多數」的方式,糾正少數的錯誤數據。因此如果想要篡改區塊鏈數據,需要同時將大部分人手中的「賬本」數據做統一修改(50%以上)。這很難做到,因為比特幣網路已經十分龐大。第二,賬本建立起來後,儘管交易一直在變動,但貨幣總額是確定不變的(在我們這個假設中,總貨幣是5×10元,不會增加或者減少。比特幣的總數是2100萬個,也是個確定數。因此不會出現濫印貨幣導致貶值的情況)。第三,事實上,比特幣地址長達26到34位數(十六進位),而不是上面短短兩位數;第四,我們所說的"記賬者"就是礦工

  又有一天,丙(34號)需要支付乙(23號)3元。但是丙動小心思了。因為每人的地址是隨機生成,並非實名對應(比特幣的匿名性)。所以丙就可以對著記賬者大喊:嘿,12號轉3元到23號。因為記賬者並不知道12號地址是甲的,而不是丙的。What?這樣甲可就懵逼了!悄無聲息自己的賬戶就被別人動了,財產不翼而飛。不行不行,這套制度體系有問題,重來。

  於是,我們再來一招,給地址加個密碼,一個地址對應一個密碼,這樣不就可以防止別人任意使用自己地址嗎?

  這是個好方法,於是大家設置了自己的密碼。但是馬上問題又來,既然密碼是個人掌握擁有的,那麼誰能證明該密碼是屬於所對應的地址呢?記賬者如何確定你的密碼是正確的呢?有人認為,可以在密碼記在一個本子上。當發生交易時,記賬者使用密碼本核對。但是密碼本本身就具有了安全風險,甚至是記賬者將其泄露。因此這種方式仍然存在問題。

  聰明的中本聰說,要不這樣吧:給大家隨機生成一個編號,這次編號不作為地址,而是直接作為密碼(我們稱作私鑰),然後將這個私鑰經過一個函數變換生成一個確定的數字作為地址(我們稱作公鑰)。就好像y=f(x)。

  需要注意的是:上述的"函數變換"其實是一種非對稱加密。公鑰、私鑰是現代密碼學分支非對稱性加密裡面的名詞。私鑰可以輕易加密生成公鑰,而公鑰卻極難反推出私鑰(據說量子計算機是有可能做到的)。回答點贊第一的那位知友對此也有作解釋,大家可以看看。

  現在這個新的體系又開始成型了:大家在用自己的地址(公鑰)交易時,需要提供自己的私鑰,記賬者通過函數變換計算生成公鑰,來確定生成的公鑰與你的地址一致。那麼這筆交易即可完成。(事實上,在比特幣交易活動中,大家並不是直接拿出自己的私鑰,而是拿出由私鑰簽名過的"交易合同",因為直接拿出私鑰,仍然會使私鑰變的不安全,容易泄露。有興趣的同學可以自己去研究琢磨,這裡不多說。)

  好了,現在這樣一個體系大致成型。大家就開始擔心起另一個安全性問題了:如果將來科技進步巨大,計算機計算水平大大提高,有能力用公鑰反推出私鑰怎麼辦?事實上這種可能性仍是存在的。因此,我們可以給私鑰雙重加密,即把私鑰加密生成的公鑰,再次加密後的值作為地址。

  需要注意:第一,給公鑰加密的方式是哈希加密(Hash),也是種非對稱加密,加密後的值我們叫做公鑰的哈希值。第二,我們在比特幣交易中所說的錢包地址事實上就是公鑰的哈希值。第三,從公鑰的哈希值解密出私鑰是不可能做到的。

  講到這裡,我們的整個貨幣體系已經完全成型了。沒錯,這就是我們的比特幣交易原理。我給大家梳理一遍。

  首先,我們在比特幣交易過程中,需要一串數字作為我們地址。因此我們可以利用計算機隨機生成一串數字作為私鑰,經過二重加密生成公鑰哈希值作為錢包地址。

  需要注意:第一,私鑰要求是二進位的256位數。第二,這個過程完全不需要網路,甚至連私鑰都是可以自己寫出一個二進位256位數,進行加密生成固定地址。

  然後,我們可以將生成的地址通知他人,用於轉賬交易。因為每「賬本」是公開的,每一筆交易都在比特幣網路上被廣播。因此每個地址下的交易都是可被追蹤查看的。

  需要注意:第一,他人如果將自己的比特幣轉賬到你的地址下,是不需要你任何操作的。第二,如果你需要將自己地址下的比特幣轉出時,需要提供私鑰的簽名文件和你的公鑰。因此,從未發生轉出交易的錢包地址十分安全(公鑰哈希不能推出私鑰)。但是一旦發生過交易,安全性便降低了,因為你提供出了你的公鑰(破解者只需從公鑰破解出私鑰)。

  所以,追求安全性第一的人,建議每交易一次就換個錢包,每個地址就使用一次,避免私鑰被盜和被破(儘管極難)。每次轉出交易時,都將剩餘的比特幣轉到一個新的地址下。

  正如上所說由於大家出於各種安全性考慮,因此不會有人一直用同一個地址交易。所以,現在大家口中所說的比特幣錢包,事實上是一個很多私鑰的集合文件(wallet.dat)。存在電腦里,就叫電子錢包;寫在紙上就做紙錢包,還有一些在在線錢包等等。你可以將私鑰記在任何地方,甚至記在腦海里。而所謂的錢包密碼,就是給存私鑰的文件加個密,給電腦上個鎖罷了。

  現在各種比特幣的交易平台軟體,很多事實上僅提供給用戶錢包地址,私鑰由交易平台替用戶保存。用戶的每次交易都是平台替用戶簽名、廣播的。好處是不懂比特幣的人可以輕易上手。最大問題就是,你的私鑰不在你手上,如果平台跑路。。。。你懂的。所以建議大家在正規平台交易,或者自己製作錢包。

三、ICO融資

  關於ICO的詳細說明,如果點贊數量有所提高,有人看。我願意仍用這種最簡單易懂的方法來介紹。後續,還有一些內容可以補充拓展,不知道有沒有人看,先寫到這吧,如果有人看,我就接著補充完善。謝謝。

  推薦幾個網站給大家:

  比特幣最權威的網站

Open source P2P money

  比特幣在線錢包

Bitcoin Block Explorer - Blockchain

  該網站可以申請在線錢包,雖然沒有給私鑰,但是還是比較可靠安全。

  比特幣論壇

巴比特 | 服務於區塊鏈創新者

  比太客戶端錢包

http://www.bither.net


個人看過最簡單明了的解釋了

蘋果交易

真是個好天氣,我們坐在公園的長椅上。我有一個蘋果,我把它給你。現在你有一個蘋果,我有零個。這十分簡單,是嗎?

讓我們仔細看一下發生了什麼.

我的蘋果的的確確放到了你手中(物理上可感知)。你知道的,你我都在場。你感覺得到它。我們並不許要一個第三方來協助。我們並不需要讓湯米叔(一個知名仲裁人)來與我們坐在長椅上來確認蘋果確是從我手中到你手中的。

蘋果是你的了!我不能再給你另一個,因為我沒有了。我對它不再有控制權了。那個蘋果徹底擺脫我的掌控了。它完全屬於你了。你可以將它送給你的朋友,如果你想的話,然後你的朋友又可將其送給他的朋友。。。

人與人之間就是這樣交易的。我想如我給你一個香蕉,一本書,或說一個硬幣,或一百萬,莫不如此。

但我說得有點快了。

回到蘋果

這麼說,我有一個數字蘋果,現在,我要給你一個數字蘋果。

事情變得有趣了!

你怎麼知道這個"蘋果"以前是我的,現在是你的,並僅僅是你的? 想想看。

這變複雜了,對嗎?你怎麼知道我有沒有先將蘋果附在郵件中寄給了湯米叔?或你的朋友喬,或也給了我的朋友麗莎?或許我在我電腦上拷貝了那個蘋果。又或者我將其放到網上,然後千萬人已下載了。

你看,數字交易遇到點麻煩了。送數字蘋果與送真正蘋果不一樣。

一些聰明的計算機科學家確實給這個問題起了個名字:二次消費問題(double-spending problem)。不用擔心,你只需知道這困擾了他們相當長時間,他們也沒有解決。

直到——

但,讓我們試試能不能自己解決。

記賬本

或許這些"蘋果"應當由一本記賬本來記錄起來。它基本上是一個記錄你所有交易的本子。這個記賬本,由於其是數字的,需要活在它自己的世界中並需有人來保管。這麼說吧,就像魔獸世界一樣。創造它的暴雪(公司)有一記賬本記錄著系統里稀有的烈焰寶劍。酷,讓這樣的人來記錄我們的電子蘋果。太棒了,我們解決了!

問題

儘管如此,還是有些小問題:

1) 如果暴雪的某人私自增加怎麼辦?他隨時都可以往他的餘額中加"蘋果"。

2) 這和我們那天在長椅上的情況不同。那天只有你和我。在這種情況下,相當於是讓暴雪在每一場交易中充當第三方的角色(仲裁人),那我怎麼才能以一般的方式將我的蘋果給你呢?

有沒有一種辦法能近似的模擬出像在長椅上的情況呢,只有你和我,進行電子交易。看起來有點困難。

解決辦法

如果我們將記賬本給每一個人怎麼樣?與託管在暴雪的電腦上不同,每個人電腦上都有這個記賬本。所有的電子蘋果的交易將會全被記錄再上面。

你不能對其造假,我無法送給你一個我沒有的蘋果,因為這樣它就與其他人的數據同步不上了。這將是一個難以攻破的系統,特別是當其發展起來之後。

另外它並不由一個人所控制,所以我清楚沒人能私自給自己添加"蘋果",這個系統的遊戲規則從一開始就制定好了。它的代碼和規則都是開源的,你懂的,有點像你媽手裡的安卓手機。或是維基百科。它由聰明人對其做貢獻,維護,保證安全,改善,與檢查。

你也可以加入這個網路且更新其記賬本,並能查證其更新。你能拿到25個"蘋果"作為獎勵(註:比特幣是內置演算法生成的,通過運行比特幣演算法,電腦生成特定的數字後,即可獲得25比特幣。zhihu) 。事實上,這是系統里唯一能創造出更多"蘋果"的方法。

我簡化了不少

但是我所說的系統確實存在。它叫做比特幣協議。那些「蘋果」就是比特幣。 真有趣!

所以,你明白髮生什麼了嗎?這個公眾的記賬本是怎麼實現的?

1) 它是開源的,還記得嗎?「蘋果」的總數一開始就在公眾記賬本中確定了。我知道存在的確切數量,在這個系統里,我知道它是有限的(很少見)。

2) 當我進行交易時,我只到我的「蘋果」可證地從我手中到了你的手中。我以前是不能對電子物品交易作出這種保證的。這將會在公眾記賬本上得到更新和認證。

3) 因為它是一個公眾記賬本,我不需要湯米叔(第三方)來保證我沒有詐騙,或者為自己留了額外的拷貝,或是將「蘋果」送了兩,三次。

在這個系統中,「蘋果」的交易就和真是發生的沒什麼兩樣,就和看到一個真實蘋果從我手中跑到你口袋中一樣。就像在公園的長椅上,這個交易只涉及到兩個人。你和我——我們不需要湯米叔來證實它的有效性。

換句話說,它表現得與物理存在的東西一樣。

但你知道,有什麼酷炫的嗎?它是數字的。現在我們可以處理1,000個"蘋果",或一百萬個,甚至0.0000001個.我可以通過一個按鈕就完成交易,就算我在尼加拉瓜,你在紐約也可以。

我甚至還可以放其他的數字信息在那些「蘋果」上,畢竟它是數字的。或許我可以附上一個數字筆記,或一些更重要的東西,比如說一個合同或是股票證書,或ID卡。

這麼說來真是太棒了!那我們該如何對待或估值這些「蘋果」呢?它們很有用不是嗎?

嗯,現在在經濟學院里,政治家中,和程序員里,很多人對此爭論不休。不要全都聽信他們。有些人很聰明,有些人被誤導了。有人說這個系統價值連城,有人說其一文不值。有人真的給出了其估價每個"蘋果"1300$。 有人說其

是數字黃金,有貨幣屬性。有人說這只不過就想鬱金香(此處原文無具體指明,據查應是指鬱金香狂熱 )罷了。有人認為這螚改變世界,有人認為這僅是一時時尚而已。

我對這有自己的看法。

這又是另一個故事了。但現在,你比大多數人更了解比特幣了。

[Ziu via The Daily Dot]

# Plus:維基百科:比特幣


推薦給大家一篇文章。以一個虛擬的叫「比特村」的村莊故事,來講比特幣是怎麼運行的。整個文章會以講故事的方式,逐步告訴大家比特幣提出的動機。故事的描述拋開了很多技術性的細節,很容易理解比特幣的概念。

CodingLabs - 一個故事告訴你比特幣的原理及運作機制


推薦閱讀:

如果比特幣價格就是不跌,國家該怎麼辦?
區塊鏈去中心化有那麼有用嗎?
比特幣(Bitcoin)這樣的體系會破產嗎?
各位認為被評價為Bitcoin 2.0的Ethereum(以太坊)是否有發展空間和成功潛力?
毒品網站的比特幣被沒收,為什麼會導致比特幣價值暴跌?

TAG:比特幣Bitcoin |