IoTeX提供了W3bStream开发工具,将物联网设备接入到区块链和Web3当中。在W3bStream物联网端的SDK中,包含了通信和消息传递、身份和凭证服务以及密码学服务等基本组件。
W3bStream的IoTSDK对加密功能的开发非常完善,包含多种加密算法的实现,比如PSACryptoAPI,Cryptographicprimitives,Cryptographicservices,HAL,Tooling,RootofTrust等模块。
有了这些模块,可以在各种硬件设备上,用安全或欠安全的方式去对设备产生的数据进行签名,并通过网络传递到后续数据层供验证。
DePHY在物联网端提供了DID(DeviceID)认证服务。DID由生产商铸造,每一个设备都有且仅有一个对应的DID。DID的元数据可以自定义,可以包含设备序列号、型号、保修信息等等。
对于支持TEE的硬件设备,最开始由生产商生成密钥对,使用eFuse将密钥写入芯片中,而DePHY的DID服务,可以帮助生产商根据设备公钥来生成DID.而生产商生成的私钥除了被写入到物联网设备,就只有生产商持有。
由于可信任固件可以实现安全可靠的消息签名与硬件端私钥保密,如果人们发现网络中存在作弊生成设备私钥的行为,基本就可以认为是设备生产商在作恶,就可以溯源到对应的生产商身上,实现信任溯源。
DePHY的用户在买入设备后,可以获取设备的激活信息,再调用链上的激活合约,将硬件设备的DID与自己的链上地址关联绑定,进而接入到DePHY网络协议中。物联网设备经过DID设置流程后,就可以实现用户与设备之间的数据双向流动。
当用户通过链上账户向设备发送控制指令时,流程如下:
确认用户拥有访问控制权限。由于设备的访问控制权限以metadata的形式写在DID上,可以通过检查DID来确认权限;
允许用户和设备开通私密通道建立联接来支持用户控制设备。DePHYrelayer除了NoStrrelay外,还包含peer-to-peer的网络节点,可以支持点对点通道,由网络里的其他节点帮忙中继流量。可以支持用户在链下实时控制设备。
在物联网设备向区块链发送数据时,后续数据层会从DID上读取设备的许可状态,只有通过注册被许可的设备才能上传数据。比如被生产商注册过的设备。
这个DID服务另一项有意思的功能在于提供了物联网设备的功能特性(trait)认证。这项认证可以识别出物联网硬件设备是否具有某些特定功能,达到足以参与特定区块链网络的激励活动的资格。比如一台WiFi发射器,通过识别到具有LoRaWAN的功能(trait),可以认为具有提供无线网络连接的作用,也就可以参与到Helium网络中。类似的,还有GPStrait,TEEtrait等。
在拓展服务方面,DePHY的DID还支持参与质押,链接可编程钱包等,方便参与链上活动。
peaq的方案比较奇特,它的方案分为三个等级,分别是源自设备的认证、模式识别校验、基于预言机的认证。
1.源自设备的认证。peaq同样提供了生成密钥对,在设备上使用私钥签署信息,将设备地址peaqID绑定用户地址等功能函数。但是,在他们的开源代码中却找不到可信固件的功能实现。peaq简单的使用私钥对设备信息进行签名的认证方式,并不能保证设备的诚信运行和数据未经篡改。peaq更像是一个乐观Rollup,默认设备不会作恶,然后在后续阶段去验证数据的可信状况。
2.模式识别校验。第二个方案是结合机器学习、模式识别。通过学习之前的数据得到模型,当新的数据输入时,与先前的模型做比较,判别是否可信。但统计模型其实只能识别出异常数据,并不能判断物联网设备是否诚实运行。
比如,城市A中的某台空气质量检测仪放置在了地下室,收集产生的数据与其他空气质量检测仪都不一样,但并不代表数据伪造,设备仍在诚实运行。另一方面,只要收益足够大,黑客们也愿意使用GAN等方法,生成机器学习难以鉴别的数据,尤其是判别模型公开共享的情况下。
3.基于预言机的认证。第三个方案是他们会挑选一些更受信任的数据源作为预言机,与其它DePIN设备收集上来的数据进行比较验证。比如,项目方在城市A部署了一台精确的空气质量检测仪,其他空气质量检测仪收集的数据如果偏差太大,就被认为不可信。
这种方式一方面给区块链引入并依赖权威,另一方面,也可能因为预言机数据源的采样偏差,而使得整个网络数据采样都出现偏差。
就目前的资料来看,peaq的基础设施,在物联网端无法保证设备和数据的可信任。(注:笔者查阅了peaq的官网、开发文档、Github仓库,以及一份仅有的2018年白皮书草稿。即使向开发团队发送邮件,也未能在发稿前得到更多补充说明资料)
DePIN工作流程中第二个阶段主要是收集、验证物联网设备传递过来的数据,保存起来向后续阶段提供数据,要确保数据能完整无误、可被还原的发送给特定接收方,这被称为数据可用性层(DA层)。
物联网设备往往通过HTTP,MQTT等协议,将数据和签名认证等信息广播出去。而DePIN基础设施的数据层在接收到设备端的信息时,需要验证数据的可信度,把通过验证的数据汇集存储起来。
这里介绍下,MQTT(MQTelemetryTransport)是一种轻量级的、开放的、基于发布/订阅模式的消息传输协议,旨在用于连接受限的设备,如传感器和嵌入式系统,在低带宽和不稳定网络环境下进行通信,非常适合物联网(IoT)应用程序。
在验证物联网设备消息的环节,会包含设备可信执行的认证和消息的认证。
设备可信执行的认证可以结合TEE.。TEE通过将数据收集代码隔离在设备的受保护区域中,确保了数据的安全收集。
另一种方式是零知识证明,这种方法使得设备能够证明其数据收集的准确性,同时又不泄露底层数据的细节。这种方案因设备而异,对于性能强大的设备,可以在本地生成ZKP,对于受限制的设备,则可以进行远程生成。
在认证了设备的信任之后,使用DID去验证消息签名,就可以确定消息是由该设备产生。
在W3bStream中,分为可信任数据收集、验证,数据清洗,数据存储这三个部分。
在当前的W3bStream实现中,不同的物联网设备可以直接把数据发送给W3bStream的服务终端,也可以先把数据通过服务器收集后,再发送给W3bStream的服务器终端。
在接收到传入的数据时,W3bStream会像一个中心分发调度器那样,将传入的数据分发给不同的程序去处理,而W3bStream生态内的DePIN项目,会在W3bStream上申请注册,并定义事件触发逻辑(EventStrategy)和处理程序(Applet).
每部物联网设备都会有设备账号(deviceaccount),归属于一个而且也只能有一个W3bStream上的项目。因此,当物联网设备的消息传递到W3bStream服务端口时,可以先根据注册绑定信息,重定向到某个项目,并验证数据的可信。
以上就是DePIN科普文:IoTeX、DePHY和peaq等基础设施是怎么运转的的全部内容,望能这篇DePIN科普文:IoTeX、DePHY和peaq等基础设施是怎么运转的可以帮助您解决问题,能够解决大家的实际问题是非常好学习网一直努力的方向和目标。