1. 程式人生 > >區塊鏈、比特幣、以太坊和ICO,你真的懂了麼?

區塊鏈、比特幣、以太坊和ICO,你真的懂了麼?

區塊鏈毫無疑問是今年最火的概念,朋友圈裡區塊鏈、比特幣、以太坊和ICO,各種名詞每天刷屏,
但你真的明白這些名詞的意義麼?

區塊鏈

技術角度來說,區塊鏈是一種由多方共同維護,以塊鏈結構儲存資料,使用密碼學保證傳輸和訪問安全,能夠實現資料一致儲存、無法篡改、無法抵賴的技術體系。

打個比方:

區塊鏈就像是一列火車,每節火車車廂裡堆積貨物,類似於每個區塊裡存放資料,把所有火車車廂連成火車,類似於把所有區塊連成一條鏈。只不過由於區塊鏈設計上的精巧和特別,後生成的區塊的內容要受前面所有區塊的影響,這就導致對之前的區塊的哪怕微小的篡改都能被察覺出來,也就促成了區塊鏈防篡改、可靠的特點。

車廂(區塊)裡面都裝的什麼?

這裡寫圖片描述

  • 區塊頭(Head):記錄當前區塊的特徵值
    • 生成時間
    • 實際資料(即區塊體)的雜湊
    • 上一個區塊的雜湊
    • 隨機數
  • 區塊體(Body):實際資料
    • 交易資料

區塊鏈中的每一個區塊的新增都依賴前一個區塊的內容所對應的雜湊值,而前一個區塊的內容又包含了它所對應的上個區塊的雜湊,所以每個區塊緊緊相扣,無法篡改。
這種緊緊相扣的機制較難理解,可以類比為成語接龍,一帆風順-順風順水-水到渠成。

知識點:
雜湊函式:
雜湊校驗在論壇上、軟體釋出時經常用,是為了保證檔案的正確性,防止一些人盜用程式,加些木馬或者篡改版權,設計的一套驗證系統。每個檔案都可以用Hash MD5驗證程式算出一個固定的MD5碼來。

非對稱加密:
非對稱加密演算法需要兩個金鑰,公鑰和私鑰,如果用公開金鑰對資料進行加密,只有用對應的私有金鑰才能解密。

比特幣

創始人中本聰,外界猜測是日本人。
比特幣是第一個採用區塊鏈技術打造出的P2P電子貨幣系統應用。比特幣系統使用區塊鏈的技術體系,維護了一套記錄比特幣交易記錄的分散式賬本。

挖礦:

任何人都可以在專門的硬體上執行軟體而成為比特幣礦工。挖礦軟體通過 P2P 網路監聽交易廣播,執行恰當的任務以處理並確認這些交易。比特幣礦工完成這些工作能賺取使用者支付的用於加速交易處理的交易手續費以及按固定公式增發的比特幣。

新的交易需要被包含在一個具有數學工作量證明的區塊中才能被確認。這種證明很難生成因為它只能通過每秒嘗試數十億次的計算來產生。礦工們需要在他們的區塊被接受並拿到獎勵前執行這些計算。隨著更多的人開始挖礦,尋找有效區塊的難度就會由網路自動增加以確保找到區塊的平均時間保持在 10 分鐘。

交易的具體過程:

假設A給B轉賬10比特幣,簡化版的步驟如下:
1. 確認交易雙方的資訊,包括A的錢包地址和錢包餘額,B的錢包地址。
2. 通過比特幣客戶端發起交易申請,每次的交易申請都會通過私鑰生成一個公鑰,所有人都可以通過公鑰驗證出該交易是否合法。
3. 礦工們將過去10分鐘內的所有交易打包成一個新的交易區塊。
4. 礦工的電腦開始計算加密雜湊函式。基於前一個區塊的雜湊值、新交易區塊和隨機數,來計算新的雜湊值。
5. 比特幣系統要求新的雜湊值擁有特定格式——必須以特定數量的0作為開始。礦工無法預測哪個隨機數會產生以要求的數量的0作為開始的雜湊值,所以他們被迫用不同的隨機數建立很多雜湊,直到獲得有效的那一個。
6. 時間戳伺服器為一個區塊的資料的雜湊計算結果加上時間戳,並大範圍釋出這一雜湊計算結果。
7. 每一個區塊都包含一個名為coinbase的初始交易,這是給勝出礦工的50比特幣的支付。
8. 最後將新的區塊新增進入區塊鏈。

比特幣的貨幣是通過挖礦(工作量證明)來發行的,總數量是通過程式寫死了2100萬個,而第一筆區塊獎勵也是硬編碼寫死的。礦工挖出一個區塊所獲得的獎勵,每隔21萬個區塊將減少一半,按照平均10分鐘挖出一個區塊的執行效率,也就就說差不多每四年會銳減一次。

