星际文件传输协议(IPFS),能重构web信息传递方式吗?

星际文件传输协议(IPFS),能重构web信息传递方式吗?

2018年两大互联网巨头相继出现宕机事件,6月27日阿里云宕机一个小时,7月24日腾讯云宕机早8点---11:40分时长3小时40分钟;而国外亚马逊AWS、谷歌云等中心化存储问题也不断暴露,信息传输不稳定带来不安全感。

随着信息时代到来而导致的大数据爆发,信息传递、存储成为接入网络、连接生活重要一环,作为互联网传统信息传递方式的HTTP协议,从长远时间发展来看,不可避免存在某种“隐患”。

星际文件传输协议VS传统HTTP协议

传统HTTP协议传输往往需要中心服务器作为沟通桥梁,比如用户A想下载某个网络文件,需要通过HTTP协议向服务器发送一个下载文件请求,输入ip地址或者域名,让电脑知道去哪里寻找服务器,同时根据地址查找到相应文件,之后电脑向服务器发送请求,TCP将下载好的文件片段重新组装,发送至用户电脑,如果出现文件损坏,会再一次发起请求,重新下载整个文件。

在互联网中,所有的数据都保存在中心服务器上,无论是下载文件或是预览网页,都需要从服务器上获取,一旦中心服务器出现受限或者宕机,用户想要查找或者下载的内容也受一定限制,另外,如果多人想要同一份资料,那么每个人都需要下载同一份文件,浪费巨大的存储空间,并且,对于按地址寻址方式,有很大不稳定性,一旦ip地址下线不再使用,用户再也无法访问该信息内容。

互联网在信息传递上的快速、简便,极大方便了人们对彼此信息之间的交流与共享,但同时也暴露出诸多问题。

IPFS在信息交换上与HTTP协议类似,不同的是IPFS采用去中心化思路,也就是说,在IPFS网络上不存在任何一台中心服务器,由于是分布式数据存储(在各个节点服务器上),也就不会出现信息丢失以及被篡改,同时能够让数据实现共享,从而节省大量存储空间。

IPFS运作机制

IPFS采用Merkle DAG(有向无环图),使用目标哈希散列构建对象连接。

Merkle Tree是由美国计算机学家Merkle于1979年申请的专利,Merkle Tree通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树。

• Hash是一个把任意长度的数据映射成固定长度数据的函数。

• 输入数据的改变会得出不同的hash结果。

在P2P数据传输网络中,将文件拆分为多个小分支,IPFS网络中将文件拆分为256Kb的小文件,然后进行哈希计算,生成一段哈希值,将各个片段的哈希值放入数组当中,打包成区块,再将其分发到IPFS网络中,由各个分布式节点(服务器)存储。

在传输过程中,若文件损坏一部分,只要重新下载损坏部分的数据块即可。对于小于1K的文件,IPFS为了避免打包成一个区块,浪费存储空间,将小于1K文件直接与哈希索引放在一起上传给IPFS节点,不会额外占用一个块。

由此可知,IPFS理念是尽可能使用少的存储空间,尽量分散存储文件。对于相同的文件,IPFS里有去重复机制,只建立一个文件夹,删除重复的文件,并修改版本历史记录,这样大大减少存储占据的空间,同时也保障了系统运行速率以及安全。

Merkle DAG模式

DAG称为有向无环图,表示从任意定点触发都无法回到该点。很多人认为这有希望取代狭义上的区块链技术,采用不同以往块链式的数据结构,DAG分布式账本有着高拓展、高并发性,给数据传输带来更大延伸空间。

传统线性区块链数据同步机制是同步的,可能造成网络堵塞,DAG采用异步通讯机制,允许并发写入,多个节点按照不同节奏同时交易,不必明确先后顺序,在同一时刻的网络数据可能不一样,但是最终的数据依然同步。

IPFS采用Merkle Tree 与DAG结合形成Merkle DAG模式,从地址寻址过渡到内容寻址。

• 内容寻址:使用多重哈希来唯一识别一个数据块的内容。

• 防篡改:可以方便的检查哈希值来确认数据是否被篡改。

• 去重:由于内容相同的数据块哈希是相同的,可以很容去掉重复的数据,节省存储空间。

通过内容寻址,由搜寻IP地址变更到搜索内容,告诉网络想要“搜索的内容”而不是“输入地址”查找,只要网络节点中,有一处节点对这一部分文件内容没有丢失、损坏,就可以完成数据传输。

激励机制构建的信用体系

在IPFS网络中,节点之间首次连接时,彼此需交换公钥进行身份验证,节点之间在网络中定期通信,通过使用BitSwap协议与其它节点进行块(block)交换实现数据分发。

IPFS运用“共生机制”平衡节点之间利益,任何节点从其它节点获取块(资源信息)会产生“债务”,而存储、发送资源可以获得补偿、奖励,同时,每个节点都记录着相连节点的“债务”情况,欠债越多,能够获取节点的优先级也就越低。基于通信网络建立的信用体系,将获取资源与存储、发送信息建立平衡机制,激励更多节点参与维护IPFS网络运转。

IPFS激励策略:

• 最大化交易性能以及交换效率。

• 防止节点出现“只拿不给”,只从网络获取资源而不付出一定资源。

• 对信任节点限制更宽松,鼓励更多节点遵守IPFS网络规则。

通过激励策略激励所有节点乐于分享他们所拥有的块,在IPFS网络中实现共享文件、价值传输动态平衡机制,基于去中心化、不可篡改的数据传输特性,未来,IPFS将可能成为下一代“HTTP”协议,在去中心化浪潮中重新定义数据传输方式。

本文由 链码笔记 作者:Vcode 发表,其版权均为 链码笔记 所有,文章内容系作者个人观点,不代表 链码笔记 对观点赞同或支持。如需转载,请注明文章来源。