導航:首頁 > 觀區塊鏈 > DHT和區塊鏈有什麼關系嗎

DHT和區塊鏈有什麼關系嗎

發布時間:2024-09-15 10:33:01

Ⅰ APP宣稱自己利用區塊鏈技術而發展出來,什麼是真正的區塊鏈技術

區域塊鏈一詞比較抽象,理解難度較大,第一次聽到這個詞語之後,許多人感覺晦澀難懂,其實簡單點來說,雖然是一個分布賬單,將不同的交易,用不同的賬單呈現出來,這就是區塊鏈,當然這些都是我個人看法。

真正的區塊鏈要懂得方便迅速,現在社會發展較快,人們已經適應快節奏的生活,所以區塊鏈也要投其所好,知道人們想要什麼東西。

所以區塊鏈就我們個人而言,它是一個比較抽象的名詞,但是隨著時間的推移和發展,這個名字會被大家越來越熟悉,慢慢的也會走入我們的生活。當然區塊鏈這個名詞會越來越完善,同時也會越來越清晰,不會像現在這么抽象,當然隨著時間的發展,他的真面目也會揭開,變得不再那麼神秘,同時走進我們大眾的視野,這些對於區塊鏈的發展都是至關重要的。

Ⅱ 1. P2P的特點是什麼 2. 基於DHT的Chord環的原理是什麼

你好,我們知道區塊鏈網路中多採用P2P網路來進行節點連接和節點之間的消息通信。這里對P2P網路的優缺點做個簡單匯總,
1、網路中節點的可擴展性
在P2P網路中,節點可以隨意的添加和刪除。新的節點添加到網路中,一般通過種子節點接入網路,同時種子節點將新節點廣播給其他節點並進行連接。
2、去中心
在P2P網路中,不存在客戶端與伺服器這樣的嚴格區分,同時每個節點又充當著客戶端和伺服器。各個節點之間是平等的,只要接入網路,任意節點都能夠將消息通知給網路中的每個節點。

Ⅲ 易懂分布式 | Kademlia演算法

近年來,區塊鏈技術(部分人更願意稱之為分布式賬本技術)的走紅將分布式技術的概念帶入大眾的棚此視野。區塊鏈技術之所以備受追捧,一方面是其展現了一種在計算機的輔助下,人類可以以無中心、無權威、無層級的方式來進行社會協作的美妙前景;另一方面,從物理上可論證,分布式的簡單協議,比中心化的復雜協議更為高效。分布式技術似乎能夠在帶來公平的同時,還帶來效率。

要理解分布式技術並不困難,因為分布式技術並不高深,但其設計上往往巧妙得令人拍手稱贊。

本文介紹一種常見而巧妙的分布式技術,Kademlia演算法。

Kademlia演算法是一種分布式存儲及路由的演算法。什麼是分布式存儲?試想一下,一所1000人的學校,現在學校突然決定拆掉答和爛圖書館(不設立中心化的伺服器),將圖書館里所有的書都分發到每位學生手上(所有的文件分散存儲在各個節點上)。即是所有的學生,共同組成了一個分布式的圖書館。

在這種場景下,有幾個關鍵的問題需要回答。

接下來,讓我們來看看Kademlia演算法如何巧妙地解決這些問題。

首先我們來看看每個同學(節點)都有哪些屬性:

每個同學會維護以下內容:

根據上面那個類比,可以看看這個表格:

(Hash的概念解釋,可參見 網路-哈希演算法 )

關於為什麼不是每個同學都有全量通訊錄(每個節點都維護全量路由信息):其一,分布式系統中節點的進入和退出是相當頻繁的,每次有變動時都全網廣播通訊錄更新,通訊量會很大;其二,一旦任意一個同學被壞人綁架了(節點被黑客攻破),則壞人馬上就擁有了所有人的手機號碼,這並不安全。

