美文网首页区块链研习社
MAMLite-IOTA更灵活的消息传递协议

MAMLite-IOTA更灵活的消息传递协议

作者: 027f44a6597b | 来源:发表于2018-11-24 16:40 被阅读0次

介绍

M 问认证消息传递(MAM),一个由Paul Handy描述的天才协议,是IOTA最强大的IXI模块之一。[1]由于Tangle的设计和无用的性质,它开辟了许多新的用例。

信息安全的目标是保证机密性,可用性和数据完整性。这些功能是交通网络(例如V2X),可验证供应链,无线更新等内容的先决条件。

因此,Masked Authenticated Messaging非常适合许多应用,但也有其局限性。

为什么另有消息协议?

限制在于当前协议中如何处理签名的方式。有些用例中不同的参与者在同一个频道中,每个签名必须是可分配的:能够知道谁准确地产生了给定的消息。这样,收件人不仅知道该消息是来自受信任组的某个人的真实消息,而且还可以识别该基础作者。

除此之外,存在其他重要的用例,例如,频道内的每个作者必须保持匿名,但同时可观察并可分配给外部可信方。

在这一点上,我想介绍MAM Lite(MAML)。MAML为MAM 带来了公钥加密 - 使其更加灵活。

地址推导和前向保密

通道中的每个地址都是从其先前的地址派生的。推导使用加密散列函数。这是一种数学算法,它将任意大小的数据映射到固定大小的位串(散列),并被设计为单向函数,即一个不可逆的函数。由于这种单向函数,没有人能看到地址的历史。因此保证了前向保密:

ADDRESS_1 = HASH(CHANNEL_ID +密码)

ADDRESS_2 = HASH(ADDRESS_1 +密码)

ADDRESS_3 = HASH(ADDRESS_2 +密码)

......

安全通道标识符将用于生成创世地址。散列附加密码可确保只有在知道适当密码的情况下才能遵循流。此功能可防止垃圾邮件并保证机密性。

此派生方案允许您在所需的位置读取流。唯一的要求是流的地址(从哪里开始)和适当的通道密码。

因此,流销售者可以仅销售部分流。这对买家有利,因为他们不必购买流的整个历史记录以便遵循它。

该地址推导方案允许快速访问消息。由于地址是从先前地址导出的,因此可以预先计算所有地址以达到所需地址。要生成的附加地址缓存会使访问速度更快。

渠道分裂

在某些用例中,可能需要为特定的数据子集分配通道。只需更改频道密码,发布商就可以在任何时间点轻松分割频道。此功能允许构建可以想象的各种通道结构。

签名方案

要签名和验证消息,MAML使用RSA。它是一种非对称加密算法,可用于加密和数字签名。它使用密钥对,该密钥对由用于解密或签名数据的私钥和用于加密或验证签名的公钥组成。私钥保密,无法从公钥计算。

每个频道参与者拥有密钥对,因此拥有私钥和公钥。除此之外,每个参与者都持有他们信任的所有其他参与者的公钥。以下示例说明了该过程:

Alice想发布一条新消息。她用她的私钥签署她的消息并发布它。Bob在流中看到一条新消息。他检查他的公钥集合是否包含在消息的签名部分中找到的公钥。鲍勃意识到这一点,好像是爱丽丝的消息。但要确定消息来自Alice,Bob需要验证签名。他根据消息数据,签名和公钥验证签名。它似乎是有效的 - 爱丽丝是该消息的作者。保证身份验证和数据完整性。

消息的剖析

MAML提供多部分消息,其中不同的数据集合在一个整体中。每条消息由以下部分组成:

1.上市

2.私人的

3.签名

公共部分 - 如名称所示 - 包含未屏蔽的公共数据。找到该消息的每个人都可以查看它。同时提供公共和私人数据有助于提高灵活性。

