官术网_书友最值得收藏!

1.1 認識區(qū)塊鏈

1.1.1 區(qū)塊鏈的概念

我們一般意識形態(tài)中的鏈是鐵鏈,由鐵鑄成,一環(huán)扣一環(huán)。區(qū)塊鏈也可以這么理解,只不過它不是由鐵鑄成,而是由擁有一定數據結構的塊連接而成,呈鏈狀結構,這種結構就是鏈表。

區(qū)塊抽象到計算機語言中就是一個對象、一個結構體、一個類,同樣類中也可以定義屬性、變量和方法,但區(qū)塊里包括的內容可以自己來定義。比如,以太坊公鏈的區(qū)塊結構,它有變量,我們就可以自己進行定義。以下是我們設置一個區(qū)塊包括變量的例子。

上述的type Block struct表示定義一個區(qū)塊,其中定義了變量Number、PreHash、Hash、Value、Create。

當鏈表中的每個數據個體是上述區(qū)塊的時候就構成了一條區(qū)塊鏈。區(qū)塊是區(qū)塊鏈每一環(huán)的實體。這是一種最簡單的區(qū)塊鏈。如圖1-1所示,其中箭頭的方向代表的是子塊關聯父塊,也可以將箭頭反過來,表示父塊連接子塊。

圖1-1 正常形態(tài)的鏈

由于鏈中的區(qū)塊包含數據,例如上面的Value變量,因此我們能夠在這個區(qū)塊被打包到鏈中的時候向Value填充值,此后我們通過訪問這個區(qū)塊內部的數據可對它打包的數據進行讀取,然后輸出,展示給用戶。

在上面的例子中,我們用來存儲打包到區(qū)塊中的數據變量只有一個Value,那么請想象一下,如果把Value換成一個數組或者更多變量,這個區(qū)塊就會變得更復雜,它的功能也會跟著變得更多。

此外,鏈中的區(qū)塊被規(guī)定是唯一的,即相同區(qū)塊號的區(qū)塊不能以同一個身份(以太坊中允許有區(qū)塊號一樣的不同含義塊)在同一條鏈中出現兩次,如果出現了,那么鏈會將其糾正過來。

下面是網上對區(qū)塊鏈的定義解釋:

“區(qū)塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。”

這個概念其實是一個廣義的解釋,筆者更趨向于把這個解釋理解為區(qū)塊鏈節(jié)點程序,而不是區(qū)塊鏈,因為一個區(qū)塊鏈的節(jié)點服務程序就包含了這個概念中的各個模塊,實際上還有很多其他的模塊。

一般來說,區(qū)塊鏈公鏈包含但不限于下面的技術模塊:

(1)數據加密簽名技術模塊。

(2)共識機制技術模塊。

(3)分布式數據存儲技術模塊。

(4)點對點通信傳輸技術模塊。

(5)智能合約技術模塊。

(6)應用程序接口技術模塊。

當我們把這些模塊技術實現的代碼整合到一個程序中時,它便是一個區(qū)塊鏈應用,例如某一條公鏈。

那么是不是區(qū)塊鏈應用一定要全部實現這些技術模塊呢?不是的,你可以開發(fā)自己的區(qū)塊鏈公鏈,哪怕是超級簡單的雛形,只要是鏈狀的區(qū)塊存儲應用,就可以稱為區(qū)塊鏈。請記住,任何一個復雜的區(qū)塊鏈應用,例如知名的公鏈,都是在簡單的模型上進行技術的添磚加瓦打造出來的。此外,區(qū)塊鏈的各個技術模塊所包含的知識點也是非常豐富的,可以說每一個知識點都屬于一個領域。

1.1.2 鏈的分類

區(qū)塊鏈的鏈分類通常有3類,即公有鏈、私有鏈和聯盟鏈。這3類鏈的主要區(qū)別是:

(1)公有鏈的維護節(jié)點比較多,節(jié)點網絡對所有人開放,任何人都可以進行特定的數據訪問。

(2)私有鏈是面向個人或某個組織的。

(3)聯盟鏈是多個組織團體的節(jié)點聯合在一起維護的,對組織開放。

目前被廣泛接受、認可、有價值的“代幣”(Token)幾乎都是基于公有鏈的。

不同種類的公有鏈之間要實現相互通信,比如比特幣公鏈和以太坊公鏈進行BTC兌換ETH的交易,需要借助技術手段來實現,例如跨鏈通信技術。

1.1.3 區(qū)塊鏈能做什么

從區(qū)塊鏈普遍的去中心化的特點來看,在節(jié)點網絡中,如果某條公鏈的合法節(jié)點數目達到一定的數量級,那么我們可以認為當前公鏈的去中心化程度接近100%,這意味著鏈上的數據不會再被篡改了,于是我們所傳遞到鏈上被保存在區(qū)塊中的數據會一直存在下去,真實而永久。

基于這個特點,我們可以將區(qū)塊鏈應用到數據的溯源存儲方面。除此之外,還可以根據區(qū)塊鏈具體提供的功能進行各種應用。例如,以太坊公鏈,它是區(qū)塊鏈,而且提供了智能合約這類具備圖靈完備的功能模塊,我們可以基于它來開發(fā)智能合約去中心化應用DApp,其中最為普遍的便是ERC20智能合約所對應的“代幣”。

要理解區(qū)塊鏈能做什么,可以從實際的區(qū)塊鏈應用所具備的特點進行思考,從而得出答案。

主站蜘蛛池模板: 青海省| 和顺县| 喀喇| 文化| 建昌县| 新田县| 杭州市| 东港市| 慈利县| 巴林左旗| 琼结县| 辉县市| 昌平区| 新闻| 铜梁县| 义马市| 乌什县| 蒲城县| 白朗县| 金寨县| 郧西县| 甘洛县| 和田县| 剑川县| 项城市| 金秀| 泸水县| 盱眙县| 望奎县| 六盘水市| 安多县| 南宫市| 元谋县| 凌海市| 沛县| 望谟县| 郎溪县| 来宾市| 永靖县| 崇礼县| 昭苏县|