CN111681017A - 基于区块链的货物批量验真方法及装置、电子设备 - Google Patents
基于区块链的货物批量验真方法及装置、电子设备 Download PDFInfo
- Publication number
- CN111681017A CN111681017A CN202010818563.7A CN202010818563A CN111681017A CN 111681017 A CN111681017 A CN 111681017A CN 202010818563 A CN202010818563 A CN 202010818563A CN 111681017 A CN111681017 A CN 111681017A
- Authority
- CN
- China
- Prior art keywords
- goods
- transaction
- verification
- identification
- dealer
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012795 verification Methods 0.000 claims abstract description 126
- 238000003860 storage Methods 0.000 claims description 82
- 238000012544 monitoring process Methods 0.000 claims description 43
- 238000004519 manufacturing process Methods 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 13
- 239000000758 substrate Substances 0.000 claims 4
- 238000005516 engineering process Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 230000008520 organization Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 241000531116 Blitum bonus-henricus Species 0.000 description 2
- 235000008645 Chenopodium bonus henricus Nutrition 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241000270295 Serpentes Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004873 anchoring Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000002904 solvent Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
- G06Q10/0875—Itemisation or classification of parts, supplies or services, e.g. bill of materials
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
- G06Q10/0833—Tracking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/108—Remote banking, e.g. home banking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/018—Certifying business or products
- G06Q30/0185—Product, service or business identity fraud
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/03—Credit; Loans; Processing thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/04—Manufacturing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Entrepreneurship & Innovation (AREA)
- Databases & Information Systems (AREA)
- Human Resources & Organizations (AREA)
- Tourism & Hospitality (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Primary Health Care (AREA)
- Health & Medical Sciences (AREA)
- Manufacturing & Machinery (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书实施例提供一种基于区块链的货物批量验真方法及装置、电子设备。所述方法包括:接收仓储方发送的入库验真交易;所述入库验真交易包含有从入库的任一货物上采集的货物标识和调用的智能合约的合约地址;响应于所述入库验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述货物标识进行校验;在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的入库验真逻辑,查询所述区块链中与所述货物标识关联的溯源标识和经销商标识;确定所述经销商码关联的货物标识与所述溯源码关联的货物标识中相同的目标货物标识;批量将所述区块链中记录所述目标货物标识对应的状态更新为入库验真通过。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的货物批量验真方法及装置、电子设备。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
本说明书实施例提供的一种提高信息安全的方法及装置和电子设备。
根据本说明书实施例的第一方面,提供一种基于区块链的货物批量验真方法,所述区块链中记录了与同一生产批次下货物的货物标识关联的溯源标识,与同一经销商分销货物的货物标识关联的经销商标识;所述方法包括:
接收仓储方发送的入库验真交易;其中,所述入库验真交易包含有所述仓储方搭载的传感硬件从入库的任一货物上采集的货物标识和调用的智能合约的合约地址;
响应于所述入库验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述货物标识进行校验;
在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的入库验真逻辑,查询所述区块链中与所述货物标识关联的溯源标识和经销商标识;确定所述经销商码关联的货物标识与所述溯源码关联的货物标识中相同的目标货物标识;批量将所述区块链中记录所述目标货物标识对应的状态更新为入库验真通过。
根据本说明书实施例的第二方面,提供一种基于区块链的货物批量验真装置,所述区块链中记录了与同一生产批次下货物的货物标识关联的溯源标识,与同一经销商分销货物的货物标识关联的经销商标识;所述装置包括:
接收单元,接收仓储方发送的入库验真交易;其中,所述入库验真交易包含有所述仓储方搭载的传感硬件从入库的任一货物上采集的货物标识和调用的智能合约的合约地址;
校验单元,响应于所述入库验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述货物标识进行校验;
验真单元,在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的入库验真逻辑,查询所述区块链中与所述货物标识关联的溯源标识和经销商标识;确定所述经销商码关联的货物标识与所述溯源码关联的货物标识中相同的目标货物标识;批量将所述区块链中记录所述目标货物标识对应的状态更新为入库验真通过。
根据本说明书实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为上述任一项基于区块链的货物批量验真方法。
本说明书实施例,提供了一种基于区块链的货物批量验真方案,通过区块链中存证的与同一生产批次下货物的货物标识关联的溯源标识,与同一经销商分销货物的货物标识关联的经销商标识来对入库货物进行批量验真。通过采集经销商待入库货物中任一货物的货物标识,查询对应的溯源标识和经销商标识;进而确定所述经销商码关联的货物标识与所述溯源码关联的货物标识中相同的目标货物标识;这些目标货物标识必然是同一生产批次生产出来的真品,进而可以批量将所述区块链中记录所述经销商码关联的目标货物标识对应的状态更新为入库验真通过。如此,通过批量验真,有效提高了入库验真效率。
附图说明
图1是一示例性实施例提供的创建智能合约的流程图;
图2是一示例性实施例提供的调用智能合约的示意图;
图3是一示例性实施例提供的创建智能合约和调用智能合约的示意图;
图4是一示例性实施例提供的一种基于区块链的搭建的货物验真系统的组网示意图;
图5是一示例性实施例提供的一种基于区块链的货物批量验真方法的流程图;
图6是一示例性实施例提供的一种电子设备的结构示意图;
图7是一示例性实施例提供的一种基于区块链的货物批量验真装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实现方式并不代表与本说明书一个或多个实施例相一致的所有实现方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。
其中,去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者(也可称为区块链中的节点)可以读取链上的数据记录、参与交易、以及竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。
私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
其中,区块链中支持的共识算法可以包括:
第一类共识算法,即节点设备需要争夺每一轮的记账周期的记账权的共识算法;例如,工作量证明(Proof of Work, POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)等共识算法;
第二类共识算法,即预先为每一轮记账周期选举记账节点(不需要争夺记账权)的共识算法;例如,实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等共识算法。
在采用第一类共识算法的区块链网络中,争夺记账权的节点设备,都可以在接收到交易后执行该笔交易。争夺记账权的节点设备中可能有一个节点设备在本轮争夺记账权的过程中胜出,成为记账节点。记账节点可以将收到的交易与其它交易一起打包以生成候选区块,并将生成的候选区块或者该候选区块的区块头发送至其它节点设备进行共识。
在采用第二类共识算法的区块链网络中,具有记账权的节点设备在本轮记账前已经商定好。因此,节点设备在接收到交易后,如果自身不是本轮的记账节点,则可以将该交易发送至记账节点。对于本轮的记账节点,在将该交易与其它交易一起打包以生成候选区块的过程中或者之前,可以执行该交易。记账节点在生成候选区块后,可以将该候选区块或者该候选区块的区块头发送至其它节点设备进行共识。
如上所述,无论区块链采用以上示出的哪种共识算法,本轮的记账节点都可以将接收到的交易打包以生成候选区块,并将生成的候选区块或者该候选区块的区块头发送至其它节点设备进行共识验证。如果其它节点设备接收到候选区块或者该候选区块的区块头后,经验证没有问题,可以将该候选区块作为最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。其它节点验证记账节点发来的新的区块或区块头的过程中,也可以执行该区块中的包含的交易。
在区块链领域,有一个重要的概念就是账户(Account);以以太坊为例,以太坊通常将账户划分为外部账户和合约账户两类;外部账户就是由用户直接控制的账户,也称之为用户账户;而合约账户则是由用户通过外部账户创建的,包含合约代码的账户(即智能合约)。
当然,对于一些基于以太坊的架构而衍生出的区块链模型(比如蚂蚁区块链),还可以对区块链支持的账户类型,进行进一步的扩展,在本说明书中不进行特别限定。
对于区块链中的账户而言,通常会通过一个结构体,来维护账户的账户状态。当区块中的交易被执行后,区块链中与该交易相关的账户的状态通常也会发生变化。
以以太坊为例,账户的结构体通常包括Balance,Nonce,Code和Storage等字段。其中:
Balance字段,用于维护账户目前的账户余额;
Nonce字段,用于维护该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;
Code字段,用于维护该账户的合约代码;在实际应用中,Code字段中通常仅维护合约代码的hash值;因而,Code字段通常也称之为Codehash字段。
Storage字段,用于维护该账户的存储内容(默认字段值为空);对于合约账户而言,通常会分配一个独立的存储空间,用以存储该合约账户的存储内容;该独立的存储空间通常称之为该合约账户的账户存储。合约账户的存储内容通常会构建成MPT(MerklePatricia Trie)树的数据结构存储在上述独立的存储空间之中;其中,基于合约账户的存储内容构建成的MPT树,通常也称之为Storage树。而Storage字段通常仅维护该Storage树的根节点;因此,Storage字段通常也称之为StorageRoot字段。
其中,对于外部账户而言,以上示出的Code字段和Storage字段的字段值均为空值。
对于大多数区块链模型,通常都会使用Merkle树;或者,基于Merkle树的数据结构,来存储和维护数据。以以太坊为例,以太坊使用了MPT树(一种Merkle树变种),作为数据组织形式,用来组织和管理账户状态、交易信息等重要数据。
以太坊针对区块链中需要存储和维护的数据,设计了三棵MPT树,分别是MPT状态树、MPT交易树和MPT收据树。其中,除了以上三棵MPT树以外,实际上还存在一棵基于合约账户的存储内容构建的Storage树。
MPT状态树,是由区块链中所有账户的账户状态(state)数据组织成的MPT树;MPT交易树,是由区块链中的交易(transaction)数据组织成的MPT树;MPT收据树,是区块中的交易在执行完毕后生成的与每笔交易对应的交易(receipt)收据组织成的MPT树。以上示出的MPT状态树、MPT交易树和MPT收据树的根节点的hash值,最终都会被添加至对应区块的区块头中。
其中,MPT交易树和MPT收据树均与区块相对应,即每一个区块都有自己的MPT交易树和MPT收据树。而MPT状态树是一个全局的MPT树,并不与某一个特定的区块相对应,而是涵盖了区块链中所有账户的账户状态数据。
对于组织成的MPT交易树、MPT收据树和MPT状态树,最终都会在采用多级数据存储结构的Key-Value型数据库(比如,LevelDB)中进行存储。
而采用多级数据存储结构的上述数据库,通常采用多级数据存储的结构,可以被划分为n级数据存储;例如,各级数据存储可以依次设为L0,L1,L2,L3....L(n-1);对于上述数据库中的各级数据存储而言,等级编号越小通常级别越高;例如,L0存储的是最新的若干区块的数据,L1存储的是次新的若干区块的数据,以此类推。
其中,各级数据存储对应的存储介质的读写性能,通常也可以存在性能差异;例如,级别高(即等级编号较小的)的数据存储对应的存储介质的读写性能,可以高于级别低的数据存储对应的存储介质的读写性能。在实际应用中,级别高的数据存储,可以使用存储成本较高,存储性能较优的存储介质;而级别低的数据存储,可以使用单位成本低,且容量较大的存储介质。
在实际应用中,随着区块链的区块号的增长(也称之为区块高度),在数据库中存储的数据,会包含很多历史数据;而且,区块号越小的区块中的数据越久远,越不重要。因此,为了降低整体的存储成本,通常可以对不同区块高度的数据进行“区别对待”;例如,可以将区块号较小的区块中的数据,存储至成本较低的存储介质上;而将区块号较大的区块中的数据,存储在成本较高的存储介质上。
需要说明的是,区块链每产生一个最新区块,则在该最新区块中的交易被执行之后,区块链中这些被执行交易的相关账户(可以是外部账户也可以是合约账户)的账户状态,通常也会随之发生变化;
例如,当区块中的一笔“转账交易”执行完毕后,与该“转账交易”相关的转出方账户和转入方账户的余额(即这些账户的Balance字段的字段值),通常也会随之发生变化。
而节点设备在区块链产生的最新区块中的交易执行完毕后,由于当前区块链中的账户状态发生了变化,因此节点设备需要根据区块链中所有账户当前的账户状态数据,来构建MPT状态树,用于维护区块链中所有账户的最新状态。
也即,每当区块链中产生一个最新区块,并且该最新区块中的交易执行完毕后,导致区块链中的账户状态发生了变化,节点设备都需要基于区块链中所有账户最新的账户状态数据,重新构建一棵MPT状态树。换句话说,区块链中每一个区块,都有一个与之对应的MPT状态树;该MPT状态树,维护了在该区块中的交易在执行完毕后,区块链中所有账户最新的账户状态。
以区块链的账户状态数据组织成的MPT状态树为例进行说明。
MPT树,是一种较为传统的经过改良的Merkle树变种,其融合了Merkle树和Trie字典树(也称之为前缀树)两种树形结构的优点。
在MPT树中通常包括三种数据节点,分别为叶子节点(leaf node),扩展节点(extension node)和分支节点(branch node)。
扩展节点,表示为[key,value]的一个键值对,其中key是种特殊的十六进制编码字符,表示账户地址的共享字符前缀;其中,所述共享字符前缀,是指多有区块链账户地址所具有的相同的一个或者多个字符组成的前缀; value是其它节点的hash值(hash指针),也就是说可以通过hash指针链接到其它节点。分支节点,包含17个元素,前16个元素对应着key中的16个可能的十六进制字符,一个字符对应一个nibble(半字节),分别表示一个账户地址的共享字符前缀(长度为一个字符)。其中,如果有一个[key,value]对在这个分支节点终止,则该分支节点可以充当叶子节点的角色,最后一个元素则代表叶子节点的value值;反之,分支节点的最后一个元素,可以为空值。
叶子节点,是表示为[key,value]的一个键值对,其中key也是种特殊的十六进制编码字符,表示账户地址的字符后缀;其中,账户地址的字符后缀和账户地址的共享字符前缀共同组成了一个完整的账户地址;所述字符后缀,是指除了账户地址的共享字符前缀以外的最后一个或者多个字符组成的后缀; value是该叶子节点对应的账户地址的状态数据(即以上示出的结构体)。
由于在MPT树上,从根节点到一个叶子节点的搜索路径上的字符,组成一个完整的账户地址;因此,对于分支节点而言,其既可以是上述搜索路径的终止节点,也可以是上述搜索路径的中间节点。
假设需要组织成MTP状态树的账户状态数据如下表1所示:
在表1中,账户地址是由若干16进制的字符构成的字符串。账户状态state,是由上述Balance,Nonce,Code和Storage等字段构成的结构体。
最终按照表1中的账户状态数据组织成的MPT状态树;该MPT状态树是由4个叶子节点,2个分支节点,和2个扩展节点(其中一个扩展节点作为根节点)构成。
prefix字段为扩展节点和叶子节点共同具有的前缀字段。该prefix字段的不同字段值可以用于表示不同的节点类型。
例如,prefix字段的取值为0,表示包含偶数个nibbles的扩展节点;如前所述,nibble表示半字节,由4位二进制组成,一个nibble可以对应一个组成账户地址的字符。prefix字段的取值为1,表示包含奇数个nibble(s)的扩展节点;prefix字段的取值为2,表示包含偶数个nibbles的叶子节点;prefix字段的取值为3,表示包含奇数个nibble(s)的叶子节点。
而分支节点,由于其是并列单nibble的前缀节点,因此分支节点不具有上述prefix字段。
扩展节点中的Shared nibble字段,对应该扩展节点所包含的键值对的key值,表示账户地址之间的共同字符前缀;比如,上表中的所有账户地址均具有共同的字符前缀a7。Next Node字段中填充下一个节点的hash值(hash指针)。
分支节点中的16进制字符0~f字段,对应该分支节点所包含的键值对的key值;如果该分支节点为账户地址在MPT树上的搜索路径上的中间节点,则该分支节点的Value字段可以为空值。0~f字段中用于填充下一个节点的hash值。
叶子节点中的Key-end,对应该叶子节点所包含的键值对的key值,表示账户地址的最后几个字符(账户地址的字符后缀)。从根节点搜索到叶子节点的搜索路径上的各个节点的key值,构成了一个完整的账户地址。该叶子节点的Value字段填充账户地址对应的账户状态数据;例如,可以对上述Balance,Nonce,Code和storage等字段构成的结构体进行编码后,填充至叶子节点的Value字段。
进一步的, MPT状态树上的node,最终也是以Key-Value键值对的形式存储在数据库中;
其中,当MPT状态树上的node在数据库中进行存储时,MPT状态树上的node的键值对中的key,可以为node所包含的数据内容的hash值;MPT状态树上的node的键值对中的Value,为node所包含的数据内容。
也即,在将MPT状态树上的node存储至数据库时,可以计算该node所包含的数据内容的hash值(即对node整体进行hash计算),并将计算出的hash值作为key,将该node所包含的数据内容作为value,生成Key-Value键值对;然后,将生成的Key-Value键值对存储至数据库中。
由于MPT状态树上的node,是以node所包含的数据内容的hash值为Key,node所包含的数据内容为value进行存储;因此,在需要查询MPT状态树上的node时,通常可以基于node所包含的数据内容的hash值作为key来进行内容寻址。
而采用“内容寻址”,对于一些“内容重复”的node,则通常可以进行“复用”,以节约数据存储的存储空间。
进一步介绍MPT状态树上的node复用。需要说明的是,在实际应用中,当区块链产生的一个最新区块中的交易执行完毕后,可能仅仅会导致部分账户的账户状态发生变化;因此,在构建MPT状态树时,并不需要基于区块链中所有的账户当前的状态数据,重新构建一棵完整的MPT状态树,而只需要在该最新区块之前的区块对应的MPT状态树的基础上,对部分账户状态发生变化的账户对应的node进行更新即可。而对于MPT状态树上与账户状态未发生变化的账户对应的node,由于这些node未发生数据更新,因此可以直接复用该最新区块之前的区块对应的MPT状态树上相应的node即可。
假设表1中的账户状态数据,为Block N中的交易执行完毕后,区块链上所有账户的最新账户状态;基于表1中的账户状态数据组织成的MPT状态树。
假设当Block N+1中的交易执行完毕后,导致上述表1中的账户地址为“a7f9365”的账户状态,由“state3”更新为“state5”;此时,在Block N+1更新MPT状态树时,并不需要在Block N+1中的交易执行完毕后,基于区块链中所有的账户当前的状态数据重新构建一棵MPT状态树。
在这种情况下,可以仅将Block N 对应的MPT状态树上,“key-end”为“9365”的叶子节点中的Value,由“state3”更新为“state5”,并继续更新从root节点到该叶子节点的路径上的所有节点的hash指针;
也即,当MPT状态树上的叶子节点发生更新,由于该叶子节点整体的hash值发生更新,那么从根节点到该叶子节点的路径上的所有节点的hash指针也会随之发生更新。
例如,除了需要更新“key-end”为“9365”的叶子节点中的Value值以外,还需要更新该叶子节点的上一个分支节点(Branch Node)的f字段中填充的,指向该叶子节点的hash指针;进一步的,还可以继续向根节点追溯,继续更新该分支节点的上一个根节点(RootExtension Node)的“Next Node”字段中填充的,指向该分支节点的hash指针。
而除了以上发生更新的节点以外,其它未发生更新的节点,都可以直接复用BlockN的MPT状态树上对应的节点即可;
其中,由于Block N对应的MPT树,最终需要作为历史数据进行保留;因此,在Block N+1更新MPT状态树时,对于这些发生更新的node,并不是在Block N对应的MPT状态树上原来的node的基础上,直接进行修改更新,而是在Block N+1对应的MPT树上重新创建这些发生更新的node。也即,在与Block N+1对应的MPT状态树上,实际上只需要重新创建少量发生更新的node,对于其它未发生更新的node,可以通过直接复用Block N对应的MPT状态树上对应的节点。
例如,对于Block N+1对应的MPT状态树上,实际上只需要重新创建一个作为根节点的扩展节点、一个分支节点和一个叶子节点;对于未发生更新的node,可以通过在该MPT状态树上这些重新创建的node中,添加指向Block N对应的MPT状态树上的相应node的hash指针来完成node的“复用”。而Block N对应的MPT状态树上那些更新之前的node,将作为历史账户状态数据进行保存;比如,“key-end”为“9365”,且Value为“state3”的叶子节点,将作为历史数据进行保留。
在以上例子中,以Block N+1的MPT状态树上的少量node发生内容更新,从而可以“复用”上一个区块Block N的大多数node为例进行了说明。而在实际应用中,Block N+1的MPT状态树上也可能会较上一个区块Block N新增node。在这种情况下,该新增的node虽然无法直接从上一个区块Block N的MPT树中进行“复用”,但有可能从更早之前的区块的MPT状态树上进行“复用”;
例如,Block N+1的MPT状态树上新增的node,虽然没在Block N的MPT状态树上出现过,但可能出现在更早的Block的MPT状态树上;比如,出现在Block N-1的MPT状态树上;因此,Block N+1的MPT状态树上新增的node,可以直接复用Block N-1的MPT状态树上对应的node即可。
在实际应用中,不论是公有链、私有链还是联盟链,都可能提供智能合约(Smartcontract)的功能。区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑。以太坊作为一个可编程区块链,其核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,通过它可以实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,EVM直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”),所以部署在区块链上的智能合约可以是字节码。如图1所示,Bob将一笔包含创建智能合约信息的交易(Transaction)发送到以太坊网络后,各节点均可以在EVM中执行这笔交易。其中,图中1中交易的From字段用于记录发起创建智能合约的账户的地址,交易的Data字段的字段值保存的合约代码可以是字节码,交易的To字段的字段值为一个null(空)的账户。当节点间通过共识机制达成一致后,这个智能合约成功创建,后续用户可以调用这个智能合约。
智能合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址;比如,图1中各节点中的“0x68e12cf284…”就代表了创建的这个合约账户的地址;合约代码(Code)和账户存储(Storage)将保存在该合约账户的账户存储中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。
前述提到,包含创建智能合约的交易的Data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,高级语言可以采用诸如Solidity、Serpent、LLL语言等。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。
以Solidity语言为例,用其编写的合约代码与面向对象编程语言中的类(Class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储(Storage)字段中的值,用于保存合约的状态。
如图2所示,仍以以太坊为例,Bob将一笔包含调用智能合约信息的交易发送到以太坊网络后,各节点均可以在EVM中执行这笔交易。其中,图2中交易的From字段用于记录发起调用智能合约的账户的地址,To字段用于记录被调用的智能合约的地址,交易的Data字段用于记录调用智能合约的方法和参数。调用智能合约后,合约账户的账户状态可能改变。后续,某个客户端可以通过接入的区块链节点(例如图2中的节点1)查看合约账户的账户状态。
智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
创建智能合约和调用智能合约的示意图如图3所示。以太坊中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,各个节点的EVM可以分别执行该交易,将智能合约代码分布式的运行在以太坊网络中每个节点的虚拟机中。
以以太坊代表的传统的区块链模型,为了在区块链上实现“价值转移”,通常都支持将现实世界的货币转换为能够在链上流通的虚拟代币。
而在区块链领域,对于一些基于以太坊的架构而衍生出的区块链模型(比如蚂蚁区块链),通常不再支持将现实世界的货币转换为能够在链上流通的虚拟代币的功能;取而代之的是,在这些区块链模型中,可以将现实世界中的一些非货币属性的实体资产,转化成为能够在区块链上流通的虚拟资产。
其中,需要说明的是,将现实世界中的非货币属性的实体资产转化为区块链上的虚拟资产,通常是指将该实体资产与区块链上的虚拟资产进行“锚定”,作为这些虚拟资产的价值支撑,进而在区块链上产生与实体资产的价值匹配,且能够在区块链上的区块链账户之间进行流通的虚拟资产的过程。
在实现时,可以对区块链支持的账户类型进行扩展,在区块链支持的账户类型的基础上,再扩展出一种资产账户(也称之为资产对象);比如,可以在以太坊支持的外部账户、合约账户的基础上,再扩展出一种资产账户;扩展出的该资产账户,即为可以将现实世界中的非货币属性的实体资产作为价值支撑,且可以在区块链账户之间流通的虚拟资产。
对于接入这类区块链的用户而言,除了可以在区块链上完成用户账户、智能合约的创建以外,在区块链上创建一笔与现实世界的非货币属性的实体资产价值匹配的虚拟资产,在区块链上进行流通;
例如,用户可以将持有的房产、股票、贷款合同、票据、应收账款等非货币属性的实体资产,转换为价值匹配的虚拟资产在区块链上流通。
其中,对于上述资产账户而言,具体也可以通过一个结构体,来维护账户的账户状态。上述资产账户的结构体所包含的内容,可以与以太坊相同,当然也可以基于实际的需求进行设计;
在一种实现方式中,以上述资产账户的结构体所包含的内容与以太坊相同为例,上述资产账户的结构体也可以包括以上描述的Balance,Nonce,Code和Storage等字段。
需要说明的是,在以太坊中,Balance字段通常用于维护账户目前的账户余额;而对于基于以太坊的架构而衍生出的区块链模型而言,由于其可能并不支持将现实世界的货币转换为能够在链上流通的虚拟代币,因此在这类区块链中,可以对Balance字段的含义进行扩展,不再表示账户的“余额”,而是用于维护账户持有的“虚拟资产”对应的资产账户的地址信息。其中,在实际应用中,Balance字段中可以维护多笔“虚拟资产”对应的资产账户的地址信息。
在这种情况下,以上示出的外部账户、合约账户和资产账户,均可以通过在Balance字段中添加需要持有的“虚拟资产”对应的资产账户的地址信息,来持有这笔虚拟资产。即除了外部账户和合约账户以外,资产账户本身也可以持有虚拟资产。
对于资产账户而言,Nonce,Code字段的字段值可以为空值(也可以不为空);而Storage字段的字段值可以不再是空值;Storage字段可以用于维护与该资产账户对应的“虚拟资产”的资产状态。其中,在Storage字段中维护与该资产账户对应的“虚拟资产”的资产状态的具体方式,可以基于需求灵活的进行设计,不再赘述。
在基于以太坊的架构而衍生出的区块链模型中,用户可以通过以下示出的实现方式,在区块链上创建一笔与现实世界的非货币属性的实体资产价值匹配的虚拟资产:
在一种实现方式中,可以对区块链支持的交易类型进行扩展,扩展出一种用于创建虚拟资产的交易;比如,以太坊支持的交易类型通常包括普通的转账交易、创建智能合约的交易和调用智能合约的交易,则可以在以上三种类型的交易的基础上,再扩展出一种用于创建虚拟资产的交易。
在这种情况下,用户可以通过客户端向区块链网络中发布一笔用于创建虚拟资产的交易,由区块链中的节点设备在本地的EVM中执行这笔交易,来为该用户创建虚拟资产。当各节点设备通过共识机制达成一致后,这笔虚拟资产成功创建,区块链上出现一个与这笔虚拟资产对应的资产账户,并拥有一个特定的地址。
在另一种实现方式中,也可以在区块链上部署用于创建虚拟资产的智能合约;其中,部署用于创建虚拟资产的智能合约的过程不再赘述。
在这种情况下,用户可以通过客户端向区块链网络中发布一笔用于调用该智能合约的交易,由区块链中的节点设备在本地的EVM中执行这笔交易,并在EVM中运行智能合约相关的合约代码,来为该用户创建虚拟资产。当各节点设备通过共识机制达成一致后,这笔虚拟资产成功创建,区块链上出现一个与这笔虚拟资产对应的资产账户,并拥有一个特定的地址。
当然,对于一些基于以太坊的架构而衍生出的区块链模型,如果其也支持将现实世界的货币转换为能够在链上流通的虚拟代币的功能,那么仍然可以将现实世界中的一些非货币属性的实体资产,转化成为能够在区块链上流通的虚拟代币的形式,在区块链上流通,在本说明书中不再赘述。
在跨链场景下,多个区块链可以通过跨链中继实现跨链对接。
其中,跨链中继,可以通过桥接接口与多个区块链分别进行对接,并基于实现的数据搬运逻辑,完成该多个区块链之间的跨链数据同步。
在实现上述跨链中继时所采用的跨链技术,在本说明书中不进行特别限定;例如,在实际应用中,可以通过侧链技术、公证人技术等跨链机制,将多个区块链连接起来。
当多个区块链通过跨链中继实现对接之后,区块链之间就可以去读取并认证其它区块链上的数据,也可以通过跨链中继去调用其它区块链上部署的智能合约。
需要说明的是,跨链中继仅用于多个区块链之间搬运数据,并不需要对搬运的数据进行持久化存储,也不需要维护所搬运的数据的数据状态。在实际应用中,跨链中继可以配置在其所连接的多个区块链之外的设备、节点或平台等处,也可以配置在其所连接的多个区块链的节点设备上,在本说明书中不进行特别限定。
区块链上部署的智能合约,通常只能引用区块链上存储的数据内容;而在实际应用中,对基于智能合约技术实现的一些复杂的业务场景,智能合约可能还需要引用一些链外的数据实体上的外部数据。
在这种场景下,区块链上部署的智能合约,可以通过Oracle预言机,来引用链外的数据实体上的数据,进而实现智能合约与真实世界的数据实体之间的数据交互。其中,链外的数据实体,可以包括诸如部署在链外的中心化的服务器或者数据中心,等等。
需要说明的是,跨链中继用于连接两个区块链,而Oracle预言机用于连接区块链与链外的数据实体,实现区块链与真实世界的数据交互。
在实际应用中,在为区块链上的智能合约部署预言机时,可以先在区块链上部署一个与预言机对应的预言机智能合约;其中,该预言机智能合约用于维护预言机发给区块链上的智能合约的外部数据;例如,预言机发给区块链上的智能合约的外部数据,可以存储在预言机智能合约的账户存储空间中。
当区块链上的目标智能合约被调用时,可以从该预言机智能合约的账户存储空间中,来读取该目标智能合约所需的外部数据,来完成智能合约的调用过程。
需要说明的是,预言机在向区块链上的智能合约发送外部数据时,可以采用主动发送的方式,也可以采用被动发送的方式。
在一种实现方式中,链外的数据实体可以将需要提供给目标智能合约的外部数据,利用预言机的私钥进行签名后,发送给上述预言机智能合约;例如,在时间时,可以采用周期性发送的方式,将签名后的上述外部数据发送给上述预言机智能合约;
而在上述预言机智能合约可以维护预言机的CA证书,在收到链外的数据实体发送的外部数据后,可以使用该CA证书中维护的该预言机的公钥,对该外部数据的签名进行验证,并在验证通过后,将链外的数据实体发送的外部数据在该预言机智能合约的账户存储空间中进行存储。
在另一种实现方式中,当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以利用智能合约的事件机制,与上述预言机进行交互,并由上述预言机将该目标智能合约所需的外部数据,发送至该预言机智能合约的账户存储空间中。
例如,当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以生成一个外部数据获取事件,并将该外部数据获取事件记录到调用该智能合约的那笔交易的交易日志中,并将该交易日志存储到节点设备的存储空间;而上述预言机可以监听节点设备的存储空间中存储的该预言机智能合约产生的交易日志,并在监听到交易日志中的外部数据获取事件后,响应监听到的该外部数据获取事件,将上述目标智能合约所需的外部数据,发送给上述预言机智能合约。
智能合约的事件机制,是智能合约与链外实体进行交互的一种方式。对于区块链上部署的智能合约来说,通常无法直接与链外实体进行交互;例如,智能合约在调用完成后,通常无法将智能合约的调用结果,点对点的发送给智能合约的调用发起方。
智能合约在调用的过程中产生的调用结果(包括中间结果和最终的调用结果),通常都会以事件(Event)的形式,记录到调用该智能合约的那笔交易的交易日志(transaction logs),在节点设备的存储空间中进行存储。而需要与智能合约进行交互的链外实体,则可以通过监听节点设备的存储空间中存储的上述交易日志的方式,来获取智能合约的调用结果;
例如,以以太坊为例,交易日志最终会作为调用该智能合约的那笔交易笔交易的收据(receipt)的一部分内容,存储在以上描述的MPT收据树中。而与智能合约进行交互的链外实体,可以监听节点设备的存储空间中存储的MPT收据树上的交易收据,并从监听到的交易收据中,来获取智能合约生成的事件。
本说明书中,旨在提出一种利用区块链中存证的与同一生产批次下货物的货物标识关联的溯源标识,与同一经销商分销货物的货物标识关联的经销商标识来对入库货物进行批量验真的技术方案。另外,还可以为经销商的融资提供货物质押服务,具体通过对仓储内经销商库存货物进行批量验真,以保障质押的货物始终在仓储内且都为真,如此银行方依据仓储内经销商的货物为质押向该经销商提供贷款。
请参考图4,图4是本说明书一实施例提供的一种基于区块链的搭建的货物验真系统的组网示意图。
如图4所示,用于对货物进行验真的货物验真系统是基于区块链网络搭建的,所述区块链网络中记录了与同一生产批次下货物的货物标识关联的溯源标识,与同一经销商分销货物的货物标识关联的经销商标识,并且所述溯源标识与经销商标识可以通过同一货物标识间接关联。其中,所述货物标识是由货物的生产方为生产的每个货物分为的具有唯一性的标识。所述溯源标识是由货物的生产方为同一生产批次下的所有货物分配的具有唯一性的标识。所述经销商标识是为经销商下分销的所有货物分配的具有唯一性的标识。
该区块链网络包括生产货物的生产方节点,存储货物的仓储方节点,分销货物的经销商节点,为经销商提供资金的银行方节点,使用货物的使用方节点等。这些节点可以作为区块链节点设备接入该区块链网络中。
其中,仓储方节点可以搭载有传感硬件,通过所述传感硬件对入库或者对库内的货物进行实时监控并将监控数据发布至区块链中存储,上述各方可以基于与货物批量验真系统对应的客户端接入对应的节点以访问区块链。
如图4所示,区块链上部署有用于对货物进行管理的智能合约,在智能合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的合约账户地址;生产方、仓储方、经销商、银行方、使用方可以基于持有的客户端通过接入对应的区块链节点查看该合约账户的账户状态。
具体地,所述智能合约中的合约代码对应的代码逻辑包括针对货物的经销商码进行校验的校验逻辑、对货物进行验真的验真逻辑,以及执行其它业务功能的逻辑。
请进一步结合图5所示的基于区块链的货物批量验真方法的流程图进行说明,如前所述的,所述区块链中所述区块链中记录了与同一生产批次下货物的货物标识关联的溯源标识,与同一经销商分销货物的货物标识关联的经销商标识。所述区块链中部署了用于对货物进行验真的智能合约,所述智能合约中的合约代码对应的代码逻辑包括针对经销商码进行校验的校验逻辑,以及对货物进行验真的验真逻辑。所述方法具体可以包括以下步骤:
步骤210,接收仓储方发送的入库验真交易;其中,所述入库验真交易包含有所述仓储方搭载的传感硬件从入库的任一货物上采集的货物标识和调用的智能合约的合约地址;
步骤220,响应于所述入库验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述货物标识进行校验;
步骤230,在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的验真逻辑,查询所述区块链中与所述货物标识关联的溯源标识和经销商标识;确定所述经销商码关联的货物标识与所述溯源码关联的货物标识中相同的目标货物标识;批量将所述区块链中记录所述目标货物标识对应的状态更新为入库验真通过。
本说明书实施例可以用于基于区块链网络搭建的货物验真系统;其组网架构,请参见图4及前文图4相关的描述,这里不再赘述。
在本说明书所描述的区块链,具体可以包括生产方节点、仓储方节点、经销商节点和使用方节点作为成员接入的任意类型的区块链网络。
在示出的一种实施例中,上述区块链为联盟链,生产方节点、仓储方节点、经销商节点和使用方节点都可以作为成员设备加入至上述区块链中。
在本说明书中,所述区块链中存储的货物标识、溯源标识和经销商码可以是由货物的生产方上链存证的。
通常在生产环节中,针对生产出来的货物,可以分配一个唯一性的货物标识。另外,针对同一批生产出来的货物,还可以分配一个相同的溯源标识。同样的,所述溯源标识同样是具有唯一性的标识。一个溯源标识表示一个生产批次,因此同一批生产出来的货物可以对应相同的溯源标识。一个溯源标识可以对应多个货物标识。
在生产方将货物发给经销商的环节中,针对给同一经销商进行分销的货物,可以分配一个相同的经销商标识。所述经销商标识同样是具有唯一性的标识。一个经销商标识表示一次分销,因此同一经销商分销的货物可以对应相同的经销商标识。即一个经销商标识可以对应多个货物标识。
本说明书中的“标识”(货物标识、溯源标识、经销商标识等)可以是以图形码的形式展示的。以货物二维码为例,在生产出货物后,可以将唯一对应该货物的货物二维码印刷到货物表面,或者制作成货物二维码贴纸黏贴到货物表面。
在一实施例中,所述生产方可以分别将上述溯源标识和对应的货物标识;经销商标识和对应的货物标识上链存证。如此,区块链就可以记录与同一生产批次下货物的货物标识关联的溯源标识,与同一经销商分销货物的货物标识关联的经销商标识。
在本说明书中,仓储方可以用于为经销商提供存放货物的能力。当经销商需要将分销的货物存放到仓储方时,仓储方需要对待入库的货物进行验真。
其中,所述仓储方可以搭载有线下的传感硬件;所述传感硬件可以对仓库入库的货物进行实时监控。
例如,在实际应用中,上述传感硬件可以包括视频采集硬件(例如:摄像头等)、无线传感采集硬件(例如:RFID标签采集硬件等)、图形码扫描硬件(例如图形码扫描硬件等)。
在实际验真过程中,仓储方可以将上述传感硬件从入库的任一货物上采集的货物标识和区块链部署的智能合约的合约地址组装为入库验真交易,并将所述入库验真交易发送至区块链网络。
所述区块链网络中的任一节点设备在接收到该入库验真交易后,
响应于所述入库验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述货物标识进行校验。
上述对货物标识进行校验可以是指,查询所述区块链中是否存储有该货物标识。如果没有,说明该货物标识对应的货物是非真品。如果有,说明该货物标识对应的货物是真品;进而才可以执行后续的验真逻辑。
在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的验真逻辑,查询所述区块链中与所述货物标识关联的溯源标识和经销商标识。
此时,通过这个货物标识就可以建立起溯源标识与经销商标识之间的对应关系。
进一步,可以获取溯源标识关联的同一生产批次的货物标识(以下称为第一类货物标识),和经销商标识关联的同一经销商分销的货物标识(以下称为第二类货物标识)。相当于构建了第一类货物标识和第二类货物标识之间的比较渠道。
如果比较第一类货物标识和第二类货物标识,可以得到货币标识相同的目标货物标识(以下称为第三类货物标识)。
第三类货物标识最少的情况是,仅包括入库验真交易中的货物标识,即经销商标识关联的货物标识中仅入库验真交易中的货物标识是一个批次的货物。
第三类货物标识最多的情况是,包括全部的第二类货物标识,即经销商标识关联的货物标识都是同一批次的货物。
第三类货物标识的数量范围是[1,m],m是经销商标识关联的货物标识的数量。
在确定了目标货物标识后,由于目标货物标识即对应了溯源标识也对应了经销商标识,说明这些目标货物标识对应的货物是同一生产批次下的货物。因此,可以批量将所述区块链中记录所述目标货物标识对应的状态更新为入库验真通过。
通过上述实施例,只需要一件入库的货物验真通过就可以批量确定其他货物也为真,如此无需逐一对每件货物进行验真,提高了入库验真效率。
在本说明书中,所述区块链中还记录了与同一库位下货物的货物标识关联的库位标识;所述方法还包括:
接收仓储方在经销商将货物质押给银行方后发送的库存验真交易;其中,所述库存验真交易包含有所述仓储方搭载的传感硬件采集到存放经销商货物库位的库位标识和调用的智能合约的合约地址;
响应于所述库存验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述库位标识进行校验;
在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的库存验真逻辑,确定所述经销商标识关联的货物标识与所述库位标识关联的货物标识中相同的目标货物标识;批量将所述区块链中记录所述目标货物标识对应的状态更新为库存验真通过;以使得所述银行方在确定所述经销商质押的货物对应的状态数据为库存验真通过时,向所述经销商方发放贷款。
通过该实施例,当经销商向银行质押仓储内货物时,由仓储方对经销商库存货物进行批量验真,以保障质押的货物始终在仓储内且都为真,如此银行方依据仓储内经销商的货物为质押向该经销商提供贷款。
在本说明书中,进一步还可以包括银行方放款后的实施例:
接收经销商在接收到银行方发放的贷款后发送的贷款接收交易;
响应于所述贷款接收交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从经销商更新为银行方。
在本说明书中,进一步还可以包括经销商按期还款的实施例:
接收银行方在接收到经销商偿还的贷款后发送的贷款偿还交易;
响应于所述贷款偿还交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从银行方更新为经销商。
在本说明书中,进一步还可以包括银行方逾期未还款的实施例:
接收银行方在接收到经销商偿还的贷款后发送的贷款逾期交易;
响应于所述贷款逾期交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从经销商更新为银行方。
在本说明书中,进一步还提供作为消费者的使用方对货物进行验真的技术方案。具体地,
接收使用方发送的使用验真交易;所述使用验真交易包含有所述使用方搭载的传感硬件采集货物的货物标识和调用的智能合约的合约地址;
响应于所述使用验真交易,调用与所述合约地址对应的智能合约中声明的货物验真逻辑,在查询到所述区块链中存储有所述货物标识的情况下,向所述使用方返回该货物为真的信息。
在实际应用中,所述货物标识可以包括货物外包装上的货物二维码。使用方搭载的传感硬件可以是扫码硬件(如扫描二维码的摄像头等);使用方通过“扫一扫验真”来确定当前货物是否为真品。
在本说明书中,针对仓储方管理的仓储空间可以进行实时监控,并在监控到发送安全隐患的情况下,自动将监控到的表示安全隐患的证据上链存证。
在一实施例中,所述方法还包括:
接收仓储方发起的环境监控交易;其中,所述环境监控交易包含有所述仓储方搭载的环境传感硬件采集到的大于预设环境阈值时的环境数据,和调用的智能合约的合约地址;
响应于所述环境监控交易,调用与所述合约地址对应的智能合约中声明的环境监控逻辑,将所述环境数据存储在所述区块链。
本说明书中,仓储方管理的仓储空间中可以分布设置有环境传感硬件,这些环境传感硬件用于实时监控仓储空间内的环境数据,并在监控到环境数据大于预设环境阈值时,将环境数据上报给仓库方节点,以上仓库方节点发送环境监控交易。
其中,所述环境数据的类型包括温度、湿度、粉尘浓度、危险气体浓度等。对应的,所述环境传感硬件可以包括温度传感器、湿度传感器等。
在一实施例中,所述方法还包括:
接收仓储方发起的视频监控交易;其中,所述视频监控交易包含有所述仓储方搭载视频传感硬件采集到的仓储空间内存在安全隐患的视频数据,和调用的智能合约的合约地址;
响应于所述视频监控交易,调用与所述合约地址对应的智能合约中声明的视频监控逻辑,将所述视频数据存储在所述区块链。
本说明书中,仓储方管理的仓储空间中可以分布设置有视频传感硬件(例如视频监控摄像头),这些环境传感硬件用于实时采集仓储空间的视频数据;另外仓储方还可以基于图像识别技术,从视频数据中识别仓储空间是否存在安全隐患,并将发现仓储空间存在安全隐患的视频数据上报给仓库方节点,以上仓库方节点发送视频监控交易。
与上述方法实施例相对应,本说明书还提供了装置的实施例。
与上述方法实施例相对应,本说明书还提供了一种基于区块链的货物批量验真装置的实施例。
本说明书的基于区块链的分级存储装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
从硬件层面而言,如图6所示,为本说明书的基于区块链的货物批量验真装置所在电子设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图7是本说明书一示例性实施例示出的一种基于区块链的货物批量验真装置的框图。所述基于区块链的货物批量验真装置可以应用在前述图6所示的电子设备中,所述区块链中记录了与同一生产批次下货物的货物标识关联的溯源标识,与同一经销商分销货物的货物标识关联的经销商标识;所述装置对应了图5所示的方法实施例,该装置具体可以包括:
接收单元310,接收仓储方发送的入库验真交易;其中,所述入库验真交易包含有所述仓储方搭载的传感硬件从入库的任一货物上采集的货物标识和调用的智能合约的合约地址;
校验单元320,响应于所述入库验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述货物标识进行校验;
验真单元330,在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的入库验真逻辑,查询所述区块链中与所述货物标识关联的溯源标识和经销商标识;确定所述经销商码关联的货物标识与所述溯源码关联的货物标识中相同的目标货物标识;批量将所述区块链中记录所述目标货物标识对应的状态更新为入库验真通过。
可选的,所述区块链中还记录了与同一库位下货物的货物标识关联的库位标识;
所述接收单元310还包括,接收仓储方在所述经销商将货物质押给银行方后发送的库存验真交易;其中,所述库存验真交易包含有所述仓储方搭载的传感硬件采集到与所述经销商标识对应的库位标识和调用的智能合约的合约地址;
所述校验单元320还包括,响应于所述库存验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述库位标识进行校验;
所述装置还包括:
质押单元,在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的库存验真逻辑,查询所述区块链中与所述库位标识关联的经销商标识;确定所述经销商码关联的货物标识与所述库位标识关联的货物标识中相同的目标货物标识;批量将所述区块链中记录所述目标货物标识对应的状态更新为库存验真通过;以使得所述银行方在确定所述经销商质押的货物对应的状态数据为库存验真通过时,向所述经销商方发放贷款。
可选的,所述接收单元310还包括,接收经销商在接收到银行方发放的贷款后发送的贷款接收交易;
所述质押单元还包括,响应于所述贷款接收交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从经销商更新为银行方。
可选的,所述接收单元310还包括,接收银行方在接收到经销商偿还的贷款后发送的贷款偿还交易;
所述质押单元还包括,响应于所述贷款偿还交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从银行方更新为经销商。
可选的,所述接收单元310还包括,接收银行方在接收到经销商偿还的贷款后发送的贷款逾期交易;
所述质押单元还包括,响应于所述贷款逾期交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从经销商更新为银行方。
可选的,所述接收单元310还包括,接收使用方发送的使用验真交易;所述使用验真交易包含有所述使用方搭载的传感硬件采集货物的货物标识和调用的智能合约的合约地址;
所述验真单元330还包括,响应于所述使用验真交易,调用与所述合约地址对应的智能合约中声明的货物验真逻辑,在查询到所述区块链中存储有所述货物标识的情况下,向所述使用方返回该货物为真的信息。
可选的,所述接收单元310还包括,接收仓储方发起的环境监控交易;其中,所述环境监控交易包含有所述仓储方搭载的环境传感硬件采集到的大于预设环境阈值时的环境数据,和调用的智能合约的合约地址;
所述装置还包括:
监控单元,响应于所述环境监控交易,调用与所述合约地址对应的智能合约中声明的环境监控逻辑,将所述环境数据存储在所述区块链。
可选的,所述接收单元310还包括,接收仓储方发起的视频监控交易;其中,所述视频监控交易包含有所述仓储方搭载视频传感硬件采集到的仓储空间内存在安全隐患的视频数据,和调用的智能合约的合约地址;
所述装置还包括:
监控单元,响应于所述视频监控交易,调用与所述合约地址对应的智能合约中声明的视频监控逻辑,将所述视频数据存储在所述区块链。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实现方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (17)
1.一种基于区块链的货物批量验真方法,所述区块链中记录了与同一生产批次下货物的货物标识关联的溯源标识,与同一经销商分销货物的货物标识关联的经销商标识;所述方法包括:
接收仓储方发送的入库验真交易;其中,所述入库验真交易包含有所述仓储方搭载的传感硬件从入库的任一货物上采集的货物标识和调用的智能合约的合约地址;
响应于所述入库验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述货物标识进行校验;
在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的入库验真逻辑,查询所述区块链中与所述货物标识关联的溯源标识和经销商标识;确定所述经销商码关联的货物标识与所述溯源码关联的货物标识中相同的目标货物标识;批量将所述区块链中记录所述目标货物标识对应的状态更新为入库验真通过。
2.根据权利要求1所述的方法,所述区块链中还记录了与同一库位下货物的货物标识关联的库位标识;所述方法包括:
接收仓储方在所述经销商将货物质押给银行方后发送的库存验真交易;其中,所述库存验真交易包含有所述仓储方搭载的传感硬件采集到与所述经销商标识对应的库位标识和调用的智能合约的合约地址;
响应于所述库存验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述库位标识进行校验;
在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的库存验真逻辑,查询所述区块链中与所述库位标识关联的经销商标识;确定所述经销商码关联的货物标识与所述库位标识关联的货物标识中相同的目标货物标识;批量将所述区块链中记录所述目标货物标识对应的状态更新为库存验真通过;以使得所述银行方在确定所述经销商质押的货物对应的状态数据为库存验真通过时,向所述经销商方发放贷款。
3.根据权利要求2所述的方法,还包括:
接收经销商在接收到银行方发放的贷款后发送的贷款接收交易;
响应于所述贷款接收交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从经销商更新为银行方。
4.根据权利要求3所述的方法,还包括:
接收银行方在接收到经销商偿还的贷款后发送的贷款偿还交易;
响应于所述贷款偿还交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从银行方更新为经销商。
5.根据权利要求3所述的方法,还包括:
接收银行方在接收到经销商偿还的贷款后发送的贷款逾期交易;
响应于所述贷款逾期交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从经销商更新为银行方。
6.根据权利要求1所述的方法,所述方法还包括:
接收使用方发送的使用验真交易;所述使用验真交易包含有所述使用方搭载的传感硬件采集货物的货物标识和调用的智能合约的合约地址;
响应于所述使用验真交易,调用与所述合约地址对应的智能合约中声明的货物验真逻辑,在查询到所述区块链中存储有所述货物标识的情况下,向所述使用方返回该货物为真的信息。
7.根据权利要求1所述的方法,所述方法还包括:
接收仓储方发起的环境监控交易;其中,所述环境监控交易包含有所述仓储方搭载的环境传感硬件采集到的大于预设环境阈值时的环境数据,和调用的智能合约的合约地址;
响应于所述环境监控交易,调用与所述合约地址对应的智能合约中声明的环境监控逻辑,将所述环境数据存储在所述区块链。
8.根据权利要求1所述的方法,所述方法还包括:
接收仓储方发起的视频监控交易;其中,所述视频监控交易包含有所述仓储方搭载视频传感硬件采集到的仓储空间内存在安全隐患的视频数据,和调用的智能合约的合约地址;
响应于所述视频监控交易,调用与所述合约地址对应的智能合约中声明的视频监控逻辑,将所述视频数据存储在所述区块链。
9.一种基于区块链的货物批量验真装置,所述区块链中记录了与同一生产批次下货物的货物标识关联的溯源标识,与同一经销商分销货物的货物标识关联的经销商标识;所述装置包括:
接收单元,接收仓储方发送的入库验真交易;其中,所述入库验真交易包含有所述仓储方搭载的传感硬件从入库的任一货物上采集的货物标识和调用的智能合约的合约地址;
校验单元,响应于所述入库验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述货物标识进行校验;
验真单元,在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的入库验真逻辑,查询所述区块链中与所述货物标识关联的溯源标识和经销商标识;确定所述经销商码关联的货物标识与所述溯源码关联的货物标识中相同的目标货物标识;批量将所述区块链中记录所述目标货物标识对应的状态更新为入库验真通过。
10.根据权利要求9所述的装置,所述区块链中还记录了与同一库位下货物的货物标识关联的库位标识;
所述接收单元还包括,接收仓储方在所述经销商将货物质押给银行方后发送的库存验真交易;其中,所述库存验真交易包含有所述仓储方搭载的传感硬件采集到与所述经销商标识对应的库位标识和调用的智能合约的合约地址;
所述校验单元还包括,响应于所述库存验真交易,调用与所述合约地址对应的智能合约中声明的校验逻辑,对所述库位标识进行校验;
所述装置还包括:
质押单元,在校验通过的情况下,进一步调用与所述合约地址对应的智能合约中声明的库存验真逻辑,查询所述区块链中与所述库位标识关联的经销商标识;确定所述经销商码关联的货物标识与所述库位标识关联的货物标识中相同的目标货物标识;批量将所述区块链中记录所述目标货物标识对应的状态更新为库存验真通过;以使得所述银行方在确定所述经销商质押的货物对应的状态数据为库存验真通过时,向所述经销商方发放贷款。
11.根据权利要求10所述的装置,
所述接收单元还包括,接收经销商在接收到银行方发放的贷款后发送的贷款接收交易;
所述质押单元还包括,响应于所述贷款接收交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从经销商更新为银行方。
12.根据权利要求11所述的装置,
所述接收单元还包括,接收银行方在接收到经销商偿还的贷款后发送的贷款偿还交易;
所述质押单元还包括,响应于所述贷款偿还交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从银行方更新为经销商。
13.根据权利要求11所述的装置,
所述接收单元还包括,接收银行方在接收到经销商偿还的贷款后发送的贷款逾期交易;
所述质押单元还包括,响应于所述贷款逾期交易,调用与所述合约地址对应的智能合约中声明的所有权变更逻辑,将所述区块链中存储的所述经销商标识关联的货物标识对应的所有权从经销商更新为银行方。
14.根据权利要求9所述的装置,
所述接收单元还包括,接收使用方发送的使用验真交易;所述使用验真交易包含有所述使用方搭载的传感硬件采集货物的货物标识和调用的智能合约的合约地址;
所述验真单元还包括,响应于所述使用验真交易,调用与所述合约地址对应的智能合约中声明的货物验真逻辑,在查询到所述区块链中存储有所述货物标识的情况下,向所述使用方返回该货物为真的信息。
15.根据权利要求9所述的装置,
所述接收单元还包括,接收仓储方发起的环境监控交易;其中,所述环境监控交易包含有所述仓储方搭载的环境传感硬件采集到的大于预设环境阈值时的环境数据,和调用的智能合约的合约地址;
所述装置还包括:
监控单元,响应于所述环境监控交易,调用与所述合约地址对应的智能合约中声明的环境监控逻辑,将所述环境数据存储在所述区块链。
16.根据权利要求9所述的装置,
所述接收单元还包括,接收仓储方发起的视频监控交易;其中,所述视频监控交易包含有所述仓储方搭载视频传感硬件采集到的仓储空间内存在安全隐患的视频数据,和调用的智能合约的合约地址;
所述装置还包括:
监控单元,响应于所述视频监控交易,调用与所述合约地址对应的智能合约中声明的视频监控逻辑,将所述视频数据存储在所述区块链。
17.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-8中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010818563.7A CN111681017B (zh) | 2020-08-14 | 2020-08-14 | 基于区块链的货物批量验真方法及装置、电子设备 |
EP21181233.4A EP3955191A1 (en) | 2020-08-14 | 2021-06-23 | Method and apparatus for verifying commodities in batches based on blockchain, and electronic device |
US17/363,635 US20220051238A1 (en) | 2020-08-14 | 2021-06-30 | Method and apparatus for verifying commodities in batches based on blockchain, and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010818563.7A CN111681017B (zh) | 2020-08-14 | 2020-08-14 | 基于区块链的货物批量验真方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111681017A true CN111681017A (zh) | 2020-09-18 |
CN111681017B CN111681017B (zh) | 2020-12-11 |
Family
ID=72438625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010818563.7A Active CN111681017B (zh) | 2020-08-14 | 2020-08-14 | 基于区块链的货物批量验真方法及装置、电子设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220051238A1 (zh) |
EP (1) | EP3955191A1 (zh) |
CN (1) | CN111681017B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112200572A (zh) * | 2020-10-09 | 2021-01-08 | 支付宝(杭州)信息技术有限公司 | 基于区块链的资源发放方法、装置及电子设备 |
CN112348535A (zh) * | 2020-11-04 | 2021-02-09 | 新华中经信用管理有限公司 | 一种基于区块链技术的溯源应用方法及系统 |
CN112380555A (zh) * | 2020-11-27 | 2021-02-19 | 南京知麦信息科技有限公司 | 一种基于区块链智能合约的农产品溯源信息上链方法 |
CN112384921A (zh) * | 2020-10-12 | 2021-02-19 | 北京和联共识科技有限公司 | 保护区块链上数据安全的方法及装置和电子设备 |
CN112994892A (zh) * | 2020-12-17 | 2021-06-18 | 中国工商银行股份有限公司 | 跨链交互方法、装置、系统和电子设备 |
CN113095825A (zh) * | 2021-03-31 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 基于区块链的资产管理方法、装置及电子设备 |
CN117875990A (zh) * | 2024-03-13 | 2024-04-12 | 贵州省畜牧兽医研究所 | 一种基于区块链的蜂蜜追溯方法及系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11615160B2 (en) * | 2021-04-28 | 2023-03-28 | Iqvia Inc. | Digital label management |
CN114331481B (zh) * | 2022-03-15 | 2022-06-03 | 北京伊甸之尘科技有限公司 | 基于以太坊信标链体系的产品防伪溯源系统 |
CN115564453A (zh) * | 2022-09-19 | 2023-01-03 | 上海华能电子商务有限公司 | 一种基于区块链的质押动产唯一性标识追溯方法及装置 |
CN115913564A (zh) * | 2022-10-18 | 2023-04-04 | 鼎铉商用密码测评技术(深圳)有限公司 | 区块链产品的安全检测方法、系统、设备及可读存储介质 |
CN115914249B (zh) * | 2022-12-05 | 2023-09-29 | 淮阴工学院 | 基于区块链块分类的冷链数据存储与查询方法及装置 |
CN116071092A (zh) * | 2023-03-20 | 2023-05-05 | 浪潮云洲(山东)工业互联网有限公司 | 一种基于区块链的预制菜溯源方法、系统及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200143937A1 (en) * | 2018-11-07 | 2020-05-07 | Ge Healthcare Limited | Systems and methods for distributed ledger management of nuclear medicine products |
CN111275343A (zh) * | 2020-01-21 | 2020-06-12 | 山东爱城市网信息技术有限公司 | 基于区块链的采购与库存协同管理方法、设备及介质 |
CN111383020A (zh) * | 2020-05-29 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 基于区块链的物品防伪管理方法、装置、设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180285810A1 (en) * | 2017-03-29 | 2018-10-04 | Ripe Technology, Inc. | Systems and methods of blockchain transaction recordation in a food supply chain |
US11004028B2 (en) * | 2017-05-26 | 2021-05-11 | Chris Broveleit | Blockchain-based logistics systems |
US20190102850A1 (en) * | 2017-09-29 | 2019-04-04 | David McMakin Wheeler | Smart city commodity exchange with smart contracts |
PE20210539A1 (es) * | 2018-01-22 | 2021-03-17 | Grainchain Inc | Sistema y metodo para sistema informatico seguro, distribuido |
CN111475521A (zh) * | 2020-06-24 | 2020-07-31 | 支付宝(杭州)信息技术有限公司 | 基于区块链的货物管理方法及装置和电子设备 |
-
2020
- 2020-08-14 CN CN202010818563.7A patent/CN111681017B/zh active Active
-
2021
- 2021-06-23 EP EP21181233.4A patent/EP3955191A1/en active Pending
- 2021-06-30 US US17/363,635 patent/US20220051238A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200143937A1 (en) * | 2018-11-07 | 2020-05-07 | Ge Healthcare Limited | Systems and methods for distributed ledger management of nuclear medicine products |
CN111275343A (zh) * | 2020-01-21 | 2020-06-12 | 山东爱城市网信息技术有限公司 | 基于区块链的采购与库存协同管理方法、设备及介质 |
CN111383020A (zh) * | 2020-05-29 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 基于区块链的物品防伪管理方法、装置、设备和存储介质 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112200572A (zh) * | 2020-10-09 | 2021-01-08 | 支付宝(杭州)信息技术有限公司 | 基于区块链的资源发放方法、装置及电子设备 |
WO2022077181A1 (zh) * | 2020-10-12 | 2022-04-21 | 北京和联共识科技有限公司 | 保护区块链上数据安全的方法及装置和电子设备 |
CN112384921A (zh) * | 2020-10-12 | 2021-02-19 | 北京和联共识科技有限公司 | 保护区块链上数据安全的方法及装置和电子设备 |
CN112348535A (zh) * | 2020-11-04 | 2021-02-09 | 新华中经信用管理有限公司 | 一种基于区块链技术的溯源应用方法及系统 |
CN112348535B (zh) * | 2020-11-04 | 2023-09-12 | 新华中经信用管理有限公司 | 一种基于区块链技术的溯源应用方法及系统 |
CN112380555A (zh) * | 2020-11-27 | 2021-02-19 | 南京知麦信息科技有限公司 | 一种基于区块链智能合约的农产品溯源信息上链方法 |
CN112380555B (zh) * | 2020-11-27 | 2024-03-12 | 南京知麦信息科技有限公司 | 一种基于区块链智能合约的农产品溯源信息上链方法 |
CN112994892A (zh) * | 2020-12-17 | 2021-06-18 | 中国工商银行股份有限公司 | 跨链交互方法、装置、系统和电子设备 |
CN112994892B (zh) * | 2020-12-17 | 2023-06-09 | 中国工商银行股份有限公司 | 跨链交互方法、装置、系统和电子设备 |
CN113095825A (zh) * | 2021-03-31 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 基于区块链的资产管理方法、装置及电子设备 |
CN113095825B (zh) * | 2021-03-31 | 2024-04-05 | 支付宝(杭州)信息技术有限公司 | 基于区块链的资产管理方法、装置及电子设备 |
CN117875990A (zh) * | 2024-03-13 | 2024-04-12 | 贵州省畜牧兽医研究所 | 一种基于区块链的蜂蜜追溯方法及系统 |
CN117875990B (zh) * | 2024-03-13 | 2024-05-28 | 贵州省畜牧兽医研究所 | 一种基于区块链的蜂蜜追溯方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20220051238A1 (en) | 2022-02-17 |
EP3955191A1 (en) | 2022-02-16 |
CN111681017B (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111681017B (zh) | 基于区块链的货物批量验真方法及装置、电子设备 | |
US11195231B2 (en) | Transaction processing in a service blockchain | |
US11190342B2 (en) | Transaction processing in a service blockchain | |
CN111539731A (zh) | 基于区块链的联邦学习方法及装置和电子设备 | |
CN113836227B (zh) | 一种基于区块链的资产申购方法、装置及电子设备 | |
CN110706114B (zh) | 一种基于区块链的违约资产处理方法、装置及电子设备 | |
US11032215B2 (en) | Allocating virtual resource based on block chain | |
CN111737654B (zh) | 基于区块链的侵权检测方法及装置、电子设备 | |
CN110458631B (zh) | 基于区块链的票据号码分配方法、装置及电子设备 | |
CN110473030B (zh) | 基于区块链的电子票据号码申领方法及装置、电子设备 | |
WO2021017437A1 (zh) | 基于区块链的票据核销方法及装置、电子设备、存储介质 | |
US11429983B2 (en) | Blockchain-based bill write-off method, apparatus, electronic device, and storage medium | |
WO2021017442A1 (zh) | 基于区块链的电子票据报销方法及装置、电子设备 | |
CN110738566A (zh) | 一种基于区块链的资产筛选方法、装置及电子设备 | |
US10846765B2 (en) | Blockchain-based e-bill number application method, apparatus, and electronic device | |
CN111506652B (zh) | 基于区块链的交通事故处理方法及装置、电子设备 | |
CN112101938A (zh) | 基于区块链的数字印章使用方法、装置及电子设备 | |
CN112200569B (zh) | 基于区块链的数字印章使用方法、装置及电子设备 | |
CN111553695B (zh) | 跨区域支付方法及装置、电子设备 | |
CN112258189A (zh) | 基于区块链的签约管理方法及装置和电子设备 | |
CN111681150A (zh) | 基于区块链的危化品管理方法及装置、电子设备 | |
CN111475522A (zh) | 基于区块链的仓单数据管理方法及装置、电子设备 | |
CN112100588A (zh) | 基于区块链的数字印章申领方法、装置及电子设备 | |
CN114444097A (zh) | 基于区块链的用户准入方法、装置、电子设备及存储介质 | |
CN111831678A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40037388 Country of ref document: HK |