BSV 的星辰大海,Metanet 之愿景

Metanet 是基于 Bitcoin (SV) 的区块链系统的价值网络,在上面可以进行数据传输和存储,去中心化且不可被篡改。 Metanet 将实现分布网络内容的新方式,并促进比特币小额交易所带来的全新电子商务模式。利用区块链的经济安全性和稳定性,Metanet 可以通过区块链支持的数据存储提供更高的数据质量和完整性来降低欺诈的可能性。在 Metanet 的概念之下,BSV 上的各类交易将构成支撑所有互联网活动的全球公共账本,这是一个具有无限可能性的、令人振奋的新概念。

从去年 11 月分叉的时候,CSW 博士正式提出了这个被称为” 元网 “的宏大愿景,到近期多伦多大会正式确立了 Metanet 的技术实现和规范定义,我们对这个来自未来的颠覆式的网络技术也算可以管中窥豹,可见一斑。

Metanet 的概述和评价

BSVer 对 Metanet 的评价可谓是史无前例的高,这种评价甚至会让不懂的小白认为是在吹逼,仿佛那些号称百万千万 tps 的公链项目,什么颠覆业界形态,制霸智能金融的 IXO 所打出的旗号一样,是不是又是一个准备圈钱跑路的山寨项目?很多新人对 BSV 的第一印象就是看不懂,搞出那么多新概念,新名词,一个个都那么晦涩难懂,颇具币圈特色啊。大家把元网这个概念和什么币圈的” 跨链共振 “,” 交易挖矿 “,” 分片 “等等概念放在一起,很容易令人产生这种传销洗脑一般的不适感。

我们首先来看看 Metanet 广为流传的版本是什么。首先最有名的定义就是博士给出的,要把 Internet(现代互联网)作为 Metanet 的侧链。很多人听到这个理论,立刻回面红耳赤地前来争论,明明比特币是运行在互联网之上的,为什么又说互联网可以运行在比特币之上,可以作为 Metanet 的侧链或者子网。这个问题无非就是你如何定义网络,如何定义链接,这里先按下不表,后文会说明。另一个很重要的理念就是,比特币只是副产品,只是为了实现 Metanet 而被发明出来的一个工具,而最终的愿景就是 Metanet,这个元网将承载庞大的人类数据,极大降低信息成本,提高商业效率,是一个颠覆现有商业模式,改变商业游戏规则的伟大创新。

扯了那么多,大家可以发现还是没有解释为什么 Metanet 如此伟大,比特币如何改变世界,没错,这就是新概念的意义。打个比方,谈起移动互联网,大家都亲切地称之为新一代互联网革命,史无前例地改造了现代人们的生活方式,彻底颠覆了我们的认知。但是我们拨开这些高大上的外衣,从本质上看一下什么是移动互联网,无非就是起源于两个简单地不能再简单的进步,都谈不上什么技术创新,其一就是计算机便携化,也就是将电脑微型化,手机化,可以随身携带。其二就是无线网络带宽逐步增加,从 GPRS 到 3G 4G 5G 等数据传输的速度和容量都极大增加。但是仅仅看这两个简单的进步,你很难想象它们带来了多大的变革,甚至向回推个几年,站在当时的人的角度,能想象到今天连小商小贩都接入到移动互联网支付的场景吗。这就是概念的价值,概念帮助我们通过现有的技术发展,来展望未来,来引导现在的资本,资源去流向这些领域,并脚踏实地的创造出我们所理想的世界。

但是新概念也是两面性的,币圈有着大量包裹着新概念外壳的骗局,加上主流媒体的推波助澜,以及万众创业带来的各种不靠谱的商业模式,让人们对币圈以及对互联网创新天生就带上有色眼镜,第一反应就是骗局,就是为了套投资人的钱,然后套现跑路。但是如果拒绝某些新概念,就可能错过一个风口,错过一个时代。因此一味地听信新概念和一味地拒绝新概念都是不可取的。我们能做的,就是拨开重重迷雾,看清新概念的本质,找到新概念的理论基石,用自己的知识储备和理性思考去判断新概念究竟是否可行,如何实现,有哪些阻碍,应该如何克服。

Metanet 的解释

上文提到,所有高大上的新概念,都可以被剥离成一个或多个看起来非常小或者简单的技术进步,这些进步要么是创造性的,要么是规模性的,创造性的就比如比特币引入 PoW 本身,而规模性的主要是其他方面的基础设施得到完备,为这种新概念的生长提供了土壤。

