<i id="bcuty"><sub id="bcuty"></sub></i>

<b id="bcuty"></b>

您的位置:首頁 >聚焦 >

建議收藏,輕松搞懂區塊鏈! 全球熱文

2023-02-25 05:27:10    來源:程序員客棧

未來已來,只是不均衡地分布在當下

大家好,我是菜農,歡迎來到我的頻道。

本文共 5844字,預計閱讀 30 分鐘


(資料圖片)

區塊鏈是近些年來最熱門的前沿技術,被認為是未來十幾年對金融、物聯網、醫療等諸多領域產生最大影響的"黑科技"之一。

在本篇中我們將掌握區塊鏈的基本概念、技術構成 與 邏輯結構

一、基本概念

“區塊鏈” 這個概念是由一個網名為中本聰的人在2008年發表的《比特幣:一種點對點的電子現金系統》中提出的。隨后他實現了一個比特幣系統,并發布了加密數字貨幣—比特幣。接下來出現了以太坊和超級賬本這樣的大型區塊鏈項目。

那么在你的認知中,區塊鏈是什么樣的?下面整理了幾種選項,看下是否有符合你認知的選項。

區塊鏈是比特幣,比特幣就是區塊鏈區塊鏈很值錢區塊鏈可以運用在任何領域區塊鏈是免費的區塊鏈是非常安全的

通常來說,選項1是大多傾向的結果。但比特幣和區塊鏈兩者不能等同,實際上,區塊鏈是比特幣的底層技術,如果要舉例比喻的話,就好比用面粉可以做包子,但不能說面粉等于包子,包子等于面粉。而這里的面粉就相當于是包子。當然了作為底層技術的存在,不僅僅應用于比特幣的實現中,還有很多其他基于區塊鏈技術的應用。

那么區塊鏈究竟是什么?從比較專業的維度上看,可以從以下三點來解釋

區塊鏈是底層技術

作為一個底層技術,它是包含了 P2P動態組網、基于密碼學的共享賬本、共識機制、智能合約 等關鍵技術

區塊鏈是一個數字貨幣和賬本系統

從貨幣學的角度看,區塊鏈是數字貨幣系統的分布式共享賬本系統,這是一個去中心化的、網內用戶共同維護的賬本系統。

區塊鏈是互聯網的基礎設施

它提供了分布式去中心化的價值互聯網,為更多大規模的共享、協作應用創造可能。

作為解釋依據,這里提取了來自中本聰在2008年發表的《比特幣:一種點對點的電子現金系統》中的一段描述:

時間戳服務器對以區塊(Block)形式存在的一組數據是實施隨機散列并加上時間戳,然后將該隨機散列進行廣播,就像在新聞后世界性新聞組網絡(Usenet)的發帖一樣。顯然,該時間戳能夠證實特定數據于某特定時間是的確存在的,因為只有在該時刻存在了才能獲取相應的隨機散列值。每個時間戳應當將前一個時間戳納入其隨機散列值中,每一個隨后的時間戳都對之前的一個時間戳進行增強(Reinforcing),這樣就形成了一個(Chain),即區塊鏈,如下圖所示:

文字較為蒼白,我們看圖可以很清晰的看出 區塊鏈就是由 區塊構成的

1)區塊

區塊是區塊鏈的組成單元,就像金字塔是由一塊塊石頭組成的一樣,區塊鏈就是一個個區塊組成的。

區塊是由一系列特征值和一段時間內的交易記錄組成的一個數據結構。區塊的數據結構是由 區塊頭 和 區塊體 組成。其中區塊頭包含了當前區塊的特征值,區塊體中包含的是實際的交易記錄數據。

1、數據結構1?? 區塊頭

區塊頭是由 80 個字節組成,主要由版本號、前一個區塊的哈希值、Merkle根、時間戳、bits、Nonce 這幾項區塊的特征值組成。

ver: 版本號,表示本區塊遵守的驗證規則prev_block: 父區塊哈希值,指的是這個區塊連接的上一個區塊的哈希值mrkl_root: mrkl_root 根,是該區塊鏈交易的 Merkle 樹根的哈希值(Merkle 是一種哈希樹的數據結構)time: 時間戳,區塊生成的時間bits: 區塊的難度值,該區塊工作量證明算法的難度目標,使用特定的算法編碼Nonce: 是一個隨機數,為了找到滿足難度目標所設定的2?? 區塊體

區塊體主要包括了 交易數量(n_tx)、區塊大?。╯ize)和長度不定的交易記錄(tx 字段包含的交易列表) 等信息。但這只是比特幣中的區塊體結構,實際上區塊體重可以包括任何內容,比如以太坊的區塊體中除了交易數據還包含智能合約。

2)區塊特點

