一种票据可撤销的去中心化的加密认证和鉴权方法与流程

文档序号:26142069发布日期:2021-08-03 14:26阅读:155来源:国知局

本发明涉及票据确定真伪领域,特别涉及一种票据可撤销的去中心化的加密认证和鉴权方法。



背景技术:

票据在互联网的发展中起重要作用,不管是登录票据还是电子票据,一种重要的形式进行支持,票据难以撤销,并且需要校验真伪,以及权限校验,一系列操作相对比较麻烦基于此,本发明公开了一种票据可撤销的去中心化的加密认证和鉴权方法,能确定票据真伪,并且可以撤销。



技术实现要素:

本发明要解决的技术问题是克服现有技术的缺陷,提供一种票据可撤销的去中心化的加密认证和鉴权方法,可以对于票据进行撤销,随时进行校验认证并且保证真实有效。

为了解决上述技术问题,本发明提供了如下的技术方案:

本发明一种票据可撤销的去中心化的加密认证和鉴权方法,通过使用区块链技术,区块链是一种去中心化、去信任化和不可篡改的分布式账本技术;分布式不仅体现为数据的分布式存储,也体现为数据的分布式记录,即由系统的参与者共同维护;区块链的去中心化、安全性和不可篡改可追溯性,可以让参与主体之间建立信任:数据所有权、交易和授权范围记录在区块链上,数据所有权可以得到确认,精细化的授权范围可以规范数据的使用;同时,数据从采集到分发的每一步都可以记录在区块链上,使得数据源可追溯,进而对数据源进行约束,加强数据质量,基于区块链的去中心化数据管理平台,可以更好的管理票据;

区块链本身使用了非对称加密,非对称加密一般划分为三类主要方式:大整数分解问题类、离散对数问题类、椭圆曲线类;

大整数分解问题类指用两个较大的质数的乘积作为加密数,由于质数的出现具有不规律性,寻找破解只能通过不断的试算;离散对数问题类指的是基于离散对数的难解性,利用强的单向散列函数的一种非对称分布式加密算法;椭圆曲线类指利用平面椭圆曲线来计算成组非对称特殊值;

本方法使用椭圆曲线的升级版ecdsa加密算法,基于区块链,使用多链架构建立分布式鉴权机制,鉴权采用的是区块链的共识算法,多连架构即多链分为三层,链管理层smc,通过一个合约smc管理验证节点押金,验证节点随机抽样等;date为具体的交易数据层,各个子链分别维护各个子链的全状态数据和主链的全状态;state层主要是交易的产生层,也可以说是智能合约的执行层;假如一台计算机的处理能力为c笔交易,主链节点能观察c条子链,则整个系统能处理c*c笔交易;

其中,多链系统中的大多数用户都会运行两部分程序,如下所示:

(i)一个在主链上的全节点(需要o(c)资源)或轻量节点(需要o(log(c))资源);

(ii)一个通过rpc与主链交互的“子链客户端”(由于这个客户端同样运行在当前用户的计算机中,所以它被认为是可信的);它也可以作为任意子链的轻客户端、作为特定子链的全客户端(用户需要指定他们正在“监视”某个特定的子链),或者作为一个验证器节点;在这些情况下,一个子链客户端的存储和计算需求也将不会超过o(c);主链的作用是生成随机数,保存验证节点相关信息,管理验证节点,追踪子链区块,子链的作用是处理交易,存储账户合约的状态;

本协议中,有中央主链用来存储并管理当前有效验证人集,在当前主链发送含有50000的交易才可成为初始验证人,交易发送完毕,到主链处理该区块时,交易发送人进入验证人排序阶段并最终成为有效(活跃)验证人,直至自愿注销或因不当行为被强行注销;

子链上的主要负载源是证明(attestations),一个证明具有双重作用:

(1).证实主链中的某个父块;

(2).证实子链中的区块哈希(足够数量的此类证明创造了“交联(crosslink)”,确认分片区块到主链中);

每个子链(比方说,总共1024个子链)本身就是一条链,作存储交易和帐户用;交联一则用于将子链“确认”进主链,二则也是不同子链间能够彼此通讯的主要方式;或者,还可以想象个更简单的“最小子链算法”,其中交联就是提出数据块的哈希,这些数据块本身彼此互不链接;