而解释 Metanet 之前,先解释其他几个方面的发展。首先是比特币(BSV),一个基于稳定的共识体系运行了十余年的 PoW 分布式账本,一个坚如磐石的去信任工具,一个提供点对点价值流通的网络。其次是存储成本在降低,现在随便一个手机就能达到上百 G 甚至上 T 的容量,大型的数据中心存储数据容量少说都是按 PB 为单位来计算的。再次就是网络传输的速率也在飞速提升,移动互联网已经开始商用 5G,而有线互联网也全面普及光纤,各大洲之间的骨干网络也在拓宽。这些基础设施的发展,奠定了 Metanet 的基石,使 Metanet 的发展成为可能。

什么是 Metanet,我这里用比较白话的方式来解读。

  1. 全网免许可,没有人可以主导整个网络,没有人有权利占据和分配域名,IP 这些资源,每个人都可以拥有自己的网站,拥有自己的域名,不需要任何人许可。
  2. 网络上的内容和使用记录都是永久保存的,整个网络的所有历史都被备份了下来,不存在某个商家或某个公司倒闭而丢失数据的情形,而在这个网络上,作恶的记录也会永久地保存。
  3. 该网络跨洲跨界跨平台,无论你用的是怎样的终端设备,无论用的怎样的网络协议(IPv4 还是 IPv6 亦或是自定义协议),无论你用的是哪家公司的应用 app,无论你是哪个商家的用户,大家都在同一个生态环境下运行。各个大商业体要实现数据共享,跨平台合作也非常容易
  4. 该网络自带密码安全业界顶级的安全属性,网络原生就支持身份认证,权限管理,无需单独实现安全通讯协议。
  5. 该网络原生支持价值传递。你可以不受约束地将价值(钱或者等值的资产 token)通过网络直接传输给网络中的任意一个个体,没有中介,也不需要单独打造一套支付系统。这种价值传递的摩擦非常小,以至于极端微型的价值传递都是可能的,你可以做到向 100 万人提供服务,却每人只收取 1 分钱
  6. 该网络是一个开放全球云操作系统,每个人都可以在这个操作系统上进行登录和操作,甚至执行代码,每个人都可以自由地以各种方式来与网络中的其他人交互。每个操作都是公开,可信且带有永久的日志备份的。

上面几点就是根据我的理解,对 Metanet 的特点进行的说明,当然,我的理解一定是片面的,未来一定有我还没有想到的特性被发掘出来。就像没人能够想到,手机网速快了点,怎么就催生了短视频这么大的产业一样。

刚才那些描述,其实没有提到比特币,因为比特币只是 Metanet 所使用的一个基础层,或者一个工具,如果对比特币的特性没有概念或从未有过认知,那么看我刚才的描述,简直就是天方夜谭,这与现在我们日常接触和使用的因特网有巨大的差异,上面的功能没有一个是现代的互联网自带的属性,都需要借助互联网上层的应用来实现,正是这种各自为营的实现,才让现在的互联网实质在退化成一个个的信息孤岛,各大互联网厂家已经把资源和标准划分的差不多了,而各个大厂生态之间也很难进行互通。就以一个支付为例,互联网没有元网的支付属性,所以在互联网上发展出来的支付一定是五花八门,各自掌管着自己的生态,生态之间阻碍极高。典型的如国内的微信支付宝,美国的 paypal,日本的 line 和 paypay,各自占据自己领先的市场,而支付市场是一个具有马太效应,强者恒强最后一统天下的市场,只有在元网这样的原生支付网络中才可能实现市场的统一。

结合前面的分析,这里用四个字来概括元网的本质,数据上链。

数据上链有什么用,很多人开始摸不着头脑,创新的特点就是这样,表现出来的本质或者实质及其简单,但是内部的信息量极大,从中衍生出来的可能和场景具有更大的信息量。首先上链,上什么链,成本怎样,性能怎样,安全性怎样,如何具备可拓展性,如何索引并找到数据,如何避免垃圾信息和 DDOS,数据之间如何交互,如何面对法制和监管等等等等一系列的信息,每一个都值得专门写一篇文章来论述。我这里直接抛结论,使用 BSV 作为链上存储媒介,可以有效解决上面的所有问题,至于为什么,可以参考我之前的文章,或者通过群里分享的大量而全面的资料来学习。

Metanet 白皮书解读