區塊是由計算機通過加密算法生成的。如果成功地生成一個有效的區塊,該計算機(節點)就能獲得一定的獎勵,這個獎勵就是加密數字貨幣,也就是所謂的 挖礦。

加密算法并不是容易生成結果的,而是該區塊的哈希值必須滿足一定的條件。這個條件就是能夠使得區塊頭中特征值相加生成的哈希值需要符合一定格式,比如難度值為 000,由于哈希值隨著輸入的不同而不同,因此計算機要不斷嘗試改變區塊頭的 Nonce 值直至最終生成的哈希值滿足條件才算生成了一個有效的區塊。

我們可以借助 Blockchain Demo 工具來嘗試生成一個區塊。

從圖中可以看出在 HASH 一欄中的數據是紅色的,說明該哈希值是無效的。因為未滿足 000 開頭的數據。那么我們需要再次計算后查看結果

可以看出這次的結果為綠色,是有效的,因為該數據滿足 000 開頭。我們將上面的區塊結果進行解讀,可以分為以下幾部分:

索引: 表示區塊在區塊鏈中的位置,其中第一個區塊為 創世區塊(索引為 0),第二個區塊的索引為1,第三個區塊的索引為2,以此類推。時間戳: 表示該區塊的生成時間,根據時間戳可以判斷區塊鏈中各個區塊生成的先后順序。哈希值: 表示每個區塊的唯一標識,也可稱為區塊的 數字指紋。哈希值的長度是固定的,而且和區塊的內容緊密關聯,一旦區塊內容發生改變,該區塊的哈希值也會發生改變。而且,區塊中的哈希值還有 有效無效之分,滿足特定條件的哈希值是有效的,否則就是無效的。這個特定條件一般稱稱為 困難度(Difficulty)。父區塊哈希值就是區塊中特定區塊前一個區塊的哈希值。數據:區塊中的數據可以是任何內容,比特幣區塊鏈的區塊中的數據為一串串交易記錄。Nonce: 是一個隨機數,用來生成一個有效的哈希值。Nonce 會根據區塊數據的不同而不同,每個區塊都需要經過大量計算才能找到對應的 Nonce 值。創世區塊: 區塊鏈中的第一個區塊,它沒有父區塊,故創世區塊的父區塊哈希值為空或者為 0。2)運行原理

綜上所述,區塊鏈就是一個鏈表,而這個鏈表就是由一個個區塊組成的,這些區塊依次連接,形成一個不可篡改的鏈條,那么其中的運行過程我們也可以由此推出:

首先構成區塊鏈的去中心化網絡中的第一個節點,生成一個 創世區塊然后通過 挖礦生成新的區塊添加到區塊鏈中新的節點加入到去中心化網絡中會先生成一個最新的區塊鏈數據隨后每個節點生成的區塊都會向網絡中的其他節點進行廣播其他節點收到廣播后會判斷自己是否已經收到該區塊,是的話就忽略,否的話會先校驗該區塊是否有效,如果是有效的區塊則會添加到自己的區塊鏈中3)小結區塊鏈中的節點始終都講最長的鏈條作為正確的鏈,并持續延長和維護這條鏈。當節點發現有更長的鏈條并且本身的鏈條不是最新時,就會使用最長的鏈條提花你當前節點的鏈條。若一個節點判斷出本身的區塊鏈是最新的,再收到新的區塊信息時,節點就會把新的區塊添加到自身鏈條的最后。當一個區塊鏈的節點掌握了整個區塊鏈中 51% 以上的計算能力時,它就可以重寫整個區塊鏈?;谶@個原因,區塊鏈中的計算能力過度集中會很危險。只有一個龐大且均勻分布的區塊鏈才比較安全。二、技術構成

區塊鏈主要由三個核心技術構成,分別是 共識機制、智能合約、去中心化網絡。

1)共識機制

共識機制是區塊鏈中的重要機制,不同的區塊鏈項目可能使用不同的共識機制。網絡中的各個節點根據共識機制達成共識,共同維護整個區塊鏈網絡。

1、PoW 機制

工作量證明機制(Proof of Work,PoW),工作量證明就是一份證明,它用來確定完成了一定量的工作并可以因此獲得一定的獎勵。

工作量證明是一種對應服務與資源濫用,或是阻斷服務供給的對策。一般要求發起者進行一些耗時的復雜運算,并且結果能被快速驗算。在計算過程中耗用的時間和資源作為成本,據此來確定建立或懲罰,以此來維護系統的一致性。

工作量證明機制最常用的技術原理是哈希函數,工作量證明機制如下:

取得一些公開的數據,并加上一個隨機數(Nonce)以數據和隨機數作為輸入值計算哈希值檢查生成的哈希值是否符合一定的條件。若符合就幾下這個隨機數的值并退出。若不符合則改變隨機數的值再重新計算。