区块链技术是一旦有效,就一直有效,因此需要提供一种撤销交易的方式,由于交易无法取消,因此提供一种将交易构造为无法使用的方法,如下所示:

通过给予每一方一个撤销密钥,如果对方试图欺骗,可以用来进行惩罚,为了解释撤销密钥,票据在不同的服务端之间进行交互校验,同样可以使用撤销秘钥,把服务器比作不同的交易所,校验成本比作比特币,在由服务器a和服务器b的两个服务器所之间构建一个更加复杂的校验通道;服务器a和服务器b分别假设在不同的地方;服务器b的用户经常向服务器a的用户发送付款,反之亦然;包含以下六种情况:

(1).服务器a和服务器b通过合作建立来启动通道,每人向通道注资x个成本数据(校验成本);初始余额为服务器a有x成本数据且服务器b有x成本数据;校验票据将通道状态锁定在2-2多重签名中,就像在简单通道的例子中一样;

(2).校验票据可能有一个或多个来自服务器a的输入(加起来x个成本数据币或更多),以及服务器b的一个或多个输入(加起来x个成本或更多);投入必须略微超过通道容量才够支付校验成本;该交易有一个将总共2x个成本数据锁定到由服务器a和服务器b控制的2-of-2多重地址的输出;如果他们的输入超过他们需要贡献的数值,票据校验也可能有一个或多个成本数据输出将找零返回给服务器a和服务器b;这是由双方提供和签署的多个输入形成的单一校验;

(3).在发送之前,票据必须被合作构建起来并且由各方签署;服务器a有一个带有两个输出的承诺校验;第一个输出立即支付服务器b欠她的x成本数据;第二个输出支付服务器a欠他自己的x个成本数据,但条件是只有在z个区块时间的时间锁之后,服务器b有带有两个输出的不同的承诺交易;第一个输出支付服务器a欠服务器b的x个成本数据;第二个输出支付服务器b欠自己本身的x个成本数据,但同样只有经过z个区块时间的时间锁,这样一来,双方各有一笔承诺交易,以花费2-2的资金输出;该承诺校验的输入是由对方签署的;在任何时候,持有承诺校验的一方都可以签字(完成2-2签名)并进行广播;然而,如果两个服务器广播承诺校验,承诺校验会立即支付对方,而两个服务器必须等待短时间锁到期;通过在其中一个输出强制执行赎回拖延,算法可以做到让各方在选择单方面广播承诺校验时处于轻微的不利地位;但是单靠时间延迟还不足以鼓励公平的行为;一个撤销密钥,允许被欺诈的一方通过占有通道的所有余额来惩罚异常操作人员;

(4).每个承诺校验都有一个“延迟”的输出;一方服务器可以在z个区块时间后兑换输出的脚本,或者另一方如果拥有撤销密钥key也可兑换输出的脚本;所以当服务器a为服务器b签署承诺校验时,服务器a将把第二个输出定义为在z个区块时间之后可输出支付给自己,或者是任何可以出示撤销密钥的人;服务器a构建了这个校验,并创建了一个由服务器a秘密保管的撤销密钥;当服务器a准备转移到新的通道状态并希望撤销这一承诺时,他才会把撤销密钥透露给服务器b

(5).服务器b可以自由的开启校验,因为一旦被发送服务器b将立即支付自身被欠的成本数据;服务器a持有校验,但知道如果他在单方通道关闭时发送,他将不得不等待z个区块时间之后才能获得校验;

(6).当通道进入下一个状态时,服务器a必须在服务器b同意签署下一个承诺校验之前撤销此承诺校验;要做到这一点,他所要做的就是将撤销密钥key发送给服务器b;一旦服务器b拥有这一承诺的撤销密钥key,服务器b就可以开始下一个承诺校验;如果服务器a试图通过发布先前的承诺交易来作弊,服务器b可以使用撤销密钥来兑换服务器a的延迟输出;如果服务器a作弊,服务器b会得到both(两方)输出;

撤销协议是双边的,这意味着在每一轮中,随着校验通道状态的进一步发展,双方交换新的承诺校验,交换用于之前承诺的撤销密钥,并签署彼此的承诺交易;当他们接受新的状态时,两个服务器之前通过给予对方必要的撤销密钥来惩罚任何作弊行为,使先前的状态不可能再被使用。