原來收藏在圖書館里,按索引號碼得整整齊齊的書,以一種什麼樣的方式分發到同學們手裡呢?大致的原則,包括:1)書本能夠比較均衡地分布在同學們的手裡,不會出現部分同學手裡書特別多、而大部分同學連一本書都沒有的情況;2)同學想找一本特定的書的時候,能夠一種相對簡單的索引方式找到這本書。
Kademlia作了下面這種安排:
假設《分布式演算法》這本書的書名的hash值是 00010000 ,那麼這本書就會被要求存在學號為 00010000 的同學手上。(這要求hash演算法的值域與node ID的值域一致。Kademlia的Node ID是160位2進制。這里的示例對Node ID進行了簡略)
但還得考慮到會有同學缺勤。萬一 00010000 今天沒來上學(節點沒有上線或徹底退出網路),那《分布式演算法》這本書豈不是誰都拿不到了?那演算法要求這本書不能只存在一個同學手上,而是被要求同時存儲在學號最接近 00010000 的k位同學手上,即 00010001 、 00010010 、 00010011 …等同學手上都會有這本書。

同樣地,當你需要找《分布式演算法》這本書時,將書名hash一下,得到 00010000 ,這個便是索書號,你就知道該找哪清漏(幾)位同學了。剩下的問題,就是找到這(幾)位同學的手機號。

由於你手上只有一部分同學的通訊錄,你很可能並沒有 00010000 的手機號(IP地址)。那如何聯繫上目標同學呢?

一個可行的思路就是在你的通訊錄里找到一位擁有目標同學的聯系方式的同學。前面提到,每位同學手上的通訊錄都是按距離分層的。演算法的設計是,如果一個同學離你越近,你手上的通訊錄里存有ta的手機號碼的概率越大。而演算法的核心的思路就可以是:當你知道目標同學Z與你之間的距離,你可以在你的通訊錄上先找到一個你認為與同學Z最相近的同學B,請同學B再進一步去查找同學Z的手機號。

上文提到的距離,是學號(Node ID)之間的異或距離(XOR distance)。異或是針對yes/no或者二進制的運算.

舉2個例子:
01010000 與 01010010 距離(即是2個ID的異或值)為 00000010 (換算為十進制即為2);
01000000 與 00000001 距離為 01000001 (換算為十進制即為2 6 +1,即65);
如此類推。

那通訊錄是如何按距離分層呢?下面的示例會告訴你,按異或距離分層,基本上可以理解為按位數分層。設想以下情景:
以 0000110 為基礎節點,如果一個節點的ID,前面所有位數都與它相同,只有最後1位不同,這樣的節點只有1個—— 0000111 ,與基礎節點的異或值為 0000001 ,即距離為1;對於 0000110 而言,這樣的節點歸為 「k-bucket 1」
如果一個節點的ID,前面所有位數相同,從倒數第2位開始不同,這樣的節點只有2個: 0000101 、 0000100 ,與基礎節點的異或值為 0000011 和 0000010 ,即距離范圍為3和2;對於 0000110 而言,這樣的節點歸為 「k-bucket 2」
……
如果一個節點的ID,前面所有位數相同,從倒數第n位開始不同,這樣的節點只有2 (i-1) 個,與基礎節點的距離范圍為[2 (i-1) , 2 i );對於 0000110 而言,這樣的節點歸為 「k-bucket i」

對上面描述的另一種理解方式:如果將整個網路的節點梳理為一個按節點ID排列的二叉樹,樹最末端的每個葉子便是一個節點,則下圖就比較直觀的展現出,節點之間的距離的關系。

