1. 程式人生 > >區塊鏈比特幣科普

區塊鏈比特幣科普

引言

比特幣和區塊鏈總是讓人感覺高深莫測,網上一搜總會搜到各種:去中心化、分散式、甚至無政府等更讓人摸不清方向的東西。哪些是對的,哪些是錯的,接下來我們就來探討下。

區塊鏈技術誕生於比特幣,所以一切都還得從比特幣談起!

什麼是比特幣?

比特幣是一個虛擬貨幣,就像QQ幣、遊戲幣等等,而比特幣底層產用的技術被稱作區塊鏈技術,這個技術的神祕之處就在於:它讓比特幣在沒有第三方擔保情況下在網上交易了7年多。而遊戲幣和QQ幣是由遊戲和騰訊公司來管理控制,每一筆交易都得通過伺服器的稽核。

這裡寫圖片描述

比特幣的由來

2008年10月31日,中本聰給密碼學郵件列表發了一封郵件,郵件裡說:“我一直在研究一個新的電子現金系統,完全點對點,無需任何可信的第三方”。

2009年1月11日,中本聰釋出了比特幣錢包第一個版本0.1版本,右邊是比特幣其中一個版本的客戶端0.10.1版本。

從此中本聰就再也沒有出現過,誰也不知道中本聰是誰。

這裡寫圖片描述
這裡寫圖片描述

比特幣為什麼會火起來?

比特幣第一筆交易

2010年5月22日,一位美國程式設計師用10000個比特幣在論壇上購買了兩個披薩。現在一個比特幣已經快被炒到了40000了,這可真是世界上最貴的披薩了。這也是比特幣的第一筆交易。

這裡寫圖片描述

比特幣的獎勵制度

不管中本聰多瞭解金融貨幣和經濟學,不管比特幣錢包涵蓋了多少密碼學和技術增加信任的方法,但是在普通人看來這就是一個很簡單甚至簡陋的小軟體。你把電腦一開啟,執行這個小軟體,你就會有被獎勵比特幣。

因為錢包之間通過P2P通訊,網路中每臺計算機都可以當伺服器又可以當請求者,從而完成資訊的共享和交換。錢包之間交易比特幣時候,每個節點會自動作為伺服器,來促成交易。所以你只要把軟體開啟,你的錢包有可能就會多出幾個比特幣,作為充當伺服器角色的獎勵,不需要其它任何努力。

交易更加便捷

當第一筆交易發生後,10000個比特幣買兩個披薩,人們發現比特幣也是有價值的。而比特幣錢包內部符合經濟學的獎懲制度、以及金本位制的貨幣與金融,促使越來越多的人加入到這個簡單的遊戲中來。

為了促進交易,很多比特幣愛好者建立了交易網站,設計簡潔優美的轉賬介面和銀行賬戶關聯。Mt.Gox於2010年7月建立,是最早的比特幣交易網站。2013年前後比特幣火爆程度飛速上升,各類交易網站層出不窮,給全球無數的投機者降低了入手門檻。除了交易網站還有公司做了比特幣取款機、商家二維碼付款、全球轉賬等實用app。

這裡寫圖片描述

還有個原因是,區塊鏈技術引爆了金融科技圈,很多金融大咖開始大談區塊鏈顛覆,也推進了比特幣的價格飛漲。

什麼是挖礦?

提高被獎勵的概率

前面提高比特幣的遊戲規則是,只要你需要交易,需要開啟比特幣錢包,那你就有可能獲得比特幣獎勵。這就像迅雷加速,你開啟迅雷,會自動上傳你電腦已有的資源,P2P技術把你電腦當成一個小伺服器,你幫助了別人節約了別人下載的時間,所以你應該得到獎勵。

這裡寫圖片描述

假如比特幣是通用貨幣,全球有70多億人口,那麼每時每刻都會有人交易,每時每刻都會有無數的電腦幫助別人促進交易。那誰應該得到獎勵呢?答案是:隨機的。全網100臺電腦,你有1臺電腦,那麼你的概率:1%,如果你有20臺電腦概率就是:20%。

