近年來關于區塊鍊、比特币、ICO 類似的概念非常的普遍,是眼下的超級大熱門,新聞媒體大量報道,宣稱它将創造未來。十傳百,百傳千,難免也就會有許多人把它們全部混淆在一起,去年年底比特币的暴漲和今年年初比特币的暴跌,讓不少人非常地感興趣,而又持觀望态度。甚至也有人認為比特币等價于金融風險,就是傳銷組織搞出來的花樣。
今天主要想給大家科普一下關于區塊鍊的一些基礎知識,以免混淆。我想說的是:區塊鍊 ≠ 比特币 ≠ ICO ≠ 金融風險。
什麼是區塊鍊
區塊鍊,英文名為 blockchain 或 block chain,實質就是一個 去中心化的分布式資料庫,它是用 分布式資料庫 識别、傳播和記載資訊的智能化對等網絡,也可稱為價值網際網路。
首先,區塊鍊的主要作用是儲存資訊。任何需要儲存的資訊,都可以寫入區塊鍊,也可以從裡面讀取,是以它是資料庫。
其次,任何人都可以架設伺服器,加入區塊鍊網絡,成為一個節點。區塊鍊的世界裡面,沒有中心節點,每個節點都是平等的,都儲存着整個資料庫。你可以向任何一個節點,寫入/讀取資料,因為所有節點最後都會同步,保證區塊鍊一緻。
去中心化?
前面說到一個非常關鍵的詞兒「去中心化」,到底什麼是「去中心化」呢?
大家知道我們國家的貨币系統,其實就是非常典型的「中央化系統」,我們有非常壟斷的國家銀行,下面還有一些城市銀行,我們把錢存在銀行,本質上就是因為我們信任國家,相信國家的能力。倘若不相信,我們根本不可能憑借一個數字,就大方地告訴别人,我有幾百萬乃至幾千萬。
我們進行一筆交易,實際上就是在銀行的資料庫進行了一定的資料更改,并定期讓各大銀行進行資料同步,這樣的過程一定是繁瑣的。
而區塊鍊在這方面就有一個非常革命化的特點了。
區塊鍊是完全沒有管理者的,它是去中心化的,測試無中心的!
雖然它也是資料庫的一員,但傳統的資料庫都是有管理者的。它的這個特點,讓它變得無比安全,因為不可能存在任何對資料進行強行壟斷的可能。假設黑客想要處理這個資料的話,必須要黑掉全網 50% 以上的網絡,就目前的技術來看,基本是不可能實作的。這也讓區塊鍊完好無損運作了 10 年之久,還是那麼地安全。
如何保證資料的可信度
前面說到,區塊鍊沒有管理者,人人都可以寫資料,那怎麼保證資料的可信度呢?這就是區塊鍊最神奇的地方。
我們必須得先了解一下區塊鍊的最小單元:區塊(block)。
簡而言之,每一個區塊就是一個資料。而一個區塊由區塊頭和區塊體兩部分共同組成。
-
區塊頭(Head)
區塊頭主要包含了區塊的頭資訊,包含上一個區塊的哈希值(preHash),本區塊的哈希值(Hash),以及時間戳(timestamp)等。
-
區塊體(Body)
區塊體主要就用于存放區塊的詳細資料了,它可以存放交易記錄資訊或者更多的其它相關。
Hash
說到 Hash,我想很多程式員大概不用問都明白,Hash 值就是一個計算機對不定長内容計算出來的等價特征值。我們平時提到很多的 MD5 算法就是典型的 Hash 算法,在 Java 上的 Hash 值判斷兩個變量是否相等也是運用的非常多。
由此可見,Hash 值是非常難重合的。
既然如此,我們的字元串 Hash 值是近乎不可能重複的,那麼我們的區塊中的内容發生變化的話,那區塊頭裡面的 Hash 值也一定會改變。
區塊和 Hash 是一一對應的,區塊鍊采用了一個典型的 SHA256 算法。計算公式為:
Hash = SHA256(區塊頭)
前面說過,區塊頭包含很多内容,其中有目前區塊體的哈希,還有上一個區塊的哈希。這意味着,如果目前區塊體的内容變了,或者上一個區塊的哈希變了,一定會引起目前區塊的哈希改變。
這一點對區塊鍊有重大意義。
如果有人修改了一個區塊,該區塊的哈希就變了。為了讓後面的區塊還能連到它(因為下一個區塊包含上一個區塊的哈希),該人必須依次修改後面所有的區塊,否則被改掉的區塊就脫離區塊鍊了。由于後面要提到的原因,哈希的計算很耗時,短時間内修改多個區塊幾乎不可能發生,除非有人掌握了全網51%以上的計算能力。
正是通過這種關聯機制,區塊鍊保證了自身的可靠性,資料一旦寫入,就無法被篡改。這就像曆史一樣,發生了就是發生了,從此再無法改變。
這一點和我們所學習的連結清單非常相似,是以它就有了「區塊鍊」這個名字。
挖礦
「挖礦」是我們聽的比較多的另一個名詞兒。所謂「挖礦」,其實就是計算最新資料的 Hash 值,生成新區塊的一個過程。
前面說到了一個點,區塊鍊的每個節點都是一個資料庫,為了保證各個節點之間的資料同步,那麼新區快的添加速度,當然應該得到控制。
是以,區塊鍊的發明者中本聰(這是假名,至今仍然沒人知道他的真實身份,但确實這人太神了。)故意加深了添加新區塊的難度。
他的設計是,平均每 10 分枝,全網隻能生成一個新區塊,一小時也就最多能生成 6 個。
這種産出速度不是通過指令達成的,而是故意設定了海量的計算。也就是說,隻有通過極其大量的計算,才能得到目前區塊的有效哈希,進而把新區塊添加到區塊鍊。由于計算量太大,是以快不起來。
這個過程就叫做挖礦,因為計算有效哈希的難度,好比在全世界的沙子裡面,找到一粒符合條件的沙子。計算哈希的機器就叫做礦機,操作礦機的人就叫做礦工。
也許有人在這裡會疑問,計算機最厲害的地方不就是把非常難的計算變的簡單嗎?為啥在這裡會覺得很難呢?
實際上這是一個非常困難的事情,完全就是碰運氣的事情。計算 Hash 值當然是非常簡單的,但區塊鍊所要求的 Hash 值是做了非常苛刻的要求的,并不是所有的 Hash 值都能被它接受。
試想,當你算出了一個符合條件的 Hash 值,你算下一個 Hash 值進行到快要完成的時候,别人計算出了一個新的符合條件的 Hash 值接鍊,這時候不管你做了多少工作,你的進度如何,那你都隻有重頭開始了。
比特币
比特币(bitcoin)相比區塊鍊,可能有更多的人知道吧,毫不誇張的說,不少人就是因為比特币才知道了區塊鍊這玩意兒的。
去年年底比特币的瘋漲,和今年年初比特币的暴跌,讓很多家新聞媒體,對比特币進行了瘋狂的報道。但很可惜的是,新聞媒體往往都隻關注它的火爆表現,忽視了很多非常基礎的問題。
我今年春節的時候回家,身邊就有不少人問了我比特币相關的問題,而且非常想入手,考慮倒賣的方式來進行盈利。
可除了知道比特币這個概念,和知道它那時候值 10 多萬的事情,其餘的一無所知。
比特币相當于區塊鍊 1.0 的産物,它始于 2008 年的第一條區塊鍊分布式賬本。這僅僅是中本聰提出的一個革命性的構想:「創造一種不受政府或其他任何人控制的貨币。」
這個想法實在是太瘋狂了,僅僅是一串數字,不需要任何資金支援,也不需要任何人來負責任,就想當做錢來做交易,怎麼可能會有人接受?
但現實就是那麼奇葩,自一位極客使用 2000 個比特币購買了一個披薩開始,這個狂想就在慢慢變成現實。
貨币這個東西,其實就是被大家認可的問題。就像幾千年前,我們可以用貝殼,可以用石頭,再後來用金銀做貨币一樣。隻要大家都認可這個東西的價值,那它就會成為有價值的東西。
我們傳統的貨币都來源于國家發行,所有的存儲也是由國家的銀行統一管理,這是典型的中心化系統。
而比特币則是部署在一個全世界衆多對等節點組成的去中心化網絡之上。沒一個節點都有資格對這種數字貨币進行記錄和發行。
比特币的底層資料存儲,實際上就是區塊鍊技術的典型應用。在每個區塊體中,我們可以存儲所有的交易資訊在裡面。
交易資訊的每一行,都會包含時間戳,交易明細,和數字簽名。
可能在這裡有不少人會問:「怎麼保證交易的可信度呢?」
實際上這就是上面提到的「數字簽名」的偉大用處。
數字簽名簡單而言就是一條交易的辨別,但它的來頭不簡單,是由非對稱加密算法處理生成的。
可能又有很多人會問,非對稱加密是什麼玩意兒。
非對稱加密原理很簡單,和我們目前主流的處理也很相似,簡單而言就是加密和解密需要不一樣的鑰匙。你首先會把自己的公鑰上傳到網絡上,這個公鑰是公開的,任何人都可以擷取。别人可以用你的公鑰加密資訊,然後發送給你,而你必須采用你的私鑰才能解開這條資訊,并且會采用驗證方式來保證中途沒有被篡改。即使你這條資料被别人截獲了,别人沒有你的私鑰也是完全不可能打開的。
非對稱算法保證了資訊的真實性,但僅此還不能保證一次完整的交易。
交易的資料必須寫入到資料庫,才算成立,對方才能真正地收到錢。
一筆交易一旦寫入了區塊鍊,就無法反悔了。這裡需要建立一個觀念:比特币不存放在錢包或其他别的地方,而是隻存在于區塊鍊上面。區塊鍊記載了你參與的每一筆交易,你得到過多少比特币,你又支付了多少比特币,是以可以算出來你擁有多少資産。
交易的确認離不開礦工。為什麼有人願意做礦工呢?
比特币協定規定,挖到新區塊的礦工将獲得獎勵,一開始(2008 年)是 50 個比特币,然後每 4 年減半,目前( 2018 年)是 12.5 個比特币。這也是比特币的供給增加機制,流通中新增的比特币都是這樣誕生的。
你可能看出來了,每 4 年獎勵減半,由于比特币可以分割到小數點後八位,那麼到了 2140 年,礦工将得不到任何獎勵,比特币的數量也将停止增加。這時,礦工的收益就完全依靠交易手續費了。
所謂交易手續費,就是礦工可以從每筆交易抽成,具體的金額由支付方自願決定。你完全可以一毛不拔,一分錢也不給礦工,但是那樣的話,你的交易就會沒人處理,遲遲無法寫入區塊鍊,得到确認。礦工們總是優先處理手續費最高的交易。
目前由于交易數量猛增,手續費已經水漲船高,一個區塊2000多筆交易的手續費總額可以達到3~10個比特币。如果你的手續費給低了,很可能過了一個星期,交易還沒确認。
一個區塊的獎勵金12.5個比特币,再加上手續費,收益是相當可觀的。按照目前的價格,可以達到100萬~200萬人民币。想想看,運氣好的話,幾分鐘就能挖到一個區塊,拿到這樣一大筆錢,怪不得人們對挖礦趨之若鹜。
以太坊
以太坊(Etherenum)是區塊鍊 2.0 的産物,它是一個開源的有智能合約功能的公共區塊鍊平台。通過其專用加密貨币以太币(Ether)提供去中心化的虛拟機(稱為“以太虛拟機”Ethereum Virtual Machine)來處理點對點合約。
許多人相信,它是目前最有前景的去中心化隻能合約協定之一。
以太坊的概念是一個叫 Vitalik Buterin 的程式員提出,它最開始是一個衆籌活動,截至目前,它的專用貨币以太币已經成為市值僅次于比特币的加密貨币。
這一塊由于時間關系,在這裡就不多做贅述。如果有時間的小夥伴們也可以上 Google 進行搜尋學習。
ICO
ICO(是 Initial Coin Offering 縮寫),首次币發行,源自股票市場的首次公開發行(IPO)概念,是區塊鍊項目首次發行代币,募集比特币、解決以太坊等通用數字貨币的行為。
它是一種區塊鍊行業術語,是一種為加密數字貨币/區塊鍊項目籌措資金的常用方式,早期參與者可以從中獲得初始産生的加密數字貨币作為回報。由于代币具有市場價值,可以兌換成法币,進而支援項目的開發成本。ICO 所發行的代币,可以基于不同的區塊鍊。
一些總結
看到這裡,不用我重複了吧。
區塊鍊 ≠ 比特币 ≠ ICO ≠ 金融風險,它們有聯系,但絕不對等,倘若做得好,它可以服務群衆,但做的不好,它也可能成為罪犯的幫兇。
我們有理由相信,現在就是區塊鍊 3.0 時代,我們的區塊鍊有能力變革傳統的生産關系,打造一個可信價值的全新網絡。