根据前面的分析,我们得出 Metanet 的本质就是数据上链。抛开所有高大上的概念,就是简单的数据上链。但是自分叉之后,各种数据上链工具层出不穷,典型的如 Planaria,B 协议,C 协议,memo 协议,tokenized 协议等等。这些协议以及它们储存的数据与 Metanet 有怎样的联系呢?为什么 Metanet 又如此特殊呢,其实在这次多伦多会议之前,我的理解是上面的各种协议都属于 Metanet,Metanet 只是个宏观的概念,而微观的实现就是上述各种协议。在这次白皮书发布之后,我仔细研读了白皮书,并配合会议视频以及 ppt,发现我之前的理解有一些偏差,这里就解读一下 Metanet 的白皮书。

学习 Metanet 之前,我对 Unwriter 大神的各种上链工具以及查询工具,包括 bit 协议这种通用范式进行了学习和研究。在实际使用的过程中,我们渐渐会发现一些问题,就是使用变形虫框架以及 B 协议 C 协议下的链上存储,数据之间的关联性很难建立起来。打个比方,我的文章都会在 bitpaste 上进行上链,然后付款构造交易后,bitpaste 会返回给我一个交易 hash,我凭借这个交易 hash 来找到这个文章并进行分享。而我在下次分享的时候,就会建立一个新的交易,一个新的毫不相关的交易 Hash 来存储文章。那么我就必须维护一个映射表,文章标题与链上 Hash 之间的关系,一旦这个映射表丢失,我自己可能再也找不回来我自己所发的文章了,或者找回来很麻烦(比如有些朋友会提醒使用 moneyButton 的交易历史来找到对应的交易,这样虽然可行,但是从实现逻辑上来讲,不友好,不优雅,也不够直接,强烈依赖于 moneyButton,同时也依赖于 bitpaste 不要变更协议)。同样,付费阅读我文章的朋友,可能需要维护一个已购文章列表,不然弄丢了 hash,哪怕付费过的文章可能想看也没办法在数据的汪洋大海中找到。

之前我们介绍过 bit 协议,是 Unwriter 推出的一个通用性的协议,不可否认,这个协议的设计非常灵活和普适。通过 bit 协议,就可以定制出刚才说的数据关联格式,但是有个问题,就是耦合度。由于 bit 协议太过灵活,所以数据之间的关联在不同的 bit 协议下是不相同的,也就是说如何关联数据和 bit 协议怎么定义是强烈耦合的,不同的团队和产品设计的 bit 协议可能大相径庭,因此在跨团队或跨产品共享数据的时候就有很大的问题。为什么不从根本上设计一个关联协议,大家都遵守这个协议,在此之上,再各自发挥想象力去定义数据呢。比如说,互联网就带域名 url 这样的层级结构,可以对数据进行关联和分组。那能不能在比特币的交易结构基础上设计一个这样的协议呢,将一个个数据点连接成图状结构。这就是 Metanet 白皮书的重点内容,数据关联。

数据结构

使用链上储存时,存储的媒介是一笔交易,因此在解释 Metanet 的时候,我们将一个交易称为一个节点(原文翻译是节点,这个节点和我们的挖矿全节点或 spv 节点是无关的,这里的节点只是为了描述拓扑结构而命名的一个 node,所以为了不带来混淆,有的翻译也将将节点换做顶点)。而表示两个交易之间关系的数据结构被称为” 边 “。由” 顶点 “和” 边 “可以组成一副图。比如三角形,就是 3 个顶点三条边组成的一个图形。而在 Metanet 中,一个 Metanet 的交易自己是一个顶点,同时也规定的自己的边。

每个顶点拥有一个自己的比特币公钥(或比特币地址),这个公钥是用来标记一个特定的元网的数据资源。有朋友这里会问,不是一笔交易代表一个数据资源吗,没错,一笔交易代表的是” 某个版本 “的一个资源,而公钥代表的是这个资源本身。换句话说,在元网上,代表一个资源,一张图的是公钥(或地址),而交易则代表这个资源的版本。这个公钥虽然可以随意指定,但是要注意,这个公钥还代表了这个资源所拥有的权限,后文会讲到。

交易格式

然后来看交易格式:Metanet 交易是一个 OP_RETURN 交易,在 OP_RETURN 中的第一个数据是一个四字节的固定字符”meta“,用来标记这是一笔 Metanet 交易。第二个数据是代表这个数据资源的公钥(图中的 Pnode),用来代表这个资源本身,公钥的作用是用来控制权限。然后就是其父顶点的 TXhash(图中的 TXIDparent),用来标识父子关系,如果此字段为空,则该点就是根节点。之后就是可以自由定义的数据体,这个数据体可以以 bit 协议的自定义地址开头,让这个数据变成 bit 协议下的数据,也就是说,通过这种方式,给 Unwriter 大神的 bit 协议套上一个外壳,使数据带有 Metanet 的层级关系和权限关系,内部可以继续实现 bit 协议。

