CN109194646A - 一种基于区块链的安全认证数据存取方法 - Google Patents
一种基于区块链的安全认证数据存取方法 Download PDFInfo
- Publication number
- CN109194646A CN109194646A CN201810999966.9A CN201810999966A CN109194646A CN 109194646 A CN109194646 A CN 109194646A CN 201810999966 A CN201810999966 A CN 201810999966A CN 109194646 A CN109194646 A CN 109194646A
- Authority
- CN
- China
- Prior art keywords
- node
- router
- data
- request
- leader
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于区块链的安全认证数据存取方法,涉及区块链技术领域。本发明为用户提供API编程接口,用户通过API接口提交请求,通过判断请求的类型执行不同的操作,涉及修改数据的操作会生成存储证明,经过双重认证后方可修改数据,并实时同步数据到全网各个节点;涉及查询操作会分发用户请求到各节点,查询分片中的数据,经过认证后最终返回数据给用户。本发明提供的是一种基于区块链的安全认证数据存取方法,能够提高数据的存取效率,解决当前区块链底层数据库的低效率、低吞吐量问题。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于区块链的安全认证数据存取方法。
背景技术
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。但是不同于传统的分布式数据库,区块链是以区块为基本数据结构进行打包的,每个区块中包含特定时间范围内产生的多个交易,对于每笔交易的详细内容的存储和读取效率较为低下,大多数区块链底层使用的LevelDB数据库写的性能高效,但读的性能较低。
而传统分布式数据库与区块链式的分布式数据库在性能和安全方面相反,传统的分布式数据库具有较高吞吐率,存储性能较高。但是存取数据却存在着安全问题,虽然能解决容忍节点故障问题,但出现恶意节点时无法保障正确存取。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于区块链的安全认证数据存取方法;能够提高数据的存取效率,解决当前区块链底层数据库的低效率、低吞吐量问题。
为解决上述技术问题,本发明所采取以下技术方案来实现的:一种基于区块链的安全认证数据存取方法;步骤如下:
步骤1:用户通过API接口,发送请求至对应节点;
步骤2:根据用户请求类型执行操作;所述请求类型包括增删改请求和查询请求;若在操作过程中存在恶意节点或需要新的节点,则对该节点进行节点的选举及更换;
步骤2.1:若用户请求类型属于增删改请求,则router节点分发请求到follower节点,follower节点在本地缓存模拟执行相应操作,并生成存储证明;leader节点生成区块,执行共识算法,每个follower节点同步区块;验证区块中的数据是否正确,正确则将缓存区内容写入本地数据库,反之则清除缓存区;
步骤2.2:若用户请求类型属于查询请求,则router节点向follower节点请求查找分片,并获取相应数据,经过验证数据正确后返回给用户。
所述步骤1中的节点包括router节点、follower节点和leader节点;
所述router节点用于将区块链上的存储路由配置信息加载到本地,接收用户的请求,如果是存储或修改请求,则根据路由信息分发或修改分片,成功后将存储证明发送给leader;如果是读取请求,根据路由信息取回分片并组装,将结果返回给用户;
所述follower节点用于存储用户数据的分片,一个follower节点存储一个分片,原始数据会分成l个分片,每个分片都由大于3个的follower构成,实现冗余存储;初始情况下,网络中的所有节点都是follower节点,即普通节点;
所述leader节点用于将router发送来的存储证明打包成区块,执行共识,分发区块。
所述步骤2中的节点的选举及更换具体如下:
router节点的选举及更换:router节点的更换:当网络中发现router是恶意节点后,投票将其变为普通节点;当router的数目少于阈值的时候,会重新进行选举router;router的选举:记总节点数为n,需要选出的router数量为m,则将所有节点按编号分为m组,每组有n/m或n/m+1个节点,记为k,那么从每组中选出一名router,router=(n+p)mod k,其中p是随机数;
leader节点的选举及更换:leader的选举:记n为总节点的个数,c是当前的轮数,c的初始值为0,每产生一个区块,c加一,选举leader节点的公式为leader=c mod n;leader的更换:由leader节点的选举公式得知,每生成一个区块,都会更换一个leader。
采用上述技术方案所产生的有益效果在于:本发明提供的一种基于区块链的安全认证数据存取方法,可以实现基于区块链的安全认证的数据存取,针对网络中的恶意节点和对数据的恶意篡改,均能检测并定位到该节点,并采取相应的方法替换该节点或将该节点降级为普通节点,从而保证数据的存取安全;能够提高数据的存取效率,解决当前区块链底层数据库的低效率、低吞吐量问题。
附图说明
图1为本发明实施例提供的一种基于区块链的安全认证数据存取方法的流程;
图2为本发明实施例提供的存储、修改和删除数据操作的详细步骤;
图3为本发明实施例提供的查询数据操作的详细步骤。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本实施例的方法如下所述:
步骤1:用户通过API接口,发送请求至对应节点;
步骤2:根据用户请求类型执行操作;所述请求类型包括增删改请求和查询请求;若在操作过程中存在恶意节点或需要新的节点,则对该节点进行节点的选举及更换;
步骤2.1:若用户请求类型属于增删改请求,则router节点分发请求到follower节点,follower节点在本地缓存模拟执行相应操作,并生成存储证明;leader节点生成区块,执行共识算法,每个follower节点同步区块;验证区块中的数据是否正确,正确则将缓存区内容写入本地数据库,反之则清除缓存区;如图2所示,具体步骤如下:
步骤2.1.1:如果是存储操作,router节点将数据切成不同的分片,并做相应的路由记录;如果是修改或删除操作,router节点根据路由查找分片所在follower节点;
步骤2.1.2:router节点根据路由规则将增删改请求的内容签名后分发给分片对应的follower节点;
步骤2.1.3:follower节点收到请求后验证签名,如果正确,则模拟运行请求,对分片求merkle哈希;如果错误,则将请求丢弃;
步骤2.1.4:follower节点向router节点返回merkle哈希;
步骤2.1.5:接收各分片的哈希值,对于同一分片的多个哈希,可能会有不同的结果,若有超过一半的分片哈希是相同的,则这些节点记为操作成功节点,其他节点为操作失败节点。对于失败节点,router节点重新对其发送请求,如果多次都失败,则向其发送删除分片命令,并将对应的路由信息删除。如果所有不同分片的哈希都收到正确值后,router节点对这些哈希继续做merkle哈希操作,得到唯一根哈希;
步骤2.1.6:router节点将更新的路由配置和存储证明发给leader节点;其中,存储证明包括所有的分片哈希和根哈希;
步骤2.1.7:leader节点验证收到的消息,将其打包,生成区块;
步骤2.1.1:所有节点执行PBFT共识算法,在全网同步区块;
步骤2.1.8:follower节点同步完区块后,验证本地缓存的内容的存储证明是否被包含在区块中,如果被包含,则将缓冲区中对应请求的数据实际写入本地数据库。
步骤2.2:若用户请求类型属于查询请求,则router节点向follower节点请求查找分片,并获取相应数据,经过验证数据正确后返回给用户;图3所示,具体步骤如下:
步骤2.2.1:router节点根据路由信息查找数据所在的follower节点;
步骤2.2.2:router节点向follower节点发送读取数据请求并签名;
步骤2.2.3:follower节点验证签名,返回分片数据;
步骤2.2.4:router节点根据区块链上的分片哈希验证分片的正确性,验证失败时从存储该分片的其他follower节点重新获取;如果所有分片都是正确的,则对所有分片做归并排序,组装分片并还原原来的数据整体;
步骤2.2.5:router节点将存储数据返回给客户端;
步骤2.2.6:客户端根据区块链上的根哈希验证获得的数据是否正确,正确则结束;错误则向其他路由节点重新发送数据请求。
所述步骤1中的节点包括router节点、follower节点和leader节点;
所述router节点用于将区块链上的存储路由配置信息加载到本地,接收用户的请求,如果是存储或修改请求,则根据路由信息分发或修改分片,成功后将存储证明发送给leader;如果是读取请求,根据路由信息取回分片并组装,将结果返回给用户;
所述follower节点用于存储用户数据的分片,一个follower节点存储一个分片,原始数据会分成l个分片,每个分片都由大于3个的follower构成,实现冗余存储;初始情况下,网络中的所有节点都是follower节点,即普通节点;
所述leader节点用于将router发送来的存储证明打包成区块,执行共识,分发区块。
所述步骤2中的节点的选举及更换具体如下:
router节点的选举及更换:router节点的更换:当网络中发现router是恶意节点后,投票将其变为普通节点;当router的数目少于阈值的时候,会重新进行选举router;router的选举:记总节点数为n,需要选出的router数量为m,则将所有节点按编号分为m组,每组有n/m或n/m+1个节点,记为k,那么从每组中选出一名router,router=(n+p)mod k,其中p是随机数;
leader节点的选举及更换:leader的选举:记n为总节点的个数,c是当前的轮数,c的初始值为0,每产生一个区块,c加一,选举leader节点的公式为leader=c mod n;leader的更换:由leader节点的选举公式得知,每生成一个区块,都会更换一个leader。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (4)
1.一种基于区块链的安全认证数据存取方法,其特征在于:主要包括如下步骤:
步骤1:用户通过API接口,发送请求至对应节点;
步骤2:根据用户请求类型执行操作;所述请求类型包括增删改请求和查询请求;若在操作过程中存在恶意节点或需要新的节点,则对该节点进行节点的选举及更换。
2.根据权利要求1所述的一种基于区块链的安全认证数据存取方法,其特征在于:所述步骤2包括如下步骤:
步骤2.1:若用户请求类型属于增删改请求,则router节点分发请求到follower节点,follower节点在本地缓存模拟执行相应操作,并生成存储证明;leader节点生成区块,执行共识算法,每个follower节点同步区块;验证区块中的数据是否正确,正确则将缓存区内容写入本地数据库,反之则清除缓存区;
步骤2.2:若用户请求类型属于查询请求,则router节点向follower节点请求查找分片,并获取相应数据,经过验证数据正确后返回给用户。
3.根据权利要求1所述的一种基于区块链的安全认证数据存取方法,其特征在于:所述步骤1中的节点包括router节点、follower节点和leader节点;
所述router节点用于将区块链上的存储路由配置信息加载到本地,接收用户的请求,如果是存储或修改请求,则根据路由信息分发或修改分片,成功后将存储证明发送给leader;如果是读取请求,根据路由信息取回分片并组装,将结果返回给用户;
所述follower节点用于存储用户数据的分片,一个follower节点存储一个分片,原始数据会分成l个分片,每个分片都由大于3个的follower构成,实现冗余存储;初始情况下,网络中的所有节点都是follower节点,即普通节点;
所述leader节点用于将router发送来的存储证明打包成区块,执行共识,分发区块。
4.根据权利要求1所述的一种基于区块链的安全认证数据存取方法,其特征在于:所述步骤2中的节点的选举及更换具体如下:
router节点的选举及更换:router节点的更换:当网络中发现router是恶意节点后,投票将其变为普通节点;当router的数目少于阈值的时候,会重新进行选举router;router的选举:记总节点数为n,需要选出的router数量为m,则将所有节点按编号分为m组,每组有n/m或n/m+1个节点,记为k,那么从每组中选出一名router,router=(n+p)mod k,其中p是随机数;
leader节点的选举及更换:leader的选举:记n为总节点的个数,c是当前的轮数,c的初始值为0,每产生一个区块,c加一,选举leader节点的公式为leader=c mod n;leader的更换:由leader节点的选举公式得知,每生成一个区块,都会更换一个leader。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810999966.9A CN109194646B (zh) | 2018-08-30 | 2018-08-30 | 一种基于区块链的安全认证数据存取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810999966.9A CN109194646B (zh) | 2018-08-30 | 2018-08-30 | 一种基于区块链的安全认证数据存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109194646A true CN109194646A (zh) | 2019-01-11 |
CN109194646B CN109194646B (zh) | 2021-05-25 |
Family
ID=64917188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810999966.9A Active CN109194646B (zh) | 2018-08-30 | 2018-08-30 | 一种基于区块链的安全认证数据存取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109194646B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177765A (zh) * | 2020-01-06 | 2020-05-19 | 广州知弘科技有限公司 | 金融大数据处理方法、存储介质和系统 |
CN111475839A (zh) * | 2020-04-06 | 2020-07-31 | 华中科技大学 | 一种用于不可信环境的冗余数据编码方法、存储介质 |
CN111930730A (zh) * | 2020-07-28 | 2020-11-13 | 薛杨杨 | 基于人工智能和大数据的数据解析方法及区块链服务平台 |
CN112260836A (zh) * | 2020-09-28 | 2021-01-22 | 电子科技大学 | 一种基于分片技术提升区块链吞吐量的方法 |
CN112417052A (zh) * | 2020-12-03 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 区块链网络中的数据同步方法、装置、设备及存储介质 |
CN112800132A (zh) * | 2021-01-12 | 2021-05-14 | 东北大学 | 一种电子档案的区块链存储方法 |
CN112988073A (zh) * | 2021-03-26 | 2021-06-18 | 中国人民解放军国防科技大学 | 一种可降低区块链存储开销的阶梯式数据存储方法及系统 |
CN117473020A (zh) * | 2023-12-27 | 2024-01-30 | 湖南天河国云科技有限公司 | 数据存取方法、系统及计算机存储介质和终端设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104348884A (zh) * | 2013-08-08 | 2015-02-11 | 中国科学院计算机网络信息中心 | 一种云存储自动同步方法 |
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
CN107424066A (zh) * | 2017-07-19 | 2017-12-01 | 武汉凤链科技有限公司 | 一种基于价值量建立共识机制的方法及其系统 |
CN107992621A (zh) * | 2017-12-22 | 2018-05-04 | 杭州云象网络技术有限公司 | 一种基于区块链多链技术融合的智能电影产业服务系统 |
US9992022B1 (en) * | 2017-02-06 | 2018-06-05 | Northern Trust Corporation | Systems and methods for digital identity management and permission controls within distributed network nodes |
US20180211043A1 (en) * | 2017-01-24 | 2018-07-26 | SparkCognition, Inc. | Blockchain Based Security for End Points |
-
2018
- 2018-08-30 CN CN201810999966.9A patent/CN109194646B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104348884A (zh) * | 2013-08-08 | 2015-02-11 | 中国科学院计算机网络信息中心 | 一种云存储自动同步方法 |
US20180211043A1 (en) * | 2017-01-24 | 2018-07-26 | SparkCognition, Inc. | Blockchain Based Security for End Points |
US9992022B1 (en) * | 2017-02-06 | 2018-06-05 | Northern Trust Corporation | Systems and methods for digital identity management and permission controls within distributed network nodes |
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
CN107424066A (zh) * | 2017-07-19 | 2017-12-01 | 武汉凤链科技有限公司 | 一种基于价值量建立共识机制的方法及其系统 |
CN107992621A (zh) * | 2017-12-22 | 2018-05-04 | 杭州云象网络技术有限公司 | 一种基于区块链多链技术融合的智能电影产业服务系统 |
Non-Patent Citations (1)
Title |
---|
韩爽等: "《区块链技术在数字资产安全交易中的应用》", 《计算机系统应用》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177765A (zh) * | 2020-01-06 | 2020-05-19 | 广州知弘科技有限公司 | 金融大数据处理方法、存储介质和系统 |
CN111475839B (zh) * | 2020-04-06 | 2023-04-18 | 华中科技大学 | 一种用于不可信环境的冗余数据编码方法、存储介质 |
CN111475839A (zh) * | 2020-04-06 | 2020-07-31 | 华中科技大学 | 一种用于不可信环境的冗余数据编码方法、存储介质 |
CN111930730A (zh) * | 2020-07-28 | 2020-11-13 | 薛杨杨 | 基于人工智能和大数据的数据解析方法及区块链服务平台 |
CN112260836A (zh) * | 2020-09-28 | 2021-01-22 | 电子科技大学 | 一种基于分片技术提升区块链吞吐量的方法 |
CN112417052B (zh) * | 2020-12-03 | 2021-08-20 | 腾讯科技(深圳)有限公司 | 区块链网络中的数据同步方法、装置、设备及存储介质 |
CN112417052A (zh) * | 2020-12-03 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 区块链网络中的数据同步方法、装置、设备及存储介质 |
CN112800132A (zh) * | 2021-01-12 | 2021-05-14 | 东北大学 | 一种电子档案的区块链存储方法 |
CN112800132B (zh) * | 2021-01-12 | 2023-08-08 | 东北大学 | 一种电子档案的区块链存储方法 |
CN112988073A (zh) * | 2021-03-26 | 2021-06-18 | 中国人民解放军国防科技大学 | 一种可降低区块链存储开销的阶梯式数据存储方法及系统 |
CN112988073B (zh) * | 2021-03-26 | 2022-07-19 | 中国人民解放军国防科技大学 | 一种可降低区块链存储开销的阶梯式数据存储方法及系统 |
CN117473020A (zh) * | 2023-12-27 | 2024-01-30 | 湖南天河国云科技有限公司 | 数据存取方法、系统及计算机存储介质和终端设备 |
CN117473020B (zh) * | 2023-12-27 | 2024-03-22 | 湖南天河国云科技有限公司 | 数据存取方法、系统及计算机存储介质和终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109194646B (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194646A (zh) | 一种基于区块链的安全认证数据存取方法 | |
Xu et al. | Slimchain: Scaling blockchain transactions through off-chain storage and parallel processing | |
CN110602148B (zh) | 一种区块的状态树的生成和链上数据验证的方法及装置 | |
US11177962B2 (en) | Optimizations for verification of interactions system and method | |
CN110033243B (zh) | 基于区块链智能合约的主链存证方法、系统及存储介质 | |
US11283616B2 (en) | Method for index-based and integrity-assured search in a blockchain | |
CN108200208B (zh) | 基于云计算的物流区块链共识算法 | |
US11468044B2 (en) | Optimizations for verification of interactions system and method using probability density functions | |
KR102412024B1 (ko) | 인코딩된 블록체인 데이터의 인덱싱 및 복구 | |
Dryja | Utreexo: A dynamic hash-based accumulator optimized for the Bitcoin UTXO set | |
EP3794770B1 (en) | Shared blockchain data storage based on error correction code | |
CN110362633B (zh) | 区块数据存储方法、装置、计算机设备及存储介质 | |
CN113343213A (zh) | 一种分散自主网络中基于区块链的多ca跨域认证方法 | |
CN110309173B (zh) | 合约数据的记录方法、装置及区块链节点、存储介质 | |
CN110597922A (zh) | 数据处理方法、装置、终端及存储介质 | |
US20240080181A1 (en) | Blockchain Data Structures and Systems and Methods Therefor for Multipath Transaction Management | |
CN112511350A (zh) | 联盟链多级共识方法、设备及存储介质 | |
Leung | Vault: Fast bootstrapping for cryptocurrencies | |
JP2023515369A (ja) | 分散型データベース | |
CN112988819B (zh) | 区块链交易执行方法、区块链节点及控制装置 | |
CN108876378B (zh) | 公有链数据加密备份方法 | |
CN113994324B (zh) | 具有高效世界状态数据结构的区块链系统 | |
CN114328518A (zh) | 基于utxo模型的低存储消耗的方法和系统 | |
CN109067849A (zh) | 基于区块的数据同步方法 | |
CN110413697B (zh) | 一种基于区块链的公益善款数据存储方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |