區塊鏈入門學習 概念

2021-09-12 23:56:22 字數 3506 閱讀 5752

鏈客,有問必答!!

區塊鏈(blockchain)是近年來的大熱門,最近開始學習區塊鏈,以及主流平台以太坊的一些內容,不得不說對於小白而言,內容概念確實多,且雜。以此記來梳理一下知識點,分享一下經驗內容。

一、區塊鏈的實質

區塊鏈,第一反映聯想到前段日子瘋漲的位元幣。沒錯,位元幣是依賴於區塊鏈底層框架,是一種數字貨幣,早在2023年,位元幣系統開始執行,並且為沒有中心機構運維下,執行了9年多的時間,它依賴於加密和共識演算法。

而區塊鏈的本質就是乙個去中心化的的資料庫,結合分布式資料儲存、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式,說白了,就是乙個分布式賬本。具有以下特點:

採用共識演算法更新、生成資料,保證了信任與交易安全,取代了傳統第三方中介機構。

與密碼學高度關聯,採用非對稱加密的方式,使用數字簽名技術保證交易安全。

二、區塊鏈中的核心概念

非對稱加密:通過同乙個密匙進行加密解密,稱之為對稱加密。顧名思義,非對稱加密就是有兩把密匙進行加密與解密,其中一把稱為私有密匙(private key),另一把稱為共有密匙(public key),密匙是成對出現的。

區塊:區塊包含區塊頭與區塊體兩部分。區塊頭包含了上一區塊打雜湊值、merkle樹等資訊,而區塊體內包含該區塊內所有的交易資訊。區別乙個區塊可以通過區塊的雜湊值。所謂雜湊值,就是一種數字指紋,將資訊提取並打亂隨機生成打,常用的雜湊演算法有sha1、sha2、sha256等(1,2,256表示雜湊值位數),區塊中採用sha256演算法。merkle樹,是一棵二叉樹,通過有效的儲存,遞迴訪問的手段,對兩個節點進行雜湊運算,將運算的雜湊值疊加,再進行雜湊運算,直至剩餘乙個雜湊值,稱為merkle樹的根,便是區塊頭結構中的雜湊值。

共識機制:通過該機制,可以使得區塊鏈這個去中心化的資料庫中,各個節點達成共識。例如位元幣系統,採用一種工作量證明共識(proof of work,pow)的機制保證了分布式賬本的一致,簡單打來講,就是不斷改變隨機數,進行sha256運算,求區塊頭的雜湊值,這個過程,就是我們俗稱的「挖礦」,做這件事的人,稱為「礦工」。顯而易見,這需要一定的算力,費時費力,但是存在一定的激勵措施,例如,發現新的區塊時,將獎勵給礦工位元幣(2023年,12.5個,每4年減半)。因此,一些人提出了多種共識機制,如股權證明機制(pos)等。

三、區塊鏈的平台

位元幣並不是區塊鏈的全部,它是pow共識機制,任何人可以加入,是公有鏈(區塊鏈可以按公有鏈,聯盟鏈,私有鏈),但是它不支援智慧型合約,可以支援一些指令碼來進行程式設計操作。

以太坊(ethereum)是區塊鏈的乙個開發平台,是乙個開源的有智慧型合約功能的公共區塊鏈平台。通過其專用以太幣(ether)提供的虛擬機器來處理點對點的合約。它提供一些介面,降低了開發難度。在接下去打學習中,將圍繞以太坊展開,主要有meteor、truffle、remix-ide等內容。

hyperledger fabric是 the linux foundation主辦的 hyperledger專案之一。hyperledger fabric 旨在作為開發模組化體系結構的區塊鏈應用程式的基礎,以便諸如共識和會員服務等元件可以即插即用。它使用容器技術來託管構成系統應用邏輯的智慧型合約(也稱為鏈**)。該架構將交易處理分為 3 個階段:分布式邏輯處理和協商(「鏈**」)、交易訂購,以及交易驗證和提交。這種分離提供了一些優勢:不同節點型別之間需要的信任和驗證水平更低,網路可伸縮性和效能得到了優化。      

章,與愛好者一起分享。

什麼是區塊鏈共識?

共識(consensus)過程是乙個非常有趣的過程。

在我們的日常生活中,幾乎所有的事情都是達成共識的過程。

達成共識越分散的過程,其效率就越低,但滿意度越高,因此也越穩定;相反,達成共識越集中的過程,效率越高,也越容易出現**和腐敗現象。

達成共識常用的一種方法就是通過物質上的激勵以對某個事件達成共識;但是這種共識存在的問題就是容易被外界其它更大的物質激勵所破壞。

還有一種就是群體中的個體按照符合自身利益或整個群體利益的方向來對某個事件自發地達成共識;當然形成這種自發式的以維護群體利益為核心的共識過程還是需要時間和環境因素的,但是一旦達成這樣的共識趨勢,其共識結果也越穩定,越不容易被破壞。

在位元幣和其它區塊鏈幣中,也存在如何達成共識的問題。或者說,位元幣或其它區塊鏈幣最核心的問題也是如何在去中心化的環境中達成共識。