回到我們的類比。每個同學只維護一部分的通訊錄,這個通訊錄按照距離分層(可以理解為按學號與自己的學號從第幾位開始不同而分層),即k-bucket1, k-bucket 2, k-bucket 3…雖然每個k-bucket中實際存在的同學人數逐漸增多,但每個同學在它自己的每個k-bucket中只記錄k位同學的手機號(k個節點的地址與埠,這里的k是一個可調節的常量參數)。
由於學號(節點的ID)有160位,所以每個同學的通訊錄中共分160層(節點共有160個k-bucket)。整個網路最多可以容納2^160個同學(節點),但是每個同學(節點)最多隻維護160 * k 行通訊錄(其他節點的地址與埠)。

我們現在來闡述一個完整的索書流程。

A同學(學號 00000110 )想找《分布式演算法》,A首先需要計算書名的哈希值,hash(《分布式演算法》) = 00010000 。那麼A就知道ta需要找到 00010000 號同學(命名為Z同學)或學號與Z鄰近的同學。
Z的學號 00010000 與自己的異或距離為 00010110 ,距離范圍在[2 4 , 2 5 ),所以這個Z同學可能在k-bucket 5中(或者說,Z同學的學號與A同學的學號從第5位開始不同,所以Z同學可能在k-bucket 5中)。
然後A同學看看自己的k-bucket 5有沒有Z同學:

Kademlia的這種查詢機制,有點像是將一張紙不斷地對折來收縮搜索范圍,保證對於任意n個學生,最多隻需要查詢log 2 (n)次,即可找到獲得目標同學的聯系方式(即在對於任意一個有[2 (n−1) , 2 n )個節點的網路,最多隻需要n步搜索即可找到目標節點)。

以上便是Kademlia演算法的基本原理。以下再簡要介紹協議中的技術細節。

Kademlia演算法中,每個節點只有4個指令

該機制保證了任意節點加入和離開都不影響整體網路。

Kademlia是分布式哈希表(Distributed Hash Table, DHT)的一種。而DHT是一類去中心化的分布式系統。在這類系統中,每個節點(node)分別維護一部分的存儲內容以及其他節點的路由/地址,使得網路中任何參與者(即節點)發生變更(進入/退出)時,對整個網路造成的影響最小。DHT可以用於構建更復雜的應用,包括分布式文件系統、點對點技術文件分享系統、合作的網頁高速緩存、域名系統以及實時通信等。
Kademlia演算法在2002年由Petar Maymounkov 和 David Mazières 所設計,以異或距離來對哈希表進行分層是其特點。Kademlia後來被eMule、BitTorrent等P2P軟體採用作為底層演算法。Kademlia可以作為信息安全技術的奠基之一。
Kademlia的優點在於:

參考文獻
wiki網路-分布式哈希表
wiki網路-Kademlia
Kademlia: A Peer-to-peer information system based on the XOR Metric
王子亭的Kademlia筆記
韓鋒.《區塊鏈的人工智慧》.新星出版社《區塊鏈新經濟藍圖及導讀》的譯後注

閱讀全文

與DHT和區塊鏈有什麼關系嗎相關的資料

熱點內容
以太坊去瀏覽器 瀏覽:943
萊特幣發展模式 瀏覽:914
以太坊s10 瀏覽:198
比特幣第一筆披薩 瀏覽:581
區塊鏈共識機制挖礦 瀏覽:928
知名區塊鏈白皮書 瀏覽:663
目前國內擁有區塊鏈的硬體產品 瀏覽:655
比特幣持用比例 瀏覽:638
區塊鏈在實體企業的應用 瀏覽:109
以太坊投資app 瀏覽:776
區塊鏈的挖礦機是合法的嗎 瀏覽:95
比特幣椰子 瀏覽:53
區塊鏈金融2020 瀏覽:55
區塊鏈醫療信息共享案例 瀏覽:572
以太坊天使輪主頁 瀏覽:215
以太坊代幣轉出介面 瀏覽:844
重聚礦石鎮挖礦陷阱 瀏覽:306
ns挖礦 瀏覽:828
gac數字貨幣合法嗎 瀏覽:637
看護比特幣礦機違法嗎 瀏覽:359