(為了方便大家閱讀,這裡貼出故事文字版,想看視頻的朋友可以移步我的主頁)
很久很久以前有一個小村莊,人們自給自足。村裡張三養豬,李四養牛,突然有一天張三想吃牛肉,于是他相了一個辦法,用自己的兩頭豬要求換李四的一頭牛,李四同意了。村裡開始流行這種以物換物的交易方式來滿足自己的需求。我們将這種貨币叫做“實物貨币”。
好景不長,稱量貨币逐漸出現了弊端,附近金礦不多,并且開采和冶煉費時費力,再加上黃金的磨損嚴重等一系列問題,村長再次召集全體人員開會商讨。有人提議:“我們沒必要非要用真的黃金啊,找一張紙上面寫上“一克黃金”,交易的時候給這張紙不行嗎?”村長覺得這個提議也不錯,于是補充規定:隻有村委會寫的紙并且蓋章才能用作交易。此時村裡便進入了紙币時代,村委會就承擔了政府和中央銀行的角色。
過了一段時間,很多人開始抱怨自己家的紙币太多,總有丢失的事情發生。村長的兒子小村長很聰明,他對所有村民說:“我來找人記賬,你們自願把紙币放到我這裡,以後交易的時候和我說一聲,我直接在交易雙方的賬上進行增減,你們出門就可以不用帶紙币拉!”村民很很高興的同意了。于是中央系統虛拟貨币誕生啦~也就相當于我們現在的銀行。
又過了一段時間,有些人發現村委會寫的紙币越來越多導緻很多紙币才能購買一代面,我們叫做通貨膨脹,再加上自己的錢卻由别人記賬,自己擔心風險。萬一村裡的會計亂改我的賬怎麼辦?這時候一個自稱叫做“中本聰”的人站了出來,他說自己設計了一套系統可以解決這個問題。
“首先,我們要将賬本進行改造,第一,賬本從私有變為公開,第二,以後不再記錄餘額,隻記錄交易信息,要想知道餘額通過計算就知道了。第三,我們流通的币種就叫做比特币”
此言一出,村民炸開了鍋,不記錄餘額倒是可以理解,公開賬本接受不了啊!誰都知道我有多少錢了啊!
中本聰說,别慌,我們這樣來操作。為了隐私安全考慮,我們每個人都不用真實姓名交易,我給每個人随機生成一個數,這個數介于0到2的256次方之間,出現的可能大概相當于宇宙中所有原子的數量,所以大家不用擔心重複的問題。我再用一種固定算法(Base58)把這個數變成字符串,這個字符串就叫做私鑰。你們自己一定保管好,私鑰是你擁有比特币的唯一證明,也相當于你們的密碼。
5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss
有了密碼就要有賬戶,在私鑰的基礎上再次通過算法算出一個公鑰,在公鑰的基礎上通過算法算出一個相對較短的字符串,叫做地址。如果你想收錢,隻告訴别人的你的地址就行了,如果你想付錢,需要告訴别人你的公鑰和地址,公鑰用于檢驗這個地址是不是你的。不過不用擔心,算法很安全,别人通過你的公鑰是推算不出來你的私鑰的!這樣就解決了交易安全和公開的問題。
為了解決通貨膨脹,中本聰接着說:
比特币不能無限發行,我們使用一個機制來控制他的發行速度和數量。具體這樣操作,找一些人來負責整理賬本,大家同時進行,誰先完成我們就獎勵他50個比特币,并且隻通過這一種方式發行比特币,也就是比特币的唯一來源。但想獲得獎勵也沒那麼簡單。需要他們找到一串特定的數字,我們叫做哈希值,具體的操作是将
這一頁紙的版本号version
上一頁的哈希值:prev_hash
自己的交易地址:merkle_root
更新的時間:ntime
當前難度:nbits
與一個随機數x進行sha256函數運算。Sha256函數可以将任意字符串通過加密得出一個64位的16進制數。隻要參數稍作改動,結果就會面目全非,但隻要參數相同,計算多少次結果都是一緻的。而且運算過程不可逆!
SHA256(SHA256(version prev_hash merkle_root ntime nbits x )) < TARGET
大家可以通過改變X值來獲取sha256函數結果,X可以是0-2的32次方之間的數,如果結果小于我們給定的目标值TARGET,我們就算他成功了。最直接的判斷方法就是sha256函數得出的64位16進制數字的前若幹位數均為0,(目前需要前18位均為0才算成功。)我們就獎勵他50個比特币再加上你們轉賬的手續費。這裡的每一頁紙就叫做一個區塊,整理賬本的過程我們叫做打包區塊,也就是俗稱的挖礦。每一頁連起來的賬本就叫做區塊鍊。
為了控制發行數量,我們規定将每十分鐘内産生的交易記錄寫到一個區塊上,然後讓礦工們打包,最開始每打包一個區塊獎勵50比特币,之後每經過21萬個區塊(約4年時間)獎勵就減半,直到2140年左右獎勵不足時,大約一共發放2100萬比特币。之後便不會再發放,那時礦工的獎勵來源将是每筆交易的手續費。
由于獎勵的原因,村裡很多人加入了整理賬本的隊伍,還有的人組隊參與。大家同時進行,誰先算出符合條件的X值意味着誰将獲得這筆獎勵,某個礦工算出X之後,迅速将消息向全村廣播,這時其他人開始校對他的答案是否正确,如果超過6個人确認,該頁賬本上的所有交易就生效啦!礦工們便會迅速開始計算下一頁紙的X值。
沒有了餘額,因此張三轉給李四的100比特币雖然雙方都寫在了賬本上,但該交易還不能生效,也就是李四還不能花這100比特币,直到看到有6人以上确認了這頁賬單無誤,區塊打包完成,李四才放了心。
至此,關于比特币的故事就講完了,你聽懂了嗎?
,