區塊鏈是位元幣背後的核心技術,也是支撐位元幣的基礎架構。因此在談區塊鏈共識,就必然要談位元幣的共識。

位元幣最核心的突破是在去中心化的情況下對交易事件達成了共識,即在沒有中心組織的情況下對某個交易的有效性達成了一致。

位元幣實現這個共識的方法主要包括兩個部分:

激勵;即通過每個區塊產生一定量的新位元幣來激勵參與者;

引入外部資源確保安全;即通過大量的外部計算來確保共識的安全性,也就是工作量證明(proof of power);

這也是幾乎所有pow幣種所採用的的方法。

而這套方法要能持續長期執行下去的前提就是:

這種激勵對參與者要有足夠的吸引力;也就是說位元幣要一直漲價,才能吸引參與者持續參與挖礦計算,以維護整個網路的執行;否則就會導致參與的人減少,破壞網路安全;

沒有外部攻擊;由於位元幣引入了外部計算來確保安全,因此只要有足夠的挖礦算力(超過維護系統算力的51%)就能對系統成功進行攻擊,這也是位元幣長期存在的安全隱患之一;因為只要有錢,就能買到裝置和算力。

正是由於位元幣存在的問題,例如消耗大量的資源、外部51%攻擊等,出現了pos(proof of stake)共識機理。

總體上,pos共識理論和實踐目前仍處在探索階段。

最原始的pos機理就是用股權代替pow中的挖礦算力,來模擬位元幣的挖礦過程。請注意,這個過程沒有引入外部資源,而是僅僅依靠自身的幣種股份來維護網路安全,因此其不需要消耗大量能源來進行計算;而且由於其沒有引入外部的資源,因此不會擔心外部攻擊,例如外界的算力攻擊。

看起來pos是很完美的,但是它存在乙個嚴重漏洞。

pos存在內部的nothing-at-stake攻擊。

什麼是nothing-at-stake(常寫作n@s)攻擊?

假設系統**現了兩個分支鏈,那麼對於持有幣的」挖礦者「來講,最佳的操作策略就是同時在兩個分支上進行「挖礦」,這樣,無論哪個分支勝出,對幣種持有者來講,都會獲得本屬於他的利益,即不會有利益損失。而且由於不需要算力消耗,因此pos中在兩個分支上挖礦是可行的。

第二個問題是重寫歷史攻擊;即攻擊者可以通過購買原始持有幣種的賬戶來從頭發起攻擊,重新分叉乙個區塊鏈。因為原始的幣種持有者可以將幣轉移至其它賬戶,因此他是可以在沒有損失的情況下將原始賬戶**給攻擊者的。攻擊者需要的就是有足夠數量幣的原始賬戶;當然了,這也只是概率問題,因為有可能原始賬戶持有者不會**他們的賬戶,但是理論上確實存在這種攻擊。

第三個問題是,儘管pos中的挖礦不用消耗算力,執行成本很低,但是也存在如何激勵礦工的問題。因為一般的pos系統是沒有新幣產生的,礦工只能賺取交易費,而且在交易費不高的情況下,對礦工的激勵也是很有限的。

上述3個問題是pos要解決的,尤其是n@s的問題尤為重要,因為如果沒有其它約束機制,這種攻擊是完全有可能實現的。

以現實為例,事件的資訊越透明、所涉及到的人員參與度越高,最終形成的共識也就越穩定、越持久。這與區塊鏈共識是一致的。

以上是個人的對區塊鏈共識的一些學習心得,期望能看到更多這方面的討論和研究文章,與愛好者一起分享。

區塊鏈入門學習(1) 概念

鏈客,有問必答!區塊鏈 blockchain 是近年來的大熱門,最近開始學習區塊鏈,以及主流平台以太坊的一些內容,不得不說對於小白而言,內容概念確實多,且雜。以此記來梳理一下知識點,分享一下經驗內容。一 區塊鏈的實質 區塊鏈,第一反映聯想到前段日子瘋漲的位元幣。沒錯,位元幣是依賴於區塊鏈底層框架,是...

區塊鏈學習 區塊概念

區塊是區塊鏈的基本結構單元。它是資料檔案,它由元資料的區塊頭和交易資料的區塊主體構成。區塊通過鏈結上乙個區塊形成乙個鏈式結構,就稱為區塊鏈。區塊引數 魔法數 客戶端解析block資料的識別碼,每種幣種魔法數不同。區塊頭 版本號,上一區塊雜湊值,merkle根節點,時間戳,難度值,隨機數。每個區塊頭通...

區塊鏈入門

0x00 區塊鏈 base 區塊鏈概念 選自長亭科技 區塊鏈安全生存指南 1.1 始於位元幣 區塊鏈 blockchain 最早由 中本聰 satoshi nakamoto 於2008年 在其 位元幣 一種點對點電子現金系統 中提出,位元幣也成為了目前最廣為人知的區塊鏈應用案例。廣義上講,區塊鏈技術...