首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

信任中心的原罪和Skycoin的救赎

遑遑三十载,互联罪与赎

这三十年,注定不是书剑两无成的三十年。

1989年,在一个普通的晚上,欧洲原子物理实验室( European Particle Physics Laboratory)Tim Berners-Lee架起了第一台提供web服务的电脑,他的同事可以通过电脑远程访问他的文稿。就这么一点点的改变,催生了今天的互联网变革。互联网因自由而诞生。

改变了什么?改变了物理上的隔阂,促进了信息的流动,消除了知识传播的障碍。今天,互联网已经成了永不关闭的网络。普通民众能很容易地获得原本昂贵的知识,享受到更加便利的服务,gov更是欣喜的看到就业质量的改变,社会结构的日趋优化,对经济推动的作用日益增强。除了为了利益边疆争夺而实施的GFW,一切都是那么令人满意的。

但是,人们隐隐的发现,这一切的发展却在逐渐的背离互联网的初衷。第一代的巨头已经老去,老去的不是身体,而是思想,以及早已被忘记的互联网精神:

微博、微信在偷偷的分析着用户的谈话和转发内容,所谓的大数据用户行为分析,无非是刨人隐私而已。

搜索引擎名目抓取你的内容,收取点击费,我就利用网络自由贡献的内容获利了,即使你不用也会有其他人用。谷歌自我标榜的不作恶,也是受压于法律的笼子。国内的山寨版,自然连标榜都没有,只喊着“技术无罪”,把人领进了无证医院,葬送了性命。数十万的救命医疗费,拿到手软。

在如此丰厚的利润之下,电商还在想着如何在实体身上榨出更多的折扣,机械拓展着所谓的新零售无人店。若无折扣可榨,便可大声的说“不是实体不行,是你的实体不行”。不是不行,而是真货的确降不到假(山寨)货的成本。实体的确有很多不行,但不是这种不行。

即使被寄托能够颠覆央行的比特币,今天也控制在四大矿池手里,比央行更加央行。

这便是价值信任中心化必然发生的权力外延,不是应得的,也是不易制约的。因为科技和法规的缺失,信息互联的土壤不意间形成了价值的中心信任节点,滋生了中心的贪婪,挤压了个体的合理边界,反制了自由。

江湖的恩怨还得在江湖解决。今天,新的人群正在用新的科技,以去除旧中心不应得的部分,重新争取这个世界的平衡。这是一个自由的世界,更是一个需要救赎的世界。

溪云初起日沉阁,山雨欲来风满楼

可以这么讲,以前的互联网,只有信息的互联,没有更广义的价值的互联。若要实现价值的传递,就必然依托中心化的技术,也就是各个巨头提供的中心化站点服务。这是他们对互联网的补充,也是这一历史时期的发展特点。中心(介)并非必须要去除,任何有价值的服务,都要通过一个团体的合作来提供,这就是中心,无法否定其价值。

他的不应得的权力外延,以及旧技术形成的过高的成本,过大的风险,才是要被取代的。

区块链伴随着比特币的十年长牛,进入到人们的视野。区块链的账本集体维护,去中心信任化的特点,将能够构造低成本的可信价值网络。

区块链很好,智能合约更加的具象,但要为区块链3.0提供基础设施,还缺什么?

注:

区块链1.0:以比特币为代表的各种数字货币;

区块链2.0:以以太坊为代表的智能合约平台和领域应用;

区块链3.0:个人和团体可以平等接入,并且可以交换价值的无中心社会公共平台;

创新的第一性原理,必然要寻求根本的矛盾所在。

基础设施三大件:计算,存储,通讯;

计算:各个节点可以提供的计算资源,比如带宽,哈希,分片,定位,路由等等;

存储:各个节点的存储数据功能;

通讯:通讯是手段,目的是完成满足整体需求的资源定位,获取和调度;

区块链是全民账本,每个人手里必须要保存全部的记账数据,这使得未来区块链的存储量非常大,并非个人能够负担。而且随着应用的发展,在链上只能存储必要的账目转移记录,附加在记录之上的其他信息凭据,只能用一个全局的Hash值来替代,内容(包括合约,数据,文件等等)本身需要另寻出路。

比区块链更早的P2P网络,是一种方案。Bittorrant下载,并不依赖于中央数据中心,而是从用户的电脑里,每个人贡献一些数据块,从而形成一个完整的文件给需要的用户。这种方式,也使得文件能够永不消失,并且很高效的充分利用了网络的闲置资源。

但这还不够,因为,用户除了文件获取的需求,还有社交,购物,娱乐等等需求,你是不能用迅雷或者BT来做这些事情的。这便需要在更底层的地方做出新的设计。Skycoin网络便是基于这一点而规划的。