比特幣開始變得“有價值”了,可以兌換成可以現實交易的貨幣了,而且價格還不菲。假如我執行100臺電腦,讓他們每時每刻都執行,就可以提高得到比特幣獎勵的概率了。當然如果我買的電腦是高配的,你的電腦低配,那我獲取的比特幣獎勵的概率也會變大。

獎勵的原理

開啟比特幣錢包後,會賺比特幣,我買更多計算機執行或更高配置電腦就會賺更多比特幣。它是什麼原理呢?

這裡寫圖片描述

比特幣錢包會自動同步最近全網10分鐘的交易資料,放在一個數據結構中,稱之為一個區塊。這時候比特幣錢包會對這個區塊做一些數學計算,其實就是列舉隨機數,直到符合系統要求的值。所以誰列舉的越快,誰就越有可能得到獎勵。

發明礦機和礦池

知道這個簡單的數學原理後,為了提高自己運算的速度,有人發明了用顯示卡平行計算,這樣可以提高概率,因為你用計算機1秒中可以列舉1000萬次,我可以1億次。從CPU、GPU、FPGA再到ASIC,為了提高自己的獎勵概率,人們不遺餘力的進行著創新。

這裡定義三個概念:

  • 挖礦:我們就把這種不以交易為目的執行比特幣錢包,而是主動掛機浪費電力的行為就叫挖礦;
  • 礦機:執行比特幣錢包的計算裝置我們就稱為礦機;
  • 礦池:將眾多礦機聚在一起進行挖礦的地方就叫礦池。

這裡寫圖片描述

還有一些商家看到了商機,將發明的ASIC做成漂亮的主機,然後在網上出售,這種專門用來挖礦的主機就叫礦機。最具代表性的是蝴蝶實驗室研發挖礦機,銷往全球,不過2014年9月23日 美國聯邦貿易委員會以欺騙手段推銷比特幣挖礦機提出訴訟被關閉。

這裡寫圖片描述

我在想即使沒有挖礦的行為,比特幣依然會很好的執行,它的幣不會多不會少,會沿著一條對數曲線逼近2100萬,直到發行完畢。因為比特幣系統規定總量是2100萬個,不管加入的礦機有多少,它會自動調節複雜度,使得每次能枚舉出的隨機數的時間平均控制在10分以內。

最開始的時候比特幣錢包兼顧了轉賬和挖礦兩種工作,後來人們單獨提取出來做成了一個叫CGMiner的小軟體。通過它可以自動呼叫顯示卡進行挖礦,也可以加入到一些礦池,一起進行挖礦,然後進行分成。

為什麼比特幣安全執行的交易了7年多?

分散式

使用者進行微信、支付寶交易,交易資料都會流經阿里伺服器進行校驗,這種方式稱為集中式。

這裡寫圖片描述

比特幣交易網站和支付寶區別是,網站的資料和每個比特幣錢包的資料是一摸一樣的。網站僅僅提供了一個介面和自己的一個賬戶系統,促進交易的依然需要全網的那些比特幣錢包。錢包之間利用P2P通訊,他們是一個個小伺服器,這就叫分散式。

這裡寫圖片描述

資料校驗的方法

在計算機中防止資料被篡改的辦法就是進行資料校驗。還記得以前在網站上下載Windows軟體都會有MD5值嗎?這個MD5可以用來校驗下載的軟體有沒有被篡改。因為Windows系統病毒氾濫,很容易下載到被人篡改的軟體。MD5值就叫做雜湊值(Hash),比特幣用的是SHA-256,原理是一樣的。都是通過對一個檔案進行雜湊計算,生成32位元組的字串。

這裡寫圖片描述

可以看到上面字串中有一個字元變了,生成的雜湊值都是完全不一樣的,所以通過SHA-256生成的雜湊值,可以校驗資料有無被篡改。

工作量證明

每發生一筆交易,都會通過P2P協議通知全網的其它節點。比特幣錢包會自動同步最近全網10分鐘的交易資料,放在一個數據結構中,稱之為一個區塊。

這裡寫圖片描述

