CN113037505A - 一种可信Web应用的实现方法及系统 - Google Patents
一种可信Web应用的实现方法及系统 Download PDFInfo
- Publication number
- CN113037505A CN113037505A CN202110596898.3A CN202110596898A CN113037505A CN 113037505 A CN113037505 A CN 113037505A CN 202110596898 A CN202110596898 A CN 202110596898A CN 113037505 A CN113037505 A CN 113037505A
- Authority
- CN
- China
- Prior art keywords
- web application
- block
- service
- data
- block chain
- 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
Images
Classifications
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/146—Tracing the source of attacks
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种可信Web应用实现方法及系统。该实现系统针对中心化Web应用存在内容来源不可追溯、内容完整性和合规性不可验证等问题,通过在区块链上部署实体注册与认证合约、Web应用登记合约、Web应用调用合约,由公开的共识机制取代中心化Web应用服务,对内容有效性进行合规检查,从而保证了内容的来源真实性、内容完整性和合规性。此外,本发明还提供了与该实现系统相对应的方法,只需要在链上进行一次身份认证,有利于简化用户在多个Web应用的注册和认证操作,降低用户隐私信息的泄漏风险。
Description
技术领域
本申请涉及区块链技术应用领域,具体涉及一种可信Web应用的实现方法及系统。
背景技术
传统Web应用一方面以Web页面形式向用户发布内容,另一方面以Web表单形式从用户端收集内容后,展示这些内容及其统计结果。Web应用的常见用户行为包括:发帖和跟贴、评论打分、投票等。由于传统Web应用采用中心化部署运维方式,运维方可从自身利益出发篡改数据(例如:删除差评、修改投票或问卷统计结果等),因此其内容难以取信于公众。另外由于各Web应用自成体系,用户不得不将身份信息多次提交,分别进行用户注册认证,增加了操作复杂度和用户隐私信息泄漏的风险。现有的将区块链技术应用于解决Web应用内容信任问题所采用的方案主要包括:
1)将页面内容的Hash上链,对发布的页面内容进行内容完整性、时间存在性证明;
2)采用群签名或同态加密等技术实现投票行为的匿名及投票结果的公正。
上述方案在解决Web内容的信任问题方面,仍然存在以下几方面的局限:
1)信任覆盖不全面:仅仅在页面层面解决了内容的完整性证明,对于页面包含的图片等多媒体文件未提供完整性证明;对所有内容的来源真实性不可追溯;
2)支持的用户行为模式单一:仅限于投票单一场景的行为溯源,无法对其他用户行为进行溯源;
3)缺乏行为有效性检查:无法实现对用户行为的合规性进行复杂逻辑检查,例如,在投票的应用场景中,设定周期内T只允许每人最多/必须针对n个对象各投一张票;以发帖为例:设置允许文章附件的文件大小,设置发帖文字的字数限制等。
如何克服上述缺陷,有效的解决Web内容信任问题已成为了亟需解决的技术问题。
发明内容
为了解决上述技术问题,本发明提供了一种可信Web应用的实现方法及系统,针对现有中心化Web应用的信任问题,采用区块链上的合约实现Web应用的服务方和用户方的身份认证、Web应用登记、Web应用调用等功能,使得上述行为的来源可追溯可验证,行为的结果真实可信。本发明所采用的技术方案如下:
一种可信Web应用的实现方法,该实现方法包括系统建立、应用登记、应用调用以及调用结果展示与验证四个阶段,系统建立阶段包括如下步骤:
步骤101、建立区块链组网,启动区块/状态数据服务;
步骤102、在区块链上部署身份认证合约、Web应用登记合约、Web应用调用合约;
步骤103、对认证方进行身份认证;
步骤104、认证Web应用服务方和用户方;
步骤105、订阅区块数据和状态数据;
应用登记阶段包括如下步骤:
步骤201、登记Web应用,确定应用类型和规则;
步骤202、建立Web应用实例;
应用调用阶段包括如下步骤:
步骤301、Web应用用户选择链上登记的Web应用;
步骤302、输入数据,构造并提交签名交易;
步骤303、验证交易有效性、实时统计结果;
所述调用结果展示与验证包括如下步骤:
步骤401、同步区块数据和状态数据,更新展示内容;
步骤402、验证展示内容的来源真实性、内容完整性;
步骤403、返回验证结果。
进一步的,所述建立区块链组网,启动区块/状态数据服务,具体包括:区块链组网节点加载创世区块,建立或加入区块链组网;各节点的区块/状态数据服务向区块链组网节点请求区块数据实时同步,并对同步获得的区块/状态数据进行解析,并将解析后的数据存储到关系型数据库,所述关系型数据库用于提供区块数据的复杂检索以及对外提供区块/状态数据订阅服务;所述区块数据订阅服务采用中间件实现或者通过编程实现。
进一步的,在步骤102中,所述身份认证合约ContractCert包括账户认证方法signUpSigner和为账户绑定证书的方法signUpCert。
进一步的,所述步骤103、对认证方进行身份认证,具体包括:区块链服务方通过签名交易调用合约方法ContractCert. signUpSigner,对认证方进行身份认证,然后通过签名交易调用合约方法ContractCert. signUpCert,为其绑定数字证书,数字证书与认证方持有的密钥对应;
所述步骤104、认证Web应用服务方和用户方,具体包括:通过签名交易调用合约方法ContractCert. signUpSigner,对Web应用服务方、Web应用用户方进行身份认证,通过签名交易调用合约方法ContractCert. signUpCert为其绑定数字证书,数字证书与其持有的密钥对应;
所述步骤105、订阅区块数据和状态数据,具体包括:Web应用服务方完成链上的身份认证之后,向区块链服务请求区块/状态数据订阅推送,实时获取与本账户相关的区块/状态数据。
进一步的,所述步骤201、登记Web应用,确定应用类型和规则,具体包括:
Web应用服务方通过签名交易,调用合约方法ContractWeb. registerApp登记Web应用实例,该合约方法的参数已预设了该Web应用的类型、有效性检查规则、结果统计逻辑;在进行时间区间检查时,采用区块高度代替区块链组网节点本地时间,以避免由于组网节点本地时间不一致无法对有效性达成共识;
所述步骤202、建立Web应用实例,具体包括:
区块链服务子系统根据登记信息,为该Web应用生成录入界面,并调用ShimAPI.setStateTx方法将生成的录入界面写入账本状态数据,Web服务方从状态订阅获得的APP_UI_HTML状态获得界面定义,从状态订阅获得的APP_UI_DESC状态获得界面描述,提供给下一步Web用户界面访问。
进一步的,所述步骤302、输入数据,构造并提交签名交易,具体包括:
访问Web应用服务的录入界面,Web应用服务根据步骤202中获得的界面定义和界面描述构造录入界面,用户录入数据之后,构造签名交易调用合约方法ContractWeb.callApp,向区块链提交签名交易;
所述步骤303、验证交易有效性、实时统计结果,具体包括:
区块链组网接收到调用Web应用的签名交易之后,各共识节点首先调用对应的有效性检查合约逻辑,验证有效性;通过有效性检查之后,调用callApp方法中的统计结果更新合约逻辑,调用ShimAPI.setStateTx方法将统计结果实时写入状态数据。
进一步的,所述步骤401、同步区块数据和状态数据,更新展示内容,具体包括:Web应用服务方通过区块/状态数据服务获取订阅数据,获得调用所登记的Web应用的签名交易及其写入的状态数据,更新内容和统计结果的展示界面;根据ShimAPI.setStateTx方法在写入状态数据的同时,通过前缀"TX_"写入对应的签名交易Id,展示界面中包含了与展示内容对应的签名交易链接;
所述步骤402、验证展示内容的来源真实性、内容完整性,具体包括:
Web用户方访问与展示内容相关的签名交易链接;从区块链服务获得交易内容,根据交易内容中的签名信息,对内容来源的真实性进行验证;根据交易内容与展示内容的比对,对内容的完整性进行验证。
一种可信Web应用的实现系统,该系统用于实现上述方法,该系统包括区块链服务子系统、身份认证服务子系统、Web应用服务子系统、以及Web用户端,所述区块链服务子系统是所述可信Web应用的实现系统的核心,由区块链服务方进行建立和运维;
所述身份认证服务子系统,包括账户注册与身份认证子模块、密钥管理子模块、身份认证服务子模块,所述身份认证服务子系统用于向Web应用服务方和Web用户方提供身份认证服务,完成身份认证之后,通过签名交易向区块链服务注册Web应用服务方和Web用户方账户,并绑定Web用户方账户的数字证书;
所述Web应用服务子系统,用于在完成身份认证之后,向区块/状态数据服务订阅并获得数据推送,通过签名交易向区块链组网进行Web应用登记,并根据从数据订阅处获得的订阅结果构建Web应用界面,更新Web应用内容和统计结果;
所述Web用户端,用于在完成身份认证之后,选择已登记的Web应用实例,访问Web应用的录入界面,构造调用Web应用的签名交易,并通过Web应用调用向区块链组网节点提交,访问Web应用的展示内容界面,向区块链服务子系统请求对展示内容来源真实性和内容完整性验证。
进一步的,所述区块链服务子系统包括区块链组网节点、区块/状态数据服务、区块数据、Key-Value状态数据库以及关系型数据库;区块数据和Key-Value状态数据库与所述区块链组网节点相连接,区块/状态数据服务与关系型数据库相连接。
进一步的,所述区块链组网节点,用于参与区块链组网共识,生成存储在文件系统的区块数据和存储在Key-Value状态数据库的账本状态数据;所述区块链组网节点,对外提供接收签名交易并向区块链组网传播的接口,对内提供区块数据实时同步的接口;
所述区块/状态数据服务,用于从所述区块链组网节点实时同步区块数据和状态数据,分析同步到的数据并存储为关系型数据,为区块链组网节点提供区块数据的复杂检索;对外提供附带组网节点签名的区块/状态数据的订阅推送服务、交易内容的来源真实性和内容完整性验证服务。
通过本申请实施例,可以获得如下技术效果:
1)本发明通过在区块链上的身份认证合约,对Web应用的服务方和用户方进行身份认证并绑定数字证书,各方通过签名交易在链上提交行为并产生内容,实现了内容来源可追溯;
2)本发明用认证方的一次性用户身份认证,取代了众多Web应用各自对用户身份属性的获取和认证,简化了用户注册认证操作,降低了用户身份等隐私信息泄漏的风险。
3)本发明通过区块链上的“Web应用登记”合约方法,要求Web应用的服务方公开Web应用的有效性检查规则,对Web应用的管理规则实现了过程留痕和监督举证。本发明实现的有效性检查规则包括:允许调用的时间段、指定时间段内同一用户的调用频次、针对不同Web应用类型的输入参数设置(包括登记文件的大小、发帖/跟帖字数范围、投票对象集合、问卷题目及选项等)。
本申请的可信Web应用的实现方法及系统通过在区块链上部署实体注册与认证合约,由公开的共识机制取代中心化Web应用服务,对内容有效性进行合规检查,从而保证了内容的来源真实性、内容完整性和合规性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明系统组成结构示意图;
图2为可信Web应用的实现方法的流程示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
在对本发明的技术方案进行详细描述之前,首先对本发明中使用的术语约定进行如下介绍:
应用(Web Application):无须事先安装,可以使用浏览器直接访问使用的应用程序,本发明实现Web应用类型包括:登记文件、发帖/跟帖、签到、投票、评分、调查问卷;
标识:即唯一标识,用以区分和查找数字对象的索引,本文中Id即标识,本文中的Id可采取通用唯一识别码(UUID)方法生成;
合约:即智能合约,可以被区块链合约容器加载和执行的代码,合约拥有唯一标识、合约包含供签名交易调用的方法,合约方法通过合约容器提供的接口读写外部状态。本发明中的“操作”是指通过签名交易调用合约方法;
合约上下文(ContractContext):即合约方法执行的上下文环境,包括调用合约方法的签名交易,访问区块数据和world State世界状态的ShimAPI接口;
世界状态(World State):区块链账本的外部状态,简称账本状态,由合约容器上下文接口ShimAPI中提供了读写状态的接口,支持持久化读写Key-Value键值对;
签名:本发明中的签名包含账户标识和数字签名两部分,其中数字签名是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法;账户标识用于从关联交易中提取签名者的公钥,用以验证其数字签名;
签名交易:包含交易发起方签名的结构化数据,代表了签名者的授权行为,签名交易中指定了调用的合约方法及调用参数。
图1为本发明系统组成结构示意图。所述可信Web应用的实现系统包括区块链服务子系统、身份认证服务子系统、Web应用服务子系统、以及Web用户端;
所述区块链服务子系统是所述可信Web应用的实现系统的核心,由区块链服务方进行建立和运维;
所述身份认证服务子系统,包括账户注册与身份认证子模块、密钥管理子模块、身份认证服务子模块,所述身份认证服务子系统用于向Web应用服务方和Web用户方提供身份认证服务,完成身份认证之后,通过签名交易向区块链服务注册Web应用服务方和Web用户方账户,并绑定Web用户方账户的数字证书;
所述Web应用服务子系统,用于在完成身份认证之后,向区块/状态数据服务订阅并获得推送数据,通过签名交易向区块链组网进行Web应用登记,并根据从数据订阅处获得的订阅结果构建Web应用界面,更新Web应用内容和统计结果;
区块/状态数据服务是订阅推送服务的提供方,Web应用服务子系统是订阅推送服务的调用方,即订阅者。订阅推送的机制是:步骤1、订阅者向订阅服务发起订阅请求,在订阅请求中包含订阅内容的过滤条件;步骤2、若订阅服务有符合过滤条件的新增内容时,则向订阅者推送内容。在上述过程中,步骤1是一次调用,步骤2会根据实际情况进行多次推送。
所述Web用户端,用于在完成身份认证之后,选择已登记的Web应用实例,访问Web应用的录入界面,构造调用Web应用的签名交易,并通过Web应用调用向区块链组网节点提交,访问Web应用的展示内容界面,向区块链服务子系统请求对展示内容来源真实性和内容完整性验证。
所述区块链服务子系统包括区块链组网节点、区块/状态数据服务、区块数据、Key-Value状态数据库以及关系型数据库;区块数据和Key-Value状态数据库与所述区块链组网节点相连接,区块/状态数据服务与关系型数据库相连接;
所述区块链组网节点,用于参与区块链组网共识,生成存储在文件系统的区块数据和存储在Key-Value状态数据库的账本状态数据;所述区块链组网节点,对外提供接收签名交易并向区块链组网传播的接口,对内提供区块数据实时同步的接口;
所述区块/状态数据服务,用于从所述区块链组网节点实时同步区块数据和状态数据,分析同步到的数据并存储为关系型数据,为区块链组网节点提供区块数据的复杂检索;对外提供附带组网节点签名的区块/状态数据的订阅推送服务、交易内容的来源真实性和内容完整性验证服务。
图2为可信Web应用的实现方法的流程示意图。所述可信Web应用的实现方法包括系统建立、应用登记、应用调用以及调用结果展示与验证四个阶段。
第一个阶段:系统建立包括如下步骤:
步骤101、建立区块链组网,启动区块/状态数据服务;
步骤102、在区块链上部署身份认证合约、Web应用登记合约、Web应用调用合约;
步骤103、对认证方进行身份认证;
步骤104、认证Web应用服务方和用户方;
步骤105、订阅区块数据和状态数据;
所述建立区块链组网,启动区块/状态数据服务,具体包括:区块链组网节点加载创世区块,建立或加入区块链组网;各节点的区块/状态数据服务向区块链组网节点请求区块数据实时同步,并对同步获得的区块/状态数据进行解析,并将解析后的数据存储到关系型数据库,所述关系型数据库用于提供区块数据的复杂检索以及对外提供区块/状态数据订阅服务;所述区块/状态数据订阅服务采用中间件实现,例如Prisma的graphQL,或者通过编程实现;
在步骤102中,所述身份认证合约(ContractCert)包括账户认证方法(signUpSigner)和为账户绑定证书的方法(signUpCert)。相关的数据结构定义及合约通过如下程序来定义和实现。
//注册用户类,id:注册用户标识; group:用户分类; certNames:绑定的数字证书名称集合
case class Signer(id: String, group:Int, certNames: Array[String])
//证书信息,credit_code:用户信用代码, name: 证书名称, cert:证书内容
case class CertInfo(credit_code: String, name: String, cert:Certificate)
//合约方法返回执行结果,code:结果代码;r:结果值
case class ActionResult(code: Int, r: Any)
//身份认证合约
class ContractCert extends IContract {
/**
* 认证并注册Signer账户
* @param ctx 合约上下文
* @param data 待注册用户
* @return 执行结果
*/
def signUpSigner(ctx: ContractContext, data: Signer): ActionResult= {
val signer = ctx.api.getState(data.id)
if (signer == null) {
ctx.api.setState(data.creditCode, data)
null
} else {
throw ContractException("账户已存在")
}
}
/**
* 为已认证用户注册用户证书:1、将name加到账户中;2、将Certificate保存
* @param ctx 合约上下文
* @param data 证书信息
* @return 执行结果
*/
def signUpCert(ctx: ContractContext, data: CertInfo): ActionResult= {
val certKey = data.credit_code + dot + data.name
val certInfo = ctx.api.getState(certKey)
val signerKey = data.credit_code
val signerContent = ctx.api.getState(signerKey)
// 先判断证书,若证书不存在,则向账户添加name
if (certInfo == null) {
if (signerContent == null) {
throw ContractException("账户未注册")
} else {
ctx.api.setState(certKey, data.cert)
val signer = signerContent.asInstanceOf[Signer]
if (!signer.certNames.contains(data.name)) {
val signerNew = signer.addCertNames(data.name)
ctx.api.setState(signerKey, signerNew)
}
}
null
} else {
throw ContractException("证书已存在")
} }}
所述Web应用合约(ContractWeb)包括了Web应用登记方法(registerApp)、Web应用调用方法(callApp),相关的数据结构定义及合约。相关的数据结构定义及合约通过如下程序来定义和实现。
/**
* 调查问卷问题, q: 提问文本; opt:选项结合; mode: 单选or多选, 1代表单选;
*/
case class Question(q:String, opt:Array[String],mode:Int)
/**
* 有限性检查规则,为避免共识节点时间不一致导致临界区域,有效性判断不一致,
* 用区块高度代替本地时间作为判断条件
* group: 允许操作的用户分类;
* tm_start:允许调用的起始时间; tm_end:允许调用结束时间;
* cc_max:在c_span时间周期内允许调用的次数; c_span:时间周期;
* fsize: 允许登记文件的最大容量;
* wc_min: 发帖最小字数限制; wc_max: 发帖最大字数限制;
* candidates: 候选人列表及介绍文章Id, level_max:最高评分等级;
* questionnaire: 调查问卷问题及选项列表
*/
case class Rule(group:Int, tm_start:Long, tm_end:Long, cc_max:Long,c_span:Long, f_size:Long, wc_min:Long, wc_max:Long, candidates:Map[String,String],level_max:Int,questionnaire:Array[Question])
/**
* 应用参数集合,appId:Web应用标识; cid:调用标识;
* pId:指向的调用标识; f_url:登记文件获取地址; f_hash:登记文件Hash;
* artile: 发帖内容; vote_to: 投票对象; mark_level:评分;
* anwser: 调查问卷选择答案
*/
case class CallPara(appId:String, cid:String, pId:String, f_url:String,
f_hash:Array[Byte],article:String, vote_to:String, mark_level:Int,anwser:Array[Array[String]])
object MODE {
val RegFile = 1
val PostActicle = 2
val SignIn = 3
val Vote = 4
val Mark = 5
val Survey = 6
}
//Web应用管理合约
class ContractWeb extends IContract{
/**
* Web应用登记合约方法,
* ctx: 合约容器上下文实例;
* id: Web应用标识;
* url : Web应用访问地址
* mode: Web应用类型,1:登记文件; 2:发帖/跟帖; 3:签到; 4:投票; 5:评分;6:调查问卷;
* rule: 登记应用的调用规则
*/
def registerApp(ctx: ContractContext, id:String, url:String; mode:Int, rule:Rule): ActionResult={
val appId = "APP_" + id
val appMode = ctx.api.getState(appId)
if (appMode != null)
throw ContractException("Web应用已存在")
ctx.api.setStateTx(ctx.tx.Id,appId, mode)
ctx.api.setStateTx(ctx.tx.Id,"APP_RULE_" + id, rule)
//检查候选人的介绍文章是否存在
for (cid <- rule.candidates.values) {
if(ctx.api.getState(cid)==null)
throw ContractException("介绍文章不存在")
}
//检查问题选项是否存在重复
val opts: Set[String] = new Set()
for (q <- rule.questionnaire) {
opts.clear()
for (item <- q.opt){
if(opts.contains(item))
throw ContractException("存在重复选项")
else opts.add(item)
}
}
val (desc,ui_html) = ShimAPI.getWebUIHtml(id,mode,rule)
ctx.api.setStateTx(ctx.tx.Id,"APP_UI_DESC" + id, desc)
ctx.api.setStateTx(ctx.tx.Id,"APP_UI_HTML" + id, ui_html)
//返回正常
new ActionResult(code=1)
}
/**
* Web应用调用合约方法
* ctx: 合约容器上下文实例
* id: Web应用标识
* cp: 调用参数
*/
def callApp(ctx: ContractContext, id:String, cp: CallPara): Boolean={
//加载应用规则
val rule = ctx.api.getState("APP_RULE_" + id).asInstanceOf[Rule]
val mode = ctx.api.getState("APP_" + id)
//检查标识有效性
if(mode == null)
throw ContractException("Web应用实例不存在")
val cid = "APP_" + id+"_"+cp.cid
if(ctx.api.getState(cid)!=null)
throw ContractException("调用操作标识已存在")
//在账本状态中设置操作对应的签名交易
ctx.api.setState(cid,ctx.tx.Id)
//检查操作时间区间
val blockHeight = ctx.api.getBlockHeight()
if(blockHeight < rule.tm_start || blockHeight > rule.tm_end)
throw ContractException("不在允许调用的时间区间")
//检查操作频次
val call_count = ShimAPI.getCallCount(ctx.tx.signer.id,blockHeight-rule.c_span, blockHeight)
if(call_count >= rule.cc_max)
throw ContractException("超出规定时间段内允许调用次数")
//针对具体应用类型检查调用参数有效性
mode match {
case MODE.RegFile =>
val finf = ShimAPI.getFileInfo(cp.url)
if(finf.fsize > rule.f_size)
throw ContractException("文件超出指定容量")
if(finf.fhash.sameElements(cp.f_hash))
throw ContractException("文件Hash值不相符")
case MODE.PostActicle =>
//检查主贴标识有效性
if(cp.pid && ctx.api.getState("APP_" + id+"_ARTICLE_"+cp.pid)==null)
throw ContractException("跟帖指定的主贴不存在")
//检查字数限制
if(cp.article.length > rule.wc_max || cp.article.length<rule.wc_min)
throw ContractException("文章字数超出范围")
//保存文章到账本状态中
ctx.api.setStateTx(ctx.tx.Id,"APP_" +id+"_ARTICLE_"+cp.cid,cp.article)
case MODE.Vote =>
if(!rule.candidates.contains(cp.vote_to))
throw ContractException("投票对象不存在")
//更新统计结果
val VOTE_KEY = "APP_" +id+"_VOTE_"+cp.vote_to
val vcout = ctx.api.getState(VOTE_KEY) || 0
ctx.api.setStateTx(ctx.tx.Id,VOTE_KEY, vcout+1)
case MODE.Mark =>
if(!rule.candidates.contains(cp.vote_to))
throw ContractException("评分对象不存在")
if(cp.mark > rule.level_max)
throw ContractException("非法的评分等级")
//更新评分对象在该等级评分上的人数
valMARK_KEY = "APP_" +id+"_MARK_"+cp.vote_to+"_"+cp.mark
val vcout = ctx.api.getState(MARK_KEY) || 0
ctx.api.setStateTx(ctx.tx.Id,MARK_KEY, vcout+1)
case MODE.Survey =>
//检查答题数目与问题数是否一致
val alen = cp.anwser.length
if(alen != rule.questionnaire.length)
throw ContractException("无效答题总数目")
for ( i <- 0 until cp.anwser.length){
var plen = cp.anwser[i].length
var qitem = rule.questionnaire[i]
//检查是否符合单选/多选答题规则
if(plen==0 || plen>qitem.opt.length || qitem.mode==1 &&plen>1)
throw ContractException("无效选项数目")
for (p <- qitem.opt) {
for (a <- cp.anwser[i]) {
//选中了该选项,计数加1
if(a == p ){
var OPT_KEY = "APP_" +id+"_OPT_"+i+"_"+p
val pcout = ctx.api.getState(OPT_KEY) || 0
ctx.api.setStateTx(ctx.tx.Id,OPT_KEY, pcout+1)
}}}}}}}
上述合约方法依赖合约容器上下文提供的接口方法,包括:增强的写入键-值状态方法setStateTx、为登记的Web应用生成界面的方法getWebUIHtml、获取指定账户在指定区块区间提交的签名交易次数的方法getCallCount、获取远程文件的文件大小和Hash值的方法getFileInfo,相关接口方法通过如下程序来定义和实现。
//指定合约代码Id,构建的合约容器的上下文访问接口类
class ShimAPI(cId: String) {
/**
* 增强的写入键-值状态方法,增加写入了该操作对应的签名交易Id
* key:状态的键; value:状态值;txId:对应的签名交易Id
*/
def setStateTx( txId:String, key: String, value: Any):Unit = {
setStateTx(ctx.tx.Id,"TX_"+ key,txId)
setState(key,value)
}
/**
* 为登记的Web应用生成界面, id:Web应用Id; mode:应用类型; rule:有效性检查规则;
* 返回:(有效性提示文本,Web界面定义文本)
*/
def getWebUIHtml(id:String, mode:Int, rule:Rule ):String ={
var desc,ui_htm=""
mode match {
case MODE.RegFile =>
desc = "附件大小不允许超出"+rule.f_size +", 附件Hash值必须与登记的一致"
ui_htm = "<label>url:</label><input type="text" name="url">"
+ "<label>hash:</label><input type="text" name="hash">"
case MODE.PostActicle =>
desc = "发帖字数范围在"+rule.wc_min +"和"+rule.wc_max+"之前,跟帖主贴必须存在"
ui_htm = "<label>主贴Id:</label><input type="text" name="pid">"
+ "<label>title:</label><input type="text" name="title">"
+ "<label>content:</label><input type="text" name="content">"
case MODE.Vote =>
for (cid <- rule.candidates.values)
ui_htm += "<input type=\"radio\" name=\"voteto\" value=\""+cid+"><br>"
case MODE.Mark =>
desc = "评分对象必须已存在,评分等级必须不大于"+rule.level_max
ui_htm = "<label>markTo:</label><input type="text" name="mark_to">"
+ "<label>mark:</label><input type="text" name="mark">"
case MODE.Survey =>
for (q <- rule.questionnaire)
for (ap <- q.opt)
//是否单选问题
if(q.mode==1)
ui_htm += "<input type=\"radio\" name=\""+q.q+"\" value=\""+ap+"><br>"
else
ui_htm += "<input type=\"checkbox\" name=\""+q.q+"\"value=\""+ap+"><br>"
}
}
/**
* 获取指定账户在指定区块区间提交的签名交易次数
* signerId:提交签名交易的用户标识; appId:Web应用Id;
* bh1: 起始区块高度; bh2:结束区块高度
*/
def getCallCount(signerId:String, appId:String, bh1:Long, bh2:Long):Long = {
//区块链共识节点为区块数据建立关系型数据库服务,支持复杂检索
Query query = session.createQuery( "select count(*) fromTransaction
where signer_id=:sid and app_id=:aid and
blockHeight>=:bh1 and blockHeight<=:bh2");
query.setString("sid", signerId);
query.setString("aid", appId);
query.setLong("bh1", bh1);
query.setLong("bh2", bh2);
(Long)query.uniqueResult();
}
/**
* 下载并获得指定附件的文件大小、文件Hash
* url:附件访问url
*/
def getFileInfo(url:String):(Int,Array[Byte])={
val fl = new ByteArrayOutputStream()
//调用下载工具方法,下载附件到内存
FileUtils.copyURLToFile(
new URL(url),
fl,
CONNECT_TIMEOUT,
READ_TIMEOUT)
}
//调用Hash工具方法,采用约定的Hash算法获得附件Hash
if(fl.size(),CryptographicHash.hash(fl.toByteArray()))
...
}
所述步骤103、对认证方进行身份认证,具体包括:区块链服务方通过签名交易调用合约方法ContractCert. signUpSigner,对认证方进行身份认证,然后通过签名交易调用合约方法ContractCert. signUpCert,为其绑定数字证书,数字证书与认证方持有的密钥对应;
所述步骤104、认证Web应用服务方和用户方,具体包括:通过签名交易调用合约方法ContractCert. signUpSigner,对Web应用服务方、Web应用用户方进行身份认证,通过签名交易调用合约方法ContractCert. signUpCert为其绑定数字证书,数字证书与其持有的密钥对应;
所述步骤105、订阅区块数据和状态数据,具体包括:Web应用服务方完成链上的身份认证之后,向区块链服务请求区块/状态数据订阅推送,实时获取与本账户相关的区块数据和状态数据。
第二个阶段:应用登记包括如下步骤:
步骤201、登记Web应用,确定应用类型和规则;
步骤202、建立Web应用实例;
所述步骤201、登记Web应用,确定应用类型和规则,具体包括:
Web应用服务方通过签名交易,调用合约方法ContractWeb. registerApp登记Web应用实例,该合约方法的参数已预设了该Web应用的类型、有效性检查规则、结果统计逻辑;在进行时间区间检查时,采用区块高度代替区块链组网节点本地时间,已避免由于组网节点本地时间不一致无法对有效性达成共识(对于定时出块的区块链系统,可以将时间换算为与之相当的区块高度)。
所述步骤202、建立Web应用实例,具体包括:
区块链服务子系统根据登记信息,为该Web应用生成录入界面,(本实施例以ShimAPI.getWebUIHtml方法举例了如何生成Html录入界面,也可以编写对应逻辑生成其他形式的Web界面),并调用ShimAPI.setStateTx方法将生成的录入界面写入账本状态数据,Web服务方从状态订阅获得的APP_UI_HTML状态获得界面定义,从状态订阅获得的APP_UI_DESC状态获得界面描述,提供给下一步Web用户界面访问。
第三个阶段:应用调用包括如下步骤:
步骤301、Web应用用户选择链上登记的Web应用;
步骤302、输入数据,构造并提交签名交易;
步骤303、验证交易有效性、实时统计结果;
所述步骤302、输入数据,构造并提交签名交易,具体包括:
访问Web应用服务的录入界面,Web应用服务根据步骤202中获得的界面定义和界面描述构造录入界面,用户录入数据之后,构造签名交易调用合约方法ContractWeb.callApp,向区块链提交签名交易;
所述步骤303、验证交易有效性、实时统计结果,具体包括:
区块链组网接收到调用Web应用的签名交易之后,各共识节点首先调用对应的有效性检查合约逻辑,验证有效性;通过有效性检查之后,调用callApp方法中的统计结果更新合约逻辑,调用ShimAPI.setStateTx方法将统计结果实时写入状态数据。
第四个阶段:调用结果展示与验证包括如下步骤:
步骤401、同步区块数据和状态数据,更新展示内容;
步骤402、验证展示内容的来源真实性、内容完整性;
步骤403、返回验证结果。
所述步骤401、同步区块数据和状态数据,更新展示内容,具体包括:Web应用服务方通过区块/状态数据服务获取订阅数据,获得调用所登记的Web应用的签名交易及其写入的状态数据,更新内容和统计结果的展示界面;根据ShimAPI.setStateTx方法在写入状态数据的同时,通过前缀"TX_"写入对应的签名交易Id,展示界面中包含了与展示内容对应的签名交易链接;
所述步骤402、验证展示内容的来源真实性、内容完整性,具体包括:
Web用户方访问与展示内容相关的签名交易链接。从区块链服务获得交易内容,根据交易内容中的签名信息,对内容来源的真实性进行验证;根据交易内容与展示内容的比对,对内容的完整性进行验证。
本发明通过区块链上的“Web应用调用”合约方法,结合用户身份认证合约,实现了常见Web应用类型行为的实名化,对行为有效性检查和行为的结果统计,由区块链共识节点基于合约逻辑进行共识,能够有效避免数据发帖注水、刷票、删差评、修改投票或问卷结果等虚假行为。本发明实现的Web应用类型包括:登记文件、发帖/跟帖、签到、投票、评分、调查问卷等。
在一些实施例中,计算机程序的部分或者全部可以经由ROM而被载入和/或安装到设备上。当计算机程序加载并被执行时,可以执行上文描述的方法的一个或多个步骤。
本申请中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (10)
1.一种可信Web应用的实现方法,该实现方法包括系统建立、应用登记、应用调用以及调用结果展示与验证四个阶段,其特征在于:
系统建立阶段包括如下步骤:
步骤101、建立区块链组网,启动区块/状态数据服务;
步骤102、在区块链上部署身份认证合约、Web应用登记合约、Web应用调用合约;
步骤103、对认证方进行身份认证;
步骤104、认证Web应用服务方和用户方;
步骤105、订阅区块数据和状态数据;
应用登记阶段包括如下步骤:
步骤201、登记Web应用,确定应用类型和规则;
步骤202、建立Web应用实例;
应用调用阶段包括如下步骤:
步骤301、Web应用用户选择链上登记的Web应用;
步骤302、输入数据,构造并提交签名交易;
步骤303、验证交易有效性、实时统计结果;
所述调用结果展示与验证包括如下步骤:
步骤401、同步区块数据和状态数据,更新展示内容;
步骤402、验证展示内容的来源真实性、内容完整性;
步骤403、返回验证结果。
2.根据权利要求1所述的实现方法,其特征在于,所述建立区块链组网,启动区块/状态数据服务,具体包括:区块链组网节点加载创世区块,建立或加入区块链组网;各节点的区块/状态数据服务向区块链组网节点请求区块数据实时同步,并对同步获得的区块/状态数据进行解析,并将解析后的数据存储到关系型数据库,所述关系型数据库用于提供区块数据的复杂检索以及对外提供区块/状态数据订阅服务;所述区块/状态数据订阅服务采用中间件实现或者通过编程实现。
3.根据权利要求1所述的实现方法,其特征在于,在步骤102中,所述身份认证合约ContractCert包括账户认证方法signUpSigner和为账户绑定证书的方法signUpCert。
4.根据权利要求1所述的实现方法,其特征在于,所述步骤103、对认证方进行身份认证,具体包括:区块链服务方通过签名交易调用合约方法ContractCert. signUpSigner,对认证方进行身份认证,然后通过签名交易调用合约方法ContractCert. signUpCert,为其绑定数字证书,数字证书与认证方持有的密钥对应;
所述步骤104、认证Web应用服务方和用户方,具体包括:认证方通过签名交易调用合约方法ContractCert. signUpSigner,对Web应用服务方、Web应用用户方进行身份认证,通过签名交易调用合约方法ContractCert. signUpCert为其绑定数字证书,数字证书与其持有的密钥对应;
所述步骤105、订阅区块数据和状态数据,具体包括:Web应用服务方完成链上的身份认证之后,向区块链服务请求区块/状态数据订阅推送,实时获取与本账户相关的区块/状态数据。
5.根据权利要求1所述的实现方法,其特征在于,所述步骤201、登记Web应用,确定应用类型和规则,具体包括:
Web应用服务方通过签名交易,调用合约方法ContractWeb. registerApp登记Web应用实例,该合约方法的参数已预设了该Web应用的类型、有效性检查规则、结果统计逻辑;在进行时间区间检查时,采用区块高度代替区块链组网节点的本地时间,以避免由于组网节点本地时间不一致无法对有效性达成共识;
所述步骤202、建立Web应用实例,具体包括:
区块链服务子系统根据登记信息,为该Web应用生成录入界面,并调用ShimAPI.setStateTx方法将生成的录入界面写入账本状态数据,Web服务方从状态订阅获得的APP_UI_HTML状态获得界面定义,从状态订阅获得的APP_UI_DESC状态获得界面描述,提供给下一步Web用户界面访问。
6.根据权利要求1所述的实现方法,其特征在于,所述步骤302、输入数据,构造并提交签名交易,具体包括:
访问Web应用服务的录入界面,Web应用服务根据步骤202中获得的界面定义和界面描述构造录入界面,用户录入数据之后,构造签名交易调用合约方法ContractWeb. callApp,向区块链提交签名交易;
所述步骤303、验证交易有效性、实时统计结果,具体包括:
区块链组网接收到调用Web应用的签名交易之后,各共识节点首先调用对应的有效性检查合约逻辑,验证有效性;通过有效性检查之后,调用callApp方法中的统计结果更新合约逻辑,调用ShimAPI.setStateTx方法将统计结果实时写入状态数据。
7.根据权利要求1所述的实现方法,其特征在于,所述步骤401、同步区块数据和状态数据,更新展示内容,具体包括:Web应用服务方通过区块/状态数据服务获取订阅数据,获得调用所登记的Web应用的签名交易及其写入的状态数据,更新内容和统计结果的展示界面;根据ShimAPI.setStateTx方法在写入状态数据的同时,通过前缀"TX_"写入对应的签名交易Id,展示界面中包含了与展示内容对应的签名交易链接;
所述步骤402、验证展示内容的来源真实性、内容完整性,具体包括:
Web用户方访问与展示内容相关的签名交易链接;从区块链服务获得交易内容,根据交易内容中的签名信息,对内容来源的真实性进行验证;根据交易内容与展示内容的比对,对内容的完整性进行验证。
8.一种可信Web应用的实现系统,该系统用于实现如权利要求1至7之一所述的方法,该系统包括区块链服务子系统、身份认证服务子系统、Web应用服务子系统、以及Web用户端,其特征在于:
所述区块链服务子系统是所述可信Web应用的实现系统的核心,由区块链服务方进行建立和运维;
所述身份认证服务子系统,包括账户注册与身份认证子模块、密钥管理子模块、身份认证服务子模块,所述身份认证服务子系统用于向Web应用服务方和Web用户方提供身份认证服务,完成身份认证之后,通过签名交易向区块链服务注册Web应用服务方和Web用户方账户,并绑定Web用户方账户的数字证书;
所述Web应用服务子系统,用于在完成身份认证之后,向区块/状态数据服务订阅并获得推送数据,通过签名交易向区块链组网进行Web应用登记,并根据从数据订阅处获得的订阅结果构建Web应用界面,更新Web应用内容和统计结果;
所述Web用户端,用于在完成身份认证之后,选择已登记的Web应用实例,访问Web应用的录入界面,构造调用Web应用的签名交易,并通过Web应用调用向区块链组网节点提交,访问Web应用的展示内容界面,向区块链服务子系统请求对展示内容来源真实性和内容完整性验证。
9.根据权利要求8所述的实现系统,其特征在于,所述区块链服务子系统包括区块链组网节点、区块/状态数据服务、区块数据、Key-Value状态数据库以及关系型数据库;区块数据和Key-Value状态数据库与所述区块链组网节点相连接,区块/状态数据服务与关系型数据库相连接。
10.根据权利要求9所述的实现系统,其特征在于,所述区块链组网节点,用于参与区块链组网共识,生成存储在文件系统的区块数据和存储在Key-Value状态数据库的账本状态数据;所述区块链组网节点,对外提供接收签名交易并向区块链组网传播的接口,对内提供区块数据实时同步的接口;
所述区块/状态数据服务,用于从所述区块链组网节点实时同步区块数据和状态数据,分析同步到的数据并存储为关系型数据,为区块链组网节点提供区块数据的复杂检索;对外提供附带组网节点签名的区块/状态数据的订阅推送服务、交易内容的来源真实性和内容完整性验证服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110596898.3A CN113037505B (zh) | 2021-05-31 | 2021-05-31 | 一种可信Web应用的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110596898.3A CN113037505B (zh) | 2021-05-31 | 2021-05-31 | 一种可信Web应用的实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113037505A true CN113037505A (zh) | 2021-06-25 |
CN113037505B CN113037505B (zh) | 2021-09-07 |
Family
ID=76455909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110596898.3A Active CN113037505B (zh) | 2021-05-31 | 2021-05-31 | 一种可信Web应用的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113037505B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579193A (zh) * | 2022-03-08 | 2022-06-03 | 国泰新点软件股份有限公司 | 多系统加载方法、装置、设备及存储介质 |
CN114896575A (zh) * | 2022-04-28 | 2022-08-12 | 西安电子科技大学 | 一种基于虚假属性检测的可信身份辨识方法及装置 |
CN118400113A (zh) * | 2024-05-24 | 2024-07-26 | 上海迅傲信息科技有限公司 | 基于系统安全检测的信息对接方法、系统、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110288307A (zh) * | 2019-05-13 | 2019-09-27 | 西安电子科技大学 | 基于Fabric区块链的智能合约协同开发系统及数据处理方法 |
WO2019200461A1 (en) * | 2018-04-21 | 2019-10-24 | Interbit Ltd. | Method and system for performing an action requested by a blockchain |
CN111213128A (zh) * | 2019-10-16 | 2020-05-29 | 支付宝(杭州)信息技术有限公司 | 实现基于区块链的web服务 |
US20200396089A1 (en) * | 2018-07-24 | 2020-12-17 | Tencent Technology (Shenzhen) Company Limited | Digital certificate management method and apparatus, computer device, and storage medium |
CN112818368A (zh) * | 2021-02-09 | 2021-05-18 | 南京邮电大学 | 一种基于区块链智能合约的数字证书认证方法 |
-
2021
- 2021-05-31 CN CN202110596898.3A patent/CN113037505B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019200461A1 (en) * | 2018-04-21 | 2019-10-24 | Interbit Ltd. | Method and system for performing an action requested by a blockchain |
US20200396089A1 (en) * | 2018-07-24 | 2020-12-17 | Tencent Technology (Shenzhen) Company Limited | Digital certificate management method and apparatus, computer device, and storage medium |
CN110288307A (zh) * | 2019-05-13 | 2019-09-27 | 西安电子科技大学 | 基于Fabric区块链的智能合约协同开发系统及数据处理方法 |
CN111213128A (zh) * | 2019-10-16 | 2020-05-29 | 支付宝(杭州)信息技术有限公司 | 实现基于区块链的web服务 |
CN112818368A (zh) * | 2021-02-09 | 2021-05-18 | 南京邮电大学 | 一种基于区块链智能合约的数字证书认证方法 |
Non-Patent Citations (2)
Title |
---|
杨晓宙: "基于Fabric区块链群智合约协同开发系统的设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
郄九玲等: "基于区块链的投票系统设计", 《通信技术》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579193A (zh) * | 2022-03-08 | 2022-06-03 | 国泰新点软件股份有限公司 | 多系统加载方法、装置、设备及存储介质 |
CN114579193B (zh) * | 2022-03-08 | 2024-01-12 | 国泰新点软件股份有限公司 | 多系统加载方法、装置、设备及存储介质 |
CN114896575A (zh) * | 2022-04-28 | 2022-08-12 | 西安电子科技大学 | 一种基于虚假属性检测的可信身份辨识方法及装置 |
CN114896575B (zh) * | 2022-04-28 | 2024-04-16 | 西安电子科技大学 | 一种基于虚假属性检测的可信身份辨识方法及装置 |
CN118400113A (zh) * | 2024-05-24 | 2024-07-26 | 上海迅傲信息科技有限公司 | 基于系统安全检测的信息对接方法、系统、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113037505B (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109791591B (zh) | 经由区块链进行身份和凭证保护及核实的方法和系统 | |
US11899817B2 (en) | Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information | |
AU2019295815B2 (en) | Blockchain-based data verification method and apparatus, and electronic device | |
US10705801B2 (en) | Data processing systems for identity validation of data subject access requests and related methods | |
CN113037505B (zh) | 一种可信Web应用的实现方法及系统 | |
CN109819443B (zh) | 基于区块链的注册认证方法、装置及系统 | |
JP2022000757A (ja) | モデルトレーニングシステムおよび方法および記憶媒体 | |
JP2022000757A5 (zh) | ||
US20180374094A1 (en) | Method and system for indexing consumer enrollment using blockchain | |
CN108846752A (zh) | 数据处理方法、系统、区块链平台以及可读存储介质 | |
US20210049715A1 (en) | Blockchain-based data procesing method, apparatus, and electronic device | |
CN111753014B (zh) | 基于区块链的身份认证方法及装置 | |
CN107832602B (zh) | 一种基于标识的统一电子印章系统 | |
KR20200114188A (ko) | 스마트 컨트랙트 기반 블록체인을 활용한 전자투표 방법 및 시스템. | |
CN110674531B (zh) | 基于区块链的居住信息管理方法、装置、服务器及介质 | |
CN114971827A (zh) | 一种基于区块链的对账方法、装置、电子设备及存储介质 | |
US20230403154A1 (en) | Verifier credential determination by a registrant | |
CN111897879A (zh) | 基于区块链网络的交易记录共享方法、装置及电子设备 | |
CN109831310A (zh) | 一种身份验证方法、系统及相关装置 | |
CN114817888A (zh) | 证书登记和颁发方法、装置与存储介质 | |
CN111817859A (zh) | 基于零知识证明的数据共享方法、装置、设备及存储介质 | |
CN117390693A (zh) | 一种电子签章互签互认的平台及方法 | |
CN115114372A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN110192212B (zh) | 数字资产平台 | |
CN113852639A (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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20210625 Assignee: Zhong kjia speed (Beijing) Information Technology Co.,Ltd. Assignor: BEIJING LIANQI TECHNOLOGY Co.,Ltd. Contract record no.: X2022110000001 Denomination of invention: An implementation method and system of trusted web application Granted publication date: 20210907 License type: Common License Record date: 20220111 |
|
EE01 | Entry into force of recordation of patent licensing contract |