本期我们接着来看Hdac的物联网智能合约.
在Hdac的物联网区块链网络中,管理者就是靠智能合约来控制一个设备的运行的.智能合约在用户与设备,设备与设备之间传输并处理.为了通过智能合约的处理而达到控制效果.这些设备和用户之间的认证是必须要先执行的.
一个设备或者一个用户在处理物联网合约的前提是必须在区块链上注册并通过认证.
作为用户来讲,必须通过两步认证(ID,密码及另一个一次性密码或者指纹,虹膜,面部识别等生物识别技术)才能上链.
作为普通设备来讲,本身无法执行认证.所以管理员需要先为这个设备绑定注册一个辅助认证设备,同时保证这个普通设备具有可被当作唯一性的数据属性.这样才会作为一个唯一的设备上链.在这种情况下,一但设备被篡改,区块链就会自动识别到这个篡改的发生,将这个设备断开连接并将这个信息报告给管理者.
通过物联网合约在区块链上的传输和被处理,如果某个设备处理了这个智能合约并按照智能合约对于设备的运行模式进行了更改,这个合约会自动地在选定的设备间传输并被处理,并把执行情况和数据传输到预先指定的位置.哪些设备会接受,发送和处理哪个智能合约需要先被管理员设定好.
管理员可以在智能合约中添加可自启动的程序,从而实现通过一个物联网设备监控,控制并管理其他物联网设备.这种程序可以处理并传输简单的JSON数据给普通设备,并有API接口开放,以实现更多,更复杂的功能.
对于更高级的物联网设备,可以在物联网合约中添加更复杂更智能的程序,通过比如解析机,虚拟机的方式来操控该设备.
通常来讲最高效最方便的操控设备的方式就是通过API编写程序来控制设备.而从灵活性上来讲,通过解析机,虚拟机来控制设备并不需要在用户端更改程序,所以更加灵活.但是解析机和虚拟机对于算力和内存都有更高要求,所以对于性能较低的物联网设备并不适用.
在IOT网络中,每当一个智能合约被真实有效处理,这个智能合约所涉及的设备信息都会被记录在区块链上.Hdac的私有链可以每秒处理500笔交易.这个处理速度是理论值,实际处理速度会受网络和设备性能影响而低一些(吧).如果安全需要,特定设备的智能合约处理信息可以被加密传输.
综上所述(或许叫不知所云吧,哈哈),Hdac的物联网智能合约的特点如下:
基础区块链传输
用于定义用户的JSON文件头(包含用户信息,用户ID,认证信息,反馈方式,执行信息等)
用户编写的程序(JSON或者更高级的编程语言编写的,可以通过API,解析机,虚拟机来执行)
用于用户编写的程序的数据/流
为了不让开发者头大,Hdac项目组保证他们会保持源代码尽可能地简洁.
IOT智能合约的安全保障:
Hdac项目组谦虚地承认,虽然用区块链技术可以保证绝大多数情况下物联网设备的安全,不过对于DoS,DDoS,嗅探攻击他们的区块链并不能完全应对.因此项目组还准备了其他安全技术:
在私有链中,可以通过加密硬件或者加密区块链软件来确保信息的加密传输,当然首先设备必须支持加密.这种安全措施的好处是不需要改变已有的区块链节点及设备设置.
再有就是现在普遍使用的TLS或者SSL协议来在服务器端进行安全部署.IOT智能合约支持这些协议.
一些物联网设备不够智能,则只能通过标准的对称式密钥来加密.
上述这种方式因为会对设备内的程序进行更改,所以对于已经上链的设备来讲实施难度更大.在这种情况下,可以选择把这些智能性不够的设备当作普通设备来处理,为这个设备连一个智能网关来实现安全通道加密传输.
而即便是花了如此多的心机在安全性上,难免在实际情况中还是会有无法预料到的安全漏洞.所以不光需要随时监控设备运行状况及更改情况,通过大数据和机器学习而对更改的内容进行记录和分析也是非常重要的.
再进一步来讲,重大的更改必须要经过管理员二次验证来实现部署.
所以把一个节点或者多个节点作为监听节点,从而监听不正常的数据处理和事件是非常重要的.这些异常如果即时通报给管理员从而让管理员即时处理,就能避免整个区块链的难以控制.