區塊除了包含10分鐘的所有交易資料,還有一個隨機數。礦機會不停的列舉這個隨機數,再用SHA-256 生成一個雜湊值,直到雜湊值滿足第1個字元為0。檔案哪怕一個字元變了,生成的雜湊值都是完全隨機的,所以列舉隨機數,會隨機生成不同的雜湊值。什麼時候雜湊值首字母為0完全是隨機的。

每大約十分鐘,全網的礦機會同時開始列舉,直到有一臺電腦枚舉出一個符合要求的隨機數,這也標誌著一個區塊的生成。然後他就會通過P2P協議,向其它節點廣播這個訊息,其它節點會停止列舉。

比特幣會會通過控制生產的雜湊值前面0的個數,來調整生成區塊的時間,使這個時間維持在10分鐘。所以不過有多少臺計算機,都得一起列舉大約10分鐘才能找到符合要求的隨機數。這個工作量是巨大的,這樣篡改資料的成本變大,這就叫工作量證明。第一個發現隨機數的礦機是幸運兒,它會獲得一定數量的比特幣獎勵。

區塊+連線=區塊鏈

之所以要將區塊連線起來,是為了進一步提高區塊被篡改的成本。如果你要把一個區塊單獨拿出來,篡改它的資料,這時候你得通過自己努力找一個隨機數讓他的雜湊值符合要求,以前是全網計算機一起努力計算10分鐘才能算出。假如你用了10年,終於找到了一個符合要求的隨機數。

這時候你會發現,10年時間裡後面又生成了很多相連的區塊。計算後一個區塊雜湊值的時候,會引用到前一個區塊的雜湊值。你篡改的這個區塊,孤零零的在哪兒,因為資料驗證永遠都不會遍歷到你篡改的這個區塊,除非你把後面的所有區塊全都找一遍隨機數。

這裡寫圖片描述

一般交易比特幣要等1個小時,才最安全。這就是說你的交易區塊雜湊值,會就被後面區塊引用到,要篡改你的區塊就需要同時計算後面大約6個區塊的隨機數,這個就變的非常困難了。

比特幣系統本身有哪些技術問題?

這裡寫圖片描述

中本聰規定10分鐘一個區塊,比特幣每個區塊大小限定1M,這樣計算下來全球每秒最多隻能完成7筆交易。網上說今年11月會擴容,這時候比特幣區塊鏈就會被分叉成兩個。相當於重新建立一個新比特幣,可信度不高。

以前每臺計算機都需要下載7年多所有的交易資訊,需要校驗1天時間才能校驗完。當然現在也推出了輕量級版本。

中本聰為什麼匿名?

中本聰用9頁紙紙講解了他的點對點電子現金原理,過了幾個月他做了一個客戶端,並且將核心開源。從此消失,後面越來越多的人蔘與了這個遊戲,星星之火可以燎原,無數的人從這個遊戲中獲利,也有無數的人血本無歸。沒有人知道中本聰是誰,沒有人知道中本聰是一個人還是一個組織。

這裡寫圖片描述

我們知道的是:

  • 1998年,伯納德馮諾 創造私人貨幣被逮捕,宣判有罪盜版、欺詐、陰謀罪,在聯邦監獄等判刑結果22年;
  • 2014年,全球最大比特幣交易網站MtGox因黑客攻擊損失了80多萬個比特幣從而倒閉;
  • 2014年,美國最早的比特幣交易網站BitInstant,創始人兼CEO被判洗黑錢被捕。

什麼是價值網際網路?

在網際網路上,當你給你個朋友傳送郵件、照片的時候其實對方接收到的是複製品,因為你沒辦法將原件傳送給他。但是現實生活中我給你100塊錢,非常需要確保我手上這100塊錢沒有了。這說明網際網路不具備價值傳遞。

這裡寫圖片描述

因為網際網路價值傳遞功能的缺失,現在人們互相轉賬都需要流經支付寶、銀行等。但是比特幣卻很特殊,它實現了網路中兩個節點的價值傳遞。其實傳遞價值不僅僅是數字交易,可以是音樂、電影、電子書等。他們自帶數字簽名,假如你夠買以後,只有你的賬戶能開啟,你轉移給他人後,數字簽名就會變化。這樣你就打不開了,實現了和現實生活中一樣的價值傳遞。

