您好, 访客   登录/注册

基于区块链技术的线下打卡方案

来源:用户上传      作者:

  摘 要:当前线下打卡方案众多,但大多需借助如指纹打卡机等设备,小部分打卡方案依赖GPS定位与连接特定WIFI等,该类方案存在打卡数据易作伪等不足。区块链技术已在生活中得到广泛使用,本文提出了一种基于蓝牙技术与区块链技术的打卡方案,该方案具有适用场景多、适用范围广、数据防伪及防篡改等特点。
  一、相关技术
  1.1 蓝牙技术
  蓝牙技术(BlueTooth)是一种无线数据近距离通信的技术规范,蓝牙技术工作频段为2.4GHz。蓝牙技术已得到较大发展,蓝牙5.0有效工作范围可达300米,传输速度可达24Mbps。
  1.2 区块链技术
  区块链技术是一种去中心化的分布式计算方式,其本质上是由分布式存储方案、点对点传输技术、共识算法、加密算法等组合而成的体系。
  区块链系统中包含实用拜占庭容错算法、工作量证明算法、权益证明算法等共识算法。不同的区块链系统可采用不同的共识算法,如比特币网络选择了工作量证明算法,而以太坊使用了权益证明算法。
  区块链系统通常包含多种密码学算法。在数据加密与签名方向,区块链系统通常选择RSA等非对称加密算法。在数据编码中区块链系统会使用哈希算法。
  区块链依据应用场景可分为公有链、联盟链、私有链等,从结构上可分为单链与多链两种结构。
  二、打卡方案设计
  2.1 整体设计
  本文所所述方案采用多链的结构。任一打卡场景均有一条独立的链用于打卡记录,多条链之间以平行链的模式运行。各链数据安全由其场景中的节点协调,且均拥有独立的区账本。本方案是为线下打卡设计,故各链之间拥有相同的共识机制。
  用户注册后将获得唯一的数字地址与密钥对,此后用户可自行创建或加入打卡场景。一个场景被创建后,服务器将加入该链网络,并与链上所有节点建立P2P连接,但服务器仅作为链上的一个记录者,其作用是储存所有链数据。用户节点则将其参与场景的链数据持久化在本地,但这并不代表服务器拥有特殊地位,其作用是提供可视化数据查询的功能。
  2.2 到场确认机制
  蓝牙广播技术具有范围广的特点,本文基于上述特点设计了一种基于蓝牙的到场确认机制,当用户在某场地中开启打卡,到场确认机制流程如下:
  1)与场地中其他设备利用蓝牙互相扫描;
  2)将扫描信息广播至正在打卡的链网络中。
  用户进行某场地并开始打卡后,其设备将成为链网络中一个节点,并重复上述流程。随着用户位置的变化,该用户将与不同用户互相确认,任一用户被扫描次数达到阈值时,我们认为他已到场。阈值由场地范围、人员规模等动态确定。
  2.3 数据加密机制
  本方案节点广播数据均采用RSA加密,RSA算法是目前使用较广泛、安全性也相对较高的非对称加密算法.能实现加密、身份验证和数字签名等功能,是一种典型的公钥密码体制。
  节点加入任一场景时,需先广播自身公钥至其他设备,亦会向其他节点请求公钥。节点接收到其他设备的公钥后,需将其持久化在本地,每个用户均需妥善保管自己的密钥。
  本方案签名过程如下,节点蓝牙扫描到其他设备时,使用自身公钥对扫描数据签名,然后将签名与公钥一同广播致其他设备。设备收到广播数据,利用广播中的公钥对数据验签,该过程可防止数据在传输中被篡改。
  2.4 区块结构与生成机制
  本方案中,任意场景有其独立的链,每条链由多个区块组成,区块包含区块头与区块体。区块头包含:前驱区块哈希值、本区块哈希值、本区块生成时间等组成,创世块的前区块哈希值为0。区块体由本轮打卡记录组成,每条打卡记录包含:用户唯一编号、数字地址、设备MAC地址及被扫描次数等。本方案中,任意节点均可能成为打包节点,因此各节点会统计各自缓冲区数据,并按上述区块结构生成待选区块,若节点被选举为打包节点,其待选区块将被发布至链网络中,反之其待选区块将用于校验打包节点发布的新区块。
  2.5共识机制
  比特币网络的共识机制时工作量证明机制(POW),该共识机制下新块生成需消耗大量算力。以太坊已将其共识机制更换为权益证明(POS),权益证明的主要思想是:节点记账权的获得难度与节点持有的权益成反比,该机制在实现了与POW相同容错性的情况下,避免了大量无意义的计算,从而节约了算力与能耗。
  本方案中,我们借鉴了POS机制,设计了本方案基于扫描确认的共识机制,各节点已生成待选区块后,需达成如下共识:
  1、各节点由链尾向前遍历本轮打卡链,对参与本轮打卡的节点的历史数据进行统计;
  2、被扫描次数与打包次数之和最大的节点为打包节点;
  2、节点仅接受自己得出的打包节点发布的块。
  上述选举打包节点的共识步骤中,链中所有节点向前遍历的长度应由节点数与链长度共同决定,一般情况下,只需向前遍历50%的块数据即可。该共识机制能有效节约算力,符合本方案的使用场景。但是与所有共识算法一样,我们提出的共识机制无法保证选举的打包节点具有唯一性,所以链依然存在分叉的风险。链分叉会影響数据的准确性,因此我们需结合本方案的特点,在极力避免同时主动解决节点间的链分叉与数据紊乱。
  2.6链同步机制
  如上一节中所述,我们的共识机制不能完全避免链分叉的发生,而且本方案中大多数节点均为轻节点,各节点数据一致无法得到保证。因此,我们设计了链同步机制,该机制步骤如下:1、新区块生成之前,各节点须校验其当前链数据的完整性;2、各节点广播其链尾区块哈希值;3、各节点统计接收到最多次的块哈希值,将其视为完整链尾区块,抛弃错误区块;4、当本地不存在某些区块时,节点从其他节点同步区块数据。
  多数情况下,任一链上节点数不会太多,因此链同步数据量较少,故同步速度较快。上述机制下,本方案任一链中参与打卡的节点链将数据得到统一,非诚实节点对其本地链的篡改都将被恢复,这也是本方案防篡改的体现。
  三、 总结与分析
  本文提出了一种基于区块链与蓝牙技术的线下打卡方案,该方案通过节点之间蓝牙扫描互相确认到场,并将打卡记录保存至区块链网络中,能有效防止打卡数据篡改与伪造。
  引用文献:
  [1]蔡型,张思全.短距离无线通信技术综述[J].现代电子技术,2004(03):65-67+76.
  [2]沈鑫,裴庆祺,刘雪峰.区块链技术综述[J].网络与信息安全学报,2016,2(11):11-20.
  [3]陈建华,黄道颖,张尧,张安琳,孙宏.计算机对等网络P2P技术[J].计算机工程与应用,2003(33):162-164+186.
  作者简介:
  程 晓,女 (1998-)汉,河南省商丘市,本科
  曾凯旋,男(1995-),汉,贵州省毕节市,本科
转载注明来源:https://www.xzbu.com/1/view-15249156.htm