1.一种基于位置证明区块链的状态码生成方法,其特征在于,所述方法步骤为:步骤1、区块链网络构建:定义网络结构,网络用户包含打卡者、位置证明者和客户端;
对所述网络初始化;
所述区块链网络包含4类节点:请求节点、见证节点、验证节点、记账节点;
打卡者构成请求节点,其发出位置证明请求;
位置证明者构成见证节点,其为请求节点提供地理位置证明;
网络中的请求节点和见证节点均可为验证节点,其授权评估和验证请求节点位置证明;
记账节点基于共识算法从见证节点中选取;
步骤2、位置证明生成:打卡者进行打卡并发送位置证明请求,位置证明者对接收到的位置证明请求进行验证并生成位置证明响应,打卡者验证位置证明响应并生成位置证明;
具体为:
步骤2‑1、打卡者进行打卡,以14日为一个周期;打卡者为提供真实位置信息的诚实用户或提供虚假位置信息的不诚实用户;
步骤2‑2、打卡者通过近场通信接口向其附近的用户广播一个位置证明请求;
步骤2‑3、位置证明者通过近场通信接口收到位置证明请求后,分别进行签名验证及空间距离验证;
步骤2‑4、依据诚信,所述位置证明者分为:诚实位置证明者、串通位置证明者和恶意位置证明者;其分别生成位置证明响应;
步骤2‑5、打卡者通过近场通信接口接收到位置证明响应后,进一步对响应信息进行签名验证和空间距离验证;
步骤2‑6、打卡者使用通过验证的位置证明响应生成位置证明信息;
步骤3、位置证明验证及上链:打卡者将位置证明广播至区块链系统,验证节点对位置证明进行验证并将位置证明上链;具体为:步骤3‑1、打卡者将生成的位置证明信息,通过互联网数据通信广播至区块链系统;
步骤3‑2、区块链系统使用PoS共识算法,从区块链中选择一个节点作为验证节点,对位置证明信息进行签名验证和空间距离验证;
步骤3‑3、验证节点作为记账节点,将通过验证的位置证明信息打包到当前区块;待交易数量达到区块设定的阈值时,将当前区块加入到区块链中;同时在区块链网络中广播验证节点本地存储区块链的当前状态,其他节点收到广播后更新其本地存储,从而保证全网区块链状态的一致;
步骤4、客户端验证打卡者的位置证明历史进而生成状态码,具体为:步骤4‑1、打卡者利用其公钥向客户端申请生成状态码,客户端收到申请后查询区块链,得到所有包含公钥的,并按照位置证明信息中时间戳进行时间排序,得到14日的位置证明历史记录;
步骤4‑2、为阻止不诚实打卡者与位置证明者的串通攻击,客户端通过时空阈值联合验证位置证明以阻止串通攻击;
步骤4‑3、基于安全评估生成打卡者的状态码。
2.根据权利要求1所述的一种基于位置证明区块链的状态码生成方法,其特征在于,对区块链网络进行初始化步骤为:为每个节点生成公钥、私钥以及节点证书,定义配置文件并生成创世区块,设定基于股权证明PoS的共识算法。
3.根据权利要求1所述的一种基于位置证明区块链的状态码生成方法,其特征在于,步骤2‑4中,依据诚信,所述位置证明者分为:诚实位置证明者、串通位置证明者和恶意位置证明者;其分别生成位置证明响应,具体为:
1)诚实位置证明者,对于通过签名验证和空间距离验证的位置证明请求生成位置证明的响应;对于没通过签名验证和空间距离验证的位置证明请求拒绝响应,也即诚实位置证明者通过空间距离验证拒绝为提供虚假位置的打卡者作证;
2)串通位置证明者,对于通过签名认证,但不能通过空间距离验证的位置证明请求,仍然生成位置证明的响应;这种情况适用的场景:不诚实的位置证明者与提供虚假位置信息的打卡者进行串通;
3)恶意破坏位置证明者,对于通过签名验证和空间距离验证的位置证明请求生成虚假的位置证明响应;这种情况适用的场景:恶意破坏位置证明者阻止打卡者不能获得位置证明服务;
步骤2‑5中,打卡者通过近场通信接口接收到位置证明响应后,进一步对响应信息进行签名验证和空间距离验证;具体为:依据打卡者和位置证明者的诚信,有以下组合的空间距离验证:
1)诚实打卡者与诚实位置证明者,两者提供的位置信息均为真实信息,如果满足空间距离验证条件,位置证明响应通过打卡者的验证;
2)诚实打卡者与恶意破坏位置证明者,诚实打卡者发现恶意破坏位置证明者提供的虚假的位置信息,不能满足验证条件,位置证明响应不能通过打卡者的验证;
3)不诚实打卡者与串通位置证明者,不诚实打卡者提供的虚假位置以及串通位置证明者提供虚假的位置信息均满足验证条件,位置证明响应通过打卡者的验证。
4.根据权利要求1所述的一种基于位置证明区块链的状态码生成方法,其特征在于,步骤4‑3中,对于通过客户端时空阈值联合验证的位置证明历史记录进行安全评估:如果位置证明历史记录中存在一个位置证明记录,其包含的位置证明请求的位置信息与地区H具有空间拓扑交集,则为打卡者生成红色状态码;如果与地区M具有空间拓扑交集,则为打卡者生成黄色状态码;否则为打卡者生成绿色状态码。