这是整个Skycoin项目的架构。以及分别对标的已有项目。Bitcoin和Ethereum已经广为人知,Skycoin做的改动不大,在群体共识上面做了人性化的改进,可以视为一个有趣的社会化实践。重要的基础依托是CXO和Skywire,是一个完全点对点(Peer To Peer)网络的必要基础设施。

值得注意的是,这里的点不仅是个人,同样可以是今天的任何一个价值中心节点,包括那些巨头。

激励与惩罚,Obelisk共识

如此多的各色人等,如何能够平等的接入?毕竟这不是微博,也不是淘宝开店,更不是美国域名管理中心,有一个“官方组织”在负责管理。

没有切实的自治方案,理想始终是心中的乌托邦,书中的颜如玉。

自治的关键,在于一个共识机制,设计的不够好,就会产生今天的四大矿池,垄断算力。技术圈觉得共识机制听起来不那么高大上,于是都说是拜占庭将军问题。

顿时好激爽。

Obelisk的共识,你的节点提供的服务被更多人认同并且使用,你的权重就高,就能代表大家参与区块链网络的投票和共识。当你作恶,大家就会停止对你的关注。在一个数据中心,计算一下大V小V的关注热度,还是不难的。但在广域分布的环境中,这个任务却并非直观可达。

关于建模、计算以及如何抵抗Sybil攻击等等,以后我会专门写一篇通俗的文章来进行解释。

这种共识,不同于POW和POS,也即没有了大型矿场产生的因素。POW是一种完全无意义的Hash计算,碰到了前十位等于零的Hash值,便认为获得了一次交易凭证。比特币这种比拼算力的方法导致世界上四大矿场产生,这四大中心比以往更加中心化。POS是谁的股份多谁说了算,这更加没搞头。

Obelisk机制在于权重是动态的,取决于节点有多少跟随者。当节点因为作恶被众人取消链接的时候,损失的是真金白银的代币和币时,不像中心化服务那样,朝阳群众先投诉举报,然后等待一段漫长的时间由有关单位开出罚单。

注:

币时:是Skycoin平台有别于其他的一个概念,也就是,你的节点为网络服务了多少个小时,转发了多少的数据包,提供了多少的存储和带宽,这些都能转化成币时,币时能够转化成Skycoin,可以视作对节点服务的奖励。

“一旦遭人欺负,瞬间就应当回击。”普京说。这一次Skycoin网络的原住民们第一次获得了处罚的权力。

Skywire+CXO,成功P2P网络的支撑构件

这两个模块,完成了基础设施三大件:计算,存储,通讯;

技术选型都是现成的。区块链的项目,有一个共同点,从中本聪开始就是如此:用现成的技术模块,搭出解决某个课题的方案。

不发明新技术。主要由以下几个方面的任务组成:

身份认证

主要由Distributed Hash Table完成。每个节点都有一对公钥和私钥。顾名思义,公钥是所有人都知道的,私钥只有你自己知道。当运行Skywire节点的时候,有一串很长的字符串,这个是公钥的Hash值,代表了你的网络唯一身份(ID)。在信息交换的时候,对方用你的公钥加密信息,你收到后,用私钥解密。第三方如果不知道私钥,就不会看到内容。同时,这也作为身份认证,如果对方公钥的Hash值不等于对方的ID,就会中断连接。

DHT的作用,是根据ID来寻找节点的位置。比如Kademlia DHT,使用异或运算,来表示任意两个节点的逻辑距离(既然可以称为距离,自然能满足距离定义的三大公理),同时,把整个网路所有的节点,按照距离的定义,组成一个前缀二叉树。于是,在这棵树中要寻找到某个ID的位置,复杂度在log_2(n),n是所有网络中的节点数量。哪怕有10亿个节点,也只需要30跳就能找到。

网络和路由

节点间的通讯,在Skywie和CXO中都有,目前Skywire的实现逻辑里,只是一个路由加密转发,是一层简单的功能,寻址等会在CXO中完成。Skywire可以在普通PC上运行(windows或者linux),也可以在能够运行linux的任何板子上运行。官方出的矿机有8个ARM板子。ARM在这种加解密的运算上,并不比桌面CPU有优势。以后如果出ASIC芯片的专用矿机,计算能力会提几十倍。

提高能力有什么好处?单位时间内转发的数据更多了,能够服务的对象更多,币时也就更多。这是Skycoin网络的激励方式。

寻找某个文件(服务,站点等),用到了上面提到的DHT方法。路由的时候,Skywire的节点把收到的数据包做了加密,并且保证上下游的单线联系,从而无法追溯谁获取了什么。当然这也不是绝对的。

路由还有很多很多技术上的重要组成部分,例如某几个临近节点构成的路由是一个多进多出的拓扑,Skywire采用Virtual Route来为两端的节点创建一个隧道,拓展网络本身的性能,流量和冗余。如此种种,另外再写吧。

数据块交换,管理和MerkleDAG

