區塊鏈相關概念解析
原標題:區塊鏈相關概念解析
【區塊鏈】一系列資料塊(即區塊)連線而成的鏈條,連線的方式是:其中第N+1個區塊中,包含第N個區塊的雜湊值。而且這樣的資料塊的鏈條,同時被分佈廣泛、數量巨大的伺服器節點所儲存和維護,每個伺服器節點都擁有一份區塊鏈的完整拷貝(即區塊鏈資料的儲存是高度冗餘的)。
【雜湊值】雜湊值又叫“數字指紋”,無論多大的資料,經過一番計算後,都可以得到一個固定長度(例如256位元)的雜湊值;資料的內容不同,雜湊值必然不同,就像人和人不會有相同的指紋。
【去中心化(伺服器)系統】數量巨大的伺服器節點彼此平等,靠某種事先達成的協議來保證大家擁有資料是完全相同的拷貝,它們就構成了一個去中心化系統。而在一箇中心化系統中,某個中心節點擁有更高的權力,它負責更新資料,所有其它節點從它那裡獲得更新後的資料。
【雜湊碰撞】計算雜湊值的過程是不可逆的,預先給定一個值,如果請你構造出一段資料,希望它的雜湊值正好是這個給定值,那麼就算你拿最強大的計算機算到天荒地老,也構造不出來。哪怕退一步,只要求你構造一段資料讓它的雜湊值小於給定值,都需要算很久很久。而且這個構造過程沒有任何巧妙的演算法可以利用,只能傻傻地去嘗試所有可能的資料。這是一個“瞎貓撞到死耗子”的過程,因此被叫做雜湊碰撞。
【工作量證明】區塊鏈上的區塊,除了包含上一個區塊的雜湊值(數字指紋)之外,還至少要包括一串無意義的數字,它被稱為nonce。改變nonce的值,就可以改變本區塊的雜湊值。伺服器節點嘗試不同nonce的值,碰撞出一個足夠小的雜湊值,這個過程被稱為工作量證明。雜湊值有多小,就證明你大致嘗試過多少個不同nonce。
【共識協議】維護同一個區塊鏈的伺服器數量眾多,要維護資料的一致性,它們就必須在“誰來決定下一個區塊內容”這一問題上達成共識。目前所廣泛採用的共識協議是,誰先給自己的區塊找到足夠小的雜湊值來完成工作量證明,誰的區塊就是下一個區塊。
【孤塊】由於伺服器的數量太多了,彼此通訊的延遲有大有小,有時候會產生區塊鏈的分叉,比如說甲、乙兩臺伺服器幾乎同時找到了工作量證明,那麼會導致有的伺服器把甲的區塊追加到自己所儲存的區塊鏈上,其它則追加乙的。這個時候,區塊鏈就出現了甲乙兩個分支,在兩個分支上都有伺服器在持續追加塊。為了解決這個問題,共識協議約定,以最長的鏈為準,即經過一段時間之後,如果在甲分支上追加了的區塊的數量大於乙分支,就以甲為準,這個時候乙分支上的塊,就成為了孤塊,不被系統所承認。
【51%攻擊】“以最長鏈為準”,其合理性在於,最長鏈上累計的雜湊碰撞的工作量最大,相當於伺服器之間用雜湊碰撞的算力來進行投票,投票選出的鏈,必然是最長鏈。只要系統中作惡的壞節點的算力不超過50%,它們就無法累積出最長鏈。但反過來講,如果有51%的節點都是壞節點,它們聯合起來,能任意決定區塊中的內容,破壞整個系統,這就是51%攻擊。
【確認數】某一筆交易被加入區塊鏈的某個區塊中,稱為得到了一次確認。這個區塊之後,區塊鏈每被追加一個區塊,就增加了一次確認。確認的數量越多,這筆交易所在的塊成為孤塊的可能性就越低。
【非對稱加密】使用者生成一對公私金鑰,用公鑰加密的資料,只能用私鑰才能解密;用私鑰加密的資料,用公鑰才能解密。使用者把自己的公鑰公之於眾,想給他傳送祕密資訊的人,只需用公鑰把資訊加密,就不怕資訊傳遞過程中被竊聽。私鑰必須嚴格保護起來,不得洩漏。
【數字簽名】我希望對外發佈一個檔案,怎樣避免這個檔案在傳輸中被篡改?只需把檔案的雜湊值用私鑰加密,和檔案一起對外發布即可。接受者用公鑰解密,得到了正確的雜湊值,就證明檔案的確是我所釋出的,因為,一、檔案一旦改變,雜湊值就會變;二、天下只有我擁有私鑰。這個被私鑰加密的雜湊值,稱為數字簽名。
【比特幣】與區塊鏈一同誕生的現金記賬系統,區塊鏈的第一個應用。它的區塊中的內容,簡單但不準確地說,就是一些這樣的記錄:“我是公鑰為X的賬戶,我把我擁有的Y個比特幣,轉給公鑰為Z的賬戶”,以及用X對應的私鑰為這條記錄加上的數字簽名。中本聰於2008年發明比特幣,2009年完成比特幣的開原始碼,2010年後逐漸銷聲匿跡。很多人懷疑中本聰是某個匿名團體的筆名。
【錢包】數字貨幣讓人真正擁有了財富,只要你儲存好私鑰,任何暴力機關都無法剝奪你擁有的幣。但是,一旦丟失了私鑰,你就丟失了這個私鑰所對應的所有幣,而且無法找回。錢包就是幫助你儲存私鑰的工具,它可以是軟體app,也可以是專門的硬體裝置。當你需要給其它人支付數字貨幣時,錢包幫助你生成支付的記錄、對應的數字簽名,它還幫你把這些資訊廣播給負責維護區塊鏈的節點們,請他們把這筆交易記錄在區塊中。
【挖礦】挖礦是一種發行數字貨幣的機制,也是對維護區塊鏈的節點們的獎勵機制。節點們需要接受使用者傳送來的交易記錄,驗證其數字簽名,驗證使用者是否真的有他所聲稱的幣,然後把很多的交易記錄打包成一個區塊,最後還得進行雜湊碰撞以獲得工作量證明。它們為系統付出了很多勞動,應該得到獎勵。以比特幣為例,它開始運作時,每當節點為系統追加一個新的區塊(或者說“挖”出了一個新的塊),節點就會“憑空”獲得50個比特幣的獎勵,這些幣是新發行的或者說新“印刷”出來的。之後,每過大約三年半,獎勵就會減半,最終在100多年後會減到0。整個過程中,總共將發行2100個比特幣。挖出新塊、得到獎勵的過程,被形象地稱為挖礦。
【礦池和礦工】挖到新區塊的關鍵在於能不能以很高的並行度來進行雜湊碰撞,於是有些伺服器節點把雜湊碰撞的工作“外包”給專門的礦工,自己只負責“接受交易、驗證交易、打包交易”這三項任務,這樣的伺服器就是礦池。礦工專門負責雜湊碰撞,一旦礦池挖到了新塊,不論這個塊究竟是哪個礦工找到工作量證明的,一律和所有的合作礦工按算力大小成比例地分享新塊的收益。
【礦場】個人礦工用電腦、手機等裝置來進行雜湊碰撞,效率很差。為了利用規模效益提升效率,在一些電力廉價的地區,有人投資興建起了專門的礦場,利用專門定製的硬體裝置來進行雜湊碰撞,並且聘請專門的工程師來管理眾多的裝置。
【智慧合約】智慧合約類似於資料庫中的trigger(觸發器),即特定事件出現的時候,自動執行的程式碼塊。通俗地講,它使得“錢自己會動”。比如說:老公賬目上的錢如果超過一定限額,多出來的錢就會流到老婆賬目上;公司的員工向某慈善組織捐一定數目的錢,公司會自動捐同樣數額的錢。
【Token】這個詞很難翻譯,有人把它翻譯成“代幣”,感覺不是很全面,所以還是保留英文原文。它是某種資源、資產、股份在區塊鏈上的表示。籠統地講一下它的具體實現方法:資源、資產、股份的擁有者,使用自己的金鑰為一些資料片段加上簽名,這些資料片段就變成了Token,藉助智慧合約,Token可以被拆分成很多份,分配給很多個賬戶,以及在賬戶之間流動。
【ICO(Initial Coin Offering)】一家公司準備新創一種區塊鏈來改變世界,但它沒有錢,於是就號召大家給它捐助數字貨幣如比特幣,以太幣。同時承諾說,這些捐助的幣,將會按比例折換成這個新創鏈上的數字代幣送給大家,等有朝一日這個新鏈真的改變世界了,新創鏈上的幣將暴漲,大家一起發財。
【IFO(Initial Fork Offering)】和ICO很類似,但不是新創一個鏈,而是說:我們是某個數字貨幣社群裡的使用者,我們覺得它不好,現在要分叉這個幣、分裂它的社群了!我們分叉很辛苦,因此分叉後的鏈上,會憑空給我們記錄一大筆數字貨幣的收益。請大家支援我們,支援的方式就是拿比特幣,以太幣這些硬通貨來交換我們手頭憑空多出來的收益。
【IMO(Initial Miner Offering)】和ICO很類似,但不是號召大家來換這個新鏈上的代幣,而是號召大家來買這個新鏈上專用的礦機。大家用礦機挖代幣,等代幣暴漲,大家就發財了。
【去中心化自治組織】簡稱DAO(Decentralized Autonomous Organization)。試想,如果在一個組織中,貨幣、資源、資產、股份都變成了區塊鏈上的Token,被鏈上的智慧合約所管理,那麼這個組織就可以不依賴於任何中心化的管理機構來運轉。這個區塊鏈的底層原始碼即為這個組織的法律,冰冷的機器嚴格無誤地執行法律和合約,實現徹底的法制。
BB財經原創,作者:區塊鏈百科,轉載請註明出處:http://www.bbcaijing.cn/article/news/23155.html