导航:首页 > 观区块链 > 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和区块链有什么关系吗相关的资料

热点内容
中文比特币钱包 浏览:290
上饶市耐普矿机有限公司招聘 浏览:772
比特币矿机销售案例 浏览:38
数字货币与张健的五行币有关吗 浏览:451
以太坊去浏览器 浏览:943
莱特币发展模式 浏览:914
以太坊s10 浏览:198
比特币第一笔披萨 浏览:581
区块链共识机制挖矿 浏览:928
知名区块链白皮书 浏览:663
目前国内拥有区块链的硬件产品 浏览:655
比特币持用比例 浏览:638
区块链在实体企业的应用 浏览:109
以太坊投资app 浏览:776
区块链的挖矿机是合法的吗 浏览:95
比特币椰子 浏览:53
区块链金融2020 浏览:55
区块链医疗信息共享案例 浏览:572
以太坊天使轮主页 浏览:215
以太坊代币转出接口 浏览:844