由于工作量證明機制需要消耗巨大的算力,如果有人嘗試惡意破壞,需要付出巨大的經濟成本,這就防止了惡意的數據修改。

缺點: 只有第一個獲取有效哈希值的節點能得到獎勵,其他節點的計算會被浪費掉。

2、PoS機制

權益證明機制(Proof of Stake,PoS)試圖解決在 PoW 機制中大量資源被浪費的問題。不同于 PoW 機制要求進行一定量的計算,PoS 機制要求提供的是保證金,或者說是一定數量數字貨幣的擁有權。

PoS 機制的工作原理是通過保證金來確認一個合法的塊成為新的區塊,收益為保證金的利息和交易服務費。提供證明的保證金越多,則獲得記賬權的概率越大。

比如系統中有A、B、C、D4個人,A有40個幣,B有30個幣,C有20個幣,D有10個幣,那么A獲得記賬權的概率就是D的4倍

PoS 機制的好處是在一定程度上縮短了共識達成的時間,不再需要大量消耗能源挖礦,其與 PoW 機制的區別如下:

3、DPoS 機制

股份授權證明機制(Delegated Proof of Stake,DPoS),與 PoS 機制基本原理相同,只是選舉了若干代理人,由代理人執行驗證和記賬功能,工作原理如下:

在 DPoS 機制下,每個節點按其持幣比例擁有影響力,51%節點投票的結果將是不可逆切有約束力的。其過程為:

每個節點可以將其投票權授予一名代表,獲票數最多的前 100 位代表按既定時間表輪流產生區塊。每名代表分配到一個時間段來生產區塊。所有的代表將收到等同于一個平均水平的區塊所含交易費的 10% 作為報酬。如果一個平均水平的區塊含有 100 股作為交易費,每個節點將獲得 1 股作為報酬

DPoS 的好處是大幅縮小了參與驗證和記賬節點的數量,可以達到秒級的共識驗證

4、DAG 機制

有向無環圖(Direct Acyclic Graph,DAG),DAG 是一個沒有有向循環的、有限的有向圖。它由有限個頂點和有向邊組成,每條有向邊都從一個頂點指向另一個頂點;從任意一個頂點出發都不能通過這些有向邊回到原來的頂點

傳統的區塊鏈只有一條單鏈,而在一條單鏈上無法并發打包區塊。而DAG 是一種拓撲結構,在區塊打包時間不變的情況下,可以并行打包N個區塊,那么區塊鏈的交易容納能力就可以變成原來單鏈情況下的N倍。

2)智能合約

智能合約不是區塊鏈的必要組成,它是區塊鏈 2.0 之后出現的技術。如果把區塊鏈比作一個公司,智能合約相當于公司中的規章制度,員工工作的時候會依據規章制度形式,而在有智能合約的區塊鏈中,鏈上的節點會依據智能合約進行工作。

智能合約不只是一個可以自動執行的計算機程度,它還是一個基于區塊鏈的參與者。它對接收到的信息進行回應,它可以接收和存儲價值,也可以向外發送信息和價值。

智能合約具體是指運行在可復制、共享的賬本上的計算機程序,可以處理信息,接收、存儲和發送價值的腳本

特點

不可篡改分布式自動觸發不依賴第三方3)去中心化網絡

去中心化網絡不同于中心化網絡。在中心化網絡中,需要中心服務器,是一種星型的輻射結構。

中心化網絡
中心化網絡
去中心化網絡

我們演化成區塊鏈的形式:

三、邏輯結構

從架構上來說,區塊鏈大致可以分為4層,從下到上依次為 數據層、網絡層、合約層 和 應用層

1)數據層

數據層是區塊鏈的邏輯架構中最基礎的一層,功能主要包括區塊數據的存儲、哈希值和 Merkle 樹的計算以及鏈式結構的生成,其中進行數據的存儲時需要重點考慮數據存儲的性能和穩定性。在比特幣和以太坊中的存儲功能選擇的是 LevelDB數據庫。

數據層的功能是把交易數據存儲到區塊中并將區塊加入到區塊鏈中。當節點之間發生交易后會將交易數據廣播到區塊鏈的去中心化網絡上,網絡中其他節點負責校驗這些交易。交易被確認有效后會存儲到區塊中,并加入到區塊鏈。

2)網絡層

網絡層主要包括 P2P 網絡 和 共識算法 兩個組成部分。P2P (Peer to Peer)網絡也稱為點對點網絡或對等網絡,根據去中心化程度的不同可以將其分為以下三種:

純P2P網絡

節點同時作為客戶端和服務器

沒有中心服務器

沒有中心路由器

雜P2P網絡

