取消
加载中...
三言财经Authur专访Contentos首席战略官Victor Wang之技术篇-IPFS和哈希
2018-06-25 15:37


Authur:据我了解,Contentos使用了一个比较火的分布式储存技术叫IPFS,它能够通过技术手段保存用户的创作,用户的创作不会因为平台的关闭而丢失,这是IPFS一大优势。那么除此之外, Contentos使用IPFS这项技术还有没有其他的考虑?

Victor :IPFS是一个未来的新方向,有些人说它能取代http,不只是一个存储,还有一些人说他甚至能取代3W,能取得各种各样的互联网通信层的协议,因为其实http这种协议已经很多年了,他的问题是他越来越依赖主干网。原本是一个分布式的存储,大家都是一些自己的节点,每个人都可以开服务器,然后你访问谁的服务器,你就能访问它这个机器上的信息。逐渐地,大家发现这个东西越来越不可靠,因为我是靠地址来访问的,我访问任何东西都需要一个确定的地址,那么就需要那些地址的节点特别强,所以就会出现瞬间涌入很高的流量去访问某一个地址的情况,然后这个地址就需要不断的升级,然后控制在很有钱的服务商的手里面,买很贵的服务器,放在很贵的机房,然后买特别多的带宽,连到主干网,然后大家都依赖这个主干网去访问这些地址。

IPFS的中文名字听起来非常的炫酷,叫星际文件系统。其实普通人理解起来很容易,就是类似迅雷,P to P下载。

大家都做过这种P to P下载,P to P是什么?就是最早的BT的那个协议,就是我下一个文件,我把这个文件很大分成一千份,我有一千个人互相都把这个每个人拿到的1/1000做一个种子,那么大家下载的时候,就可以从这个种子,我下载这个第一份1/1000,从他那里下载第二份,从你那里下第三份,然后每个人下完了之后,也把自己下的某一份做成一个种子,这样大家就会在网上有成千上万的一个文件分段,然后每个人访问的时候,每一个分段的那个节点暂时不可用了,都没关系,就可以从自己最近的那个分段去下载,然后就把它组合起来。

IPFS基本上对待大文件的时候也类似是这种机制。然后对待小文件的时候,你可以更看到它的本质,就是它不是基于地址。你比如说原本访问一个文件是www.x.com/xx,就是这种路径,你是到那个地址上去找这个文件。但是IPFS它不是,它是把文件做一个哈希,就是把文件做一个指纹提取一样的技术,我只要这个文件不变,这个指纹就不变,只要这个指纹是一定的,对应一定的那个文件,就是双向锚定的关系。

IPFS把这个指纹作为这个文件的访问的名字或者是地址,每当我要一个文件的时候,我到网上去,我不是说我到张三的服务器上找文件一号,而是向全网说:谁有文件某某?

这个是以前没有的技术,以前没有人去做这种直接跟文件内容相关联的存储,所以我只要喊出“我要某某文件”,我真的就是要那个内容,不管你存在哪。那么他可能会存在各种各样的地方,它对主干网的依赖会变得越来越小。所以它不仅是说节点损坏的鲁棒性-抗损坏性比较强,另外它很可能在将来发展中会变的速度也更快,存储能力也更好,对于广大的领域,让各个跨州的通讯变得更加迅速,所以有很多的优点。

2.哈希

Authur:你这边有涉及到版权保护的这么一个功能,然后我看到这个功能是通过一个叫“数位指纹“的东西实现的,请问这是什么?它到底是怎么实现版权保护功能的?

Victor:这个就是哈希,这个不得不解释一点数学的东西,但实际上是所有的文科生都可以听得懂的解释。



它其实是一个函数。函数我们都知道,中学时候都学过,Y等于X加一,那么X是一的时候,Y就等于2,X3的时候Y等于4。对于一个输入给出一个输出,这叫函数。

哈希也是一个函数,对于一个输入,它会给你一段乱码的输出。有这么几个特点:第一,所有输出的长度都是一样,不管你输入短的也好,输入长的也好,它输出完了都是那么长。比如说某一种哈希算法,它输出是40位,那么就是40位的16进制数字,就是这么一个长度。

第二就是你输入如果是一样的,输出就是完全一样。你这次给他输入什么文本,下次再输入一样的文本,它输出的还是跟这次一样的结果。

第三就是输入要是不一样,输出就肯定不一样,输入有一个小数点的变化,比如很长的一篇1万字的文章,有一个小数点变了,输出完全变的根本亲妈都不认识。这是特别大的变化。

第四就是这种变化没法反推。也就是说,我不能说我这次放一个数字1,下次放一个数字2,再下次放一个数字3,我看他输出有什么变化,从他每一次的结果中再推导回那个输入。

我们通过用这么一个哈希函数,不管它是怎么实现的,把一个文件进去做一次哈希,你会得到一个很短的一个输出的结果,而那个输入文件可能几十到上百兆,甚至几个G也没关系,放进去就出来这么长,我需要他是多长就是多长。 这个文件只要没有变化,出来的那个结果就没有变化,文件有一点变化,结构就变化,那么好处是什么?

比如说,我对音乐做一个哈希,比如说有版权人上传了一首歌在我这,传完了之后,我对这个音乐波形做一个哈希,还有各种各样的比较好的保存技术,比如说有一些可以把它打到超声波里去。同一首歌,我把那个歌的超声的部分数字化,哈西出来一个结果,每一段比如说每隔五秒就哈希一次,把结果再转化成波形放进去仍然是听不见的,但是任何的时候我在任何一个设备上拿一个这种采集声音的这么一个一个设备,我听一下这个东西,然后就能听到超声的那部分放进去的那个所谓的数字的指纹,跟我的曲库里的歌作对比,就知道哪一首歌是用的我的,谁传的什么歌。

所以这个是把哈希用于音乐的版权保护,然后图像有图像的技术,视频有视频的技术,每一个都要用到哈希,这是不变的部分,就是把一个大文件缩成一个很小的乱码的指纹。这个指纹对应这个文件是一一对应的关系的,所以我们只要追踪这些很短的指纹,它是在技术上可行,而且速度很快的,我们就可以追踪那些大文件的来龙去脉,就是这么一回事。

Authur:这个很技术啊,不知道我们的用户理解起来是不是有点负担。

Victor:应该还是能听懂,之前也给文科生讲过,大家反映还可以行。

Authur:也就是说,这种数位指纹它起到了一种辨别作用,能够识别文件是否被拷贝,是否是原创的,也就是有一个识别唯一性的标准。

Victor Wang:嗯。

 
文章总数