2009年1月起每個區塊獎勵50個比特幣,2012年11月減半為每個區塊25個比特幣,2016年7月減半為12.5個比特幣。基於這個規則,到2140年,所有比特幣(20,999,999,980)將全部發行完畢,之後不會再有新的比特幣產生。

問題思考
  1. 挖礦是資源的浪費麼?
  2. 比特幣交易會出現阻塞的情況麼?
  3. 區塊鏈的資料都存在哪?
  4. 比特幣發完了整個體系如何繼續執行?

以太坊

創始人維塔利克,俄羅斯人。

19歲發表初版《以太坊白皮書》,他肯定了比特幣網路“分散式資料庫”的偉大理念,但也指出它的缺點:擴充套件性不足,只有比特幣一種符號。而以太坊則可以視為一臺分散式的電腦,任何人都可以在以太坊上傳和執行應用程式,礦工們就像是負責計算的CPU,共同組成一個去中心化的世界計算機。

以太坊與比特幣最大的一個區別——提供了一個功能更強大的合約程式設計環境。如果說比特幣的功能只是數字貨幣本身,那麼在以太坊上,使用者還可以編寫智慧合約應用程式,直接將區塊鏈技術的發展帶入到 2.0 時代。

看一下以太坊的組成結構:
這裡寫圖片描述

打個比方:

從平臺的角度來講,以太坊類似於蘋果的應用商店;從技術角度來講,以太坊類似於一個區塊鏈作業系統。

智慧合約:

智慧合約是一種直接控制數字資產的電腦程式。
以太坊中的智慧合約是執行在虛擬機器上的,也就是通常說的 EVM(Ethereum Virtual Machine,以太坊虛擬機器)。這是一個智慧合約的沙盒,合約儲存在以太坊的區塊鏈上,並被編譯為以太坊虛擬機器位元組碼,通過虛擬機器來執行智慧合約。由於這個中間層的存在,以太坊也實現了多種語言的合約程式碼編譯,網路中的每個以太坊節點執行 EVM 實現並執行相同的指令。如果說比特幣是二維世界的話,那麼以太坊就是三維世界,可以實現無數個不同的二維世界。(以太坊的原始碼是維護在 GitHub 上的: https://github.com/ethereum

也就是說:

你可以利用以太坊的智慧合約搭建任何應用,其中包括利用以太坊開發虛擬幣。

同時,為了防止計算浪費,每個交易都需要設定一個限制,以限制它的計算總步驟,說白了就是讓交易的執行帶上成本,每進行一次交易都要支付一定的手續費(Gas)。

ICO

Initial Coin Offerings,首次公開發售數字代幣融資。
所謂 ICO,就是投資者使用比特幣等現成的虛擬數字貨幣,去換取ICO專案發行的新代幣。因為新幣種擁有者少、價格波動大,在交易所的賣出價格很可能比發行價高得多。 而ICO專案發起方利用融來的傳統數字貨幣,在交易所換回人民幣等法定貨幣,再投入到指定的技術專案中。

區塊鏈技術實現了一個第三方公證的機制,以保證你一旦參與眾籌交了錢,就一定能拿到對應的電子加密貨幣。這部分解決了ICO的信任問題,降低了ICO的參與門檻。

特別注意:
2017年9月4日,中國人民銀行等7部委聯合發文,對ICO進行了首次官方定性,稱“代幣發行融資……本質上是一種未經批准非法公開融資的行為”,並要求“各類代幣發行融資活動應當立即停止”。

割韭菜

“我能計算出天體執行的軌跡,卻難以計算出人類的瘋狂。” ——牛頓

別人蜂擁挖金礦的時候,我造鏟子:

位元大陸一臺礦機15000元(最新版S9),根據換算,一天能夠帶來約0.0011個比特幣,當前比特幣市價9000美元,摺合一天60元左右。
這裡寫圖片描述
位元大陸2017年營收25億美元,利潤接近3.6億美元。

靠吹牛逼就能發幣:

有了以太坊提供的服務,想隨便建立一個虛擬幣非常簡單,你隨便網上搜搜都有教程,一個差不多的程式設計師自己隨便搞一下,就能誕生個新幣種。 如果懶得搞,還能上淘寶:
這裡寫圖片描述

交易所的水最深:

有個國外虛擬貨幣研究者 Sylvain Ribes 發表了一篇文章,指出大部分虛擬貨幣交易所在自己刷交易量,最假的交易所高達 93% 交易量是自己刷出來的。火幣網的交易量造假大概在 60% 左右。
想登陸交易所圈錢,你得向交易所交 “ 上幣費 ”,要麼現金,要麼把部分幣的份額抵給交易所,登陸交易之後交易所自己套現。

問題思考

國內已經有很多網際網路公司在涉足區塊鏈領域,迅雷玩客雲、360共享雲、百度萊茨狗、網易星球這些產品和區塊鏈有什麼關係?