CN114490685A - 基于区块链和可验证计算的dns数据查询更新方法及系统 - Google Patents
基于区块链和可验证计算的dns数据查询更新方法及系统 Download PDFInfo
- Publication number
- CN114490685A CN114490685A CN202111640654.7A CN202111640654A CN114490685A CN 114490685 A CN114490685 A CN 114490685A CN 202111640654 A CN202111640654 A CN 202111640654A CN 114490685 A CN114490685 A CN 114490685A
- Authority
- CN
- China
- Prior art keywords
- chain
- block
- transaction
- information
- execution result
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种基于区块链和可验证计算的DNS数据查询更新方法,包括:将DNS数据保存至链下区块,将该链下区块存储于区块链下的存储节点,将该链下区块的摘要信息广播至区块链,形成链上区块存储于区块链上的共识节点;当客户端发出交易请求时,该存储节点调用智能合约获得执行结果,并通过可验证计算生成该执行结果的辅助验证信息;将该执行结果和该辅助验证信息发送给该客户端;将该执行结果、该辅助验证信息以及此次链下交易的交易记录广播至区块链;该共识节点对该执行结果的验证通过后,将该交易记录的摘要信息形成链上区块链入区块链,并将该链上区块同步存储至该存储节点。还提出一种DNS数据查询更新系统和一种数据处理装置。
Description
技术领域
本发明属于互联网技术领域,特别是涉及一种基于区块链和可验证计算的 DNS数据查询更新方法及系统。
背景技术
DNS(Domain Name System,域名系统)是互联网上最为关键的基础设施 之一,其主要作用就是将枯燥难记的IP地址映射为易于记忆的主机名称,保 证网络应用的顺利运行。
然而,现有的DNS系统一直存在着中心化的安全风险,中心化的风险导 致DNS系统在域名解析的过程中存在着可用性以及一致性问题。可用性问题 指的是DNS中的权威服务器不能正常响应域名解析请求,这通常是由于权威 服务器单点失效(SPOF:Single Pointof Failure)或者遭受拒绝服务攻击 (DoS:Denial of Service)导致;一致性问题指的是同一个域名对应的资源记录 集合(RRSet:Resource Record Set)在不同的权威服务器上记录的内容不一致, 这通常是由于权威服务器副本之间或者是主从权威服务器之间缺少强制并且 高效的数据同步机制。
区块链(Blockchain)是一个分布式共享账本和数据库,具有去中心化、 不可篡改、可以追溯、公开透明等特点。利用区块链去中心化的特性来存储 DNS数据,可以有效缓解DNS系统中心化带来的域名解析过程中的可用性问 题;利用区块链的共识机制,可以保证同一域名空间下不同权威服务器副本之 间DNS数据的一致性。
现有用区块链实现DNS数据查询以及数据更新的方案主要有以下几种:
1、Namecoin是第一个基于区块链技术开发的键值对(key/value pair)注 册以及交易系统,实现了一种能应用于真实DNS场景的基于区块链的域名解 析系统。BlockstackNaming System(BNS)在Namecoin的基础上进行了改进。 然而,由于它们将所有DNS区域数据文件信息存储在链上使得链上存储空间 极大浪费,同时,受限于公链系统技术特点,Namecoin和BNS都采用了完全 去中心化的解析架构,这种完全不受监管的系统与现有ICANN主导的治理模 式完全不兼容,技术无法真正落地。
2、近些年也有不少研究人员提出了一些解决方案。DecDNS是一种基于 区块链技术的分布式DNS数据存储方法,旨在将域名数据存到区块链系统之 中。RootChain是一种基于区块链的DNS根域管理系统,在保证原有DNS单 个根的权威之下,将对DNS根域数据的管理交给了区块链,缓解了原有DNS 根域中心化带来的安全风险。然而,这一系列研究都有一个共同的缺陷,就是 将DNS区域数据文件信息存储在了区块链上,造成了链上存储空间的浪费, 进而增大了节点之间传输的开销,不能满足对现有DNS系统的性能要求。
中国国家专利“基于区块链的域名数据存储系统及其数据交易实现方法” (公开号:CN112529581A),设计了三个模块数据获取模块、数据处理模块、 数据存储模块分别进行域名数据的获取、域名数据的预处理、域名数据的存储。 同时采用了链上链下存储的方式减少了DNS区域文件在链上存储空间的浪 费,并实现了一种账本占用较小的群组投票机制。但其虽然采用了链上链下的 存储方案用于减少链上的存储空间,然而还是要将域名、域名链上数据密钥、 域名链下数据密钥和域名区域文件索引存储到链上,随着链上区块的不断增 长,依然会有较大的存储空间浪费;同时,链上链下节点中的数据也不能做到 严格的同步和一致性,可能导致DNS数据查询的结果不准确。
中国国家专利“基于区块链共享缓存的DNS数据更新方法和系统”(公开 号:CN112187900A),通过DNS服务器之间构建联盟区块链,并对联盟区块 链中缓存的DNS记录进行检测,当发现任意一个DNS服务器中的DNS数据 更新时,对更新数据进行数字签名,并通过区块链的共识算法广播给其它节点 进行验证和排序,通过出块节点将更新的数据记录到新的区块中,写到链上。 但其仅仅是通过区块链保证了DNS数据更新的安全性,并且在不同DNS数据 存储节点之间达成了DNS数据更新共识,却没有说明如何保证DNS数据查询的安全性;同时,当发生DNS数据更新时,需要在链上记录全量的DNS区域 文件数据,这样会造成极大的链上存储空间的浪费,从而影响DNS数据更新 的效率。
发明内容
针对现有技术存在的问题,本发明采用无状态区块链存储DNS数据的方 式,提出了一种DNS数据查询更新方法,具体包括:数据存储步骤,将DNS 数据保存至链下区块,将该链下区块存储于区块链下的存储节点,将该链下区 块的摘要信息广播至区块链,形成链上区块存储于区块链上的共识节点;链下 交易步骤,当客户端发出交易请求时,该存储节点调用智能合约获得执行结果, 并通过可验证计算生成该执行结果的辅助验证信息;将该执行结果和该辅助验 证信息发送给该客户端;该客户端以该辅助验证信息验证该执行结果的正确 性;链上验证步骤,将该执行结果、该辅助验证信息以及此次链下交易的交易 记录广播至区块链;该共识节点根据该辅助验证信息对该执行结果进行验证, 并在验证通过后,将该交易记录的摘要信息形成链上区块链入区块链,并将该 链上区块同步存储至该存储节点。
本发明所述的DNS数据查询更新方法,其中,该链下区块具有状态树结 构,该摘要信息为该状态树结构的根节点哈希值。
本发明所述的DNS数据查询更新方法,其中,该交易请求包括此次链下 交易的数字签名信息σtx和输入信息txinput,该执行结果为读写集{r}tx,{w}tx, 其中{r}tx为读集,{w}tx为写集;该链下交易步骤具体包括:完成对σtx的验证 后,根据txinput,以及最新链下区块的状态树根执行智能合约,获得{r}tx,{w}tx; 在该存储节点的可信执行环境TEE中,生成{r}tx的状态树证明πread,通过{r}tx和πread计算重构Merkle根;若Merkle根与该最新链下区块的状态根Hold一致, 证明{r}tx是正确的;将txinput,{r}tx,{w}tx及Hold合并得到TEE签名;根据{w}tx中的写地址计算{w}tx的状态树证明πwrite,以该TEE签名和πwrite为该辅助验 证信息。
本发明所述的DNS数据查询更新方法,该数据验证步骤中,该共识节点 在最近k个链上区块中,检查该TEE签名和πwrite的正确性;并检查此次链下 交易是否与其它已经提交的交易之间存在读写冲突,若存在,则终止该链下交 易,反之,则将{w}tx和πwrite添加到新链上区块的状态树中;将此次链下交易 的摘要信息添加到该新链上区块中。
本发明还提出一种基于区块链和可验证计算的DNS数据查询更新系统, 包括:数据存储模块,用于存储DNS数据;其中,将该DNS数据保存至链下 区块,将该链下区块存储于区块链下的存储节点,将该链下区块的摘要信息广 播至区块链,形成链上区块存储于区块链上的共识节点;链下交易模块,用于 进行客户端与该存储节点之间的链下交易;当该客户端发出交易请求时,该存 储节点调用智能合约获得执行结果,并通过可验证计算生成该执行结果的辅助 验证信息;将该执行结果和该辅助验证信息发送给该客户端;该客户端以该辅 助验证信息验证该执行结果的正确性;链上验证模块,用于在区块链上存储链 下交易的验证信息;将该执行结果、该辅助验证信息以及此次链下交易的交易 记录广播至区块链;该共识节点根据该辅助验证信息对该执行结果进行验证, 并在验证通过后,将该交易记录的摘要信息形成链上区块链入区块链,并将该 链上区块同步存储至该存储节点。
本发明所述的DNS数据查询更新系统,其中该链下区块具有状态树结构, 该摘要信息为该状态树结构的根节点哈希值。
本发明所述的DNS数据查询更新系统,其中该交易请求包括此次链下交 易的数字签名信息σtx和输入信息txinput,该执行结果为读写集{r}tx,{w}tx,其 中{r}tx为读集,{w}tx为写集;该链下交易模块具体包括:交易执行模块,用 于完成对σtx的验证后,根据txinput,以及最新链下区块的状态树根执行智能合 约,获得{r}tx,{w}tx;验证信息生成模块,用于生成该辅助验证信息;在该存 储节点的可信执行环境TEE中,生成{r}tx的状态树证明πread,通过{r}tx和πread计算重构Merkle根;若Merkle根与该最新链下区块的状态根Hold一致,证明{r}tx是正确的;将txinput,{r}tx,{w}tx及Hold合并得到TEE签名;根据{w}tx中 的写地址计算{w}tx的状态树证明πwrite,以该TEE签名和πwrite为该辅助验证 信息。
本发明所述的DNS数据查询更新系统,其特征在于,该数据验证模块具 体包括:该共识节点在最近k个链上区块中,检查该TEE签名和πwrite的正确 性;并检查此次链下交易是否与其它已经提交的交易之间存在读写冲突,若存 在,则终止该链下交易,反之,则将{w}tx和πwrite添加到新链上区块的状态树 中;将此次链下交易的摘要信息添加到该新链上区块中。
本发明还提出一种计算机可读存储介质,存储有计算机可执行指令,其特 征在于,当该计算机可执行指令被执行时,实现如前所述的DNS数据查询更 新方法。
本发明还提出一种数据处理装置,作为区块链下的存储节点或区块链上的 共识节点,该数据处理装置包括:处理器;如前所述的计算机可读存储介质, 在该数据处理装置执行用户作业时,该处理器调取并执行该计算机可读存储介 质中的计算机可执行指令,以进行DNS数据查询更新。
附图说明
图1是本发明的DNS数据查询更新系统结构示意图。
图2是本发明的无状态区块数据结构示意图。
图3是本发明的DNS数据查询更新方法流程图。
图4是本发明的数据处理装置示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对 本发明进一步详细说明。应当理解,此处所描述的具体实施方法仅仅用以解释 本发明,并不用于限定本发明。
为了解决用传统区块链技术存储DNS数据导致的链上存储空间浪费,区 块链系统性能较低的设计缺陷。本发明采用无状态区块链存储DNS数据,具 体做法就是链上节点(共识节点)只保存账本状态的承诺(无状态数据),而 交易的执行以及DNS数据的存储(有状态数据)全部交给了链下的存储节点 (权威域名服务器)。
图1是本发明的DNS数据查询更新系统结构示意图。如图1所示,本发 明的DNS数据查询更新系统包括了三种类型的节点:
客户端:通过调用智能合约向权威域名服务器发送交易,交易的内容包含 了DNS数据查询、数据发布、数据更新等;
存储节点(例如是权威域名服务器):在DNS中扮演域名信息查询的终点, 存储某个域对应的DNS区域文件数据;在区块链中扮演链下存储节点的角色, 相比于链上的共识节点,它拥有更强的存储能力以及计算能力,主要负责维护 链下状态数据(DNS数据)和执行客户端发起的交易,同时也要同步链上的 区块信息;
共识节点:通过共识协议共同维护各个节点账本(链上无状态数据)的一 致性。共识节点可以分为两类:(1)出块节点,负责产生新的区块。(2)观察 节点,通过接收以及验证出块节点产生的新的区块从而参与到共识之中。
为了减轻链上共识节点的存储消耗,本发明采用了无状态的区块数据结 构,图2展示了本发明的无状态区块数据的具体数据结构。与传统的区块链结 构相比,该结构主要有两点不同:(1)原本链上节点需要储存交易的全部数据, 这里只需要存储交易的摘要信息(哈希值),交易的全部数据存放在链下节点 之中。利用哈希函数的单向性,任何人都可以通过链上的摘要信息验证链下的 交易数据有没有被篡改,保证了数据的正确性。(2)原本区块内存储的状态数 据以及对应状态树(Merkle Trie)也被移到了链下节点之上,链上节点只存储 Merkle Trie的根哈希值(Merkle Trie是一种区块链中常用的可信数据结构,用 于存储key-value键值对。Merkle Trie将数据存储到一个索引树中,每个节点 都会有一个摘要,这个摘要是根据它和它子节点的哈希值计算出来的)。与交 易数据类似,任何人可以通过Merkle Trie的根哈希值验证树中所有的状态数 据的正确性。
图3是本发明的DNS数据查询更新方法流程图。如图3所示,一个交易 (DNS数据查询以及更新)的过程会经历以下步骤:
步骤S1,客户端通过调用智能合约,向链下节点(权威域名服务器)发 送一个交易请求,用于查询以及更新DNS数据,交易请求由<txinput,σtx>组 成,其中,txinput表示此次交易请求的交易信息,例如是查询信息或更新信息, σtx代表此次交易对应的数字签名;
步骤S2,权威域名服务器接收到客户端提交的交易请求之后,在本地模 拟执行合约,并产生执行结果,也就是对应交易请求而产生的读写集 {r}tx,{w}tx,其中,{r}tx为读集,表示查询操作的结果,{w}tx为写集,表示存 储操作或更新操作的结果;
由于链上节点没有存储账本状态信息,交易只能在链下节点执行,为了保 证链下节点执行的正确性,需要采用可验证计算(Verifiable Computing)的技 术。具体来说就是链下节点在执行完成之后,需要提供一些辅助信息作为证据 来证明交易执行的正确性,任何人都可以通过公开的证据来验证执行结果的正 确性;
可验证计算可以通过可信执行环境(TEE)来实现。TEE是处理器中一块 特殊的安全区域,TEE可以在一个不可信的硬件平台上提供一个可信的程序执 行环境,Intel SGX就是其中一种。这种实现可验证计算方式的优点在于效率 很高;
基于TEE的权威域名服务器(链下节点)交易执行算法的输入为:客户 端发起的交易信息和当前权威服务器最新区块中的状态树根(记作Hold);
基于TEE的可验证计算步骤具体如下:
基于TEE的权威域名服务器(链下节点)交易执行算法步骤具体如下:
首先,以客户端发起的交易请求和当前权威服务器最新区块中的状态树根 (记作Hold)作为可验证计算的输入:
具体过程包括:
2.1验证交易的数字签名信息;
2.2根据交易的输入以及当前的状态树根执行智能合约,记录执行的读写 集{r}tx,{w}tx;
2.3为了确保从TEE外部(权威域名服务器)获得的读值是正确的,TEE 外会生成关于读集的Merkle Proof(用于计算重构Merkle根来验证某个值是否 存在于Merkle Trie之中);
2.4在TEE中,通过记录到的读集{r}tx以及Merkle Proof计算重构Merkle 根。如果计算得到的Merkle根与输入中权威服务器提供的状态根Hold一致,验 证通过,证明权威域名服务器提供的读值是正确的;
2.5TEE对交易输入,产生的读写集,原本的状态根Hold合并进行数字签 名,证明交易执行的正确性;
2.6在TEE外面,权威域名服务器还要根据写集{w}tx中的写地址计算一 个MerkleProof,记作πwrite,;
步骤S3,将执行的结果以及对应的正确性证明信息和验证辅助信息广播 给区块链上的共识节点;
步骤S4,共识节点对执行结果进行验证,并在验证无误之后,将交易记 录到链上,同时更新链上的状态承诺信息,并通过链上的共识机制产生新的区 块,将区块同步给链上以及链下的所有节点;
当共识节点收集到一定数量的交易执行结果之后,共识节点可以将它们组 成一个新的区块。也就是说,共识节点需要负责对链上交易进行验证排序和提 交;对于链上的交易提交,需要解决两个问题:
(1)共识节点要在无状态(缺少交易信息以及状态数据)的情况下,验 证然后提交交易。具体来说,共识节点需要在无法访问整个Merkle Trie的情 况下,正确地更新MerkleTrie的根Hstate_root的值;
(2)由于不同的权威域名服务器处理交易是并行的,同时网络是异步的, 到达共识节点交易的顺序是任意的。因此共识节点不仅需要能够处理并行交 易,同时要保证链上的数据能在各个节点(链上与链下)之中同步。
为了解决上面的两个问题,需要在链上节点中保存很少的但却非常必要的 辅助信息用于更新链上的Merkle Trie根,同时验证交易,检查并行交易之间 是否存在冲突。
具体来说,共识节点会记录最近k个区块的暂时状态数据。如果共识节点 接收到的交易是在k个区块之前执行的,共识节点就会丢弃这个交易。暂时状 态数据具体包括:区块高度与对应区块中的读地址集合的映射,记作Mi→r;区 块高度与对应区块中的写地址集合的映射,记作Mi→w;读写地址集合与区块 高度之间的映射,记作Mr→i,Mw→i;部分的MerkleTrie(Partial Merkle Trie), 树中只记录最近k个区块中的写集以及它们的Merkle路径(从该叶子节点到 根节点路径中的所有节点)。
于本发明的实施例,共识节点(链上节点)交易验证,排序以及提交的具 体过程包括:
4.1节点检查交易是在k个区块之内执行的,检查是否有有效的TEE签名 同时验证写集对应的Merkle Proof πwrite是否正确;
4.2检查该交易是否与其它已经提交的交易之间有读写冲突,如果有,则 终止该交易;
4.3将写集{w}tx和对应的Merkle Proof πwrite添加到共识节点的Partial MerkleTrie之中。同时,也要更新暂时状态数据中几个相关的映射值 Mi→r,Mi→w,Mr→i,Mw→i;
4.4当对一定数量的交易进行上述流程之后,共识节点之间通过区块链的 共识机制产生一个新的区块,新区块中包含这些交易的摘要信息(哈希值), 还包括通过新的Partial Merkle Trie计算的新的状态根的值;
4.5将暂时状态数据中存放的k个区块之外的历史数据信息移除掉。这其 中包括Partial Merkle Trie中这些历史数据相关的节点路径,也包括这些历史数 据相关的映射值;
步骤S5,链下的权威域名服务器验证新产生区块中的交易,并将交易提 交到本地状态存储之中。
图4是本发明的数据处理装置结构示意图。如图4所示,本发明还提出一 种数据处理终端,用于区块链下的存储节点或区块链上的共识节点,响应客户 端的交易请求,数据处理装置包括处理器和计算机可读存储介质,其中处理器 调取并执行该计算机可读存储介质中的计算机可执行指令,在数据处理装置执 行交易请求时,进行基于区块链和可验证计算的DNS数据查询更新。本领域 普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关 硬件(例如处理器)完成,所述程序可以存储于可读存储介质中,如只读存储器、 磁盘或光盘等。上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,例如通过 集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过 处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明实施例不 限制于任何特定形式的硬件和软件的结合。
本发明的DNS数据查询更新方法利用区块链“不可伪造”、“公开透明”、“集 体维护”的特性,解决了原有中心化DNS系统中DNS数据存储不可信导致的 DNS数据查询以及更新中存在的安全问题;相较于已有的区块链应用于DNS 系统的解决方案,本发明技术方案的最大优点在于采用了无状态的区块链设 计,即DNS数据的存储、查询以及更新还是由链下的权威域名服务器负责, 链上的共识节点只需要存储非常少量的账本状态承诺信息,这样可以大幅降低 链上节点存储空间的消耗,同时也可以降低共识节点之间通信所需要传递消息 的负载,从而提升整个区块链系统的性能。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域 的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变 化和变形,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护 范围应由权利要求限定。
Claims (10)
1.一种基于区块链和可验证计算的DNS数据查询更新方法,其特征在于,包括:
数据存储步骤,将DNS数据保存至链下区块,将该链下区块存储于区块链下的存储节点,将该链下区块的摘要信息广播至区块链,形成链上区块存储于区块链上的共识节点;
链下交易步骤,当客户端发出交易请求时,该存储节点调用智能合约获得执行结果,并通过可验证计算生成该执行结果的辅助验证信息;将该执行结果和该辅助验证信息发送给该客户端;该客户端以该辅助验证信息验证该执行结果的正确性;
链上验证步骤,将该执行结果、该辅助验证信息以及此次链下交易的交易记录广播至区块链;该共识节点根据该辅助验证信息对该执行结果进行验证,并在验证通过后,将该交易记录的摘要信息形成链上区块链入区块链,并将该链上区块同步存储至该存储节点。
2.如权利要求1所述的DNS数据查询更新方法,其特征在于,该链下区块具有状态树结构,该摘要信息为该状态树结构的根节点哈希值。
3.如权利要求1所述的DNS数据查询更新方法,其特征在于,该交易请求包括此次链下交易的数字签名信息σtx和输入信息txinput,该执行结果为读写集{r}tx,{w}tx,其中{r}tx为读集,{w}tx为写集;该链下交易步骤具体包括:
完成对σtx的验证后,根据txinput,以及最新链下区块的状态树根执行智能合约,获得{r}tx,{w}tx;
在该存储节点的可信执行环境TEE中,生成{r}tx的状态树证明πread,通过{r}tx和πread计算重构Merkle根;若Merkle根与该最新链下区块的状态根Hold一致,证明{r}tx是正确的;将txinput,{r}tx,{w}tx及Hold合并得到TEE签名;根据{w}tx中的写地址计算{w}tx的状态树证明πwrite,以该TEE签名和πwrite为该辅助验证信息。
4.如权利要求3所述的DNS数据查询更新方法,其特征在于,该数据验证步骤中,
该共识节点在最近k个链上区块中,检查该TEE签名和πwrite的正确性;并检查此次链下交易是否与其它已经提交的交易之间存在读写冲突,若存在,则终止该链下交易,反之,则将{w}tx和πwrite添加到新链上区块的状态树中;
将此次链下交易的摘要信息添加到该新链上区块中。
5.一种基于区块链和可验证计算的DNS数据查询更新系统,其特征在于,包括:
数据存储模块,用于存储DNS数据;其中,将该DNS数据保存至链下区块,将该链下区块存储于区块链下的存储节点,将该链下区块的摘要信息广播至区块链,形成链上区块存储于区块链上的共识节点;
链下交易模块,用于进行客户端与该存储节点之间的链下交易;当该客户端发出交易请求时,该存储节点调用智能合约获得执行结果,并通过可验证计算生成该执行结果的辅助验证信息;将该执行结果和该辅助验证信息发送给该客户端;该客户端以该辅助验证信息验证该执行结果的正确性;
链上验证模块,用于在区块链上存储链下交易的验证信息;将该执行结果、该辅助验证信息以及此次链下交易的交易记录广播至区块链;该共识节点根据该辅助验证信息对该执行结果进行验证,并在验证通过后,将该交易记录的摘要信息形成链上区块链入区块链,并将该链上区块同步存储至该存储节点。
6.如权利要求5所述的DNS数据查询更新系统,其特征在于,该链下区块具有状态树结构,该摘要信息为该状态树结构的根节点哈希值。
7.如权利要求5所述的DNS数据查询更新系统,其特征在于,该交易请求包括此次链下交易的数字签名信息σtx和输入信息txinput,该执行结果为读写集{r}tx,{w}tx,其中{r}tx为读集,{w}tx为写集;
该链下交易模块具体包括:
交易执行模块,用于完成对σtx的验证后,根据txinput,以及最新链下区块的状态树根执行智能合约,获得{r}tx,{w}tx;
验证信息生成模块,用于生成该辅助验证信息;在该存储节点的可信执行环境TEE中,生成{r}tx的状态树证明πread,通过{r}tx和πread计算重构Merkle根;若Merkle根与该最新链下区块的状态根Hold一致,证明{r}tx是正确的;将txinput,{r}tx,{w}tx及Hold合并得到TEE签名;根据{w}tx中的写地址计算{w}tx的状态树证明πwrite,以该TEE签名和πwrite为该辅助验证信息。
8.如权利要求7所述的DNS数据查询更新系统,其特征在于,该数据验证模块具体包括:该共识节点在最近k个链上区块中,检查该TEE签名和πwrite的正确性;并检查此次链下交易是否与其它已经提交的交易之间存在读写冲突,若存在,则终止该链下交易,反之,则将{w}tx和πwrite添加到新链上区块的状态树中;将此次链下交易的摘要信息添加到该新链上区块中。
9.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,当该计算机可执行指令被执行时,实现如权利要求1~4任一项所述的DNS数据查询更新方法。
10.一种数据处理装置,作为区块链下的存储节点或区块链上的共识节点,该数据处理装置包括:
处理器;
如权利要求9所述的计算机可读存储介质,在该数据处理装置执行用户作业时,该处理器调取并执行该计算机可读存储介质中的计算机可执行指令,以进行DNS数据查询更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111640654.7A CN114490685A (zh) | 2021-12-29 | 2021-12-29 | 基于区块链和可验证计算的dns数据查询更新方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111640654.7A CN114490685A (zh) | 2021-12-29 | 2021-12-29 | 基于区块链和可验证计算的dns数据查询更新方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490685A true CN114490685A (zh) | 2022-05-13 |
Family
ID=81508745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111640654.7A Pending CN114490685A (zh) | 2021-12-29 | 2021-12-29 | 基于区块链和可验证计算的dns数据查询更新方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490685A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115459969A (zh) * | 2022-08-26 | 2022-12-09 | 中电信数智科技有限公司 | 一种层次化可扩展区块链平台及其交易处理方法 |
CN116599971A (zh) * | 2023-05-15 | 2023-08-15 | 山东大学 | 数字资产数据存储及应用方法、系统、设备及存储介质 |
WO2024066006A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中的共识方法、共识节点和区块链系统 |
-
2021
- 2021-12-29 CN CN202111640654.7A patent/CN114490685A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115459969A (zh) * | 2022-08-26 | 2022-12-09 | 中电信数智科技有限公司 | 一种层次化可扩展区块链平台及其交易处理方法 |
CN115459969B (zh) * | 2022-08-26 | 2024-04-30 | 中电信数智科技有限公司 | 一种层次化可扩展区块链平台及其交易处理方法 |
WO2024066006A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中的共识方法、共识节点和区块链系统 |
CN116599971A (zh) * | 2023-05-15 | 2023-08-15 | 山东大学 | 数字资产数据存储及应用方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7408619B2 (ja) | ブロックチェーンネットワークにおいて大規模分散メモリプールを管理するためのコンピュータ実装されたシステム及び方法 | |
WO2021036545A1 (zh) | 一种基于智能合约的数据处理方法、设备及存储介质 | |
US11669811B2 (en) | Blockchain-based digital token utilization | |
CN114490685A (zh) | 基于区块链和可验证计算的dns数据查询更新方法及系统 | |
CN110572281B (zh) | 一种基于区块链的可信日志记录方法及系统 | |
CN109493050B (zh) | 基于区块链主链加并行多子链的转账方法 | |
US11831772B2 (en) | Blockchain multi-party shared-governance-based system for maintaining domain name information | |
CN109472572B (zh) | 基于区块链主链加并行多子链的合约系统 | |
WO2018191882A1 (zh) | 一种基于区块链的域名解析系统 | |
CN110321074B (zh) | 基于区块链和分布式存储系统的安全存储证明的共识方法 | |
CN113824563B (zh) | 一种基于区块链证书的跨域身份认证方法 | |
CN109493052B (zh) | 一种基于主链加并行多子链的跨链合约系统 | |
CN111931220B (zh) | 区块链网络的共识处理方法、装置、介质及电子设备 | |
CN111597077B (zh) | 数据处理方法、装置、计算机设备以及存储介质 | |
CN113343213A (zh) | 一种分散自主网络中基于区块链的多ca跨域认证方法 | |
CN111711711A (zh) | 基于区块链的顶级域名管理和解析方法及系统 | |
US20200259663A1 (en) | One-Time Data Signature System and Method with Untrusted Server Assistance | |
CN110309173B (zh) | 合约数据的记录方法、装置及区块链节点、存储介质 | |
CN110851877B (zh) | 一种数据处理方法、装置及区块链节点设备、存储介质 | |
CN112597241A (zh) | 一种基于区块链的分布式数据库存储方法及系统 | |
CN103067363A (zh) | 一种用于公开数据完整性校验的索引转换方法 | |
CN113010872A (zh) | 一种身份认证方法、装置、计算机设备及存储介质 | |
Zhang et al. | Blockchain-based DNS root zone management decentralization for Internet of Things | |
CN111444204A (zh) | 一种同步处理方法、装置、设备及介质 | |
CN116827957B (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 |