基于区块链的智能锁设计与实现
基于NB-IoT的公租房智能门锁系统设计与实现

4系统测试及结果分析
应用管理层软件即智能门锁管理平台,通过前 端网页交互的方式,能够对门锁的使用情况及状态 进行展示,同时方便用户进行门锁使用记录的查看, 很大程度上方便了公租房的管理。
经过实地门锁的安装测试,在NB网络环境满足 条件的情况下,门锁可以正常将使用记录上报到应 用服务器,前端网页可以正常地查看到门锁的使用
能锁系统解决方案[J].计算机应用研究,2019,36(6):
1797-1802. [3] 吴超华,李云飞,严建峰.基于NB-IoT的路灯控制系
统设计[J].现代电子技术,2018,41(24):5-9. [4] 潘磊磊,张桂青,田崇翼,等.基于NB-IoT的农业环境
监控系统设计[J].电子设计工程,2019,27(1):25-30. [5] 王伟峰,韩非,彭超,等.基于NB-IoT的土壤摘情监测
系统设计与应用[J].自动化与仪表,2020,35(2):104-
108. [6] 蒋震,王筝,曹中强,等.基于NB-IoT的温湿度采集系
统设计与实现[J].信息化研究,2018,44(6):63-69. [7] 吴正平,张兆蒙,李东,等.基于NB-IoT智能水表抄表
系统设计与实现[J].传感器与微系统,2019,38(11):
图6 AT指令 3.4管理系统软件设计
使用Java语言编写智能门锁管理系统平台程序, 可以实现对NB-IoT智能门锁的动态管理,主要包括用 户管理、安装位置管理、门锁管理等模块。 3.4.1用户管理模块
用户管理模块用来对使用智能门锁的用户进行 管理,主要包括新增用户、编辑用户、删除用户等功 能。新增用户的功能是用户在申请公租房通过之后, 将用户的姓名、身份证号、联系方式、租房到期时间 等信息添加到门锁管理平台的数据库中,以便之后 的门锁管理及记录查看。编辑用户的功能是在用户 的个人信息发生变动时,如租房到期时间发生变动, 对用户的信息进行修改。
物联网智能硬件设计与实现

物联网智能硬件设计与实现随着科技的进步与发展,物联网智能硬件作为人们生活和工作中不可或缺的一部分,其应用也越来越广泛。
而物联网智能硬件的设计与实现,则是保证其使用的稳定性和产品体验的关键。
本文将介绍物联网智能硬件的设计与实现,从硬件和软件两方面进行讨论。
一、硬件设计1.硬件元件物联网智能硬件设计的第一步就是选择合适的硬件元件,这些元件不仅能够满足产品需求,还必须具有稳定、高效、易于维修的特点。
其中,常见的硬件元件包括:微处理器、存储芯片、通讯模块、显示屏、传感器、电源等。
在选择这些元件时,需要考虑其功耗、体积、成本、品质等因素。
2.硬件联接硬件元件的联接是构建物联网智能硬件的必要条件,其中涉及的技术包括:电路设计、布线、焊接等。
在进行联接时,需要严格按照产品设计方案进行操作,并进行严格的元件质量检查和参数测试,以确保硬件连接的稳定性和可靠性。
3.硬件外壳硬件外壳是物联网智能硬件产品的外观,不仅需要具备美观性和人性化设计,同时还需要具备防水、防尘、防震等特点。
在进行外壳设计时,需要充分考虑不同环境下的使用需求,选择合适的材料、生产工艺和设计方案,以确保外壳的质量和性能。
二、软件设计1.系统架构设计软件设计是物联网智能硬件设计的重要部分,其目的是构建一个稳定、高效、易于使用的系统。
在软件设计的初期,需要进行系统架构的设计,确定系统各模块的组成方式、功能划分和信息流程,以便后续的系统开发和测试。
2.编程开发编程开发是软件设计的核心部分,主要包括嵌入式软件编程、应用层开发和云端开发等。
在进行编程开发时,需要结合硬件设计要求和用户需求,采用合适的编程语言和开发工具,进行开发、测试、调试和优化,最终构建出符合要求的系统程序。
3.应用与管理应用与管理是软件设计的最终目的,主要包括物联网应用开发、数据管理和安全管理三部分。
在进行应用开发时,需要结合硬件设计和软件开发的结果,根据用户需求开发出满足用户需求的应用程序。
基于区块链的健康链系统设计与实现

