即将发布的IOTA 2.0 (Coordicide)术语指南

随着 Coordicide 规范即将完成,研究部门一直在与工程部门,外部研究人员和社区交流新协议的细节。对于新组件,以及通信需要简单且标准的术语。但是,直到最近,包括我自己在内的研究人员仍主要使用可能引起混淆的“内部”名称和临时名称。

因此,一些研究人员和工程师开始设计适当的术语。最近,我们已完成此任务,并希望在此博客文章中与您分享这些名称。

新的IOTA协议分为三层:网络,通信应用程序层。尽管我们警告读者不要进行深入的比较,但我们的层与OSI模型的顶层之间存在相似之处。

网络层管理节点之间的连接和数据包传输。

通信层创建用于存储和传递信息的标准化平台。

然后,开发人员可以自由地在应用程序层上设计去中心化应用程序,同时抽象化较低层。

网络层

该层管理诸如TCP之类的Internet通信的较低层。这是最技术性的,在某些方面也是最无趣的。在这一层中,节点之间的连接由自动对等发现模块和八卦协议管理。

通讯层

该层存储和传达信息。该层包含“分布式分类帐”或tangle。速率控制和时间戳也在这一层中。

在通信层中,我们看到了协议的许多新功能。首先,我们的签名“ tangle”将重命名为message tangle,并且称为message的对象将替换事务和包。消息具有可变大小的灵活格式,比固定大小的事务捆绑包更有效。同样,我们将停用“ trunk and branch”的名称:每条消息引用另外两条消息,我们现在将其称为父级

消息由节点发出,然后在网络层上传播。除了父节点的哈希值之外,消息还包含特定的发布信息(发布节点ID、时间戳等) ,包含数据的有效负载(稍后会对此进行详细介绍)以及发布节点的签名。

之所以选择术语“消息”来代替术语“交易”,是因为IOTA协议不仅是一个价值转移应用,而且是一个用于安全地存储和传输数据的平台。

应用层

IOTA协议允许大量应用程序在消息 tangle上运行。任何人都可以设计一个应用程序,用户可以决定要在其节点上运行哪些应用程序。这些应用程序都将使用通信层来广播和存储数据。

但是,将要求每个节点运行协议所必需运行的某些核心应用程序。这些包括例如

  • 价值转移应用程序
  • 分布式随机数生成器(简称DRNG)
  • 快速概率共识(FPC)协议

这些应用程序维护分类帐状态,其他应用程序也可以在这些应用程序之上运行。

应用程序读取并创建存储在通信层上的消息有效负载。我们正在开发一个灵活的框架来协调这种互动。

对象

IOTA协议中数据的基本单位称为对象。每个对象都有一个类型和大小。在模式中严格定义,该类型指定对象包含的字段以及它们的排列方式。类型还确定节点如何解析对象。

消息是对象类型。另一个例子是通用数据对象,顾名思义,它只是数据。每个节点维护一个其识别并知道如何解析的对象类型的列表。

与消息一样,对象可以包含有效载荷字段。有效负载必须始终填充另一个对象。解析对象时,节点根据其类型解析其有效负载。如果节点无法识别类型,则它将有效负载视为通用数据对象。对象类型可能要求有效载荷具有某种类型。通过有效载荷,对象可以彼此嵌套,从而创建一个非常灵活的平台。

为了传播消息并存储在tangle中,必须将每个对象直接封装为消息,或者间接作为某些其他对象的负载,封装在消息中。非正式地,有效负载类型为X的消息可以称为X消息。

例如,供应链应用程序可以定义一个称为“交付”的对象类型。交付对象的有效负载可以支持两种不同的对象类型:包裹和收据。发送包裹时,用户可以发出包含描述包裹的包裹对象的传递消息(带有传递对象的消息)。每次有人收到包裹时,他们都可以发出带有收据对象的传递消息,该收据对象列出了包裹对象的哈希值。

任何不使用递送应用程序的人都可以简单地将所有递送对象视为通用数据。

但是,每个人都必须认识到核心应用程序使用的某些核心对象类型。核心对象类型包括

  • 价值对象
  • FPC意见对象
  • DRNG对象
  • Salt申报对象
  • 通用数据对象

如前所述,包含这些对象的消息可以分别称为值消息,FPC消息等。

所有对象类型都包括版本号,以便可以更新每个应用程序。消息的版本号指示消息使用的IOTA协议版本。实际上,我们认为《 IOTA协议》将持续一段时间,并且可能会不时发生变化。版本号使节点可以管理这些不同版本之间的互操作性。

价值转移应用程序

最重要的核心应用程序是价值转移应用程序,它可以转移资金并更新分类帐状态。此应用程序使用值对象。每个值对象引用另外两个值对象,因此值对象在消息Tangle之上形成一个额外的Tangle,称为值Tangle。

在价值Tangle中,参考文献表示“批准”并记录FPC投票的结果。粗略地说,任何被FPC拒绝的价值对象都会在价值Tangle中孤立。我们将值和消息Tangle分开,以减少此过程中丢失的无害数据。

每个值对象都有一个仅支持称为事务的对象类型的有效负载。交易包含输入交易,输出地址和余额,mana接收者,有效负载和签名。由于我们采用的是UTXO方案,因此术语交易是有意义的:UTXO代表未用(TX)交易输出。

交易的有效负载可以支持多种对象类型,例如智能合约。由于有效负载已签名,因此它基本上是事务的一部分。根据UTXO方案,消耗相同输入的不同事务会发生冲突。因此,如果两个其他相同的事务具有不同的有效负载,则它们将发生冲突。因此,有效载荷本质上与支出相关。通过此功能,可以在价值转移应用程序上构建各种应用程序。

考虑交付应用示例。当接收方必须为已交付的包裹付款时,收款对象可以包含在付款交易的有效载荷中。那么付款凭证就会包含交货凭证,要么两者都包含在一起,要么两者都不包含。

专业术语

现在,我们在本文档中包含有关新定义的词汇表。

  • 应用层:托管所有应用程序的顶层。
  • 核心应用程序:必须由所有用户运行的应用程序。
  • 通信层:处理消息和消息tangle的层。
  • 核心对象类型:所有用户都必须解析的对象类型
  • 通用数据对象:最基本的对象类型。所有无法识别的数据对象都将被视为此对象。
  • 网络层:最基本的层,管理邻居之间的连接和闲聊。
  • 消息:邻居之间闲聊的对象类型。所有闲聊的信息都包含在消息中。
  • 消息Tangle:所有消息的集合。
  • 对象:IOTA协议的最基本信息单元。每个对象都有一个类型和大小,并包含数据。
  • 有效负载:对象中的一个字段,只能由另一个对象填充。
  • Tangle:仅附加数据结构,其中每个项目都引用其他两个项目。
  • 事务:值对象的有效负载。它包含资金转移的细节。
  • 价值对象:价值转移应用程序的基本对象
  • Tangle:所有值对象的集合。
  • 价值转移应用程序:维护分类帐状态的应用程序。
  • 版本号:指示每种类型的正确格式。

原文:点击进入

专栏作者:IOTA-方可

个人简介:我共发表了 130 篇文章,总计被阅读了190,490 次,共获得了 1,402 个赞。

作者邮箱 作者主页 Ta的文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注