与现有技术相比,本发明的有益效果如下:

由于票据上链,可以保证票据的真实姓,避免频繁的校验,分布式的多链鉴权也更符合互联网的趋势,分布式管理,而且可以进行撤销;使用区块链技术应用于票据验证的方法是一次创新实验,因为目前的票据都是未去中心化,区块链的去中心化风格很好符合可撤销的去中心化的加密认证和鉴权方法。

具体实施方式

应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

实施例1

本发明提供一种票据可撤销的去中心化的加密认证和鉴权方法,通过使用区块链技术,区块链是一种去中心化、去信任化和不可篡改的分布式账本技术;分布式不仅体现为数据的分布式存储,也体现为数据的分布式记录,即由系统的参与者共同维护;区块链的去中心化、安全性和不可篡改可追溯性,可以让参与主体之间建立信任:数据所有权、交易和授权范围记录在区块链上,数据所有权可以得到确认,精细化的授权范围可以规范数据的使用;同时,数据从采集到分发的每一步都可以记录在区块链上,使得数据源可追溯,进而对数据源进行约束,加强数据质量,基于区块链的去中心化数据管理平台,可以更好的管理票据;

区块链本身使用了非对称加密,非对称加密一般划分为三类主要方式:大整数分解问题类、离散对数问题类、椭圆曲线类;

大整数分解问题类指用两个较大的质数的乘积作为加密数,由于质数的出现具有不规律性,寻找破解只能通过不断的试算;离散对数问题类指的是基于离散对数的难解性,利用强的单向散列函数的一种非对称分布式加密算法;椭圆曲线类指利用平面椭圆曲线来计算成组非对称特殊值;

ecdsa是美国政府的标准,是利用了椭圆曲线的升级版,这个算法经过了数年的细致密码分析,被广泛认为是安全可靠的。本方法和比特币就使用ecdsa加密算法。以比特币系统为例,其非对称加密机制:比特币系统一般通过调用操作系统底层的随机数生成器来生成256位随机数作为私钥。比特币私钥的总量大,极难通过遍历全部私钥空间来获得存有比特币的私钥,因而密码学是安全的。为便于识别,256位二进制形式的比特币私钥将通过sha256哈希算法和base58转换,形成50个字符长度易识别和书写私钥提供给用户。比特币的公钥是由私钥首先经过secp256k1椭圆曲线算法生成65字节长度的随机数。该公钥可用于产生比特币交易时使用的地址,其生成过程是首先将公钥进行sha256和ripemd160双哈希运算生成20字节长度的摘要结果(即hash160的结果),再经过sha256哈希算法和base58转换形成33字符长度的比特币地址。公钥生成过程是不可逆的,即不能通过公钥反推出私钥。比特币的公钥和私钥通常保存在比特币钱包文件,其中私钥最为重要。丢失私钥就意味着丢失了对应地址的全部比特币资产。现有的比特币和区块链系统中,根据实际应用需求已经衍生出多私钥加密技术,以满足多重签名等更为灵活和复杂的场景。

本方法使用椭圆曲线的升级版ecdsa加密算法,基于区块链,使用多链架构建立分布式鉴权机制,鉴权采用的是区块链的共识算法,多连架构即多链分为三层,链管理层smc,通过一个合约smc管理验证节点押金,验证节点随机抽样等;date为具体的交易数据层,各个子链分别维护各个子链的全状态数据和主链的全状态;state层主要是交易的产生层,也可以说是智能合约的执行层;假如一台计算机的处理能力为c笔交易,主链节点能观察c条子链,则整个系统能处理c*c笔交易;

其中,多链系统中的大多数用户都会运行两部分程序,如下所示:

(i)一个在主链上的全节点(需要o(c)资源)或轻量节点(需要o(log(c))资源);

(ii)一个通过rpc与主链交互的“子链客户端”(由于这个客户端同样运行在当前用户的计算机中,所以它被认为是可信的);它也可以作为任意子链的轻客户端、作为特定子链的全客户端(用户需要指定他们正在“监视”某个特定的子链),或者作为一个验证器节点;在这些情况下,一个子链客户端的存储和计算需求也将不会超过o(c);主链的作用是生成随机数,保存验证节点相关信息,管理验证节点,追踪子链区块,子链的作用是处理交易,存储账户合约的状态;