收稿日期:2020年6月13日,修回日期:2020年7月26日基金项目:科技部重点研发项目“现代服务可信交易理论与技术研究(面向服务可信交易的新型区块链分布式架构)”(编号:2018YFB1402701)资助。
作者简介:雷志伟,男,工程师,研究方向:区块链、游戏引擎开发。
李加福,男,高级工程师,研究方向:区块链、图像处理。
张桂刚,男,博士,副研究员,研究方向:区块链和人工智能。
赵旭,男,硕士,研究方向:区块链、机器翻译。
张勇,男,博士,副研究员,研究方向:数据管理、云存储、海量信息处理。
邢春晓,男,博士,研究员,研究方向:数据库和数据仓库,大数据和知识工程、人工智能,软件工程,区块链技术,智慧城市、智慧医疗、数字图书馆和电子政务关键技术等。
∗1引言在抗击新冠肺炎疫情初期,各地各部门企业纷纷贡献己力,自主开发疫情防控信息系统。
一方面能加强政府部门的管理,另一方面简化现实中人力物力消耗[1]。
在人员进出公共场所的跟踪管理方面,相应有应用于广西地区的“扫码抗疫情”、云南地区的“云南抗疫情”等。
它们都是基于微信小程基于区块链的健康链系统设计与实现雷志伟1李加福1张桂刚2赵旭3张勇3邢春晓3(1.清华大学行业可信区块链应用技术联合研究中心北京100084)(2.中国科学院自动化研究所北京100190)(3.清华大学信息国家研究中心,计算机系,互联网产业研究院北京100084)摘要新冠疫情在全球范围肆虐,公共场合中的体温测量和行踪登记是控制疫情蔓延的关键手段,目前的信息记录主要依赖人工纸张录入的方式。
纸张录入的方式不仅效率低下,而且还面临着易损易丢失的存档风险,同时难以对过往人员与行踪进行快速筛查。
该系统基于微信小程序的开发框架,实现了扫码快速注册以及信息登记的功能,同时基于区块链技术来实现底层数据存储和优化,保证数据的不可篡改和快速溯源,最后通过Nginx 服务器进行数据通信。
关键词比特币;区块链;微信小程序;健康链;Nginx中图分类号TP393DOI :10.3969/j.issn.1672-9722.2020.12.016Design and Implementation of Health Chain System Based onBlockchainLEI Zhiwei 1LI Jiafu 1ZHANG Guigang 2ZHAO Xu 3ZHANG Yong 3XING Chunxiao 3(1.Joint Research Center for Industry Trust Blockchain Application Technology ,Tsinghua University ,Beijing100084)(2.Institute of Automation ,Chinese Academy of Sciences ,Beijing100190)(3.Institute of Internet Industry ,Department of Computer Science and Technology ,Beijing National Research Center forInformation Science and Technology (BNRist ),Tsinghua University ,Beijing100084)AbstractDuring the COVID-19,temperature measurement and whereabouts registration in public are the key to control thespread of the virus.Current information recording mainly relies on manual paper entry which is not only inefficient ,but also fragileand easy to lose ,and it is difficult to retrieve the past data.This system is based on the Wechat Mini Program ,the information re⁃cording is implemented easily by scanning QR codes to improve efficiency.Moreover ,managing the storage and optimization of the underlying data based on blockchain technology ensure the data security and fast traceability.Finally ,the data communication is performed through the Nginx server.Key Words Bitcoin ,blockchain ,Wechat mini program ,health chain ,NginxClass NumberTP3932020年第12期计算机与数字工程序开发,其功能和使用方式大抵相同,群众以个人身份注册,另一个则是公共场所的工作人员以公共场所的身份进入系统并生成二维码进行张贴,进出人员手动扫码实现数据上传,从而减免了手工登记流程。
区块链技术的智能家居应用

