NKN的新一代网络之路[转]
本文转自蓝狐笔记的微信原创
(梵高)可能很多人了解NKN这个项目都是从它的顾问开始的,NKN的顾问之一是著名的公钥密码学的共同发明人Whitfield Diffie,也是图灵奖的得主。NKN还有一位顾问是Stephen Wolfram,他是畅销书《New kind of Science》作者,对NKN的摩卡共识算法(MOCA)有重要影响。
不过,蓝狐笔记从另外一个角度来深入剖析NKN项目,就是NKN除了得到图灵奖得主的认可之外,它到底是什么?它的价值在哪里?
NKN:构建新一代的网络传输基础设施
NKN是New kind of Network的缩写,顾名思义,就是说它定位于成为新一代的网络。构建新一代的网络传输基础设施,源于两个方面的结合孕育。一是当前网络传输基础设施存在很多需要优化提升的地方;二是区块链技术的逐步成熟。
当这两个因素碰撞在一起时,新的事物就诞生了。可以说,这也是科技创新之源。需求和新技术的结合,产生新的技术和应用场景。从这个角度,NKN的诞生有它的根基,有它的必然性。
当前的网络传输存在哪些问题?
当前的网络有三个明显的问题,一个是传统互联网的CS模式存在缺点,这种客户端到服务器的服务模式,导致不可避免的单点故障问题,一旦中心服务器出现问题,用户将得不到服务。同时,用户的数据存在中心服务器,随时都有可能被黑客攻击或被中心服务器本身窥探。
此外,这种模式的服务寻址跟IP地址也是绑定的,这导致不容易动态部署;加密认证也只能依赖第三方,DNS也可能被中间人劫持和滥发。最后从开发者的角度,还存在开发和维护服务器端软件以及支付高昂服务器和带宽费用的问题。
当前的网络模式不仅存在单点故障、隐私担忧、不安全、高成本等问题,其资源的利用率也不高效。由于网络要应付流量高峰,比如在观看热门赛事、热门影视剧、网购秒抢、新年抢红包时,但大多数时候,个体的网络资源没有被充分利用,甚至处于闲置状态。那么,如何有效把这些网络资源利用起来是一个问题。
现在不少区块链项目为了提高性能,牺牲了一定程度的去中心化,其本质上把区块链属性中最重要的部分进行了权衡和弱化。去中心化不是目的,目的是真正的安全,和无须第三方中介的信任,可以让节点无须许可地参与进来。而目前的各种DPoS的共识机制,限制了参与者的数量,并提高了参与者的门槛,好处是性能得到提高,但这也导致区块链本身“机器信任”的削弱。
存在问题,就会有对应的解决方案。区块链的到来为解决上述的网络问题带来新的可能性。区块链之前,对等节点网络也是存在的,但很难形成真正可持续的网络。这是因为它很难衡量对等节点的贡献,也没有形成可量化的激励。
而区块链的到来,解决了两个很重要的问题,一个是记账,可以给所有节点的贡献进行记账,这个记账是去中心化的,无须中介机构即可完成,形成大家的真正信任;二是激励。代币机制的诞生,也就是节点贡献的代币化,再加上记账的技术,让所有节点的贡献不仅可以记录,还可以量化,不可篡改,贡献越多,收益越大。
充分利用区块链的特性,足以重塑传统的网络传输。而NKN就是要做这个事情,NKN希望融合区块链,来重构网络的服务模式,最终形成一个去中心化的、自我演化的、高度可扩展的网络。
如果用大白话来说,它是一个构建于当前互联网上的通信网络层,人们可把自己的计算机当作节点加入到这个点对点的网络中,并进行中继数据传输,而NKN通过对数据传输的路由结构进行优化,并根据参与节点中继流量的贡献给予代币的回报。
NKN去中心化网络的冲击力
要想对现有的网络形成冲击,取得自己的优势,需要具备一定的杀手锏。那么NKN如何对现有网络的方案形成自己的优势?
NKN有几点值得关注:一是它的节点包容性。它的所有节点都是对等的,进入门槛低,它可以支持数百万上千万的节点。节点数的规模足以保证它区块链账本的安全。二是网络速度方面。这可能是最具吸引力的一点,它通过多点路径模式加快传输速度,节点越多,速度越快,吞吐量越大。三是服务的随时在线。NKN有唯一标识的地址,不用担心单点故障,用户随时通过NKN网络跟服务建立连接。
四是低延迟。可以支持各种类型的应用,甚至包括实时3D游戏,此外它的节点间数据支持链下的传输,不会受制于达成共识所需时间的限制。五是在安全和隐私上,它有CS模式无法比拟的优势,就是它支持端到端的服务,无须第三方参与,不用担心隐私的泄漏。最后,从开发者的角度,它无须运行中心服务器,可以降低系统的复杂性和成本,不用担心黑客攻击。
以上所说的这几点,也就是传统网络目前的软肋所在。由区块链驱动,NKN的去中心化网络有了比传统网络在低延迟、安全、隐私、成本等方面有更多优势,这让它有了安身立命的根基。
那么,具体来说,NKN有什么杀手锏?比如它的数据传输模式有什么不同?它的共识是怎么达成的?它的激励机制是什么?它的生态有什么吸引力?
NKN的DDTN:让去中心化的数据传输成为可能
在理解DDTN前,先从全局角度来看看NKN的系统架构。它分为六层:底层网络、NKN网络层、区块链层、服务和SDK层、接口层以及应用层。
从上图来看,NKN发挥其创造力最大的地方有两个:NKN网络层和区块链层。这也是它独特的地方所在。
首先来看DDTN,它是指去中心化数据传输网络。NKN通过客户端和节点的组合构成了对等网络。客户端是网络终端的代理,主要为NKN网络用户发送和接收数据。NKN的客户端软件可以嵌入到移动应用、无线网关、IoT设备等。而节点主要是计算机,如PC或笔记本、服务器以及其他可以为NKN网络中继数据的设备。不管是个人电脑,还是企业的服务器都可以安装NKN的开源节点软件来加入NKN网络成为节点,从而创建了一个NKN的去中心化的数据传输网络。
大规模的节点进入网络之后,NKN如何来组织流经这些节点的数据传输?NKN维护的是动态的拓扑图结构,它允许客户端和节点随时加入或离开网络。这样的设计对于节点来说,非常友好。
一旦有节点加入网络,NKN会根据其公钥、私钥和当前区块链,赋予节点一个新的唯一NKN地址。这个地址是节点在NKN网络中的地址,而不是之前节点的IP地址。这个地址在NKN的去中心化数据传输的架构中非常重要,它可以帮助其在去中心化的情况下,尤其是要防止恶意节点扰乱的情况下,实现最佳的路由路径。这种路由的方式也就是NKN的Chord DHT。
大家都知道DHT是分布式哈希表,而NKN的DHT加了一个Chord,为什么呢?请看下图:
NKN的网络看起来像一个环形,所有的节点都在环的位置上,它会根据节点在NKN上的地址顺时针地放置在环上。
当用户使用NKN的客户端发送数据到NKN节点,节点会把数据路由到距离接收人最近的邻居节点。它会从当前位置开始搜索,并围绕着环顺时针移动。当找到距离接收人最近的邻居时,它会把数据发送过去。该邻居节点以同样的方式中继数据,直到数据最终发送到接受者。
刚才我们也提到,这个距离不是我们现实世界中的物理距离,而是NKN地址之间的距离,这也就是为什么NKN的地址很重要的原因。
NKN的设计中,相当于重构了网络数据的传输方式,节点有自己唯一的NKN地址,以及Chord DHT,两者的结合使用,让路由可验证,可以实现邻居节点、路由选择的确定性,这也是为什么它能允许任何节点随时加入和离开的原因。
此外,按设计来说,NKN的路由效率高于传统中心化网络的路由效率。但同时因为去中心化的特性,NKN为了防止恶意节点破坏网络,需要对路由随机化。随机化路由也导致效率更低,因为它无法做到最短路径最快速度的发送数据包。
NKN提出了权衡的办法,NKN节点的每个链接都可知道其ping时间,因此从给定节点,可以选择最低延迟的节点。此外,在发送方和接收方之间可以创建多个并发NKN路由。这样一来,甚至可以聚合所有虚拟路径的带宽。
这也是NKN的网络加速器的原理,根据NKN CTO张逸伦的说法,它可以实现167%—273%的速度提升。而且文件越大,提升越好。Web下载的瓶颈不再是内容服务器,也不是用户的ISP,而是在于默认的网络路由路径。
总结来说,NKN的DDTN的核心概念是NKN地址和Chord DHT。在NKN网络层,它包括了基于NKN增强Chord DHT协议的P2P覆盖网络,可以提供类似于八卦协议或libp2p的功能,当节点增长到数百万甚至数十亿时,在理论上它更加高效,更具扩展性。
NKN如何量化激励:PoR和签名链
在上文中,我们分析了NKN是如何实现去中心化的数据传输网络,那么,它又是如何来证明节点发送的数据是可验证的?同时也是安全的?又如何来证明节点的贡献?
首先NKN节点的贡献是基于它的“工作量证明”,而这个工作量证明跟比特币的挖矿算力证明不同,它涉及的是在NKN网络上中继的数据包。
那么如何来证明节点是在为NKN网络工作?NKN提出了PoR的证明,也就是中继证明。在中继证明中,很重要的一点是要理解它的签名链。在NKN网络中的每个客户端或节点都有公私钥对,密钥对可对交易进行签名。当数据包在NKN网络中传输时,节点用公私钥对数据包进行签名,同时把它中继到下个节点。下一个节点如此类推,这样形成了一条签名链。这意味着,攻击者是无法伪造签名链,除非它拥有所有路由节点的私钥。
NKN如何达成共识:可扩展的摩卡共识
PoR解决了节点的贡献量验证的问题,不过还缺乏一个共识验证,完成共识验证之后才能给节点奖励。NKN的共识机制是摩卡共识MOCA(Majority vOte Cellular Automata)。
通过摩卡共识(MOCA),它根据节点自身的状态和邻居节点的状态来达成共识,它无须通过比较网络中的所有节点状态来达成共识。简单来说,就是如果节点周围的邻居节点如果多数状态跟自己不同,节点会把自己的状态更改为多数状态并向邻居发送更新状态。
通过邻居节点的相互作用和影响,最终在全网达成共识。一般来说,达成共识只需几次迭代,每次迭代的时间一般情况下小于1秒,达成共识的时间一般会小于2-3秒。
要深入理解摩卡共识(MOCA)的算法,还需要了解其来源。NKN参考了投票者模型和伊辛模型,同时结合元胞自动机的机制,形成了自己的摩卡共识(MOCA)算法。
摩卡共识(MOCA)机制是NKN最大的特色之一。这从它的名字来源也能看出一二。NKN的顾问Stephen Wolfram有一本书名为《New Kind of Science》,可以缩写为NKS,而NKN是New Kind of Network,这也是灵感的启发吧。
在《New Kind of Science》一书中提到了元胞自动机的概念。它的基本思想是说自然的复杂结构和行为过程本质上都是大量基本单元相互作用所引起的。它研究小的计算机单元,通过领域链接方式连接成为更大的、并行工作的计算机的理论模型。
要理解摩卡共识(MOCA)的机制,首先来了解元胞自动机。元胞自动机可用于构建复杂系统的演化模型。简单来说,举个例子,就是有一个网格,第一行有24个单元格,如果给单元格着色,那么,它有256种白色和黑色单元格的排列组合。每一行有不同的规则,一共有256个规则。
首先从第一行开始,单元格要么为白色,要么为黑色。第二行单元格的颜色由第一行正上方的三个相邻单元格颜色来决定。而第三行中的单元格的颜色则由其正上方第二行的三个相邻单元格来确定。如此类推。
根据这样的简单规则,结果大多数是可预测的,可以创建可预测的模式。但规则30出现一个意料之外的结果,也就是它创建了一个完全随机且不可预测的模式。由此Wolfram使用规则30作为Wolfram Alpha的伪随机数生成器。
也就是说,简单的规则能够创建随机和复杂的模式。看似复杂的事物来源于简单的规则。甚至有位数额学家Jonh Conway 设计一个“生命游戏”的游戏,每个网格细胞处于活着或死亡的两种状态,每个网格细胞跟其周围的8个邻居相互作用,然后根据一组条件,比如任何活着的细胞的邻居少于2个活着的细胞,则会死亡;如果有2-3个活着的邻居细胞,则可以活到下一代;如果超过三个活着的细胞邻居,其会死亡;如果周围正好有三位活着的细胞邻居,那么死亡的细胞会复活。
通过这些简单的规则,生命的元胞自动机进入了永远进化的阶段。以上的实践,给人们很大的启发,最主要是给人们植入了这样的观念,复杂的模式可以从简单的规则演化而来。也就是说,它意味着在某种程度上,一个新的事物,新的组织,可以在没有人为设计的情况下出现。
理解了元胞自动机之后,我们来看NKN的摩卡共识(MOCA),它也融合了投票模型和伊辛模型。NKN网络中的节点类似于元胞自动机的细胞。每个节点都跟一定数量的邻居节点相连接,其网络共识的形成依赖于对其邻居节点状态做出的反应。
为了简单理解起见,可以想像成有一群人,排成一列,他们通过举右手进行投票。他们中有人投票“赞同”,有人投票“反对”。这时候,假定有个规则,每个人观察离自己最近两人的投票,然后根据三人(包括其本人)的多数票来更新他的投票(赞同或反对)。
在NKN的网络中,这里的人就是节点,根据一定的规则,节点根据自己和周围邻居节点的投票来达成共识。摩卡共识(MOCA)的共识节点会基于他们目前的观点以及邻居节点的观点来不断调整自己的观点。随着节点观点的改变,其共识也会发生改变。
当然,NKN的网络中,要比上述的例子复杂。NKN的元胞自动机是多维度的,处于“自我演化”的状态。它利用多数投票规则,实现可扩展的共识,其达成共识的时间随着系统规模扩展实现对数扩展。
总言之,摩卡共识(MOCA)通过元胞自动机和投票机制的融合达成可扩展的共识。节点跟周围邻居的沟通轮次不多,可以快速达成共识。同时,它通过类似于八卦协议的机制把要达成共识信息发给所有参与节点,这也是共识过程的主要时间成本。
NKN的CTO张逸伦解释说:NKN共识成本以O(log N)实现扩展,理论上,它可以扩展到任意数量的节点。如果达到100万个节点数,它只消耗比现在50%多的资源。其大概意思是说,NKN网络中有100万的对等节点,其消耗的带宽、CPU以及RAM资源仅比1万个对等节点的网络多50%。
NKN的激励机制
NKN有两种方式获得代币奖励,一种是中继数据包的奖励,一种是挖矿奖励。所有运行NKN节点软件,并中继数据的节点都可以根据其贡献获得NKN代币奖励。这个中继数据服务的价格由发送方和接收方决定,也可以在所有参与中继数据的节点之间公平分配。
挖矿奖励则是奖励给记账节点,它从中继节点中选出,记账节点提议新区块,如果新区块达成共识,那么该记账节点会被奖励挖矿代币。这个记账节点也是随机选择的,签名链是不可篡改,同时也是不可预测的,它的最后一个签名用于选择记账节点。
NKN代币在生态中的主要作用是给予中继节点和挖矿节点奖励。节点中继的数据越多,能赚的NKN也就越多。这也产生了良性竞争,节点为了赚取更多收益,节点会变得更快。这种激励机制会导致更快更稳健的网络。
NKN的生态系统吸引力
NKN生态系统可以参与的主体不少,包括应用开发者、区块链项目、云服务平台、网络设备及运营商、个体用户等。
目前NKN的全球节点数已经超过11,000个节点,且还在不断快速上升中,这个节点的数量级在整个加密世界也不多见。
对于开发者来说,NKN为开发者提供了通用的对等网络层,可以无须开发和维护中心服务器,不用担心服务器遭黑客攻击或出现单点故障的问题,基于NKN网络的应用响应速度更快,且能保证安全和隐私。
对于用户来说,NKN网络的性能体验更好,同时用户也可以共享网络获得收益。对于企业来说,尤其是效率较低的数据传输服务公司,NKN网络可以提供更好的解决方案,可以帮助企业提供更好的网络覆盖,更高效率利用其网络资源。
此外,由于能够衡量数据传输量,且实现了代币化,利用NKN网络的激励体系,也能方便带宽中继的微支付。例如,第一级的互联网服务提供商和ISP可以利用NKN内置的计量系统实现结算。
与NKN最契合的两大应用场景
由于NKN能够大幅改善数据传输的性能、同时保证安全和隐私,这意味着在NKN网络上可以运行一些之前体验不够好的应用。同时,NKN具备可扩展性,这让它应用范围更加广泛,比如基于NKN网络的游戏应用、Wifi共享、社交应用、文件共享应用、IoT和智能家居等。
而其中CDN、Pub/Sub服务是当前NKN最值得关注的应用场景,也是跟NKN契合度最高的两大应用场景。
首先来看CDN服务,CDN是内容分发网络,其目的是为了解决访问延迟的问题,它通过把源站的内容分发到距离用户最近的节点,提高访问的响应速度和成功率。
(NKN节点超过11000,分布在全球50多个国家)那么,跟传统的CDN(如Akamai等)相比,NKN的CDN网络有什么优势?一个很重要的优势是NKN它是社区共建的节点网络,目前其节点数已经超过11000多个,并且还在一直不停地增加当中。这让它的内容分发节点更广泛,更接近用户。其次,NKN的容量是弹性的,可以根据需求来扩大或缩小,有利于满足客户的需求。再次,低延迟率是CDN网络最关注的地方,NKN的CDN服务器都是实际的PoP节点,更容易找到距离客户端较近的低延迟节点。不仅更低延迟,可靠性上来看,NKN的CDN网络没有单点故障,NKN的分布式节点提供全天候的运行服务,不要求共享资源节点观看内容,比纯P2P共享相比,更有优势。
此外,在高级调度上可以根据参数对节点和路由进行动态调度,如带宽、延迟、服务负载及价格等。最后,从关键的成本来看,NKN的CDN网络由于是社区参与构建的CDN服务器,对客户来说,其成本更低。因为对客户来说,一是没有硬件部署和维护成本,二是节点的部分成本已经被NKN的传输挖矿覆盖。
第二个值得关注的NKN的Pub/Sub服务,Pub/Sub服务是指订阅和发布的网络消息中间件服务。它在企业之间,企业和应用之间,以及IoT设备之间都有广泛应用,它是提供实时消息传递功能基础设施。那么,NKN的Pub/Sub服务有什么不一样?
NKN的Pub/Sub提供多对多的异步消息传递,它将发送者和接受者分离,是可扩展的持久的事件提取和传送系统。
它有几个显著特点,这也是跟NKN本身特性相关,跟传统的Pub/Sub服务相比,NKN的Pub/Sub服务更稳健、成本更低、覆盖范围更广、保护隐私。NKN的Pub/Sub服务器分布在全球各地,没有单点故障,更容易传送消息,其部分成本被NKN挖矿奖励覆盖,且消息不经过中心服务器,不用担心隐私和安全问题。
此外,对于开发者来说,NKN的Pub/Sub提供了设备间、人和设备间、模块之间的双向可移动通信组件,通过接口即可实现发布和订阅消息功能,开发者可以更专注业务层的逻辑。聊天、协作、加密货币、多人游戏同步、实时更新、物联网设备控制等多种应用都可以集成NKN的Pub/Sub提供的服务。
其他的应用场景,还有Tuna服务,类似于软件服务的淘宝,具体来说,就是软件或硬件的拥有者可以通过NKN的Pub/Sub平台发布服务类型和价格,终端用户通过NKN网络购买并使用提供方的软件或硬件资源服务,如高性能游戏或大型专业运算软件等。
结语
目前区块链领域在计算和存储方面都有项目在探索,例如以太坊提供了去中心化的算力,Filecoin/IPFS的去中心化存储,而在去中心化网络方面,也开始有了项目的探索,NKN的的解决方案,在去中心化网络数据传输的探索方面,迈出了新的一步。
NKN是现有互联网基础设施的覆盖网络通信层,加入NKN的网络节点,通过其独有的DDTN,实现去中心化的数据传输,同时,它对数据包进行中继证明,并通过MOCA达成共识,对参与者实现奖励。这是一个完整的去中心化的数据传输网络。
NKN的创始团队有高通、诺基亚、谷歌等的背景,NKN的创始人李彦博是Linux核心网络子系统代码贡献者,在高通和诺基亚有超过10年的P2P/Mesh网络协议研发经历,也是onChain的联合创始人;联合创始人Bruce Li曾在谷歌和诺基亚领导过多个网络技术创新项目;联合创始人张逸伦是加州大学物理学博士,多年的全栈工程师。
如果说比特币重塑的产业对象是金融行业,NKN重塑的对象是数据传输网络行业,NKN能否突破全球数据流通的障碍,实现更好的数据传输体验?期待NKN的接下来的演进!