包含了 bit 协议的 Metanet

刚才提到,OP_RETURN 的第三个数据是其父节点的 TXhash,也就是通过这个数据可以找到由谁产生的这个数据。虽然这个数据是写在子节点的,但是不能乱写,如果没有父节点的权限,产生的子节点是非法的,那如何确定子节点是否真的由合法的父节点产生的呢,这就要用到比特币本身的公钥系统。子节点标注了父节点的 hash,通过 hash 可以找到父节点的 Metanet 交易,父节点交易中必然带有父节点用来证明身份的公钥(Pparent),而 Metanet 要求,只有子节点的输入 input 中带有父节点的公钥以及签名,那么子节点才被认为是父节点产生的。换句话说,只有父节点才有权产生子节点,这个权限由比特币的签名系统来保证。这也就是上图中 input 里的

总结一下 Metanet 的交易格式。一个 Metanet 交易代表一个数据体节点,同时记录了该节点的父节点,并用交易 input 签名来证明父节点和子节点的亲子关系是合法的。因此 Metanet 交易有几个必要的要素,input 中的 ,OP_RETURN 中的”meta“标志,Pnode 以及 TXIDparent 这 5 个要素构成了 Metanet 交易。

这个交易的格式可以说非常简单,但这就是 Metanet 强大的地方,大道至简,简单而优雅地结合了 OPRETURN 存储数据的灵活性和比特币自身的权限校验功能,充分结合了这两种机制的优越性,并使用比特币网络来作为安全和信用背书。我之前有想过只用 bit 协议来管理权限,但是都没有 Metanet 想的这么优雅和简单。

在这种交易格式下,我们可以抽象出以下的特点:

  1. 一个子节点只能有最多一个父节点(如果有多个父节点则拓扑结构会变成环形,复杂度增加)
  2. 一个父节点可以产生无数多个子节点,而且只有拥有父节点 Pnode 的私钥,可以正确生成子节点
  3. Pnode 公钥代表一个链上资源,而交易 hash(TXID)则代表它的版本,通过 Pnode 加上 TXID 可以唯一的确定一个资源
  4. 如果两个交易的 Pnode 相同,说明这两个交易是同一个资源的不同的版本,以最新版本为准。最新版本的定义是工作量最大(简单理解就是高度越高)或者同一个区块(内存池)中的拓扑排序(TTOR,BCH 搞不了这个)
  5. 权限控制是通过父节点来指定子节点的特性,而子节点也可以指定孙节点的特性,证明权限的方法就是 input 中的签名
  6. 构造链式权限结构的时候不要求使用特定的 UTXO,只要 input 带有父节点的签名即可。比如可以增加其他输入来付款,付款地址不一定是父节点的 UTXO,二者没有关系,付款用的 input 只用来付款,而父节点的地址用来鉴权

现在我们了解了 Metanet 在链上的数据结构和形态,以及基本的特点,之后我们讨论一下传统互联网所具备的域名,url,搜索等功能是如何在 Metanet 上实现的。如果没有这些功能,我们使用互联网也很难找到网上的数据,因为 IP 地址对人类而言是不可读的,因此才产生了域名系统,也就让不同含义的域名产生了价格。现实中互联网分配域名的权利是掌管在 ICANN 以及其下的各种域名商手中。

Metanet 要进入日常的使用,一定也要设计出这种人类友好的域名系统。但是与互联网不同的是,Metanet 没有 IP 地址的概念,元网是跨平台的,只有地址和交易的概念。这里说个题外话,就是开头所提到的问题,元网并不是运行在互联网之上的,元网与互联网从概念上就是两种不同的组成形态,元网是点对点的,只有地址的概念没有 IP(其实 IP 也是地址的一种,只不过因为数量太有限或因为由电信供应商所控制,而 IP 不是独占的是复用的,从这个角度讲,IP 是地址的一个子集)的概念。因此 Metanet 的域名就只能从地址本身入手,因为不会存在一个中心化的单点的域名分配机构来分配域名(可能有一些自发实现的 bit 协议来试图分配域名映射,但是想达到垄断和通用很难)。