私有部分包含所有掩码数据。可以使用一次性密码(OTP)或使用可信方的公钥来加密数据。OTP源自消息地址和通道密码。这会阻止随机用户在邮件发现时解密邮件。使用受信任方的特定公钥加密消息可以实现细粒度访问。在这两种模式中,消息只能由提供相应凭据的人员读取。

签名部分包含作者的签名以及相应的公钥。需要此公钥来了解必须验证签名的公钥。持有作者公钥的每个渠道参与者都可以识别并验证签名。

消息格式设计得非常轻量级。它是一个JSON字符串,只包含几个字段,因此可以将工作证明保持在最低限度。由于下一个地址始终从当前地址派生,因此消息中不得包含指向下一个地址的指针。

如上所述,存在这样的用例,其中例如频道内的每个作者必须保持匿名,但同时可观察并且可分配给外部可信方。这可以通过使用可信方的公钥加密签名部分中的作者的公钥来解决。这将使集中控制的通道成为可能。

执行情况

MAM精简版的第一个版本发布此 GitHub上的Java。已经实现了许多功能。您可以创建/拆分频道,发布和阅读消息。除此之外,我还编写了一个命令行界面,以便每个人,甚至是非编码人员都可以使用它,创建自己的频道并查看其工作原理。该库设计为尽可能易于使用。[2]

在下图中,将创建一个新频道。发布一些消息后,将读取流。最后,我将加载一个完全不同的流。我需要的只是流的地址(我想要读取的地方)以及跟随它的相应密码。

关闭的话

MAM Lite易于使用,重量轻,协议灵活,可确保另一级数据通信的隐私性和完整性。知道谁准确生成给定消息的能力使新用例成为可能。


原文:点击进入

如果你喜欢我的这篇文章或者我之前发表的文章,我很高兴能得到一点捐助;-):

IOTA:PGGB9HOSLZQOPPVTGONEYLMJQWFAOLTZJVHEDR9XKSWCRJRUEZZOJYRRKNDBVNKADUXK9UZRKRAWEIFYWECAA9BTIW

IOTA二维码

相关文章

  • MAMLite-IOTA更灵活的消息传递协议

    介绍 M 问认证消息传递(MAM),一个由Paul Handy描述的天才协议,是IOTA最强大的IXI模块之一。[...

  • Android 使用 Kotlin 连接 MQTT

    MQTT 是一种轻量级的、灵活的物联网消息交换和数据传递协议,致力于为 IoT 开发人员实现灵活性与硬件/网络资源...

  • Android 使用 Kotlin 连接 MQTT

    MQTT 是一种轻量级的、灵活的物联网消息交换和数据传递协议,致力于为 IoT 开发人员实现灵活性与硬件/网络资源...

  • websocket学习笔记

    websocket websocket是web传递消息的一种协议。web传递消息的方式主要有轮询(polling)...

  • Spring Boot AMQP-RabbitMQ

    AMQP(advanced message queuing protocol)高级消息队列协议是一个异步消息传递所...

  • RabbitMQ 学习笔记

    RabbitMQ 是一个支持多种消息传递协议的消息代理, 支持 AMQP(一个具有强大路由功能的开放式连接协议),...

  • 网络编程:通信设计空间

    通信设计空间 讨论以下网络编程中的通信设计空间: 无连接协议与面向连接协议 同步及异步消息交换 消息传递与共享内存...

  • iOS关于代理模式的理解

    代理模式是一种消息传递模式 包括:协议、委托对象、代理对象 协议:用来指定代理双方需要做的事情 委托对象:根据协议...

  • MQTT QoS(服务质量)介绍

    MQTT 协议 中规定了消息服务质量(Quality of Service),它保证了在不同的网络环境下消息传递的...

  • Internet控制报文协议(ICMP)

    它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、...

网友评论

    本文标题:MAMLite-IOTA更灵活的消息传递协议

    本文链接:https://www.haomeiwen.com/subject/psjbfqtx.html