IOTA-MAM

在IOTA网络里,一个使用者可以在任何时候发布一个消息。他们仅仅需要执行少量的工作量证明就可以允许数据通过网络传播(对预防网络膨胀这是必要的)。如果节点正在实时监听通道ID(地址),通过gossip传送的消息将会在该消息到达订阅者节点的时候被订阅者接收到。

这些信息可以是任意大小,然而,一个启发式评估(a heuristic evaluation)将会证明对于数据完整性这个问题,较小的信息将会产生更高的潜力举例说明,一个人可以用MAM传输加密的4k的视频,但是这将会让网络饱和从而导致一个糟糕的用户体验。因此,对于实际流用MAM去通知一些off-tangle(什么意思,待补充)的协议是更有效的。其他的将会发现MAM中的巨大优势的概念,包括传输远程控制命令并且编排更新(orchestrating updates)。

既然这些信息是分布式账本的一部分,他们都通过增加总hash能量来为网络的安全性做出贡献,并且从网络中的完整性属性中获益,因为其他的交易会继续间接的引用他们。

存在的在嵌入式设备上使用MAM的功能性案例是Bosch XDK IoT developer kit或者RuuviTag,一个来自于Ruuvi实验室的开源的传感器信标。使用XDK或RuuviTag,可以创建便携式气象站,Eddystone接近信标,车辆定位器和许多其他漂亮的传感器应用程序,这些应用程序通过纠缠向有限的受众报告遥测或通过MAM流接收命令。

MAM使用Merkle树签名机制去签名一个加密信息的密码摘要(cipher digest)Merkle树的根被用来做通道的ID。因为一个树仅仅会持续很短的一段时间,每个消息都包括了下一个Merkle树的根(或者通道的未来方向)。因为从前的树没被引用提及,这将会被用来添加一个前序秘密的元素到一个通道里。

每个信息都被由通道ID和用来签名信息的key的index组成的一次一密(one-time pad)加密的。一个额外的随机数将会被用做可撤销的加密密钥key。使用属于叶子之一的私钥对所得的密码哈希进行签名。然后,将加密的有效负载、签名和叶子的兄弟姐妹发布到缠结中,使任何知道对称密钥的人都可以找到并解密它。

使用MAM流时,首先通过验证签名有效性并验证签名属于树的叶子之一来对消息进行身份验证,然后再对其进行屏蔽。 如果签名验证失败,则整个消息被视为无效。

MAM可以多种方式用于控制可见性和访问。 我描述了其中一些模式,它们提供了MAM细微差别的用法,远远超出了简单的加密消息流。

公共模式使用树的根据作为交易的地址,该交易是信息将要发布的对象。一个随机的将要偶遇这个消息stumbling across a message的使用者可以通过使用消息的地址来解码它。

这个模式和在HAM radio广播相似。他可能被用来公布来自一个设备或者个体的通知并且一个可能的用例将会是一个twitter clone,但是现在您具有不变性和数据完整性的附加属性。

私有模式可用于非公开使用的加密流。 在私有模式下,Merkle根的哈希值用作地址。 如果随机用户偶然发现您的消息,他们将由于无法从哈希派生根而不能解密您的消息。 这使得MAM流仅由根用户提供。

此模式更类似于加密的无线电流-任何人都可以看到它,但是只有知道要寻找它的人才能解密它。 私有模式对于拥有设备相互之间进行私密通信很有用。

受限模式将授权密钥添加到私有模式。 用于连接到网络的地址是授权密钥和Merkle根二者的哈希。 消息发布者可以在不更改其通道ID(即merkle树)的情况下停止使用auth密钥,因此,如果需要,从本质上可以撤消订阅者的访问。 发生密钥更改事件时,需要将新的身份验证密钥分发给允许遵循该流的各方。

由于每个消息都包含下一个merkle树的根,因此如果用户也知道流的类型和所使用的可选授权密钥,则一旦当前树耗尽,用户就可以轻松地遵循给定的流。 鉴于当前消息仅指向下一个merkle树,因此读取MAM流的用户无法在获得根之前读取消息。 可以将MAM流视为高速公路是最容易的:当您第一次开始阅读流时,您正在进入高速公路,并且您不能违背交通流量。

当您开始结合通道拆分来考虑时,这是一个简单但非常有用的功能。

MAM发布者可以决定在任何时间点拆分渠道。 这意味着:将来的消息使用新的Merkle树,该树的根之前未公开。这为特定的数据子集启用分支通道,这些子集的整体不希望共享,从而允许数据访问并提供细粒度的访问。

Permanent Channel SplitPermanent Channel Split

一个例子可能是个人身份记录。 该记录可以有两个主要分支:公共数据和私有数据。 Public分支使用Private MAM模式,并允许所有具有root用户的用户读取消息。 这可能包括名称,兴趣列表和base64编码的个人资料图片。 当去看医生时,用户可以共享每日体重数据的子流。 他们可以通过共享权重流的root和auth密钥来做到这一点。 鉴于存在保密性,医生将无法访问他们尚未获得授权访问的额外数据。

Short lived stream split

Short lived stream split 短暂流分割

另一种方法是为数据流进行短暂的通道划分。 设备可能会每天报告环境数据。 当检测到异常时,它将拆分通道并以较小的时间间隔开始报告数据。 除了以固定的时间间隔将值传送到主通道外,它还可以将包含更频繁更新的新拆分通道的状况通知给侦听器。 这可以保持主流的时间间隔,同时允许在特殊情况下灵活地添加辅助流。

Masked Authenticated Messaging是IOTA最强大的IXI模块之一,它在IOTA之上开辟了新的用例领域。 能够确保数据完整性并控制其访问管理是诸如空中更新(OTA),数据市场,雾分析,端到端可验证的供应链,自动保险等等之类的前提条件。

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值