区块链技术的智能家居应用在当今科技飞速发展的时代,智能家居已经逐渐成为我们生活中的一部分。
从能够自动调节温度的智能恒温器,到可以远程控制的智能门锁,智能家居为我们带来了前所未有的便捷和舒适。
而在这一领域,区块链技术的应用正逐渐崭露头角,为智能家居带来了更多的可能性和创新。
那么,什么是区块链技术呢?简单来说,区块链就像是一个去中心化的账本,它记录了所有的交易和信息,并且这些记录一旦被添加就无法篡改。
这种特性使得区块链在保证数据安全、信任和透明方面具有巨大的优势。
在智能家居领域,区块链技术可以首先应用于设备的身份认证和管理。
每一个智能家居设备都有其独特的身份标识,通过区块链技术,可以确保这些设备的身份信息真实可靠,并且难以被伪造。
这就有效地防止了未经授权的设备接入智能家居网络,保障了家庭的安全。
比如说,当你购买了一个新的智能摄像头并想要将其接入你的智能家居系统时,区块链技术可以验证这个摄像头的合法性和安全性。
只有通过认证的设备才能与其他设备进行通信和数据交换,从而避免了恶意设备的入侵和潜在的安全威胁。
除了设备认证,区块链技术还能用于保障智能家居数据的隐私和安全。
我们的智能家居设备会收集大量的个人数据,如家庭的日常活动模式、家庭成员的偏好等。
这些数据如果落入不法分子手中,可能会给我们带来很大的麻烦。
而区块链的加密技术可以对这些数据进行加密处理,只有拥有正确密钥的授权方才能访问和解读这些数据。
同时,由于区块链的不可篡改特性,一旦数据被记录在区块链上,就无法被随意修改或删除,这为数据的完整性和可靠性提供了保障。
在能源管理方面,区块链技术也能发挥重要作用。
智能家居中的各种设备,如空调、热水器等,对能源的消耗是一个需要关注的问题。
通过区块链技术,可以建立一个去中心化的能源交易平台。
比如说,家庭中安装了太阳能板的用户,如果产生了多余的电能,可以将其出售给其他需要的家庭。
这种能源交易可以通过区块链上的智能合约自动完成,无需第三方中介的参与,不仅提高了能源的利用效率,还降低了交易成本。
智能门锁的远程开锁操作

智能门锁的远程开锁操作智能门锁的远程开锁操作,是指通过使用智能手机等远程控制设备,实现对门锁的开启和关闭。
随着人们对便利和安全性的需求不断增加,智能门锁已经成为现代家庭和商业场所中不可或缺的一部分。
本文将探讨智能门锁的远程开锁操作的工作原理、特点以及未来发展方向。
一、智能门锁的远程开锁操作原理智能门锁的远程开锁操作基于无线通信技术,通过与控制设备(如智能手机)进行连接,使用户可以在任何时间、任何地点远程控制门锁的开启和关闭。
这些门锁通常采用Wi-Fi、蓝牙、Zigbee等无线技术与控制设备进行通信,并通过手机应用程序或云平台实现对门锁的控制。
二、智能门锁的远程开锁特点1. 方便快捷:智能门锁的远程开锁操作可以在手机应用程序上直接进行,用户不需要携带钥匙或者亲自前往门锁附近进行操作。
只需要通过手机一键开锁,就能迅速进入房屋或者办公场所,省去了找钥匙的麻烦。
2. 安全可靠:智能门锁采用了先进的加密技术,保证了通信的安全性。
用户可以设置个性化的开锁密码或者指纹识别等身份验证方式,提高了门锁的安全性,降低了被破解的风险。
3. 实时监控:一些智能门锁还配备了监控摄像头或者门铃功能,用户可以通过手机实时查看门前的情况,确保家庭或者办公区的安全。
同时,一些门锁还具备记录开锁记录的功能,用户可以随时查看开锁记录,掌握门锁的使用情况。
4. 灵活授权:智能门锁的远程开锁操作可以实现灵活的授权管理。
用户可以通过手机应用程序将临时的开锁权限授予他人,例如家人、朋友或者快递员,方便他们进入指定的区域。
同时,用户也可以随时收回或者更改授权,保障了家庭和办公区域的安全。
三、智能门锁的未来发展方向随着科技的不断进步,智能门锁的远程开锁操作正朝着更加智能化和便捷化的方向发展。
以下是几个可能的未来发展方向:1. 多种联动技术的应用:未来的智能门锁可能会进一步与其他智能设备进行联动,如安防系统、家庭自动化系统等。
用户可以通过一个应用程序或者语音助手实现智能门锁的远程开锁操作,同时控制其他智能设备,实现更全面、智能的居家体验。
区块链技术的智能家居应用

