「區塊鏈」、「比特幣」這兩個概念在2017年很是熱。可是,2018年這個概念可能會更熱。git
各大互聯網公司相繼發力區塊鏈:百度推出了基於區塊鏈的萊茨狗遊戲,網易推出了基於區塊鏈的星球,阿里巴巴在區塊鏈的專利申請已是國內企業的第一位。算法
區塊鏈發源於比特幣,那麼比特幣到底長什麼樣呢?下面,咱們就一塊兒來看看比特幣的真容!瀏覽器
上面的圖片固然不是真的比特幣。比特幣只是一串數字而已。安全
01 創世區塊服務器
2007年,中本聰提出:網絡
「我相信存在一種不依賴信用的貨幣,我沒法阻止本身去思考它。」數據結構
2008年11月1日,一封不起眼的帖子出如今論壇的「密碼學郵件組」裏,帖子言論大膽:分佈式
「我正在開發一種新的電子貨幣系統,採用徹底點對點的形式,並且無需授信第三方的介入。」帖子署名是中本聰(Satoshi Nakamoto)。區塊鏈
2009年1月3日,中本聰把本身的思考落地,他在赫爾辛基的一個服務器上建立、編譯、打包了第一份開源代碼;18時15分,建立了比特幣世界的第一個區塊(block),這一天被稱爲「創世日」,而這個區塊也被稱爲「創世塊」。加密
那麼,下面咱們就正式來看看這個創世塊的真容吧,下面是創世區塊的連接地址:
https://blockchain.info/block/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f?nsukey=qV486C6yJIaopG1HEuXoAqeWvYLkD1Fo8rV7JgvHi27SMRSDuHaWI%2B1PryrBEIEKeEpg0SCeU9Fm0Rm%2F9lngW4v611uQioJ4YOCDr2E1UhZkbK%2BcSXFxQz5VLBy%2B1gzhJuhPJW0sWI847byarFAvDbq4rqkJNuMZqd%2FfOFOWen8SmivODLeMpN2P8Q4wH%2FBDmBvgutVOeZcODUpjc5pa3w%3D%3D
若是你不便打開網頁,我把創世區塊截圖出來:
比特幣第一個區塊創世區塊
是否是一臉懵逼。我簡單來解釋一下創世區塊(BLOCK#0)裏的內容:
每一個區塊都分爲3個部分:
summary(基本狀況)
Hashes(哈希值)
Transctions (交易詳情)
第1部分:summary(基本狀況)
Number Of Transcations 是交易數量,由於是第一個交易,因此它的值是1
Output Total 輸出數量,是一筆獎勵50BTC
Estimated Transaction Volume 是輸入值,由於是第一筆交易,來自系統獎勵,因此輸入是0。
Transction Fees 是交易的手續費,剛開始的交易都是不須要手續費的。
Height 區塊在主鏈(Main Chain)中的高度(每增長一個區塊加1),由於是創世區塊,因此爲0。
Timestamp 這個區塊建立的時間,是2009年1月3日18時15分5秒。
Received Time 是收到的時間,時間也是2009年1月3日18時15分5秒
Relayed By 中繼,未知。
Difficluty 難度,表明挖礦的難度值,後面會講到,數值爲1。
Bits 位數
Size 表示區塊的大小,是0.285kB
Weight 區塊重量,主要是隔離見證和礦工使用的。
Version 表示交易數據結構的版本號
Nouce 是礦工在區塊頭上添加的哈希值數據,後面會講到
Block Reward 是這個區塊獎勵的數量,第一筆是50BTC
第2部分 Hashes(哈希值)
Hash 是這個區塊的哈希值(哈希是一種算法,把數據變成一串數字代碼),是這個區塊的惟一編號
Previous Block 是這個區塊前面一個區塊的哈希散列值,由於前面沒有,全部全是0
Next Block 是這個區塊下一個區塊的哈希值
Merckle Root 是默克爾根,這是一種二叉樹的計算方法,經過Merckle Tree,將區塊頭與區塊體(大量交易)鏈接(以後有詳細介紹)
第3部分 Transctions (交易詳情)
是這個區塊所記錄的所有的交易狀況,每一筆交易都包含交易的時間、輸入地址、輸出地址、交易的數量等信息。由於這一筆交易沒有輸入,因此Input爲0,而交易的數量是系統獎勵的50個BTC。
以上這些就是一筆比特幣交易的所有信息。你看,比特幣也不是那麼複雜嘛!
下面,咱們將逐漸揭祕比特幣到底神祕在哪裏,咱們先從中本聰的《比特幣白皮書》開始瞭解。若是要想了解區塊鏈,比特幣白皮書是必讀的。
02 比特幣簡明工做原理
1.比特幣解決的痛點
比特幣究竟是個什麼東西呢?中本聰是這樣定義的:
是一種徹底經過點對點技術實現的電子現金系統,它使得在線支付可以直接由一方發起並支付給另一方,中間不須要經過任何的金融機構。
爲何要建立這麼一個比特幣呢?中本聰指出:咱們很是須要這樣一種電子支付系統,它基於密碼學原理而不是基於信用。
換句話說,比特幣可以讓交易再也不須要中間機構,直接用密碼學就能實現人和人之間流暢的交易。(有這樣的願景,被打擊也就不奇怪了!)
2.比特幣記帳與挖礦
傳統的交易,除了線下咱們能夠直接一手交錢、一手交貨,不須要第三方,遠距離不見面的交易咱們必需要一箇中介機構。
好比咱們在淘寶上買東西,就是經過支付寶,咱們把錢提交到支付寶裏面,雙方都確認以後,而後支付寶再把錢打給到另一方。咱們轉帳也是這樣,咱們把錢打給一個金融機構,這個機構把這筆錢打給咱們須要交易的人,金融機構就是這個第三方。
比特幣是怎樣運行的呢?
你能夠把比特幣理解成一個軟件,它在計算機上運行。它的核心功能就是維護一個帳本,這個帳本與咱們現實中帳本的不一樣之處在於,全部的帳本都是同樣的!
全部的交易都是記在一個帳本上,這樣就不會有人提出異議了。可是,誰來負責記帳呢?——這是一個關鍵問題。
中本聰用一個天才的方法把這個問題解決了,這個方法就是——挖礦。
挖礦的礦機實際上是一臺能進行告訴計算的電腦,每臺裝有比特幣軟件的電腦均可以經過競爭的方法來記帳,記帳的過程就是把一批交易進行打包,造成一個區塊,就像咱們前面看到的那樣,這些區塊一個個首尾相接,就造成了區塊鏈。
爲了獎勵這些爲交易打包的行爲,比特幣對記帳的礦工進行獎勵(剛開始是50BTC,如今則降到了12.5BTC),另外還有這個區塊裏面全部交易的手續費也都歸這個區塊全部。
記完帳以後,就迅速把這個消息通告到全網,那麼還沒完成記帳的電腦就放棄當前的記帳工做,轉而下一次競爭。
因此,不少人說挖礦就是在消費電能,能夠這樣理解:消耗的電能是爲達成交易共識所必須付出的代價而已,若是不消耗這些電能,就須要一個龐大的金融組織來實現這筆交易,你說哪一個消耗更大呢?
爲了維持這個共識,礦機所產生的價值要遠遠大於電能的消耗。
3.誰來記帳?
這麼多礦機,誰來負責記帳呢?這就要提到一個概念——PoW(Proof of Work),也就是工做量證實。
礦工所作的工做其實就是來產生一個隨機的哈希值,在第一部分咱們講到,你能夠返回去看看,這個值是nounce,也就是隨機數。
這個數的生成是一道算術題目,誰先把這個問題解出來了,就由誰來生成這個數字並添加進這個區塊頭裏面,它也就能得到這個區塊的獎勵和全部的交易手續費。
由於有獎勵,想挖礦的電腦愈來愈多,也就是算力愈來愈大,因此挖礦的難度一直在增長。前面咱們提到的難度(Difficulty)指的就是這個。
剛開始難度很是低,每一個人用電腦CPU均可以挖礦,得到獎勵,後來有人發現,用顯卡挖礦的效率比CPU高几百倍(發現這個祕密的人,就是那個傳說中的用1萬個比特幣買了一張披薩的工程師)。
前面咱們提到挖礦的難度是1(你能夠翻回去看看那張圖),那麼如今的難度是多少呢?
咱們能夠看一看如今的難度,這個區塊是我寫文章時最新的一個區塊,高度是#508376(你能夠經過瀏覽器https://blockchain.info,很是快捷的獲取這些數據)。
咱們看到最新的難度值是2,874,674,234,415.94。也就是說,如今的難度係數比2009年增長了兩萬億倍,我的的CPU若是要挖的話,須要十萬年才能挖到一個區塊。
中本聰用這種巧奪天工的方法保證了任何人與人之間均可以構建安全的交易,讓人和人之間再也不須要第三方而能創建起信任。因此,美國經濟學人把比特幣稱之爲「製造信任的機器」。
而信任就是貨幣的本質,把比特幣稱之爲數字黃金一點也不誇張,反而十分的貼切。
03 比特幣前傳
這麼偉大的比特幣,它是怎麼來的呢?
其實,咱們提到的中本聰,不少技術他都不是始做俑者,他只是衆多技術的一個集大成者而已。
他雖然在2007年提出了這個數字貨幣的概念。可是早在20世紀30年代,加密貨幣的最初設想就已經出現了。
1982年,大衛喬姆提出了不可追蹤的密碼學網絡支付系統,而這其實才是今天比特幣的老祖宗。
1991年 Stuart haber和 Scott stornetta 發表論文: How to TimeStamp a Digital Document,他們提出用時向戳確保數字文件安全的協議,這也時是今天所謂區塊鏈鏈條的雛形。
1991年,菲爾齊默爾基於RSA公鑰加密體系開發了一個郵件加密系統PGP,它 可以保證郵件內容不被篡攻。
1997牛,亞當拜克( Adam back)發明了一種哈希現金( Hashcash)算法機制,而哈希算法在比特幣的白皮書中,就被中本聰用來解決了零信任基礎的共識問題。
1998年,戴偉(Wei Dai)提出了匿名的、分佈式的電子加密貨幣系統B- money(這確定是一個華人嘛)。在比特幣的官網上,B-money被認爲是比特幣的精神先導,中本聰與他的交流不少。
因此,中本聰在這些層不出窮的技術發展之上,於2007年提出了比特幣的概念,並最終在2009年建立出了比特幣系統。比特幣的誕生過程,就像是一個接力賽,中本聰恰好是那個接了最後一棒的幸運兒而已。比特幣的誕生實際上是20多年密碼和數字技術的積累和不斷演進的結果而已。
然而,爲了防止被強大的政府迫害,中本聰一直當心的隱藏着本身,他的公開信息都是經過暗網來傳達,不少人試圖找到他,但始終沒有人知道他是誰。
2008年,他在密碼朋克的郵件列表中提高了本身的創意。
2009年1月3日,中本聰發佈比特幣客戶端,宣告了特幣的誕生。
2010年12月12日,中本聰在比特幣論壇發佈了最後一個帖子,活動頻率逐漸下降。
2011年4月,他發佈景後一項公開聲明,宣稱自已已經開始專一於其餘項目。
此後,中本聰消失,再未現身……
中本聰只是歷史選擇的一個替身而已,他的消失也宣佈了源於比特幣的區塊鏈世紀,正式拉開了帷幕……