在本文中,术语shardblock被用来与block(区块)相区别,因为:(i)它们是不同的rlp(recursivelengthprefix)对象:交易是第0层的对象,shardblock是用来打包交易的第一层的对象,而block则是用来打包shardblock(header)的第二层的对象;(ii)在子链的情景中这更加清晰。通常,shardblock必须由shardblockheader和transactionlist(交易列表)组成。具体的架构设计可以划分为4个层次,主链、子链、合约的执行处理、应用层。每个层次间的交互以及每个模块间的交互都采用bu通信协议(p2p、rpc、json、http)。

本协议中,有中央主链用来存储并管理当前有效验证人集,在当前主链发送含有50000的交易才可成为初始验证人,交易发送完毕,到主链处理该区块时,交易发送人进入验证人排序阶段并最终成为有效(活跃)验证人,直至自愿注销或因不当行为被强行注销;

子链上的主要负载源是证明(attestations),一个证明具有双重作用:

(1).证实主链中的某个父块;

(2).证实子链中的区块哈希(足够数量的此类证明创造了“交联(crosslink)”,确认分片区块到主链中);

每个子链(比方说,总共1024个子链)本身就是一条链,作存储交易和帐户用;交联一则用于将子链“确认”进主链,二则也是不同子链间能够彼此通讯的主要方式;或者,还可以想象个更简单的“最小子链算法”,其中交联就是提出数据块的哈希,这些数据块本身彼此互不链接;

区块链技术是一旦有效,就一直有效,因此需要提供一种撤销交易的方式,由于交易无法取消,因此提供一种将交易构造为无法使用的方法,如下所示:

通过给予每一方一个撤销密钥,如果对方试图欺骗,可以用来进行惩罚,为了解释撤销密钥,票据在不同的服务端之间进行交互校验,同样可以使用撤销秘钥,把服务器比作不同的交易所,校验成本比作比特币,在由服务器a和服务器b的两个服务器所之间构建一个更加复杂的校验通道;服务器a和服务器b分别假设在不同的地方;服务器b的用户经常向服务器a的用户发送付款,反之亦然;目前,这些校验发生在区块链上,但这意味着支付成本数据并等待几个块进行确认;在服务器之间设置校验通道将大大降低成本并加快校验流程,包含以下六种情况:

(1).服务器a和服务器b通过合作建立来启动通道,每人向通道注资x个成本数据(校验成本);初始余额为服务器a有x成本数据且服务器b有x成本数据;校验票据将通道状态锁定在2-2多重签名中,就像在简单通道的例子中一样;

(2).校验票据可能有一个或多个来自服务器a的输入(加起来x个成本数据币或更多),以及服务器b的一个或多个输入(加起来x个成本或更多);投入必须略微超过通道容量才够支付校验成本;该交易有一个将总共2x个成本数据锁定到由服务器a和服务器b控制的2-of-2多重地址的输出;如果他们的输入超过他们需要贡献的数值,票据校验也可能有一个或多个成本数据输出将找零返回给服务器a和服务器b;这是由双方提供和签署的多个输入形成的单一校验;

(3).在发送之前,票据必须被合作构建起来并且由各方签署;服务器a有一个带有两个输出的承诺校验;第一个输出立即支付服务器b欠她的x成本数据;第二个输出支付服务器a欠他自己的x个成本数据,但条件是只有在z个区块时间的时间锁之后,服务器b有带有两个输出的不同的承诺交易;第一个输出支付服务器a欠服务器b的x个成本数据;第二个输出支付服务器b欠自己本身的x个成本数据,但同样只有经过z个区块时间的时间锁,这样一来,双方各有一笔承诺交易,以花费2-2的资金输出;该承诺校验的输入是由对方签署的;在任何时候,持有承诺校验的一方都可以签字(完成2-2签名)并进行广播;然而,如果两个服务器广播承诺校验,承诺校验会立即支付对方,而两个服务器必须等待短时间锁到期;通过在其中一个输出强制执行赎回拖延,算法可以做到让各方在选择单方面广播承诺校验时处于轻微的不利地位;但是单靠时间延迟还不足以鼓励公平的行为;一个撤销密钥,允许被欺诈的一方通过占有通道的所有余额来惩罚异常操作人员;