比如一个网站,按照 Metanet 的树状结构,应该有一个节点作为根节点,这个根节点需要一个公钥或地址作为自己的标志。如果我们将根节点的地址作为网站的入口,那就需要在浏览器中输入根节点的地址作为域名。但是地址本身不可阅读,引入域名系统又带来单点问题。Metanet 对此给出的对策就是荣耀地址(vanity address),俗称靓号地址。对于大家都想要的资源,最简单高效的分配方式就是 PoW,工作量证明。去穷举私钥,找到一个靓号地址,通过自身花费的工作量,来自然获得域名,是最公平也是最终极的解决方法。比如我穷举出来一个地址 1GoogleComXXXXXXXXXXXXXXX,通过前缀 1GoogleCom 来作为域名定位网站是最简单的。这里有朋友会问,如果两个人都穷举出一样的地址前缀呢,这个没关系,还可以通过后缀来识别网站,比如大家都知道真谷歌地址的后缀是 XXXXXXXXXXXXXXX,如果有人穷举出一个 1GoogleComYYYYYYYYYYYYYYY 的地址,虽然这两个地址都可以通过域名 1GoogleCom 来搜索到,但是大家都信任后缀是 XXXXXXXXXXXXXXX 的谷歌地址。

这样来自己挖掘域名的方法很符合比特币的免许可的特点。自己付出工作量,通过穷举来获得靓号,不需要一个中心注册机构来发放和管理域名。同时比特币地址域名本身自带证书,不需要 https 这样麻烦的证书交换过程(网站上的内容绝对可信,因为没有根节点私钥是没办法修改网站的)。

域名搞定了,就是 URL,如何定位一个链上网站的某个页面下的某个图片?传统互联网使用被称为统一资源定位符的 URL 来定位资源。URL 也是树状层级结构的,比如我的知乎主页:https://www.zhihu.com/people/hqm-84/activities,可以看做一个个文件夹结构下的资源。https 是协议,zhihu.com 是域名,然后根目录下有 people 文件夹用于表示用户,其下有 hqm-84 目录代表我这个用户,然后是 activities 文件夹表示我的动态。

通过我们刚才的分析,其实大家已经发现了,Metanet 最开始的设计就是层级结构,也就是一个个节点之间自然而然地构成了一个资源定位的功能。只要给每个节点加一个别名,那自然就可以构造出一模一样的资源定位架构。这就被称为 Metanet URL ,即 MURL。它也有个前缀,类似 http,只不过称为 mnp(Metanet Protocol),mnp://domainname/path/file。

这里还要提一点,与传统 url 不同的是,传统互联网的父子路径之间的管理是完全交由网站进行自定义的,而 Metanet 父子节点之间自带权限控制关系,并且这个权限可以进行拆分。那刚才我的知乎主页这个例子,zhihu.com 和 people 两个节点可以是知乎的网站所属的节点,而 hqm-84 这个节点完全可以指定成我自己控制的地址,只有我可以修改下面的路径,知乎无权修改我这个节点下属的全部资源,可以做到让用户真正地拥有自己的数据。

总结

Metanet 说复杂可以很复杂,说简单也可以很简单,就是定义了如何在链上存数据,以让数据之间相互关联。

结合上面的 Metanet 介绍和现在数据上链的痛点,我们可以想象一下如何用 Metanet 架构改造 bitpaste,让它对作者和读者都更好用。首先,弄一个域名 1bitpasteXXXXXXXXX 来作为根节点,然后建立一个 user 的子节点,然后再其下建立多个用户的账户节点,这些节点的地址是每个用户自己的地址(可以通过 xpub 导出一个地址),然后只有用户自己(拥有私钥)才可以修改这个账户节点下属的资源。那么在一个特定的账户节点下有两个文件夹,一个称为 purchase,一个称为 artifact,用来存储购买记录和创作记录,然后在用户每次付费购买新文章后,purchase 下创建一个新子节点,用于付费及存储购买记录,而用户每次发布新文章之后,在 artifact 目录下创建一个新子节点,用于存放用户的文章,只有拥有账户节点(私钥)的用户可以合法创建文章。用户也可以修改自己的文章,或者删除文章。

经过上述改造后的 bitpaste 就很好用了,用户用助记词进行本地登录之后,可以访问到 purchase 目录下自己的所有购买记录,也可以访问 artifact 目录下,自己的全部创作历史,通过 Metanet 的强关联性解决了前文提到的离散数据的痛点。同时带来了权限管理和用户自己掌控数据的优势。

最后,解读一下为什么博士会说,让Internet作为Metanet的侧链,因为Internet能做的Metanet都能做,而Metanet能做的Internet很多做不了,从逻辑上来讲,Internet就是Metanet的子集,既然是子网,叫个侧链不过分吧。


results matching ""

    No results matching ""