区块链技术的智能家居应用在当今科技飞速发展的时代,智能家居已经逐渐成为我们日常生活的一部分。
从智能音箱控制家电,到智能门锁保障家庭安全,智能家居为我们带来了极大的便利和舒适。
而在这一领域,区块链技术的融入正为智能家居带来前所未有的变革和创新。
区块链,这个看似神秘的技术术语,实际上正在悄悄地改变着我们生活的方方面面。
简单来说,区块链是一种去中心化的分布式账本技术,具有不可篡改、安全可靠、透明等特点。
当它与智能家居相结合时,为智能家居系统带来了更高的安全性、隐私保护和智能化的管理。
首先,区块链技术能够显著提升智能家居的安全性。
在传统的智能家居系统中,设备之间的通信往往存在被黑客攻击和数据泄露的风险。
而区块链的加密算法和去中心化的特性,可以为设备之间的通信提供安全的加密通道,确保数据在传输过程中的保密性和完整性。
例如,当智能门锁与家庭控制中心进行通信时,区块链技术可以对通信内容进行加密,使得黑客无法轻易获取门锁的密码或用户的进出门记录。
同时,区块链技术还能够有效地保护用户的隐私。
在智能家居环境中,大量的个人数据被收集和使用,如家庭成员的生活习惯、日常活动等。
这些数据如果落入不法分子手中,可能会给用户带来极大的困扰。
而区块链的匿名性和隐私保护机制,可以确保用户的个人数据在不被泄露的前提下,为智能家居系统提供必要的服务。
比如,智能家居系统可以通过区块链技术在不获取用户真实身份的情况下,了解用户的偏好设置,从而为用户提供个性化的服务。
在智能家居的能源管理方面,区块链技术也有着出色的表现。
通过智能电表和区块链技术的结合,家庭能源的使用情况可以被准确地记录和追踪。
这不仅有助于用户更好地了解自己的能源消费模式,从而进行合理的节能规划,还可以实现能源的分布式交易。
比如,如果一个家庭在某个时间段产生了多余的能源,这些能源可以通过区块链技术出售给其他能源短缺的家庭,实现能源的高效利用和共享。
另外,区块链技术还能够改善智能家居设备的互操作性。
锁简介介绍

个性化定制
未来锁的发展将继续注重安全性的提升, 采用更难以破解的技术和设计,提高锁的 安全性和可靠性。
消费者对锁的需求越来越个性化和定制化 ,厂商需要根据消费者的需求进行定制化 生产,满足不同消费者的需求。
THANKS FOR WATCHING
感谢您的观看
密封性能
锁具应具有良好的密封性能,以防止水分进入锁内部影 响其正常工作。
锁的防撬性能
抗撬材料
使用抗撬材料如不锈钢等制成锁具,提高抗撬性能。
防撬结构设计
采用具有防撬结构的锁芯和钥匙,增加锁的抗撬性能 。
锁的防砸性能
防砸材料
使用具有防砸性能的材料制成锁具,如高强度不锈钢 和工程塑料等。
锁体结构设计
采用具有防砸结构的锁体设计,以抵抗外部冲击和破坏 。
人工智能技术与锁的结合
智能识别
利用人工智能技术实现更精准的身份识别,如通过声音识别、行为识别等,提高 门锁的安全性和便捷性。
自动化决策
通过人工智能技术实现自动化决策,如根据用户行为和习惯自动调整门锁的设置 ,提高用户的使用体验。
其他新技术与锁的结合
区块链技术
利用区块链技术的去中心化特点,提高门锁的安全性和可信度,防止恶意攻击和篡改。
锁具的起源
在古代,锁具的起源与人类社会的发展密不可分。随着社会财富的不断积累, 人们开始意识到需要保护自己的财产,于是便有了锁具的发明。
现代锁的发展
现代锁具的特点
现代锁具采用了更加复杂的机械原理和材料,以提供更高的 安全性和可靠性。现代锁具还具有更多的功能,如密码锁、 指纹识别等。
锁具的发展趋势
随着科技的不断进步,锁具的发展趋势也在不断变化。未来 ,锁具将更加智能化、网络化,同时具有更高的安全性和便 利性。
区块链技术在物联网中的应用