去中心化的誤區

中心化是一個很寬泛的詞,容易誤導人們,因為中心化可以是公司、國家、政府,會讓人摸不清頭腦。當明確區塊鏈是一個技術,它能解決一些信任問題,實現網際網路中陌生人在沒有第三方擔保情況下進行價值傳遞,這樣理解會更清晰一點。

這裡寫圖片描述

火幣朱嘉偉在《不要過度神化區塊鏈》一文中也提到:從技術角度,區塊鏈技術最終要解決的問題,是信任的問題,即區塊鏈技術能夠在不信任的個體或組織之間建立信任關係。區塊鏈由於天然需要在全網路達成共識,和中心化的應用相比,必然要以犧牲效率為代價。換句話說,去中心化的應用一定是比中心化的方式效率要低的。

再談信任問題

這裡寫圖片描述

信任可以促進人們交易,降低交易成本,增加信任的方法有三個:

  1. 重複交易
  2. 第三方擔保和監管
  3. 投入附加成本

重複交易:

在沒有網際網路的時代,你去到一個陌生的地方會選擇人多的地方。因為人多代表著重複交易的可能性高,這樣就更可信。當然現在有了網際網路,我們有了評價體系,極大降低了人們重複交易的成本。那些原先一次性買賣的商家,也得計算自己的傷害成本了,因為雖然你沒有栽過跟頭,但是你能看到別人栽跟頭的經歷。

第三方擔保和監管:

為什麼人們在淘寶上會相信從未謀面的陌生人,是因為有支付寶做擔保。當然如果你在景區飯店吃飯,如果某家飯店門前掛著:衛生許可A級、景區優質商家等牌子,那也可以增進信任,促進交易。

投入附加成本:

一些酒店,他們在地毯、毛巾、床單上刻上他們的名字,這說明他們打算把生意做的很長久,不會輕易離開。如果只是短線投資,賺快錢,就不會這樣。這是取信於人的辦法,還有就是投入鉅額的廣告費。

區塊鏈可以增加哪些信任?

沒有區塊鏈之前,實現降低交易成本,人們需要主動參與,投入成本和精力建立信任。就像第一次工業革命前,沒有蒸汽機,很多勞動需要人們手動完成。上面我們介紹了市場經濟中,人們增加信任的三種方法,而區塊鏈會在第三方擔保和監管方面會產生革命性影響。

美國一家市場調研公司,2015年美國所有行業的監管成本是:1.885萬億美金。相當於世界上第9大GDP,超過了俄羅斯和加拿大的GDP。

這裡寫圖片描述

現在金融科技圈有個很火暴的科技叫:監管科技。區塊鏈技術在結算、清算和審計方面的應用是當前各大金融機構探索的重點。因為一家金融集團,需要向證監會、銀監會、保監會、財政部甚至央行等,進行各種各樣監管報送。利用區塊鏈技術可以是各個利益相關方建立信任,從而實現監管的智慧和自動化。

區塊鏈因為它的資料的不可篡改性,也極大提高了作假的成本。所以除了應用與金融業監管,在可以像合同、畢業證、房產證等這樣的紙質證明,有可能在未來消失。

區塊鏈的現狀和未來是什麼樣的?

這是區塊鏈誕生到現在的一張專利分佈圖,可以大致看出目前區塊鏈在各個行業的影響,依然是金融領域人們投入最多。我的一個朋友在眾享位元,他們公司已經開始使用區塊鏈技術和銀行進行合作。

這裡寫圖片描述

區塊鏈的核心在於價值傳遞,增進信任,身份認證和數字資產基礎還沒有成熟,目前區塊鏈只起到了記錄的作用。因此未來區塊鏈應用真正的成熟,可能需要以身份驗證,數字貨幣的流行為基礎。當數字貨幣等價值資產搬遷到線上後,區塊鏈應用就會大規模爆發。

最後引用各路大咖的一句話:區塊鏈目前仍然在嬰兒期,談顛覆為時尚早!

參考書目和連結