(4).每个承诺校验都有一个“延迟”的输出;一方服务器可以在z个区块时间后兑换输出的脚本,或者另一方如果拥有撤销密钥key也可兑换输出的脚本;所以当服务器a为服务器b签署承诺校验时,服务器a将把第二个输出定义为在z个区块时间之后可输出支付给自己,或者是任何可以出示撤销密钥的人;服务器a构建了这个校验,并创建了一个由服务器a秘密保管的撤销密钥;当服务器a准备转移到新的通道状态并希望撤销这一承诺时,他才会把撤销密钥透露给服务器b

(5).服务器b可以自由的开启校验,因为一旦被发送服务器b将立即支付自身被欠的成本数据;服务器a持有校验,但知道如果他在单方通道关闭时发送,他将不得不等待z个区块时间之后才能获得校验;

(6).当通道进入下一个状态时,服务器a必须在服务器b同意签署下一个承诺校验之前撤销此承诺校验;要做到这一点,他所要做的就是将撤销密钥key发送给服务器b;一旦服务器b拥有这一承诺的撤销密钥key,服务器b就可以开始下一个承诺校验;如果服务器a试图通过发布先前的承诺交易来作弊,服务器b可以使用撤销密钥来兑换服务器a的延迟输出;如果服务器a作弊,服务器b会得到both(两方)输出;

撤销协议是双边的,这意味着在每一轮中,随着校验通道状态的进一步发展,双方交换新的承诺校验,交换用于之前承诺的撤销密钥,并签署彼此的承诺交易;当他们接受新的状态时,两个服务器之前通过给予对方必要的撤销密钥来惩罚任何作弊行为,使先前的状态不可能再被使用。

以下示例一个它的工作例子:

服务器b的用户之一希望向服务器a的用户发送x个成本数据。要通过校验通道传输x个成本数据,服务器a和服务器b必须更新通道状态以反映新的成本余额。他们将承诺一个新的状态(状态号2),通道的z(m+n)个成本数据分裂,m个成本数据属于服务器a和n个成本数据属于服务器b。为了更新通道的状态,他们将各自创建反映新通道成本余额的新承诺校验。

如上述内容所说,这些承诺校验是不对称的,所以每一方所持的承诺校验都迫使服务器等待兑换。至关重要的是,在签署新的承诺交易之前,双方服务器必须首先交换撤销密钥key以使先前的承诺无效。在这种情况下,服务器a的利益与通道的真实状态是一致的,因此服务器a没有理由广播先前的状态。然而,对于服务器b来说,状态号1中留给服务器b的余额比状态2中的更高。当服务器b给予服务器a以前的承诺校验(状态号1)的撤销密钥key时,服务器a实际上废除了自己可以回滚通道状态到前一状态而从中获益的能力。因为有了撤销密钥key,服务器b可以毫不拖延地兑换先前承诺校验的两个输出。也就是说一旦服务器b广播先前的状态,服务器a可以行使其占有所有输出的权利。

重要的是,撤销不会自动发生。虽然服务器a有能力惩罚服务器b的异常行为,但服务器a必须观察区块链中作弊的迹象。如果服务器a看到先前的承诺交易广播,他有z个区块时间采取行动,并使用撤销密钥来阻止服务器b的欺骗行为并占有所有余额也就是全部2x成本数据来惩罚服务器b。

带有相对时间锁(csv)的不对称可撤销承诺是实现支付通道的更好方法,同样可以使用在撤销票据上面,带来撤销票据的变量。通过这种结构,通道可以无限期地保持开放,并且可以拥有数十亿的中间承诺交易。在闪电网络的原型实现中,承诺状态由48位索引识别,允许在任何单个通道中有超过281兆(2.8×10^14)个状态转换。

本发明的有益效果如下:

由于票据上链,可以保证票据的真实姓,避免频繁的校验,分布式的多链鉴权也更符合互联网的趋势,分布式管理,而且可以进行撤销。使用区块链技术应用于票据验证的方法是一次创新实验,因为目前的票据都是未去中心化,区块链的去中心化风格很好符合可撤销的去中心化的加密认证和鉴权方法。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1