区块链技术在物联网中的应用随着信息技术的不断进步和发展,物联网已经逐渐成为了各个领域中不可或缺的一部分。
在物联网中,各种设备和系统都可以互相连接和交流,形成一个无限扩展的网络。
然而,这个网络的发展也带来了一些问题,如安全和隐私问题等,这就需要区块链技术的应用来解决。
区块链技术是一种分布式数据库技术,它利用去中心化、加密、匿名等多种技术手段,实现了信息的不可篡改、透明和去中心化等特点。
在物联网中,区块链技术也可以发挥重要作用,可以解决物联网中的安全问题和数据隐私问题。
以智能家居为例,智能家居中的各种设备都需要进行交互,如智能灯、智能窗帘、智能门锁等。
这些设备需要进行身份验证和数据交流,如果存在安全漏洞或者数据泄露,就会给用户带来极大的损失。
区块链技术可以对这些设备进行身份验证和数据传输加密,实现设备之间的安全交互并保护用户的隐私。
另外,区块链技术也可以应用于供应链管理中。
在传统的供应链管理中,企业和供应商之间的交易是通过人工核实和管理的,往往存在信息不对称和中介费高等问题。
通过使用区块链技术,可以实现信息共享和交易透明,有效减少中介费用和交易成本,提高企业的效率和盈利能力。
区块链技术在物联网中的应用还可以帮助解决智能交通、智慧城市和能源管理等方面的问题。
例如,在智慧城市中,通过应用区块链技术可以实现城市管理的去中心化、数据共享和信息透明,让城市管理更加高效和便捷。
总之,区块链技术在物联网中的应用无疑可以为社会带来巨大的价值和意义。
通过运用区块链技术,可以进一步提高物联网的安全性和隐私保护,实现信息共享和交易透明。
另外,区块链技术还可以推动智慧城市、智能家居和供应链管理等行业的发展,带来更多的商业机会和投资价值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{"id":"d62a9e","sig":"304402203c1db72394263dd50070b91bb1da9125c591f15772dfc628f41447dabb7798a10220302dc6e7e8c81e24da9a99d ⑤锁收到报文,先判断 pub 是否与UTXO 中的公钥或公钥hash 匹配,若匹配,则用公钥解密sig 数据,看结果是否与自己发出去的随机 数random 相等,相等表示验证通过(即:插入了正确的钥匙); ⑥若上一步验证通过,则驱动马达执行物理开锁操作,完成开锁;否则广播回复报文钥匙不匹配。 - 多签名钥匙。协议化UTXO 的收款地址是多个公钥或公钥hash。由于多签名钥匙的开锁组合有效期分为单次有效,和永久有效。这里定 义 单次有效 为 从该钥匙请求开锁到实际物理开锁的整个时间段内(开锁即清除状态)。永久有效 是指 从当前UTXO 产生到被花费的整个 时间段内(更新txid 即清除状态)。开锁步骤如下: ①用户发出开锁申请。可以是按下一个锁的硬件按钮; ②锁联网连接区块链节点查询指定txid(见3.2节)的 UTXO,检查其内置的协议是否包含自身 ID,并检查该UTXO 是否已经被花费。若 未被花费,进行下一步;否则一直向后追溯到最新没有被花费的 UTXO,并用其txid覆盖锁内之前存储的txid,然后进行下一步;
③锁生成一个随机数并通过BLE 蓝牙广播一条报文,报文中同时携带锁ID 的前几位以示区别。该报文可简单表示如下: {"id":"d62a9e","random":"34576578901823912"} ④钱包收到该报文,用 对该UTXO 有一部分控制权 的私钥签名该随机数,并回复报文(其中sig 表示对随机数的签名,pub 表示公钥, 表示多签名收款脚本): ⑤锁收到报文,先判断hash() 是否与UTXO 中的地址匹配,若匹配,则用公钥解密sig 数据,看结果是否与自己发出去的随机数random 相等,相等表示验证通过(即:插入了正确的钥匙); ⑥检查是否存在永久有效的钥匙已经保持了状态; ⑦根据协议内容,判定当前钥匙是否为永久有效,是否需要保持状态; ⑧累加权重之和,看是否满足投票最低要求。满足则表示通过开锁申请; ⑨若上一步验证通过,则驱动马达执行物理开锁操作,完成开锁;否则广播回复报文钥匙不匹配。 四、展望 硬件厂商生产可扩展的智能锁硬件,软件开发者发布开源智能锁软件。用户可根据自己的喜好选择两者进行组装(相当于把电脑裸机和操 作系统分开,用户根据需求组装)。这可以打破垄断,促进软硬件质量的提升,促进行业的发展。 五、后记 为什么使用UTXO 而不使用智能合约?智能合约的每次调用都需要支付 gas,虽然gas 费用极低,但由于每次开锁都需要去更新数据,会 导致智能合约函数的调用频率很高,日积月累也是一笔不小的费用。本方案采用 UTXO,是因为区块链数据的查询是免费的。
在房东拔下钥匙后,如果仍希望避免租户和中介公司串通单方面开锁,可以在锁程序中给房东的钥匙设置投票权超过1的权重,这样租户 和中介的权重之和低于2,仍无法开锁,必须经过房东的同意并重新插入钥匙。即:房东拔下钥匙可以迫使租户和中介公司积极应对房东 的维权要求。 2.4 钥匙的转让交接 这个过程非常简单,与比特币的支付操作无异。只不过如果是多签名的话,也需要多方签署这笔交易。支付操作完成后,这个携带锁ID 的 UTXO 将归比特币接收地址的控制者所有,控制者的数量也可以变更,各方的投票权重可以由植入UTXO 内的协议控制。UTXO 控制权的 变更意味着锁的控制权变更,即等同于钥匙的变更交接:钥匙进入了新的使用者的钱包。使用者的变更可以仅仅是租户,也可以是其它任 意各方使用者,这取决于(或决定着)UTXO 的收款地址如何构造。 三、技术实现 需要三个参与方的程序/数据交互协作。 3.1 协议化UTXO 需要将锁的ID 植入到 UTXO,这需要创建协议数据结构并完成一个支付操作,此时该协议化的UTXO 便存在于区块链上了。 例如,这是一个正常的交易(transaction)数据结构: { "hash":"3b06b1e9d70217d5e02644703fe79f54355b0ea05cd535787f5a6c627f1c", "ver":1, "vin_sz":2, "vout_sz":1, "lock_time":0, "size":404, "in":[ { "prev_out":{ "hash":"022e05bdfa2e148bc1882cb7a81506b8316fee6957b11625126d075a8cf8791b", "n":0 }, "Sig": 02b8c918bd169a5e669cc149549f822dd5f2c50872eb83172a1c69172277fe378f" }, { // 另一个输入,省略… } ], "out":[ { "value":12.51603279 "PubKey":"OP_DUPOP_HASH160 69e02e18b5705a05dd6b283d517716c894b3d42e OP_EQUALVERIFY OP_CHECKSIG" } ] } 应该在PubKey 字段位置插入协议信息。协议内容格式 可初步定义为如下Uri 格式: lock://id/e10exxxx.../sig/2*3/pubs/62e*73a*84b/addrs/1ac*2bd*2ce/weights/1.2*0.9*0.9/povs/0*1*1 将该Uri + OP_DROP 插入到PubKey 字段值的OP_DUP 前面,即可完成植入。其中:lock是协议的识别标识;id表示锁的ID;sig表示多 签名规则;pubs表示多签验证需要使用的公钥信息,这里紧填开头最短的部分,用于辨识与weights 权重设置对应的公钥;addrs表示多 签验证需要使用的公钥hash 地址信息(与pubs 二选一,其中的“*”是分隔符,将多个地址或者公钥分开);weights表示每个公钥的 投票权重;povs表示组合有效期,0为永久有效,1为单次有效。
"304402203c1db72394263dd50070b91bb1da9125c591f15772dfc628f41447dabb7798a10220302dc6e7e8c81e24da9a99d5ac7233b90156a410
3.2 门锁端程序 每个锁硬件需要能够在重置时生成 ID(确切地说,是符合高阶最小熵分布的安全随机数),并能够在特定操作下(如按住某按键)允许查 询该 ID,以备创建协议UTXO 和钥匙时使用。 需要为锁安装程序,该程序需要随时联网查询其ID 对应的 UTXO,进而验证该UTXO 的控制权以确认是否拥有钥匙。但需要注意一点:该 UTXO必须与初始化时的UTXO处于同一条支付流转链上,不可以是任意 UTXO,以防恶意破坏。在操作上,应遵循如下逻辑:锁程序应 当存储初始化时的UTXO 的txid(区块链账本上记录的一条交易的 id),若发现该UTXO 已经被支付,则应当查找支付目的地的UTXO 并 更新锁内存储的txid,而忽略其它任何包含本ID 的UTXO(它们可能是恶意混淆,当然自己也可以故意混淆以防止追踪)。有txid 的跟 踪,可以 不要求锁ID必须唯一。 3.3 用户端程序 用户端程序,即:区块链钱包(后文简称钱包)。用于钥匙的 创建、存储、使用 和 转让 等业务操作。其中存储和转让操作与比特币的支 付操作无异。关于创建和使用开锁操作见后文。 3.4 初始化 门锁的初始化,即创建一个协议化的 UTXO,同时也是钥匙的创建过程。分为以下步骤: 1. 获得物理锁的控制权。很重要。可防止锁被非法用户恶意操作; 2. 重置并生成新的 ID。在特定物理操作的前提下(如长按reset 按钮); 3. 钱包读取门锁 ID。读取方式可通过 二维码 或 无须配对的 低功耗蓝牙BLE技术来实现; 4. 钱包根据即将分配钥匙的各方所提供的公钥,生成UTXO 的目标地址; 5. 钱包创建协议数据(见3.1节),打包并发送交易。至此协议化UTXO 已生成; 6. 将该UTXO 的txid 回传到门锁端应用程序,存储以备开锁验证使用。 3.5 开锁步骤 前提假设:锁完全受控于主人,锁的 验证程序 是开源且可信的。这意味着:锁不会恶意开锁或不开锁,不会泄露用户数据和隐私信息, 也不会有严重的 bug 导致执行非预期的逻辑。不过即便如此,我们仍然 不应向锁提供私钥,这是底线。下面分两种情况来描述开锁操作 的具体步骤。 - 单签名钥匙。如果协议化UTXO 的收款地址是一个公钥或公钥hash,那么它的钥匙就是单签名钥匙(也可以说这把锁是单钥匙孔的 锁),这需要在初始化时与生成的协议保持一致。开锁步骤如下: ①用户发出开锁申请。可以是按下一个锁的硬件按钮; ②锁联网连接区块链节点查询指定txid(见3.2节)的 UTXO,检查其内置的协议是否包含自身 ID,并检查该UTXO 是否已经被花费。若 未被花费,进行下一步;否则一直向后追溯到最新没有被花费的 UTXO,并用其txid覆盖锁内之前存储的txid,然后进行下一步; ③锁生成一个随机数并通过BLE 蓝牙广播一条报文,报文中同时携带锁ID 的前几位以示区别。该报文可简单表示如下: {"id":"d62a9e","random":"34576578901823912"} ④钱包收到该报文,用控制该UTXO 的私钥签名该随机数,并回复报文(其中sig 表示对随机数的签名,pub 表示公钥):
基于区块链的智能锁设计与实现
一、优势
基于区块链技术实现的智能锁应用,可实现常规厂商难以企及的 高安全性,同时亦不损失灵活性。该论断基于以下几点: •服务提供者即区块链; •区块链数据的可信性(公开透明、不可篡改); •开放协议,开源代码; •用户不被特定厂商所 绑架。