JackDavies边界案例:元网博客系列21之点与边
编辑:admin 博客(183)
字号:A-A+
摘要:中,我们介绍了几个构成有向无环图(DAGs)的概念,并研究了它们与元网(Metanet)协议的关系。在今天的帖子中,我们将看到元网协议是如何被用来创建链式 DAG 结构的,它可以促进比特

  中,我们介绍了几个构成有向无环图(DAGs)的概念,并研究了它们与元网(Metanet)协议的关系。在今天的帖子中,我们将看到元网协议是如何被用来创建链式 DAG 结构的,它可以促进比特币 SV 上的点对点价值网络。

  在这个系列的第2部分,我们学习了一点图论,我介绍了一些基本概念,这些概念指导我们描述有向无环图。简要回顾,要点如下:

  这些简单事实建立了对有向无环图结构的原则性理解。从这里,我们可以通过相关概念的基本理解来帮助描述三种图:

  我们观察到,对于像比特币 SV 这样的工作量证明区块链,区块确实形成了一个简单的线性有向无环图,我们将其命名为“区块有向无环图”。同样,我们发现交易也形成了有向无环图,尽管是一个更复杂的有向无环图,我们称之为“交易有向无环图。”

  最后,我们引入了元网图的概念,它也是一个有向无环图。我们已经讨论了元网协议如何定义一套规则,允许我们创建元网图,类似于底层的区块链协议如何定义一套规则,允许我们创建区块和交易有向无环图。

  在今天的帖子中,我们将详细研究元网协议是如何实现在比特币 SV 区块链上建立本地的、独一无二的链上图结构的,然后正式确定元网协议的规则集,并探索这些规则所建立的图结构的特征和属性。

  我们将了解到,控制元网节点实际外观的规则是高度不受限制的,这意味着元网节点可以有许多不同的形状、大小和形式。事实上,任何遵循非常简单的元网节点格式的交易,作为一个框架轮廓,都被认为是元网节点。那么,这种格式是什么呢?

  在比特币中,用图表的形式表达往往比许多书面要求的东西更加清晰。满足上述所有标准的元网节点最简单的轮廓结构如下图所示:

  注意,在整个博客系列中,我们将“OP_RETURN”理解为组合操作码“OP_FALSE OP_RETURN”。

  我们可以看到,给出的图例实际上是一个非常简单的交易。从表面上看,它看起来像是一个相当标准的OP_RETURN交易,在OP_RETURN 数据负载中包含三个元素。元网节点和这些交易(我们在比特币 SV 中已经非常熟悉和看到)的关键区别是,元网协议赋予这些交易以组件意义。

  元网协议的核心是,我们赋予这六个元素的每一个非常具体的含义,在传统情况下,其中只有少数元素可能具有内在含义。元网协议所适用的这些具体含义是:

  在这里我想再重申一下,关键的一点是,我们已经为节点交易的所有六个基本元素赋予了含义。因此元网协议与现有的OP_RETURN协议形成了对比,后者往往忽略输入签名的用途,而只是对OP_RETURN有效负载中的元素规定了特定的含义。

  这里存在一个微妙之处,表明元网协议如何被设计成利用现有的所有底层区块链的基础设施。在OP_RETURN交易输入中的签名和公钥*通常没有任何更大的含义,但元网协议直接将它们作为元网图结构的固有部分使用。

  * 本系列在这一点上,我想在较高的层次上使用交易和签名来清楚地确立元网图是如何形成的。如果你对我在本节中使用术语“地址(address)来合并指代地址及其它们的底层公钥的数学部分有所疑问,那么你是对的。我们将在以后的文章中讨论元网协议的低层规范,但是现在我们将交替使用术语“地址”和“公钥”一词。

  那么,既然现在我们已经知道元网节点包含六个重要元素,是否可以进一步简化场景以更简洁地表达内容呢?

  我们再作个简化,把 Metanet flag放在一边,因为我们知道它总是存在且不会改变,而把P(parent)和 SigP (parent)当作一个“元素”。当然,它们是分开的,不过重要的一点是,与签名 SigP (parent)相关联的 P(parent)的密钥对属于父节点。因此,将这两个元素简单地表示为P(parent)更为简洁,这样可以更简洁地表达关键点。

  当简化成四个元素后,我们可以清楚地将节点的地址解释为节点特定的公钥,将节点的版本解释为交易的哈希。稍后我们会更详细地探讨这两个问题,但是在进程中保持同一解释是有用的。

  因此,恰有一个父节点的“标准”节点将具有四个重要元素:节点地址- P(node), 节点交易ID-TxID(node), 父节点地址-P(parent)和父节点交易ID-TxID(parent),这些元素共同在元网图中完全决定一个标准节点。

  对于没有父节点的根节点,自然只有两个重要元素:节点地址- P(node)和节点交易ID-TxID (node) ,这两个元素在元网图中完全指定一个根节点。在上面的图中,我们强调了根节点在其输入中只有来自任何公钥的有效签名,其父交易ID 为空值所替换。

  简单说,边是由签名产生的。也就是,为了创建从父节点到子节点的边,子节点必须使用与其父节点相关联的密钥对进行签名--SigP (parent)必须出现在子节点的输入中。

  这个场景最好用一个例子来说明。考虑一个节点A,由P(A)、 TxID (A)对所定义,其中 P(A)与 Alice 控制的密钥对相关联。现在我们希望创建第二个节点 B,该节点将由P(B)、TxID (B)对所定义,其中P(B)与 Bob 控制的密钥对相关联。

  为了创建一个从A → B 的父→子边,我们需要确保节点B 在其输入中包含来自 P(A)的签名。下图展示了如何创建这样的边:

  节点B的输入中出现SigP(A)签名是为了在两个节点之间创建一条边。边的方向告诉我们节点A是父节点,节点B是子节点。我们还看到,根据我们在前面部分所作的元网节点的定义,节点B必须在它的OP_RETURN负载中包含TXID(A)作为它的“父交易ID”。

  因此,当我们从父到子创建一条边时,必须确保子节点(B)包含来自父节点地址的签名和父节点的交易ID。

  用我们在上面提到的节点简化视觉,并注意到节点A是根节点,其关系可以如下看待:

  这里的关键是,元网协议使用了输入签名,要求输入签名中包含来自父节点的签名,以在元网图中执行授权性结构。换句话说,往树中写入一个新元网节点的“写入授权”需要创建一条新的边,对应的就是需要一个签名。

  在上面例子中,Alice(她控制P(A))有独特的权限创建一个子节点B,因为只有她能够在输入中产生的一个所需要的签名SigP(A)。替换一下考虑,假如Bob欲自己创造一个节点B,将发生什么?

  在这个场景中,Bob 只能为他控制的密钥对(例如 P(B)提供输入签名。只需将元网协议的规则简单适用于这一对交易,便可以断定,节点A 和节点B之间没有有效的边。

  这就是元网协议如何为链上数据实现一个定义良好的授权性结构。向图中添加内容的权力总是由父节点定义的,它允许在用户的链上数据上建立一个单线程的用户权限,或者实际上,建立一个权限链。

  既然我们已经建立了元网图中节点和边的确切组成,那么我们可以引入另一个概念:唯一节点标识符。

  我们可以看到,如何根据 P(node)和 TxID (node)这两个元素为每个节点分配一个唯一的节点标识符 ID (node),从而使我们能够唯一地标识图中的任何节点。ID(node)本身是由这些元素共同哈希衍生的,如下图的公式所示:

  现在我们可以更清楚地了解为什么我们选择将元网节点的概念提炼成4个基本构件,这4个元素足以唯一地定义任何给定元网节点的 ID (node)和 ID (parent)。

  现在我们可以理解这个表述的含义,即节点必须包含足够的信息来确定ID (node)和ID (parent)。

  值得提一下的是房间里的大象: 事实上TxID (node)也可以作为任何给定元网节点的唯一标识符。因此,有人可以建议不需要ID (node),因为我们可以简单使用它们唯一的 TxID (node)值来标识曾经创建的每一个元网节点。

  但是,这是我们回到将 TxID (node)解释为节点版本的地方。我们有目的地选择从 P(node)和 TxID (node)衍生出唯一的节点标识符 ID (node) ,是因为它们具有特定的但是独立的含义。如果单独考虑,它们的意义是可以用来实现更大的功能--比简单地使用 TxID (节点)作为节点标识符要好得多。

  因此,通过选择从 P(node)和 TxID (node)中衍生 ID (node),我们可以确保在不失去任何功能的情况下描述元网图,这些功能是经过比较不同地址和版本而获得的(稍后将详细讨论这些功能)。

  通过今天帖子中讨论的思想,我们快速地理解了如何用元网协议中的简单点与边结构来构建一个几乎数量无限的的各种链上图结构。

  因此,需要在这里强调的是,上面描述的以两个节点为例的的简单授权性结构,通常可以扩展到我们可以用元网协议创建的任何图结构。换句话说,协议的规则允许我们描绘一个一致性的链上谱系---即有能力描写、追踪和扩展整个图中的授权流,使之成为一种链上世系。

  考虑上面圈出的蓝色节点。此节点必须引用其父节点并由其签名。类似地,蓝色节点的子节点必须引用并由蓝色节点签名。蓝色节点的孙节点(未显示)需要引用并由蓝色节点的子节点签名,该孙节点可以无限地继续。

  我们可以看到,如上图所示,元网协议允许通过继承而扩展任何这样的元网图。与之相同的,前面描述过的“写入访问”也是代代相传的,随图一并增长与扩展。

  我一直坚持使用术语“图”来描述可以用元网协议创建的结构。但是,随着本系列的继续,您可能会注意到,我开始将这个术语与“ 树”互换使用。从这里开始,我将尝试坚持以下定义:

  使用两者的原因是,有时可能更容易将“元网有向无环图”视为更大的、覆盖范围更广的有向无环图结构,它包含了使用元网协议的全部链上内容。出于同样的原因,将使用协议的每个单独实例(即每个单独的结构)作为“一棵树”进行讨论更为简单。因此,元网图成为树的全局集合,每棵树都从自己的根节点开始,并且可以有自己的局部授权结构。

  上面的树只是一个使用元网协议创建的有向无环图结构的简单例子。在接下来的文章中,我们将更多地了解它的一些特性,比如域结构和版本控制等。

  这些核心规则是建造区块所绝对必需的,允许我们构建一个定义良好的链上图结构。元网协议实现的每一件事情都基于这四个规则。

  在技术概要中,我们引入了一些额外规则以确保元网树能够轻易地绘入其他层级结构中,比如文件系统,网页域名,组织化的命令链;

  综观元网博客系列的主要部分,以上规则集就是我们将要使用的,作为对元网的基础理解,以此来探索用于链上图结构时所能达到的成就。在本系列的后面部分,我们将探索放松规则5和规则6时所可能出现的结果,我们真的只希望限制上面所述的规则1-4。

  今天的帖子已经写得太长了,但是如果不聚焦一下我们已经构造的元网有向无环图的一些特征,总觉得有些遗憾。

  通用性的概念不难理解。元网协议所使用的,也就是我们刚才概括的四个基本规则,是高度通用的。换句话说,协议不限制开发者建造任何特定类型的结构。

  元网是非常特别的协议,同时也是非常通用的协议 ,如此通用以致它是哲学的。

  协议设计成不仅可以容纳所有既存用例,即我们能够设想的结构化链上数据,还能容纳任何未来应用,包括我们无法预知的。设计允许协议尽可能地被未来证明,尽可能地广大,这是一种清晰的要求,如果它是一种协议,应当包容元网的全部梦想。

  我们已经讨论了元网协议中的授权性结构。如果现在我们用它的图结构考察现实世界,则使用无环图的理由变得更加清晰。

  一个典型的授权型层级结构可能是一家公司或企业,在这里CEO处在命令链的最上层,下面则是标准的雇员,甚至是实习生。如果我们用元网树画出这个层级结构,如下:

  在这里可以看到,添加到图中的授权是按逻辑方向流动的,代表了从一个人到另一个人的“写入访问”往下流动,以此建立了一个清晰的图的授权流。需要注意的关键事项是,因为我们定义了这样的图必须是无环的,所以没有办法让命令链越级。

  例如,考虑上图的红线部分,代表了一种假设的不存在的场景,此处图中出现了一个环。也就是,实习生突然获得授权代表CEO写入了最上面的一个节点。很明显,在这样的授权性层级中出现任何循环或者环都有灾难性后果,其他类似需要授权性层级的场景中出现此等情形都是同样结果。

  事实上,元网协议被设计成创造出一个有向无环图中是为了确保在这样的授权性中不出现循环。

  我知道在这里讨论效率问题是绝对困难的,因为作为一个复杂性分析需要考虑许多因素。但是,我相信说元网协议是数据存储的高效协议并没有什么问题。

  比特币是最有效率的数据存储协议,而元网是位于比特币之上的最有效率的数据结构协议。

  我们已经设法创造了一个链上数据存储和数据结构化协议,其将每一个交易归纳成四个核心的元素:P(node),TxID(node),P(parent),TxID(parent),清晰地展现了对一个需要极低花销实现的问题的最小化方法。

  尽管使用如此少的元素就定义了元网有向无环图,但我们并没有牺牲任何重要的功能,比如版本控制和域结构,这些我们将在链上结构中予以保留。

  为了更好地深入理解元网协议的效率,我建议您直接阅读_unwriter的文章《元网的启航》,特别是考虑到它如何与比特币SV本地化的UTXO模型的扩容能力相关。

  作为最后一点,我得再次指出一个事实,立足于结构化数据,公共的、工作量证明区块链的元网协议,允许建立一个强大的、不可篡改的版本控制系统,该系统仍是基于底层区块链的本地化系统。

  我们不在这里描述版本控制如何在元网协议内部工作的细节,这个问题应当单独讨论。不过现在至少可以透露一个重点,那就是,使用比特币SV区块链可以为元网协议提供一个关键性的优势。

  在下期停留一会后,我们将考察从元网协议涌现出来的丰富的域结构,看一看我们能和它产生什么样的相互作用。返回搜狐,查看更多

  以上就是小编为您带来的“JackDavies边界案例:元网博客系列21之点与边”全部内容,更多内容敬请关注!转载请注明出处。

作者:admin 来源:未知 发布于2019-09-07 14:30
本文版权归原作者所有 转载请注明出处 收藏:
您可能喜欢的文章
热门阅读