有一個中心服務器保存節點的信息并對請求這些信息的客戶端作出響應節點負責發布信息(因為中心服務器并不保存文件),讓中心服務器知道哪些文件被共享,讓需要的節點下載其可下載其可使用的資源路由重點使用地址,通過被一組索引引用來獲取絕對地址

混合P2P網絡

同時含有純P2P網絡和雜P2P網絡的特點

在 P2P 網絡中,各個節點需要對區塊鏈中的各個區塊達成共識才能共同維護同一分布式賬本。這個共識的機制就是共識算法,比較最為常用的共識算法有工作量證明機制(Proof of Work,PoW)、權益證明機制(Proof of Stake,PoS)、股份授權證明機制(Delegated Proof of Stake,DPoS)

3)合約層

合約層的功能使得區塊鏈中的區塊具有可編程的特性,并且賦予了區塊鏈智能的特性,在區塊鏈中智能合約的作用如同一個智能助理,對區塊鏈中的數據和事件按照預先設定的邏輯進行處理。

4)應用層

應用層泛指基于區塊鏈技術并結合具體業務場景開發的應用,包括加密數字貨幣錢包、交易所、去中心化應用等。

四、分類

隨著區塊鏈的快速發展、區塊鏈的應用范圍越來越廣,不同的區塊鏈應用之間也有了比較大的差異

1)公有鏈

公有鏈是對外公開、任何人都可以參與的區塊鏈。公有鏈是真正意義上的完全無中心化的區塊鏈。它通過加密技術保證交易不可篡改,在不可信的網絡環境中建立共識,從而形成去中心化的信用機制。公有鏈使用于數字貨幣、電子商務、互聯網金融、知識產權等應用場景。

2)聯盟鏈

聯盟鏈僅限于聯盟成員使用,因其只針對成員開放全部或部分功能,所以聯盟鏈上的讀寫權限、以及記賬規則都按聯盟鏈規則來控制。聯盟鏈適用于機構間的交易、結算、清算等B2B場景。超級賬本項目即屬于聯盟鏈。

3)私有鏈

私有鏈對單獨的個人或實體開放,僅供在私有組織,比如公司內部使用,私有鏈上的讀寫權限,參與記賬的權限都由私有組織來決定。私有鏈適用于企業、組織內部。

4)特點比較5)側鏈

側鏈的概念最早產生于比特幣的應用過程中,側鏈實質上是指遵守側鏈協議的所有區塊鏈。側鏈協議是一種可以讓比特幣安全地從比特幣主鏈轉移到其他區塊鏈,又可以從其他區塊鏈安全地比特幣主鏈的協議。

側鏈本質上是一種跨區塊鏈解決方案。通過這種解決方案,可以實現數字資產從第一個區塊鏈到第二個區塊鏈的轉移,又可以在稍后的時間點從第二個區塊鏈安全返回到第一個區塊鏈。

6)閃電網絡

在比特幣交易網絡中,最為人詬病的問題便是交易性能:全網約每秒7筆左右的交易速度遠低于傳統金融交易系統。同時,等待6個區塊的可信確認將導致約1個小時的最終確認時間。

為了提升性能,比特幣社區提出了閃電網絡等創新的設計。閃電網絡的主要思路十分簡單—將大量交易放到比特幣區塊鏈之外進行,只把關鍵環節放到鏈上進行確認。閃電網絡的工作原理是用比特幣擁有權的承諾來替代擁有權。

五、總結

區塊鏈的主要特點包括去中心化、去信任、集體維護、匿名性、可靠的數據庫。

去中心化: 區塊鏈技術基于P2P去中心化網絡,區塊鏈網絡上的節點都是平等的,沒有中心服務器,故區塊鏈是去中心化的。去信任: 區塊鏈中的數據都是公開透明的,交易數據通過加密技術進行驗證和記錄,無須第三方信任機構的參與,故有去信任的特點。集體維護: 區塊鏈由全網節點共同參與維護,某一節點上數據的更新需要其他節點進行計算和驗證,不會受少數節點控制??煽康臄祿欤?區塊鏈中的每一個節點上的數據都是全網數據,單個節點的退出或癱瘓不會影響整個系統。

好了,以上便是本篇的所有內容,如果覺得對你有幫助的小伙伴不妨點個關注做個伴,便是對小菜最大的支持。不要空談,不要貪懶,和小菜一起做個吹著牛X做架構的程序猿吧~ 咱們下文再見!

今天的你多努力一點,明天的你就能少說一句求人的話!

我是小菜,一個和你一起變強的男人。

微信公眾號已開啟,菜農曰,沒關注的同學們記得關注哦!

關鍵詞: 數字貨幣 交易記錄

相關閱讀

巨胸护士在线播放视频二区

<i id="bcuty"><sub id="bcuty"></sub></i>

<b id="bcuty"></b>