【技术实现步骤摘要】
记账方法、矿池服务器、终端设备、挖矿节点及矿池
本专利技术涉及区块链
,具体而言,涉及一种记账方法、矿池服务器、终端设备、挖矿节点及矿池。
技术介绍
现有的区块链中普遍采用共识算法来确定哪个矿工节点获得记账权,获得记账权的矿工节点能够得到预先约定好的奖励(例如,数字货币),这一过程称为挖矿。由于挖矿能够带来一定的经济收益,在一些实现方案中,共识计算从矿工节点中被剥离出来,由远端接入的众多专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)矿机提供共识计算的算力,形成矿池结构。目前,矿池中的各矿机使用的共识算法主要是工作量证明(ProofofWork,简称PoW)算法,该算法在矿机竞争记账权的过程中需要进行大量无意义的哈希碰撞计算,导致严重的计算资源浪费以及电能消耗。
技术实现思路
有鉴于此,本专利技术实施例提供一种记账方法、矿池服务器、终端设备、挖矿节点及矿池,在参与挖矿的终端设备的可信执行环境中采用基于累积未用时长的共识算法,以节约计算资源以及减小电能消耗。为实现上述目的,本专利技术提供如下技术方案:第一方面, ...
【技术保护点】
1.一种记账方法,其特征在于,应用于区块链系统,所述区块链系统包括至少一个并行链,所述至少一个并行链上搭建有至少一个矿池,每个矿池包括矿池服务器以及位于所述并行链上的挖矿节点,所述挖矿节点采用分布式数据区块链存储数据,所述方法包括:所述矿池服务器接收并存储所述挖矿节点发送的待定记账区块的区块头主体的哈希值以及所述挖矿节点所在的并行链上挖矿的难度目标值;所述矿池服务器接收终端设备发送的记账请求;所述矿池服务器向所述终端设备发送所述区块头主体的哈希值以及所述难度目标值,以使所述终端设备配置的从可信执行环境Slave TEE判断自身的累积未用时长是否大于根据所述难度目标值计算出的 ...
【技术特征摘要】
1.一种记账方法,其特征在于,应用于区块链系统,所述区块链系统包括至少一个并行链,所述至少一个并行链上搭建有至少一个矿池,每个矿池包括矿池服务器以及位于所述并行链上的挖矿节点,所述挖矿节点采用分布式数据区块链存储数据,所述方法包括:所述矿池服务器接收并存储所述挖矿节点发送的待定记账区块的区块头主体的哈希值以及所述挖矿节点所在的并行链上挖矿的难度目标值;所述矿池服务器接收终端设备发送的记账请求;所述矿池服务器向所述终端设备发送所述区块头主体的哈希值以及所述难度目标值,以使所述终端设备配置的从可信执行环境SlaveTEE判断自身的累积未用时长是否大于根据所述难度目标值计算出的累积未用下限时长,并在大于时对记账权确定信息进行签名,其中,所述记账权确定信息包括所述区块头主体的哈希值以及所述SlaveTEE绑定的钱包账号的地址主体;所述矿池服务器接收所述终端设备发送的所述记账权确定信息以及所述记账权确定信息的签名;所述矿池服务器将所述记账权确定信息以及所述记账权确定信息的签名发送至所述挖矿节点,以使所述挖矿节点生成包含所述钱包账号的地址主体以及所述记账权确定信息的签名的记账区块,并将所述记账区块添加至本地的区块链中。2.根据权利要求1所述的方法,其特征在于,所述并行链包括路由节点、至少一个矿池的挖矿节点和至少一个简化支付验证SPV节点,所述至少一个并行链的路由节点之间网络连接,所述SPV节点绑定的钱包账号的地址对应的并行链为所述SPV节点所在的并行链,其中:所述SPV节点用于:响应于接收到交易请求,将所收到的交易请求发送给所述SPV节点所在的并行链的路由节点;所述路由节点用于:响应于对所收到的交易请求校验通过,将所收到的交易请求添加到所述路由节点的交易请求集合中,以及将所收到的交易请求签名后广播给所述路由节点的同链挖矿节点;以及实时将所述路由节点的同链挖矿节点的区块链同步到本地的区块链;所述挖矿节点用于:响应于对从同链路由节点接收到的签名后交易请求验证通过,将签名后交易请求中所述挖矿节点的链内交易请求添加到所述挖矿节点的待处理交易请求集合;根据所述待处理交易请求集合生成所述区块头主体的哈希值;所述路由节点还用于:确定所述路由节点的交易请求集合中确认已出账且未入账的未入账交易请求;将所确定的未入账交易请求发送给目标并行链的路由节点,其中,所述目标并行链是所确定的未入账交易请求中的入账账号地址对应的并行链;以及响应于接收到异链路由节点发送的交易请求,将所收到的交易请求签名后广播给所述路由节点的同链挖矿节点。3.根据权利要求1或2所述的方法,其特征在于,所述记账权确定信息还包括所述累积未用下限时长。4.根据权利要求1或2所述的方法,其特征在于,所述记账权确定信息的签名由所述SlaveTEE根据保存的第一私钥生成,在所述矿池服务器将所述记账权确定信息以及所述记账权确定信息的签名发送至所述挖矿节点之前,所述方法还包括:所述矿池服务器根据保存的与所述第一私钥匹配的第一公钥确定所述记账权确定信息的签名为真实签名。5.根据权利要求1或2所述的方法,其特征在于,所述矿池包括多个挖矿节点,不同的挖矿节点位于不同的并行链上;所述矿池服务器向所述终端设备发送所述区块头主体的哈希值以及所述难度目标值,包括:所述矿池服务器配置的主可信执行环境MasterTEE确定与所述终端设备相关联的并行链;所述矿池服务器向所述终端设备发送与所述终端设备相关联的并行链上的挖矿节点提供的所述区块头主体的哈希值以及所述难度目标值;所述矿池服务器将所述记账权确定信息以及所述记账权确定信息的签名发送至所述挖矿节点,包括:所述矿池服务器将所述记账权确定信息以及所述记账权确定信息的签名发送至所述终端设备关联的并行链上的挖矿节点。6.根据权利要求5所述的方法,其特征在于,所述MasterTEE确定与所述终端设备相关联的并行链,包括:所述MasterTEE根据所述SlaveTEE绑定的钱包账号的地址的虚拟并行链标识、所述终端设备的并行链标识掩码以及所述区块链系统包含的并行链的数量计算所述终端设备关联的并行链的链标识,其中,所述虚拟并行链标识根据所述终端设备配置的SlaveTEE的硬件标识计算获得。7.根据权利要求5所述的方法,其特征在于,所述矿池服务器向所述终端设备发送所述区块头主体的哈希值以及所述难度目标值,包括:所述MasterTEE根据第一密钥生成算法基于矿池配置信息生成第一密钥,并根据所述第一密钥加密所述区块头主体的哈希值;所述矿池配置信息包括终端设备关联的并行链的链标识;其中,所述SlaveTEE能够利用所述第一密钥生成算法生成所述第一密钥,并利用所述第一密钥解密加密后的所述区块头主体的哈希值;所述矿池服务器向所述终端设备发送所述难度目标值以及加密后的所述区块头主体的哈希值。8.根据权利要求7所述的方法,其特征在于,所述第一密钥生成算法为所述MasterTEE以及所述SlaveTEE所私有,算法实现不在所述MasterTEE以及所述SlaveTEE之外公开,算法生成的所述第一密钥在所述MasterTEE中被用于且仅被用于加密所述区块头主体的哈希值,在所述SlaveTEE中被用于且仅被用于解密加密后的所述区块头主体的哈希值。9.根据权利要求1或2所述的方法,其特征在于,所述矿池服务器向所述终端设备发送所述区块头主体的哈希值以及所述难度目标值,包括:所述矿池服务器判断所述终端设备距离上次记账时间的时间间隔t1是否大于冷却时长t2,所述t2为累积未用下限时长的k倍,k为大于0且小于1的常数;若大于,所述矿池服务器向所述终端设备发送所述区块头主体的哈希值以及所述难度目标值。10.根据权利要求9所述的方法,其特征在于,在所述矿池服务器判断所述t1是否大于所述t2之后,所述方法还包括:若所述t1不大于所述t2,则所述矿池服务器通知所述终端设备距离发起下次记账请求的时间间隔t3,所述t3为所述t2与所述t1的差值。11.根据权利要求9所述的方法,其特征在于,所述t1通过如下公式计算:其中,Height2为所述待定记账区块在所述区块链中的高度,Height1为上次记账生成的区块在所述区块链中的高度,为所述区块链系统的预设常数,用于表征所述区块链系统的平均出块时间。12.根据权利要求1或2所述的方法,其特征在于,在所述矿池服务器接收终端设备发送的记账请求之前,所述方法还包括:所述矿池服务器接收所述终端设备发送的注册请求,所述注册请求携带有注册信息、用户的实名认证结果以及实名认证机构用私钥对所述实名认证结果的签名,所述注册信息包括所述SlaveTEE绑定的钱包账号的地址;所述矿池服务器配置的MasterTEE根据保存的与所述实名认证机构的私钥匹配的公钥验证所述实名认证结果的签名的真实性;若所述实名认证结果的签名为真实签名,则所述矿池服务器保存所述注册信息,并向所述终端设备发送注册响应。13.根据权利要求12所述的方法,其特征在于,所述实名认证结果包括所述实名认证机构分配的认证码,所述认证码与所述SlaveTEE绑定的钱包账号的地址相对应,用于表征所述用户通过所述实名认证机构的实名认证;所述方法还包括:所述矿池服务器还接收所述终端设备发送的所述认证码,并将所述认证码发送至所述挖矿节点,以使所述挖矿节点将所述认证码添加至所述记账区块;所述记账权确定信息还包括所述认证码。14.根据权利要求1或2所述的方法,其特征在于,在所述矿池服务器接收终端设备发送的记账请求之前,所述方法还包括:所述矿池服务器接收所述终端设备发送的入池申请;所述矿池服务器配置的MasterTEE判断所述矿池服务器的容量是否小于容量阈值;若小于,则所述矿池服务器根据所述MasterTEE生成的授权信息对所述终端设备进行入池授权,以告知所述终端设备在授权开始时间之后的授权使用时长内向所述矿池服务器发送的所述记账请求可被所述矿池服务器接受,其中,所述授权使用时长为保存在所述矿池服务器配置的MasterTEE中的预配置数据;若大于,则所述矿池服务器发送消息通知所述终端设备未获入池授权。15.根据权利要求14所述的方法,其特征在于,所述矿池服务器的容量小于容量阈值,包括:当前的授权周期内的入池授权量小于第一阈值;其中,所述授权周期以及所述第一阈值为保存在所述矿池服务器配置的MasterTEE中的预配置数据。16.根据权利要求14所述的方法,其特征在于,所述授权信息包括授权序号以及授权码,其中,所述授权序号由所述MasterTEE分配,所述授权码用于使所述终端设备配置的SlaveTEE验证入池授权是否有效,所述矿池服务器根据所述MasterTEE生成的授权信息对所述终端设备进行入池授权,包括:所述矿池服务器向所述终端设备发送所述授权序号以及所述授权码,并将所述授权序号与授权关联信息对应保存,其中,所述授权关联信息是指和授权内容相关的信息;在所述矿池服务器向所述终端设备发送所述区块头主体的哈希值以及所述难度目标值之前,所述方法还包括:所述矿池服务器根据所述记账请求中携带的所述授权序号查询对应的所述授权关联信息,并根据所述授权关联信息确定所述终端设备的入池授权有效。17.根据权利要求16所述的方法,其特征在于,所述矿池服务器向所述终端设备发送授权序号以及授权码,包括:所述MasterTEE根据第二密钥生成算法生成第二密钥,利用所述第二密钥加密所述授权码;所述矿池服务器向所述终端设备发送所述授权序号以及加密后的所述授权码;其中,所述终端设备配置的SlaveTEE能够利用所述第二密钥生成算法生成所述第二密钥,并利用所述第二密钥解密所述加密后的所述授权码。18.根据权利要求17所述的方法,其特征在于,所述第二密钥生成算法为所述MasterTEE以及所述SlaveTEE所私有,算法实现不在所述MasterTEE以及所述SlaveTEE之外公开,算法生成的所述第二密钥在所述MasterTEE中被用于且仅被用于加密所述授权码,在所述SlaveTEE中被用于且仅被用于解密加密后的所述授权码。19.根据权利要求1或2所述的方法,其特征在于,在所述矿池服务器将所述记账权确定信息以及所述记账权确定信息的签名发送至所述挖矿节点之后,所述方法还包括:所述矿池服务器将预设数额的矿池奖励从预配置的矿池钱包账号的地址转账至竞争到记账权的所述终端设备配置的SlaveTEE绑定的所述钱包账号的地址。20.一种记账方法,其特征在于,应用于接入到区块链系统的终端设备,所述区块链系统包括至少一个并行链,所述至少一个并行链上搭建有至少一个矿池,每个矿池包括矿池服务器以及位于所述并行链上的挖矿节点,所述挖矿节点采用...
【专利技术属性】
技术研发人员:程强,
申请(专利权)人:深圳市红砖坊技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。