这里我用ipfs来说明。MerkleDAG是DAG的一个变种,在最早的P2P应用中被用作管理块,内容寻址,同步备份等等工作。在区块链本身的实现里,是关键的一环,用来管理链上的数据。在P2P文件系统里面,自然也是少不了的。

先说一下Merkle Tree。一个文件在计算机中是以Block的形式存储的。如果我们要从网络中的多台计算机上获取一个文件,由于网络不稳定,如果文件传输中坏了一个Block,就得全部重新传输。如果文件很大,比如区块链的存储文件几十个G,就很不划算了。所以,现在的做法是传输成功一个Block,就记录下来,发现哪个坏了,就再次请求重发。那么怎么知道坏了?这里就用到了Hash的特点。Hash是一种全散列的运算,如果源内容有一点点改变,它的Hash值必定相差很多,无法反向推导。所以,如果拿到了某个Block,算一下他的Hash值,如果和先前得到的Hash值不一样,则可断定出错了。

每两个相邻Block的Hash值加和,得到上一层节点的Hash值,如此归纳,最后得到一个总的根Hash(Root Hash),用来判断整体的文件有没有损坏。这就是Merkel Tree:

这对于分布存储,共享大文件很有效。但是,对于一个时常更新的带有版本记录的动态分布式文件系统而言,这还是不够的。

试想,一个文件被一个用户更新了,其他用户手里的还是旧的,如何表示?是全部重新拷贝一份,创建新的Merkle tree吗?为了节省存储空间,减少网络的占用,并且保持对更新的跟踪,我们采用DAG的方式来解决这个问题。下图的DAG示意:

如果文件中的某个Block(比如 第n个)被更新了,那么整个文件出现了新的版本,但是,不需要把其余大部分再重新拷贝一遍,只需要这个Block n出现一个分支,并且文件也有了新的分支,版本2.0和版本1.0共享大部分的Block。在未来的某个时刻,两个版本会汇总成一个,也可能不会,就此分支下去。

区块链里面新产生的交易块,也是如此的结构。当新的分支未被确认时,便是以这种形式存储下来。这个分支有可能不再发展,也有可能被大多数确认,然后成为主要的分支。

每个Block都有可能被更新,于是,整体上就形成了一个DAG。

文件版本管理:没什么好说的

由此,这些构件使得任何第三方都能方便的把自己的服务接进网络。比如,我做了一个VPN的应用,只要按照Skywire的API写好转换接口,注册进DHT,并且在我的Skywire manager管理界面里面把这个VPN应用启动。那么其他peer就能根据名字,寻找到这个服务,使用我的VPN科学上网。

封或不封,是个问题

有些用户关心的是Skycoin网路能不能被封禁。答案是不能。但即使能,谁会封禁呢?暗网存在多年,用比特币交易进行各种非法勾当,然而各国有关部门也是资深用户,用于跟踪分析特定的目标。

大禹治水,不在于堵。

由于是P2P网络,只要有一个节点能够获得某个服务,其他的节点都能获得,也就不存在被封禁的可能。虽然这种极端情况下,效率是很低的。

如果某个服务节点逆抚龙鳞,会不会遭到封禁?回答还是不会。因为有了CXO(ipfs类似),网路中的文件(站点,服务)不会单独存在于一个节点,而是遍地都是,永不消逝,不依赖于主干网,所以不可能被封删干净。

但是,Skycoin网络也好,暗网也罢,技术虽不能被封禁,却可以被利用。有隐身技术,自然就有跟踪钓鱼技术。如果妄想能够不被跟踪,隐匿作恶,进而无法无天,那就得承受这贪欲的惩罚。礼义廉耻,国之四维;四维不张,国之不国。科学上网是刚需,健康上网更不能忘记,不是吗?

旧日宫墙,寻常巷陌,是谁把英雄的故事一说再说?

一首《天地人》百炼钢化成了绕指柔。任是千难万难,探索的路上已经英雄辈出,好的项目层出不穷,无论输赢,都是对历史的印证,为后来者提供了很好的借鉴。无中心自治自洽的网络已经是浩浩荡荡的大势。

Neo:“我还能回去吗?”

Morpheus:“即使可以,你真的还想回去?”

--《Matrix》

本文不构成任何投资建议,有些地方也会有理解偏差,只为大家阅读这类白皮书的时候,有个初步的逻辑印象。目前的项目整体尚处在雏形阶段。技术选型和实现方法将来都有可能改变,但是愿景不变。Skycoin稍微成熟,Skywire的节点矿机已在预售。相信随着技术大咖们的加入,会更快的开发起来。项目入口地址:https://github.com/skycoin

下篇待续:Skycoin、ipfs和暗网的技术详解

为方便大家及时进社区,我们开通了中文社区电报群。

telegram : https://t.me/SkycoinCN

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180126G1A9OW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券