KR20200088827A - Blockchain-based smart contract calling method and device, electronic device - Google Patents

Blockchain-based smart contract calling method and device, electronic device Download PDF

Info

Publication number
KR20200088827A
KR20200088827A KR1020207015564A KR20207015564A KR20200088827A KR 20200088827 A KR20200088827 A KR 20200088827A KR 1020207015564 A KR1020207015564 A KR 1020207015564A KR 20207015564 A KR20207015564 A KR 20207015564A KR 20200088827 A KR20200088827 A KR 20200088827A
Authority
KR
South Korea
Prior art keywords
blockchain
data
smart contract
target
storage system
Prior art date
Application number
KR1020207015564A
Other languages
Korean (ko)
Other versions
KR102343782B1 (en
Inventor
홍린 치우
Original Assignee
알리바바 그룹 홀딩 리미티드
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 알리바바 그룹 홀딩 리미티드 filed Critical 알리바바 그룹 홀딩 리미티드
Publication of KR20200088827A publication Critical patent/KR20200088827A/en
Application granted granted Critical
Publication of KR102343782B1 publication Critical patent/KR102343782B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • H04L67/20
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

본 명세서의 구현들은 블록체인 기반 스마트 계약 호출 프로세싱을 개시한다. 일 구현에서, 스마트 계약의 호출을 개시하는 데 사용된 호출 데이터를 포함하는 타깃 트랜잭션이 수신되고, 여기서 호출 데이터의 적어도 일부분은, 블록체인과 상호연결된 제3자 저장 시스템에 저장된 타깃 데이터의 데이터 다이제스트를 포함한다. 데이터 다이제스트에 대응하는 타깃 데이터가 제3자 저장 시스템으로부터 질의된다. 실행 조건이 만족되는지 여부를 결정함으로써 타깃 데이터에 대한 콘텐츠의 검증이 수행된다. 타깃 데이터에 대한 검증이 성공한 것으로 결정하는 것에 응답하여, 타깃 트랜잭션에서의 호출 데이터에 대한 스마트 계약 계산을 수행하도록 스마트 계약이 호출된다. 스마트 계약 계산이 완료된 후에 블록체인의 분산 데이터베이스에 계산 결과가 저장된다.Implementations of the present specification disclose blockchain-based smart contract call processing. In one implementation, a target transaction is received that includes the call data used to initiate the call of the smart contract, where at least a portion of the call data is a data digest of the target data stored in a third-party storage system interconnected with the blockchain. It includes. Target data corresponding to the data digest is queried from the third-party storage system. Verification of content against target data is performed by determining whether the execution condition is satisfied. In response to determining that verification of the target data is successful, the smart contract is called to perform smart contract calculation on the call data in the target transaction. After the smart contract calculation is completed, the calculation results are stored in the blockchain's distributed database.

Description

블록체인 기반 스마트 계약 호출 방법 및 장치, 전자 디바이스Blockchain-based smart contract calling method and device, electronic device

관련 출원들에 대한 상호 참조Cross reference to related applications

본 출원은 2018년 6월 27일자로 출원된 중국 특허 출원 제201810681249.1호에 대한 우선권을 주장하고, 이 중국 특허 출원은 이로써 그 전체가 참조로 포함된다.This application claims priority to Chinese Patent Application No. 201810681249.1, filed June 27, 2018, which is hereby incorporated by reference in its entirety.

기술분야Technology field

본 명세서의 하나 이상의 구현들은 블록체인 기술들의 분야, 그리고 특히, 블록체인 기반 스마트 계약 호출(blockchain-based smart contract invocation) 방법 및 장치, 그리고 전자 디바이스에 관한 것이다.One or more implementations of the present specification relate to the field of blockchain technologies, and in particular, to a method and apparatus for blockchain-based smart contract invocation, and an electronic device.

분산 원장 기술(distributed ledger technology)이라고도 또한 지칭되는 블록체인 기술은 몇몇 컴퓨팅 디바이스들이 공동으로 "어카운팅(accounting)"에 참여하여 완전한 분산 데이터베이스를 유지하는 최신 기술이다. 블록체인 기술은 탈중앙집중화(decentralization) 및 투명성을 특징으로 하고, 각각의 컴퓨팅 디바이스는 데이터베이스에 데이터를 기록할 수 있으며, 데이터는 컴퓨팅 디바이스들 사이에서 급속히 동기화될 수 있다. 그에 따라, 블록체인 기술은 많은 기술분야들에 널리 적용되었다.Blockchain technology, also referred to as distributed ledger technology, is the latest technology in which several computing devices jointly participate in "accounting" to maintain a complete distributed database. Blockchain technology is characterized by decentralization and transparency, and each computing device can record data in a database, and data can be rapidly synchronized between computing devices. Accordingly, blockchain technology has been widely applied in many technical fields.

본 명세서는 블록체인 기반 스마트 계약 호출 방법을 제공하는데, 이 방법은: 스마트 계약의 호출을 개시하는 데 사용된 타깃 트랜잭션(target transaction)을 수신하는 단계 - 여기서 타깃 트랜잭션은 호출 데이터를 포함하고, 호출 데이터의 적어도 일부분은, 블록체인과 상호연결된 제3자 저장 시스템(third-party storage system)에 저장된 타깃 데이터의 데이터 다이제스트(data digest)를 포함함 -; 제3자 저장 시스템으로부터 데이터 다이제스트에 대응하는 타깃 데이터를 질의하고, 타깃 데이터에 대한 콘텐츠 검증을 수행하는 단계; 및 타깃 데이터에 대한 검증이 성공한 경우, 타깃 트랜잭션에서의 호출 데이터에 대한 스마트 계약 계산을 수행하도록 스마트 계약을 호출하고, 스마트 계약 계산이 완료된 후에 블록체인의 분산 데이터베이스에 계산 결과를 저장하는 단계를 포함한다.The present specification provides a blockchain-based smart contract calling method, comprising: receiving a target transaction used to initiate a call of a smart contract, where the target transaction includes the call data, and the call At least a portion of the data includes a data digest of target data stored in a third-party storage system interconnected with the blockchain; Querying target data corresponding to a data digest from a third-party storage system, and performing content verification on the target data; And when the verification of the target data is successful, calling the smart contract to perform smart contract calculation on the call data in the target transaction, and storing the calculation result in the distributed database of the blockchain after the smart contract calculation is completed. do.

임의로, 제3자 저장 시스템은 타깃 데이터와 타깃 데이터의 데이터 다이제스트 사이의 매핑 관계를 저장하고; 제3자 저장 시스템으로부터 데이터 다이제스트에 대응하는 타깃 데이터를 질의하는 단계는: 데이터 다이제스트에 대응하는 타깃 데이터를 질의하기 위해, 데이터 다이제스트를 질의 인덱스로서 사용함으로써 제3자 저장 시스템에 대한 질의를 개시하는 단계를 포함한다.Optionally, the third-party storage system stores the mapping relationship between the target data and the data digest of the target data; Querying the target data corresponding to the data digest from the third-party storage system: Initiating a query to the third-party storage system by using the data digest as a query index to query the target data corresponding to the data digest. Steps.

임의로, 타깃 데이터에 대한 콘텐츠 검증을 수행하는 단계는: 미리 결정된 다이제스트 알고리즘에 기초하여 타깃 데이터의 데이터 다이제스트를 계산하는 단계; 계산된 데이터 다이제스트가 타깃 트랜잭션에서의 타깃 데이터의 데이터 다이제스트와 일치하는지 여부를 결정하는 단계; 및 계산된 데이터 다이제스트가 타깃 트랜잭션에서의 타깃 데이터의 데이터 다이제스트와 일치하는 경우, 타깃 데이터에 대한 검증이 성공한 것으로 결정하는 단계를 포함한다.Optionally, performing content verification on the target data includes: calculating a data digest of the target data based on a predetermined digest algorithm; Determining whether the calculated data digest matches the data digest of the target data in the target transaction; And if the calculated data digest matches the data digest of the target data in the target transaction, determining that verification of the target data is successful.

임의로, 제3자 저장 시스템은 중앙집중화(centralized) 콘텐츠 어드레싱가능 저장(content addressable storage)(CAS) 시스템 또는 분산 CAS 시스템을 포함한다.Optionally, the third-party storage system includes a centralized content addressable storage (CAS) system or a distributed CAS system.

임의로, 블록체인은, 몇몇 멤버 블록체인들을 포함하는 컨소시엄 블록체인(consortium blockchain)에서의 임의의 멤버 블록체인이다.Optionally, the blockchain is any member blockchain in a consortium blockchain that includes several member blockchains.

임의로, 제3자 저장 시스템은, 컨소시엄 블록체인에서의 블록체인과의 크로스 체인 데이터 참조 관계를 갖는 다른 멤버 블록체인이다.Optionally, the third-party storage system is another member blockchain having a cross-chain data reference relationship with the blockchain in the consortium blockchain.

본 명세서는 블록체인 기반 스마트 계약 호출 장치를 더 제공하는데, 이 장치는: 스마트 계약의 호출을 개시하는 데 사용된 타깃 트랜잭션을 수신하도록 구성되는 수신 모듈 - 여기서 타깃 트랜잭션은 호출 데이터를 포함하고, 호출 데이터의 적어도 일부분은, 블록체인과 상호연결된 제3자 저장 시스템에 저장된 타깃 데이터의 데이터 다이제스트를 포함함 -; 제3자 저장 시스템으로부터 데이터 다이제스트에 대응하는 타깃 데이터를 질의하고, 타깃 데이터에 대한 콘텐츠 검증을 수행하도록 구성되는 질의 모듈; 및 타깃 데이터에 대한 검증이 성공한 경우, 타깃 트랜잭션에서의 호출 데이터에 대한 스마트 계약 계산을 수행하도록 스마트 계약을 호출하고, 스마트 계약 계산이 완료된 후에 블록체인의 분산 데이터베이스에 계산 결과를 저장하도록 구성되는 호출 모듈을 포함한다.The present specification further provides a blockchain-based smart contract calling device, which comprises: a receiving module, configured to receive a target transaction used to initiate a call of the smart contract, wherein the target transaction includes the calling data, and the calling At least a portion of the data includes a data digest of target data stored in a third-party storage system interconnected with the blockchain; A query module configured to query target data corresponding to a data digest from a third-party storage system and perform content verification on the target data; And when the verification of the target data is successful, a smart contract is called to perform smart contract calculation on the call data in the target transaction, and a call configured to store the calculation result in the distributed database of the blockchain after the smart contract calculation is completed. Includes modules.

임의로, 제3자 저장 시스템은 타깃 데이터와 타깃 데이터의 데이터 다이제스트 사이의 매핑 관계를 저장하고; 질의 모듈은: 데이터 다이제스트에 대응하는 타깃 데이터를 질의하기 위해, 데이터 다이제스트를 질의 인덱스로서 사용함으로써 제3자 저장 시스템에 대한 질의를 개시하도록 구성된다.Optionally, the third-party storage system stores the mapping relationship between the target data and the data digest of the target data; The query module is configured to initiate a query to a third-party storage system by using the data digest as a query index, to query target data corresponding to the data digest.

임의로, 질의 모듈은: 미리 결정된 다이제스트 알고리즘에 기초하여 타깃 데이터의 데이터 다이제스트를 계산하고; 계산된 데이터 다이제스트가 타깃 트랜잭션에서의 타깃 데이터의 데이터 다이제스트와 일치하는지 여부를 결정하고; 계산된 데이터 다이제스트가 타깃 트랜잭션에서의 타깃 데이터의 데이터 다이제스트와 일치하는 경우, 타깃 데이터에 대한 검증이 성공한 것으로 결정하도록 추가로 구성된다.Optionally, the query module: calculates a data digest of the target data based on a predetermined digest algorithm; Determine whether the calculated data digest matches the data digest of the target data in the target transaction; If the calculated data digest matches the data digest of the target data in the target transaction, it is further configured to determine that verification of the target data is successful.

임의로, 제3자 저장 시스템은 중앙집중화 콘텐츠 어드레싱가능 저장(CAS) 시스템 또는 분산 CAS 시스템을 포함한다.Optionally, the third party storage system includes a centralized content addressable storage (CAS) system or a distributed CAS system.

임의로, 블록체인은, 몇몇 멤버 블록체인들을 포함하는 컨소시엄 블록체인에서의 임의의 멤버 블록체인이다.Optionally, the blockchain is any member blockchain in a consortium blockchain that includes several member blockchains.

임의로, 제3자 저장 시스템은, 컨소시엄 블록체인에서의 블록체인과의 크로스 체인 데이터 참조 관계를 갖는 다른 멤버 블록체인이다.Optionally, the third-party storage system is another member blockchain having a cross-chain data reference relationship with the blockchain in the consortium blockchain.

본 명세서는 전자 디바이스를 추가로 제공하는데, 이 전자 디바이스는: 프로세서; 및 머신 실행가능 명령어를 저장하도록 구성되는 메모리를 포함하고, 여기서 메모리에 저장되고 블록체인 기반 스마트 계약 호출의 제어 로직에 대응하는 머신 실행가능 명령어를 판독 및 실행함으로써, 프로세서는: 스마트 계약의 호출을 개시하는 데 사용된 타깃 트랜잭션을 수신하고 - 여기서 타깃 트랜잭션은 호출 데이터를 포함하고, 호출 데이터의 적어도 일부분은, 블록체인과 상호연결된 제3자 저장 시스템에 저장된 타깃 데이터의 데이터 다이제스트를 포함함 -; 제3자 저장 시스템으로부터 데이터 다이제스트에 대응하는 타깃 데이터를 질의하고, 타깃 데이터에 대한 콘텐츠 검증을 수행하고; 타깃 데이터에 대한 검증이 성공한 경우, 타깃 트랜잭션에서의 호출 데이터에 대한 스마트 계약 계산을 수행하도록 스마트 계약을 호출하고, 스마트 계약 계산이 완료된 후에 블록체인의 분산 데이터베이스에 계산 결과를 저장하도록 구성된다.The present specification further provides an electronic device, the electronic device comprising: a processor; And a memory configured to store machine executable instructions, wherein by reading and executing machine executable instructions stored in memory and corresponding to control logic of a blockchain based smart contract call, the processor: Receiving a target transaction used to initiate, wherein the target transaction includes call data, and at least a portion of the call data includes a data digest of target data stored in a third-party storage system interconnected with the blockchain; Query target data corresponding to a data digest from a third-party storage system, and perform content verification on the target data; When verification of the target data is successful, the smart contract is called to perform smart contract calculation on the call data in the target transaction, and after the smart contract calculation is completed, it is configured to store the calculation results in the distributed database of the blockchain.

앞선 구현들에 따르면, 스마트 계약의 호출을 개시하는 데 사용된 트랜잭션은, 제3자 저장 시스템에 저장된 타깃 데이터의 데이터 다이제스트를 포함하여, 블록체인에서 트랜잭션을 수신한 노드 디바이스가 데이터 다이제스트에 기초하여 제3자 저장 시스템으로부터 대응하는 타깃 데이터를 질의하고, 타깃 데이터에 대한 콘텐츠 검증을 수행하고, 타깃 데이터에 대한 검증이 성공한 후에, 트랜잭션에서의 호출 데이터에 대한 스마트 계약 계산을 수행하도록 스마트 계약을 호출하고, 스마트 계약 계산이 완료된 후에 블록체인의 분산 데이터베이스에 계산 결과를 저장할 수 있도록 한다. 이와 같이, 블록체인과 상호연결된 제3자 저장 시스템에 저장된 타깃 데이터는 스마트 계약의 호출을 개시하는 데 사용된 트랜잭션에서 호출 데이터로서 참조되어, 제3자 저장 시스템에 저장된 타깃 데이터의 원본 콘텐츠를 블록체인에서의 각각의 노드 디바이스와 동기화시킴으로써 야기되는 블록체인 데이터 저장 리던던시(redundancy)를 완화시킬 수 있다.According to the previous implementations, the transaction used to initiate the call of the smart contract includes a data digest of the target data stored in the third-party storage system, and the node device receiving the transaction in the blockchain is based on the data digest. Query the corresponding target data from a third-party storage system, perform content verification on the target data, and call the smart contract to perform smart contract calculation on the call data in the transaction after the verification of the target data is successful Then, after the smart contract calculation is completed, the calculation result can be stored in the distributed database of the blockchain. As such, the target data stored in the third-party storage system interconnected with the blockchain is referred to as call data in the transaction used to initiate the call of the smart contract, blocking the original content of the target data stored in the third-party storage system. Blockchain data storage redundancy caused by synchronization with each node device in the chain can be mitigated.

도 1은 예시적인 구현에 따른, 블록체인 기반 스마트 계약 호출 방법을 예시하는 흐름도이다.
도 2는 예시적인 구현에 따른, 컨소시엄 블록체인을 예시하는 개략적인 구조적 다이어그램이다.
도 3은 예시적인 구현에 따른, 전자 디바이스를 예시하는 개략적인 구조적 다이어그램이다.
도 4는 예시적인 구현에 따른, 블록체인 기반 스마트 계약 호출 장치를 예시하는 블록 다이어그램이다.
1 is a flow chart illustrating a method for invoking a smart contract based on a blockchain, according to an exemplary implementation.
2 is a schematic structural diagram illustrating a consortium blockchain, according to an example implementation.
3 is a schematic structural diagram illustrating an electronic device, according to an example implementation.
Fig. 4 is a block diagram illustrating a blockchain-based smart contract calling device according to an exemplary implementation.

블록체인의 종래의 스마트 계약 호출 프로세스에서, 스마트 계약을 호출하도록 요구되는 호출 데이터(즉, 스마트 계약에 입력되는 호출 파라미터들)는 통상적으로, 블록체인의 분산 데이터베이스(즉, 블록체인 원장)에 저장된 데이터 콘텐츠로부터 발생되고, 외부 메모리에 저장된 데이터 콘텐츠는 참조될 수 없다. 그에 따라, 블록체인 네트워크에서의 각각의 노드 디바이스가 스마트 계약을 호출할 때 스마트 계약 계산을 위해 사용된 호출 데이터는 통상적으로 체인으로부터 발생되어, 그에 의해 "폐쇄된 데이터 사용 루프"를 형성한다.In the conventional smart contract calling process of the blockchain, the call data required to call the smart contract (i.e., call parameters input to the smart contract) is typically stored in the blockchain's distributed database (i.e., the blockchain ledger). Data content generated from data content and stored in an external memory cannot be referenced. Accordingly, when each node device in the blockchain network calls a smart contract, the call data used for smart contract calculation is typically generated from the chain, thereby forming a "closed data usage loop".

그러나, 본 명세서는 블록체인의 "폐쇄된 데이터 사용 루프"를 해소하기 위해, 스마트 계약이 호출될 때 제3자 저장 플랫폼 상에 저장된 변경불가능한 데이터 콘텐츠가 트랜잭션 콘텐츠로서 참조되는 기술적 솔루션을 개시하는 것을 목표로 한다.However, this specification discloses a technical solution in which unalterable data content stored on a third-party storage platform is referred to as transaction content when a smart contract is invoked, in order to resolve the "closed data usage loop" of the blockchain. Aim.

구현 동안, 블록체인이 미리 제3자 저장 시스템과 상호연결될 수 있고, 제3자 저장 시스템은 블록체인에 배치된 스마트 계약에서 참조될 수 있는 변경불가능한 데이터 콘텐츠의 몇몇 조각들을 미리 저장할 수 있다.During implementation, the blockchain can be interconnected with a third-party storage system in advance, and the third-party storage system can pre-store several pieces of immutable data content that can be referenced in a smart contract deployed on the blockchain.

스마트 계약의 호출을 개시할 때, 블록체인에 액세스한 멤버 사용자가, 제3자 저장 시스템에 저장된 데이터 콘텐츠의 데이터 다이제스트를, 스마트 계약의 호출을 개시하는 데 사용된 트랜잭션에 부가하여, 제3자 저장 시스템에 저장된 데이터 콘텐츠를 호출 데이터로서 참조할 수 있다.When initiating a call to the smart contract, a member user accessing the blockchain adds a data digest of the data content stored in the third-party storage system to the transaction used to initiate the call of the smart contract, and the third party Data contents stored in the storage system can be referred to as call data.

멤버 사용자에 의해 게시된 트랜잭션을 수신할 때, 블록체인에서의 노드 디바이스는 데이터 다이제스트에 기초하여 제3자 저장 시스템에 대한 질의를 개시하여, 데이터 다이제스트에 대응하는 데이터 콘텐츠를 질의하고, 식별된 데이터 콘텐츠에 대한 콘텐츠 검증을 수행할 수 있다. 콘텐츠 검증이 성공할 때, 노드 디바이스는 스마트 계약에서 선언된 스마트 계약 프로그램을 선언하도록 스마트 계약을 호출하고, 트랜잭션에서의 완전한 호출 데이터에 대한 스마트 계약 계산을 수행하며, 스마트 계약 계산이 완료된 후에 블록체인의 분산 데이터베이스에 계산 결과를 저장할 수 있다.Upon receiving the transaction posted by the member user, the node device in the blockchain initiates a query to the third-party storage system based on the data digest, querying the data content corresponding to the data digest, and identifying data Content verification can be performed on the content. When content verification is successful, the node device calls the smart contract to declare the smart contract program declared in the smart contract, performs smart contract calculation on the complete call data in the transaction, and after the smart contract calculation is completed, the blockchain The calculation results can be stored in a distributed database.

앞선 구현에서, 스마트 계약의 호출을 개시하는 데 사용된 트랜잭션은, 제3자 저장 시스템에 저장된 타깃 데이터의 데이터 다이제스트를 포함하여, 블록체인에서 트랜잭션을 수신한 노드 디바이스가 데이터 다이제스트에 기초하여 제3자 저장 시스템으로부터 대응하는 타깃 데이터를 질의하고, 타깃 데이터에 대한 콘텐츠 검증을 수행하고, 타깃 데이터에 대한 검증이 성공한 후에, 트랜잭션에서의 호출 데이터에 대한 스마트 계약 계산을 수행하도록 스마트 계약을 호출하며, 스마트 계약 계산이 완료된 후에 블록체인의 분산 데이터베이스에 계산 결과를 저장할 수 있도록 한다. 이와 같이, 블록체인과 상호연결된 제3자 저장 시스템에 저장된 타깃 데이터는 스마트 계약의 호출을 개시하는 데 사용된 트랜잭션에서 호출 데이터로서 참조되어, 제3자 저장 시스템에 저장된 타깃 데이터의 원본 콘텐츠를 블록체인에서의 각각의 노드 디바이스와 동기화시킴으로써 야기되는 블록체인 데이터 저장 리던던시를 완화시킬 수 있다.In the previous implementation, the transaction used to initiate the invocation of the smart contract includes a data digest of target data stored in a third-party storage system, where the node device receiving the transaction in the blockchain is based on the data digest. Query the corresponding target data from the child storage system, perform content verification on the target data, and after successful verification on the target data, call the smart contract to perform smart contract calculation on the call data in the transaction, After the smart contract calculation is completed, the calculation results can be stored in the blockchain's distributed database. As such, the target data stored in the third-party storage system interconnected with the blockchain is referred to as call data in the transaction used to initiate the call of the smart contract, blocking the original content of the target data stored in the third-party storage system. The redundancy of blockchain data storage caused by synchronization with each node device in the chain can be mitigated.

다음은 적용 시나리오들과 관련하여 구현들을 사용함으로써 본 명세서를 설명한다.The following describes this specification by using implementations in relation to application scenarios.

도 1을 참조하면, 도 1은 본 명세서의 구현에 따른, 블록체인 기반 스마트 계약 호출 방법을 도시한다. 이 방법은 블록체인에서의 노드 디바이스에 적용되고, 다음의 단계들을 포함한다.Referring to FIG. 1, FIG. 1 illustrates a method for calling a smart contract based on a blockchain according to an implementation of the present specification. This method is applied to a node device in a blockchain, and includes the following steps.

단계 102: 스마트 계약의 호출을 개시하는 데 사용된 타깃 트랜잭션을 수신, 여기서 타깃 트랜잭션은 호출 데이터를 포함하고, 호출 데이터의 적어도 일부분은, 블록체인과 상호연결된 제3자 저장 시스템에 저장된 타깃 데이터의 데이터 다이제스트를 포함한다.Step 102: Receive the target transaction used to initiate the call of the smart contract, where the target transaction includes the call data, and at least a portion of the call data is of target data stored in a third-party storage system interconnected with the blockchain. Includes data digest.

단계 104: 제3자 저장 시스템으로부터 데이터 다이제스트에 대응하는 타깃 데이터를 질의하고, 타깃 데이터에 대한 콘텐츠 검증을 수행.Step 104: Query target data corresponding to the data digest from the third-party storage system, and perform content verification on the target data.

단계 106: 타깃 데이터에 대한 검증이 성공한 경우, 타깃 트랜잭션에서의 호출 데이터에 대한 스마트 계약 계산을 수행하도록 스마트 계약을 호출하고, 스마트 계약 계산이 완료된 후에 블록체인의 분산 데이터베이스에 계산 결과를 저장.Step 106: If the verification of the target data is successful, the smart contract is called to perform smart contract calculation on the call data in the target transaction, and the calculation result is stored in the distributed database of the blockchain after the smart contract calculation is completed.

본 명세서에서 설명되는 블록체인은, 블록체인과 상호연결된 제3자 저장 시스템에 저장된 변경불가능한 데이터 콘텐츠가, 지원된 스마트 계약에 의해 호출 데이터로서 참조될 수 있는 임의의 타입의 블록체인 네트워크를 포함할 수 있다.The blockchain described herein may include any type of blockchain network in which immutable data content stored in a third-party storage system interconnected with the blockchain can be referred to as call data by a supported smart contract. Can.

예를 들어, 일 시나리오에서, 블록체인은, 몇몇 멤버 블록체인들을 포함하는 컨소시엄 블록체인에서의 임의의 멤버 블록체인일 수 있다. 컨소시엄 블록체인에서, 다른 멤버 블록체인에 저장된 데이터 콘텐츠는 각각의 멤버 블록체인에 의해 지원된 각각의 스마트 계약에 의해 체인들에 걸쳐 호출 데이터로서 참조될 수 있다.For example, in one scenario, the blockchain may be any member blockchain in a consortium blockchain that includes several member blockchains. In the consortium blockchain, data content stored in other member blockchains can be referred to as call data across the chains by each smart contract supported by each member blockchain.

제3자 저장 시스템은, 블록체인에 대한 신뢰성있는 데이터 저장 서비스를 제공하는 콘텐츠 어드레싱가능 저장(CAS) 플랫폼을 포함한다. 콘텐츠 어드레싱가능성(content addressability)은 저장 시스템에서 데이터 저장 오프셋 대신에 데이터 콘텐츠에 기초하여 어드레싱이 수행된다는 것을 의미한다.The third party storage system includes a content addressable storage (CAS) platform that provides a reliable data storage service for the blockchain. Content addressability means that addressing is performed based on data content instead of data storage offset in the storage system.

CAS 플랫폼 상에서, 저장된 데이터 콘텐츠의 데이터 다이제스트가 원본 데이터 콘텐츠의 질의 인덱스로서 사용될 수 있고, 질의 인덱스와 원본 데이터 콘텐츠 사이의 매핑 관계가 저장되어, 데이터 질의 당사자가 데이터 다이제스트를 질의 인덱스로서 사용함으로써 CAS 플랫폼으로부터 대응하는 원본 데이터 콘텐츠를 질의할 수 있다.On the CAS platform, the data digest of the stored data content can be used as a query index of the original data content, and the mapping relationship between the query index and the original data content is stored, so that the data query party uses the data digest as the query index to make the CAS platform From the corresponding original data content can be queried.

예를 들어, 일 구현에서, 데이터 다이제스트는, 데이터 콘텐츠에 대한 해시 계산을 수행함으로써 획득된 해시 값일 수 있다. 데이터 질의 당사자는 해시 값을 질의 인덱스로서 사용하여, CAS 플랫폼으로부터 해시 값에 대응하는 원본 데이터 콘텐츠를 질의할 수 있다.For example, in one implementation, the data digest can be a hash value obtained by performing a hash calculation on data content. The data query party may use the hash value as a query index to query the original data content corresponding to the hash value from the CAS platform.

실제 적용예들에서, 제3자 저장 시스템은 종래의 중앙집중화 콘텐츠 어드레싱가능 저장(CAS) 시스템을 포함할 수 있거나, 또는 탈중앙집중화 분산 CAS 시스템을 포함할 수 있다.In practical applications, the third party storage system may include a conventional centralized content addressable storage (CAS) system, or may include a decentralized distributed CAS system.

예를 들어, 일 시나리오에서, 블록체인은, 몇몇 멤버 블록체인들을 포함하는 컨소시엄 블록체인에서의 임의의 멤버 블록체인일 수 있다. 부가적으로, 제3자 저장 시스템은, 컨소시엄 블록체인에 배치되고 컨소시엄 블록체인에서의 각각의 멤버 블록체인과 상호연결될 수 있는 분산 시스템, 예컨대, 오브젝트 저장 서비스(object storage service)(OSS) 아키텍처일 수 있다.For example, in one scenario, the blockchain may be any member blockchain in a consortium blockchain that includes several member blockchains. Additionally, a third-party storage system may be a distributed system, such as an object storage service (OSS) architecture, that can be deployed on a consortium blockchain and interconnected with each member blockchain on the consortium blockchain. Can.

대안적으로, 다른 예에서, 컨소시엄 블록체인에서 블록체인과의 크로스 체인 데이터 참조 관계를 갖는 다른 멤버 블록체인은, 블록체인과 상호연결된 제3자 저장 시스템으로서 사용되어, 멤버 블록체인들 사이의 크로스 체인 데이터 참조를 구현할 수 있다. 다시 말해, 제3자 저장 시스템은, 블록체인과의 크로스 체인 참조 관계를 갖는 다른 블록체인일 수 있다. 본 명세서의 기술적 솔루션들은 "제3자 저장 시스템의 배치", "호출 데이터의 참조", 및 "스마트 계약의 호출 및 실행"과 관련하여, 블록체인이, 몇몇 멤버 블록체인들을 포함하는 컨소시엄 블록체인에서의 멤버 블록체인인 예를 사용함으로써 아래에 상세히 설명된다.Alternatively, in another example, in the consortium blockchain, another member blockchain with a cross-chain data reference relationship with the blockchain is used as a third-party storage system interconnected with the blockchain, crossing between member blockchains Chain data references can be implemented. In other words, the third-party storage system may be another blockchain having a cross-chain reference relationship with the blockchain. The technical solutions of the present specification are consortium blockchains in which the blockchain includes several member blockchains, in relation to "disposition of a third-party storage system", "reference of call data", and "calling and executing smart contracts". It is explained in detail below by using the example, which is a member blockchain in.

(1) 제3자 저장 시스템의 배치(1) Arrangement of third party storage systems

본 명세서에서, 오퍼레이터는 몇몇 멤버 블록체인들을 포함하는 컨소시엄 블록체인을 미리 확립할 수 있다. 컨소시엄 블록체인에서, 각각의 멤버 블록체인은 컨소시엄 블록체인의 컨소시엄 멤버이다. 앞선 블록체인은 컨소시엄 블록체인에서의 임의의 멤버 블록체인일 수 있다.In this specification, the operator can pre-establish a consortium blockchain that includes several member blockchains. In the consortium blockchain, each member blockchain is a consortium member of the consortium blockchain. The preceding blockchain may be any member blockchain in the consortium blockchain.

컨소시엄 블록체인의 오퍼레이터는 컨소시엄 블록체인에 제3자 저장 시스템을 추가로 배치할 수 있다. 제3자 저장 시스템은 컨소시엄 블록체인에서의 각각의 멤버 블록체인과 상호연결되고, 각각의 멤버 블록체인에 대해 신뢰성있는 데이터 저장 서비스를 제공한다.Operators of the consortium blockchain can further deploy third-party storage systems on the consortium blockchain. The third party storage system is interconnected with each member blockchain in the consortium blockchain, and provides a reliable data storage service for each member blockchain.

예를 들어, 제3자 저장 시스템은 각각의 멤버 블록체인에 대해 지속적으로 신뢰성있는 API 액세스 인터페이스를 제공할 수 있어서, 컨소시엄 블록체인에서의 각각의 멤버 블록체인은 API 액세스 인터페이스에 액세스함으로써 제3자 저장 시스템과 상호연결될 수 있다.For example, a third-party storage system can provide a consistently reliable API access interface for each member blockchain, so that each member blockchain in the consortium blockchain accesses the API access interface. It can be interconnected with a storage system.

컨소시엄 블록체인에의 제3자 저장 시스템 배치 동안, 컨소시엄 블록체인에 대해 글로벌 제3자 저장 시스템이 배치될 수 있거나, 또는 컨소시엄 블록체인에서의 각각의 멤버 블록체인에 대해 독립적인 제3자 저장 시스템이 배치될 수 있다. 구현들은 본 명세서에서 제한되지 않는다.During the deployment of a third party storage system to the consortium blockchain, a global third party storage system may be deployed for the consortium blockchain, or an independent third party storage system for each member blockchain in the consortium blockchain It can be placed. Implementations are not limited in this specification.

본 명세서에서, 제3자 저장 시스템은, 콘텐츠 어드레싱가능성을 지원하는 CAS 시스템일 수 있다. 실제 적용예들에서, 제3자 저장 시스템은 종래의 중앙집중화 CAS 시스템일 수 있거나 또는 분산 CAS 시스템일 수 있다.In the present specification, the third-party storage system may be a CAS system supporting content addressability. In practical applications, the third-party storage system can be a conventional centralized CAS system or a distributed CAS system.

분산 CAS 시스템은 종래의 중앙집중화 분산 시스템 및 탈중앙집중화 분산 시스템을 포함할 수 있다.The distributed CAS system may include a conventional centralized distributed system and a decentralized distributed system.

예시된 구현에서, 제3자 저장 시스템은, 컨소시엄 블록체인에 배치되고 컨소시엄 블록체인에서의 각각의 멤버 블록체인과 상호연결될 수 있는 OSS 아키텍처 기반 중앙집중화 분산 시스템 등일 수 있다.In the illustrated implementation, the third-party storage system may be a centralized distributed system based on an OSS architecture that is disposed on the consortium blockchain and can be interconnected with each member blockchain on the consortium blockchain.

다른 예시된 구현에서, 제3자 저장 시스템은 탈중앙집중화 분산 시스템일 수 있다. 구현 동안, 블록체인과의 크로스 체인 데이터 참조 관계를 갖는 컨소시엄 블록체인에서의 다른 멤버 블록체인은, 블록체인과 상호연결된 제3자 저장 시스템으로서 사용될 수 있다. 다시 말해, 컨소시엄 블록체인에서의 임의의 멤버 블록체인은, 다른 멤버 블록체인과 상호연결된 제3자 저장 시스템으로서 사용되어, 크로스 체인 데이터 참조를 구현할 수 있다.In another illustrated implementation, the third party storage system can be a decentralized distributed system. During implementation, other member blockchains in the consortium blockchain that have a cross-chain data reference relationship with the blockchain can be used as a third-party storage system interconnected with the blockchain. In other words, any member blockchain in the consortium blockchain can be used as a third-party storage system interconnected with other member blockchains to implement cross-chain data references.

예를 들어, 일 시나리오에서, 오퍼레이터는 실제 서비스 요건에 기초하여 컨소시엄 블록체인을 확립하고, 컨소시엄 블록체인에서의 멤버 블록체인들에 상이한 서비스 역할들을 할당할 수 있다. 구체적으로는, 컨소시엄 블록체인은 완전한 서비스 프로세스에 대응하고, 각각의 멤버 블록체인은 완전한 서비스 프로세스의 하나의 서브프로세스에 대응할 수 있다.For example, in one scenario, the operator can establish a consortium blockchain based on actual service requirements and assign different service roles to member blockchains in the consortium blockchain. Specifically, the consortium blockchain can correspond to a complete service process, and each member blockchain can correspond to one subprocess of the complete service process.

서비스 요건 "온라인 주택 임대 트랜잭션"에 기초하여 오퍼레이터에 의해 확립되는 컨소시엄 블록체인이 일 예로서 사용되고, 컨소시엄 블록체인을 형성하는 각각의 멤버 블록체인은 "트랜잭션 체인", "인증 체인", 및 "데이터 체인"을 포함할 수 있다. "트랜잭션 체인", "인증 체인", 및 "데이터 체인"은 "온라인 주택 임대 트랜잭션"의 서비스 프로세스의 하나의 서브프로세스에 별개로 대응할 수 있다. 예를 들어, "데이터 체인"은 주택 임대 사용자의 실명 데이터를 유지하는 데 사용되고; "인증 체인"은 사용자별 주택 임대 실명 인증을 완료하는 데 사용되며; "트랜잭션 체인"은 온라인 주택 임대 트랜잭션들을 완료하는 데 사용된다.The consortium blockchain established by the operator based on the service requirement "online housing rental transaction" is used as an example, and each member blockchain forming the consortium blockchain includes "transaction chain", "authentication chain", and "data Chain”. The "transaction chain", "authentication chain", and "data chain" may separately correspond to one subprocess of the service process of "online home rental transaction". For example, "data chain" is used to maintain real-name data of home rental users; "Authentication chain" is used to complete real estate authentication for each user's home rental; The "transaction chain" is used to complete online home rental transactions.

그 후에, 오퍼레이터는 멤버 블록체인들 사이의 단방향 크로스 체인 데이터 참조 관계에 기초하여 서비스 레벨에서 방향성 비사이클 그래프(Directed Acyclic Graph)(DAG) 토폴로지의 토폴로지 다이어그램으로서 컨소시엄 블록체인을 확립할 수 있다.Thereafter, the operator can establish a consortium blockchain as a topology diagram of a Directed Acyclic Graph (DAG) topology at the service level based on a unidirectional cross-chain data reference relationship between member blockchains.

멤버 블록체인들 사이의 단방향 크로스 체인 데이터 참조 관계는 통상적으로 실제 서비스 요건에 의존하고, 본 명세서에서 제한되지 않는다는 것에 주목할 가치가 있다.It is worth noting that the one-way cross-chain data reference relationship between member blockchains typically depends on actual service requirements and is not limited in this specification.

예를 들어, 도 2를 참조하면, 도 2는 일 예에 도시된 DAG 구조체의 컨소시엄 블록체인을 예시하는 개략적 다이어그램이다.For example, referring to FIG. 2, FIG. 2 is a schematic diagram illustrating a consortium blockchain of the DAG structure shown in one example.

도 2에 도시된 바와 같이, 서비스 요건 "온라인 주택 임대 트랜잭션"에 기초하여 오퍼레이터에 의해 확립되는 컨소시엄 블록체인이 일 예로서 여전히 사용되고, 컨소시엄 블록체인을 형성하는 멤버 블록체인들 각각은 "트랜잭션 체인", "인증 체인", 및 "데이터 체인"을 포함할 수 있다. "데이터 체인"은 주택 임대 사용자의 실명 데이터를 유지하는 데 사용되고, 사용자는 "데이터 체인"에 트랜잭션을 게시함으로써 "데이터 체인"의 분산 데이터베이스에 실명 데이터를 저장할 수 있다. "인증 체인"은 "데이터 체인"에 게시된 사용자의 실명 데이터를 참조하여, 사용자별 주택 임대 실명 인증을 완료하는 데 사용되고, 사용자는 "인증 체인"에 트랜잭션을 게시함으로써 실명 인증을 완료하고, "인증 체인"의 분산 데이터베이스에 실명 인증 결과를 게시할 수 있다. "트랜잭션 체인"은 "인증 체인"에 게시된 사용자별 실제 인증 결과를 참조하는 데 사용되어, 사용자는 "트랜잭션 체인"에 트랜잭션을 게시함으로써 온라인 주택 임대 트랜잭션을 완료하고, "인증 체인"의 분산 데이터베이스에 트랜잭션 결과를 게시할 수 있다.As shown in Fig. 2, the consortium blockchain established by the operator based on the service requirement "online housing rental transaction" is still used as an example, and each of the member blockchains forming the consortium blockchain is a "transaction chain". , "Authentication Chain", and "Data Chain". The "data chain" is used to maintain the real-name data of the home rental user, and the user can store the real-name data in the distributed database of the "data chain" by posting transactions to the "data chain". "Authentication chain" refers to the user's real-name data posted on the "data chain", is used to complete real-name authentication for real estate rental by user, the user completes real-name authentication by posting a transaction in the "authentication chain", Real-time authentication results can be posted in a distributed database of "authentication chains." The "transaction chain" is used to refer to the actual authentication result per user posted in the "authentication chain", so that the user completes the online home rental transaction by posting the transaction in the "transaction chain", and the distributed database of the "authentication chain" You can post the transaction results in

컨소시엄 블록체인에서의 임의의 타깃 멤버 블록체인과의 크로스 체인 데이터 참조 관계를 갖는 다른 멤버 블록체인은, 타깃 멤버 블록체인과 상호연결된 분산 저장 플랫폼으로서 사용된다.Another member blockchain that has a cross-chain data reference relationship with any target member blockchain in the consortium blockchain is used as a distributed storage platform interconnected with the target member blockchain.

멤버 블록체인들 사이의 크로스 체인 데이터 참조는 서비스 레벨에서 구현될 수 있다.Cross-chain data references between member blockchains can be implemented at the service level.

부가적으로, 제3자 저장 시스템으로서 사용된 멤버 블록체인이 배치된 스마트 계약을 호출하고 실행할 때, 제3자 저장 시스템에 저장된 타깃 데이터가 스마트 계약 계산을 위해 사용된 호출 데이터에서 참조되는 경우, 참조된 타깃 데이터의 원본 콘텐츠는 더 이상 타깃 멤버 블록체인에서의 각각의 노드 디바이스와 동기화될 필요가 없고, 타깃 멤버 블록체인은 더 이상 참조된 타깃 데이터의 원본 콘텐츠를 저장할 필요가 없다.Additionally, when the member blockchain used as a third-party storage system calls and executes a smart contract in which it is deployed, the target data stored in the third-party storage system is referenced in the call data used for smart contract calculation, The original content of the referenced target data no longer needs to be synchronized with each node device in the target member blockchain, and the target member blockchain no longer needs to store the original content of the referenced target data.

그에 따라, 타깃 멤버 블록체인은 더 이상, 타깃 멤버 블록체인에 저장된 타깃 데이터의 원본 콘텐츠와, 제3자 저장 시스템으로서 사용된 멤버 블록체인으로부터 동기화된 참조된 타깃 데이터 사이에, 부가적인 데이터 연관을 설정할 필요가 없고, 단지 참조된 타깃 데이터의 데이터 다이제스트만을 사용함으로써 2개의 상이한 블록체인들에서의 참조된 타깃 데이터 사이의 데이터 연관을 구현하여, 그에 의해 제3자 저장 시스템으로서 사용된 멤버 블록체인에 저장된 참조된 타깃 데이터에 의한 서비스 의미론의 관점에서, 타깃 멤버 블록체인에 배치된 스마트 계약에서 참조된 타깃 데이터가 일치한다는 것을 보장할 수 있다.Accordingly, the target member blockchain no longer establishes additional data association between the original content of the target data stored in the target member blockchain and the referenced target data synchronized from the member blockchain used as a third party storage system. There is no need to set up, and by using only the data digest of the referenced target data, data association between the referenced target data in two different blockchains is implemented, thereby allowing the member blockchain to be used as a third party storage system. From the point of view of service semantics by the stored referenced target data, it is possible to ensure that the target data referenced in the smart contract placed on the target member blockchain matches.

(2) 호출 데이터의 참조(2) Reference of call data

본 명세서에서, 컨소시엄 블록체인에 액세스할 필요가 있는 사용자는 컨소시엄 블록체인에의 사용자 등록을 미리 수행하여, 컨소시엄 블록체인에 의해 반환되는 한 쌍의 공개 키 및 개인 키를 획득할 수 있다. 등록이 완료된 후에, 컨소시엄 블록체인은 사용자에 대한 대응하는 어카운트 오브젝트(account object)를 생성할 수 있다.In the present specification, a user who needs to access the consortium blockchain can perform user registration in advance on the consortium blockchain to obtain a pair of public and private keys returned by the consortium blockchain. After registration is completed, the consortium blockchain can create a corresponding account object for the user.

등록을 완료한 사용자는 컨소시엄 블록체인에서의 각각의 멤버 블록체인에 의해 제공된 API 인터페이스를 사용함으로써 각각의 멤버 블록체인에 액세스하고, 각각의 멤버 블록체인에 대한 보유된 개인 키에 기초하여 서명된 트랜잭션을 게시하여, 각각의 멤버 블록체인에 배치된 스마트 계약을 호출할 수 있다.Users who have completed registration access each member blockchain by using the API interface provided by each member blockchain on the consortium blockchain, and signed transactions based on the private key held for each member blockchain By posting, you can call smart contracts placed on each member blockchain.

도 2에 도시된 컨소시엄 블록체인에서의 "트랜잭션 체인"이 일 예로서 사용된다. 컨소시엄 블록체인의 오퍼레이터는, "트랜잭션 체인"에, 온라인 임대 주택 어카운팅을 완료하는 데 사용된 스마트 계약을 게시할 수 있고, 사용자는 "트랜잭션 체인"에서 트랜잭션을 게시하여, 스마트 계약의 호출을 트리거링하고, 온라인 주택 임대 트랜잭션 어카운팅을 완료할 수 있다.The "transaction chain" in the consortium blockchain shown in Fig. 2 is used as an example. The operator of the consortium blockchain can post the smart contract used to complete the online rental home accounting, in the "transaction chain", and the user can post the transaction in the "transaction chain", triggering the call of the smart contract , You can complete the online housing rental transaction accounting.

컨소시엄 블록체인의 오퍼레이터가 컨소시엄 블록체인에 스마트 계약을 배치하는 상세한 프로세스가 본 명세서에서는 단순화를 위해 생략된다. 본 기술분야의 통상의 기술자는 본 명세서에서 설명되는 기술적 솔루션들을 실시할 때 관련 기술 기록들을 참조할 수 있다.The detailed process in which the operator of the consortium blockchain places smart contracts on the consortium blockchain is omitted here for simplicity. Those skilled in the art can refer to related technical records when implementing the technical solutions described herein.

예를 들어, 컨소시엄 블록체인에 액세스한 복수의 멤버들은 스마트 계약을 공동으로 협상하고, 스마트 계약에서 개발된 스마트 계약 프로그램(예를 들어, 호출될 수 있는 일부 함수들과 관련된 프로그램 코드)을 선언한 후에, 컨소시엄 블록체인에서 스마트 계약을 게시할 수 있어서, 컨소시엄 블록체인에서의 노드 디바이스가 합의 프로세싱(consensus processing)을 수행하고, 합의가 달성된 후에, 컨소시엄 블록체인의 분산 데이터베이스에 스마트 계약을 기록 및 저장하여, 스마트 계약의 배치를 완료하도록 한다.For example, multiple members who have access to the consortium blockchain jointly negotiate smart contracts and declare smart contract programs developed in smart contracts (e.g. program code related to some functions that can be called). Later, the smart contract can be published on the consortium blockchain, so that the node device on the consortium blockchain performs consensus processing, and after the consensus is achieved, records the smart contract in the distributed database of the consortium blockchain and Save to complete the deployment of the smart contract.

본 명세서에서, 컨소시엄 블록체인의 오퍼레이터는 컨소시엄 블록체인에 액세스한 멤버 사용자를 위한 클라이언트 소프트웨어(예를 들어, APP)를 개발할 수 있고, 멤버 사용자는, 클라이언트 소프트웨어를 사용함으로써, 컨소시엄 블록체인에 의해 지원된 표준 트랜잭션 포맷에 기초하여 트랜잭션 데이터를 어셈블하고, 각각의 멤버 블록체인에 의해 제공된 API 인터페이스를 호출함으로써, 멤버 사용자에 의해 특정된 컨소시엄 블록체인에서의 타깃 멤버 블록체인에 어셈블된 트랜잭션 데이터를 게시하여, 타깃 멤버 블록체인에 배치된 스마트 계약의 호출을 개시할 수 있다.In the present specification, an operator of the consortium blockchain can develop client software (eg, APP) for member users who have access to the consortium blockchain, and member users are supported by the consortium blockchain by using client software By assembling transaction data based on the standardized transaction format, and calling the API interface provided by each member blockchain, publish the assembled transaction data on the target member blockchain in the consortium blockchain specified by the member user. , It can initiate the call of the smart contract placed on the target member blockchain.

클라이언트 소프트웨어를 사용함으로써 멤버 사용자에 의해 어셈블된 트랜잭션 데이터는, 멤버 사용자에 의해 제공된 호출 데이터를 포함할 수 있고, 호출 데이터는 스마트 계약에 입력되는 호출 파라미터로서 사용된다. 호출 데이터의 적어도 일부분이 데이터 다이제스트로 대체될 수 있다.Transaction data assembled by the member user by using the client software may include call data provided by the member user, and the call data is used as a call parameter input to the smart contract. At least a portion of the call data can be replaced with a data digest.

예시된 구현에서, 멤버 사용자가, 클라이언트 소프트웨어를 사용함으로써, 타깃 멤버 블록체인에서 실행될 필요가 있는 트랜잭션 데이터를 어셈블할 때, 멤버 사용자는, 클라이언트 소프트웨어를 사용함으로써, 트랜잭션에 포함될 필요가 있는 호출 데이터를 작성할 수 있다. 클라이언트 소프트웨어는 멤버 사용자에 의해 작성된 호출 데이터를 파싱하여, 타깃 멤버 블록체인과 상호연결된 제3자 저장 시스템에 저장된 데이터가 멤버 사용자에 의해 작성된 호출 데이터에 존재하는지 여부를 결정할 수 있다, 다시 말해, 제3자 저장 시스템에 저장된 데이터가 멤버 사용자에 의해 작성된 호출 데이터에서 참조되는지 여부를 결정할 수 있다.In the illustrated implementation, when a member user assembles transaction data that needs to be executed on the target member blockchain by using the client software, the member user, by using the client software, provides call data that needs to be included in the transaction. You can write The client software can parse the call data created by the member user to determine whether the data stored in the third-party storage system interconnected with the target member blockchain is present in the call data created by the member user. It is possible to determine whether data stored in the third-party storage system is referenced in the call data created by the member user.

제3자 저장 시스템에 저장된 데이터가 멤버 사용자에 의해 작성된 호출 데이터에 존재하는 경우, 호출 데이터에 대응하는 데이터 다이제스트(즉, 질의 인덱스)가 제3자 저장 시스템으로부터 질의될 수 있거나, 또는 제3자 저장 시스템에 의해 지원된 데이터 다이제스트 알고리즘과 동일한 데이터 다이제스트 알고리즘에 기초하여 트랜잭션 콘텐츠에 대해 데이터 다이제스트가 재계산될 수 있고, 그 후에 데이터 다이제스트가 표준 트랜잭션 포맷으로 작성될 수 있다.When data stored in the third-party storage system is present in the call data created by the member user, a data digest (i.e., query index) corresponding to the call data can be queried from the third-party storage system, or a third party The data digest can be recalculated for the transaction content based on the same data digest algorithm supported by the storage system, and the data digest can then be written in a standard transaction format.

예를 들어, 구현 동안, 호출 데이터를 포함하는 데 사용된 데이터 다이제스트 필드는 컨소시엄 블록체인에 의해 지원된 표준 트랜잭션 포맷으로 확장될 수 있다. 표준 트랜잭션 포맷으로 트랜잭션 데이터를 어셈블할 때, 클라이언트 소프트웨어는 제3자 저장 시스템에 저장된 참조 데이터의 모든 데이터 다이제스트들을 데이터 다이제스트 필드에 채울 수 있다.For example, during implementation, the data digest field used to contain the call data can be extended to the standard transaction format supported by the consortium blockchain. When assembling transactional data in a standard transactional format, the client software can fill all data digests of reference data stored in a third-party storage system into a data digest field.

(3) 스마트 계약의 호출 및 실행(3) Calling and executing smart contracts

본 명세서에서, 개인 키에 기초하여 멤버 사용자에 의해 게시된 트랜잭션을 수신한 후에, 타깃 멤버 블록체인에서의 노드 디바이스는 먼저, 사용자에 의해 보유된 개인 키에 대응하는 공개 키에 기초하여 사용자의 신원 인증(identity authentication)을 수행할 수 있다.In this specification, after receiving a transaction posted by a member user based on a private key, the node device in the target member blockchain first identifies the user's identity based on the public key corresponding to the private key held by the user. Identity authentication may be performed.

예를 들어, 실제 적용예들에서, 사용자는 보유된 개인 키에 기초하여 개시된 트랜잭션에 서명할 수 있고, 블록체인에서의 노드 디바이스는 사용자에 의해 보유된 개인 키에 대응하는 공개 키에 기초하여 서명을 인증할 수 있다. 서명에 대한 인증이 성공한 경우, 사용자의 신원 인증이 성공한다.For example, in practical applications, the user can sign a transaction initiated based on the private key held, and the node device in the blockchain signs based on the public key corresponding to the private key held by the user. Can authenticate. If the signature authentication succeeds, the user's identity authentication succeeds.

신원 인증이 성공한 후에, 노드 디바이스는 타깃 멤버 블록체인에서의 트랜잭션에 대해 합의 프로세싱을 개시하고, 합의가 달성된 후에, 트랜잭션을 타깃 멤버 블록체인의 분산 데이터베이스에 기록 및 저장할 수 있다. 일단 트랜잭션이 타깃 멤버 블록체인의 분산 데이터베이스에 성공적으로 기록되고 저장되면, 스마트 계약에서 선언된 스마트 계약 프로그램을 실행하도록, 분산 데이터베이스에 기록된 트랜잭션에 기초하여 스마트 계약의 호출이 후속적으로 트리거링될 수 있다.After the identity authentication is successful, the node device can initiate consensus processing for the transaction in the target member blockchain, and after the consensus is achieved, the transaction can be recorded and stored in the distributed database of the target member blockchain. Once the transaction has been successfully recorded and stored in the target member blockchain's distributed database, calls to the smart contract can be subsequently triggered based on the transaction recorded in the distributed database to execute the smart contract program declared in the smart contract. have.

예를 들어, 구현 동안, 엄격한 트리거링 실행 조건은 통상적으로 스마트 계약에서 스마트 계약 프로그램에 대해 미리 결정된다. 스마트 계약은 분산 데이터베이스에 현재 기록된 트랜잭션이 실행 조건을 만족하는지 여부를 주기적으로 체크하고, 검증될 트랜잭션 큐에, 실행 조건을 만족시키고 분산 데이터베이스에 저장되는 트랜잭션을 부가하며, 트랜잭션 큐에서 트랜잭션에 대한 합의 프로세싱을 수행할 수 있다. 합의가 달성되는 경우, 스마트 계약에서 선언된 스마트 계약 프로그램의 실행이 트리거링될 수 있다.For example, during implementation, stringent triggering execution conditions are typically predetermined for a smart contract program in a smart contract. The smart contract periodically checks whether the transaction currently recorded in the distributed database satisfies the execution condition, adds the transaction stored in the distributed database to the transaction queue to be verified, and executes the transaction queue to be verified. Consensus processing can be performed. If consensus is achieved, the execution of the smart contract program declared in the smart contract can be triggered.

타깃 멤버 블록체인에서의 트랜잭션에 대해 합의 프로세싱이 수행될 때 사용된 합의 알고리즘은 본 명세서에서 제한되지 않는다는 것에 주목할 가치가 있다. 멤버 블록체인들에 의해 지원된 합의 알고리즘들은 동일할 수 있거나 또는 상이할 수 있다. 예를 들어, 컨소시엄 블록체인은 PBFT와 같은 메인스트림 합의 알고리즘을 사용할 수 있거나, 또는 컨소시엄 블록체인은 합의 알고리즘을 독립적으로 개발할 수 있다.It is worth noting that the consensus algorithm used when consensus processing is performed for transactions on the target member blockchain is not limited in this specification. The consensus algorithms supported by member blockchains can be the same or different. For example, the consortium blockchain can use a mainstream consensus algorithm such as PBFT, or the consortium blockchain can independently develop consensus algorithms.

본 명세서에서, 스마트 계약에서 선언된 스마트 계약 프로그램을 실행하도록 트랜잭션에 기초하여 스마트 계약의 호출이 트리거링될 때, 스마트 계약은 먼저, 트랜잭션에 포함된 호출 데이터를 파싱하여, 트랜잭션에 포함된 호출 데이터에 데이터 다이제스트가 있는지 여부를 결정할 수 있다.In the present specification, when a call of a smart contract is triggered based on a transaction to execute a smart contract program declared in the smart contract, the smart contract first parses the call data included in the transaction, to the call data included in the transaction. You can decide whether there is a data digest or not.

예를 들어, 노드 디바이스는, 파싱을 통해, 표준 트랜잭션 포맷으로부터 확장되고 트랜잭션 콘텐츠를 포함시키는 데 사용되는 데이터 다이제스트 필드가 널(null) 값인지 여부를 결정하여, 트랜잭션에 포함된 트랜잭션 콘텐츠에 데이터 다이제스트가 있는지 여부를 결정할 수 있다.For example, the node device, through parsing, determines whether the data digest field extended from the standard transaction format and used to include transaction content is a null value, thereby digesting the data in the transaction content included in the transaction. You can decide whether there is.

트랜잭션에 포함된 호출 데이터에 데이터 다이제스트가 있는 경우, 제3자 저장 시스템에 저장된 데이터 콘텐츠는 트랜잭션에서의 일부 호출 데이터에서 참조된다. 그러한 경우에, 트랜잭션에 포함된 완전한 호출 데이터를 획득하기 위해, 스마트 계약은 타깃 멤버 블록체인과 상호연결된 제3자 저장 시스템으로부터 데이터 다이제스트에 대응하는 타깃 데이터를 질의할 수 있다.When there is a data digest in the call data included in the transaction, data content stored in the third-party storage system is referred to in some call data in the transaction. In such a case, in order to obtain the complete call data included in the transaction, the smart contract can query the target data corresponding to the data digest from a third-party storage system interconnected with the target member blockchain.

구현 동안, 스마트 계약은 질의 요청을 확립하고, 데이터 다이제스트를 질의 인덱스로서 사용함으로써 질의 요청에 데이터 다이제스트를 부가한 후에, 질의 요청을 제3자 저장 시스템에 제출할 수 있다. 질의 요청을 수신한 후에, 제3자 저장 시스템은 질의 요청으로부터 질의 인덱스를 판독한 후에, 질의 인덱스에 기초하여, 로컬로 저장된 데이터 콘텐츠와 데이터 다이제스트 사이의 매핑 관계들을 검토하여, 질의 인덱스에 대응하는 타깃 데이터를 질의하고, 식별된 타깃 데이터를 스마트 계약에 반환할 수 있다.During implementation, the smart contract can establish a query request, add a data digest to the query request by using the data digest as a query index, and then submit the query request to a third-party storage system. After receiving the query request, the third-party storage system reads the query index from the query request, and then, based on the query index, examines mapping relationships between the locally stored data content and the data digest, corresponding to the query index The target data can be queried and the identified target data can be returned to the smart contract.

제3자 저장 시스템은 타깃 멤버 블록체인과의 크로스 체인 참조 관계를 갖는 다른 멤버 블록체인일 수 있다는 것에 주목할 가치가 있다. 그에 따라, 스마트 계약에 의해 확립된 질의 요청은 제3자 저장 시스템으로서 사용된 다른 멤버 블록체인에서의 노드 디바이스들로 브로드캐스팅될 수 있다.It is worth noting that the third-party storage system may be another member blockchain having a cross-chain reference relationship with the target member blockchain. Accordingly, query requests established by smart contracts can be broadcast to node devices in other member blockchains used as third party storage systems.

실제 적용예들에서, 다른 멤버 블록체인에 사용된 합의 알고리즘들 사이의 차이 때문에, 스마트 계약이 질의 요청을 다른 멤버 블록체인에서의 노드 디바이스들에 전송한 후에 상이한 질의 결과들이 획득될 수 있다.In practical applications, different query results may be obtained after a smart contract sends a query request to node devices in another member blockchain, due to differences between consensus algorithms used in different member blockchains.

예를 들어, 블록체인에 사용된 합의 알고리즘들은 통상적으로 분산 일치성(distributed consistency)에 기초하여 2개의 타입들로 분류될 수 있다. 분산 일치성은 합의 알고리즘을 사용함으로써 합의가 달성된 후에 블록체인에서의 모든 노드 디바이스들 상에 저장된 데이터가 완전히 동일하다는 것을 의미한다.For example, consensus algorithms used in blockchains can be generally classified into two types based on distributed consistency. Distributed consistency means that data stored on all node devices in the blockchain are completely identical after consensus is achieved by using the consensus algorithm.

첫 번째 타입의 합의 알고리즘은 각각의 노드 디바이스의 분산 일치성을 보장할 수 있는 합의 알고리즘이다. 예를 들어, 장애 허용 메커니즘은 PBFT 합의 알고리즘에서 합의를 달성하는 데 사용되어, 합의가 달성된 후에 각각의 노드 디바이스에 의해 저장된 데이터가 정확히 동일하도록 한다.The first type of consensus algorithm is a consensus algorithm that can guarantee distributed consistency of each node device. For example, a fault tolerance mechanism is used to achieve consensus in the PBFT consensus algorithm, so that the data stored by each node device is exactly the same after consensus is achieved.

두 번째 타입의 합의 알고리즘은 각각의 노드 디바이스의 분산 일치성을 보장할 수 없는 합의 알고리즘이다. 예를 들어, 경쟁 기반 원장 메커니즘이 PoS 또는 PoW 합의 알고리즘에서 합의에 도달하는 데 사용된다. 결과적으로, 합의가 달성된 후에 각각의 노드 디바이스에 의해 저장된 데이터가 동일하다는 것이 보장될 수 없다. PoW 합의 알고리즘이 일 예로서 사용된다. 워크로드 계산을 통해 원장 권한을 획득한 노드 디바이스는, 노드 디바이스에 의해 제안된 블록의 데이터만을 단지 저장할 수 있고, 결과적으로, 노드 디바이스들에 의해 로컬로 저장된 블록 데이터는 상이할 수 있다.The second type of consensus algorithm is a consensus algorithm that cannot guarantee distributed consistency of each node device. For example, a competition-based ledger mechanism is used to reach consensus in PoS or PoW consensus algorithms. As a result, it cannot be guaranteed that the data stored by each node device after the agreement is achieved is the same. The PoW consensus algorithm is used as an example. A node device that has obtained ledger authority through workload calculation may only store data of blocks proposed by the node device, and consequently, block data stored locally by the node devices may be different.

그에 따라, 일단 제3자 저장 시스템으로서 사용된 다른 멤버 블록체인에 의해 사용된 합의 알고리즘이 상술된 두 번째 타입의 합의 알고리즘이면, 일부 노드 디바이스들은 관련된 데이터를 로컬로 식별할 수 없지만, 다른 노드 디바이스들은 스마트 계약이 다른 멤버 블록체인에서의 각각의 노드 디바이스에 질의 요청을 전송한 후에 식별할 수 있는 것이 가능하다.Accordingly, once the consensus algorithm used by another member blockchain used as a third-party storage system is the second type of consensus algorithm described above, some node devices cannot identify the related data locally, but other node devices It is possible that smart contracts can be identified after sending a query request to each node device in a different member blockchain.

일 시나리오에서, 제3자 저장 시스템으로서 사용된 다른 멤버 블록체인에 의해 사용된 합의 알고리즘이 상술된 첫 번째 타입의 합의 알고리즘인 경우, 스마트 계약은, 합의 알고리즘을 또한 지원하는 질의 클라이언트 소프트웨어를 사용함으로써, 다른 멤버 블록체인에 대한 데이터 질의를 수행하여 일치성 질의 결과를 획득할 수 있다.In one scenario, if the consensus algorithm used by another member blockchain used as a third-party storage system is the first type of consensus algorithm described above, the smart contract may use a query client software that also supports the consensus algorithm. , By performing data query on other member blockchains, it is possible to obtain the result of the consistency query.

PBFT 합의 알고리즘이 일 예로서 사용된다. 제3자 저장 시스템으로서 사용된 다른 멤버 블록체인에서의 노드 디바이스들의 수가 3f+1이라고 가정한다. 스마트 계약이 질의 클라이언트 소프트웨어를 사용함으로써 다른 멤버 블록체인에서의 노드 디바이스들로 질의 요청을 별개로 전송한 후에, f+1개의 노드 디바이스들에 의해 반환된 동일한 질의 결과가 수신되는 경우, 질의 결과가 최종 질의 결과인 것으로 간주될 수 있다.The PBFT consensus algorithm is used as an example. It is assumed that the number of node devices in another member blockchain used as a third-party storage system is 3f+1. If the same query result returned by f+1 node devices is received after the smart contract transmits a query request to node devices in another member blockchain separately by using the query client software, the query result is It can be considered as the result of the final query.

일 시나리오에서, 제3자 저장 시스템으로서 사용된 다른 멤버 블록체인에 의해 사용된 합의 알고리즘이 상술된 두 번째 타입의 합의 알고리즘인 경우, 안정적이고 신뢰성있는 노드 디바이스가 다른 멤버 블록체인에서의 질의 노드로서 특정될 필요가 있다. 스마트 계약은 질의 요청을 질의 노드에 전송하고, 관련 데이터에 대해 질의 노드에 의해 로컬로 저장된 데이터를 탐색할 수 있다.In one scenario, if the consensus algorithm used by another member blockchain used as a third-party storage system is the second type of consensus algorithm described above, then a stable and reliable node device as a query node in another member blockchain Needs to be specified. The smart contract may send a query request to the query node and search data stored locally by the query node for related data.

다시 말해, 그러한 시나리오에서, 질의 노드에 의해 로컬로 저장된 데이터는 데이터 참조 당사자에 대한 일치성 결과이며, 단지 질의 노드에 의해 로컬로 저장된 데이터만이 다른 멤버 블록체인에 배치된 스마트 계약에 의해 참조될 수 있는 것으로 간주될 수 있다.In other words, in such a scenario, data stored locally by the query node is the result of a match to the data referencing party, and only data stored locally by the query node will be referenced by smart contracts deployed on other member blockchains. Can be considered as possible.

실제 적용예들에서, 질의 요청은, 데이터 다이제스트에 대응하는 타깃 데이터를 신속하게 식별하기 위해, 질의 인덱스로서 사용되는 데이터 다이제스트에 부가적으로, 일부 보조 질의 파라미터들을 포함할 수 있다는 것에 주목할 가치가 있다.In practical applications, it is worth noting that the query request may include some auxiliary query parameters, in addition to the data digest used as a query index, to quickly identify target data corresponding to the data digest. .

예를 들어, 타깃 멤버 블록체인과 상호연결된 제3자 저장 시스템은, 타깃 멤버 블록체인과의 크로스 체인 데이터 참조 관계를 갖는 다른 멤버 블록체인이다. 제3자 저장 시스템으로서 사용된 다른 멤버 블록체인에 저장되는 참조된 데이터 콘텐츠 및 대응하는 데이터 다이제스트는 통상적으로 블록의 형태로 블록체인의 분산 데이터베이스에 저장된다. 그에 따라, 질의의 용이성을 위해, 질의 요청은, 데이터 다이제스트가 위치되는 멤버 블록체인의 블록 번호 및 시퀀스 번호와 같은 보조 질의 파라미터들을 더 포함할 수 있다.For example, a third-party storage system interconnected with a target member blockchain is another member blockchain having a cross-chain data reference relationship with the target member blockchain. Referenced data content and corresponding data digests stored in other member blockchains used as third party storage systems are typically stored in a distributed database on the blockchain in the form of blocks. Accordingly, for ease of query, the query request may further include auxiliary query parameters such as a block number and a sequence number of a member blockchain in which the data digest is located.

본 명세서에서, 스마트 계약이 타깃 멤버 블록체인과 상호연결된 제3자 저장 시스템으로부터의 수신된 트랜잭션에 포함된 데이터 다이제스트에 대응하는 타깃 데이터를 식별한 후에, 스마트 계약의 호출이 개시되어, 스마트 계약에서 선언된 스마트 계약 프로그램을 실행하고, 트랜잭션에 포함된 완전한 호출 데이터에 대한 스마트 계약 계산을 수행할 수 있다.In the present specification, after the smart contract identifies the target data corresponding to the data digest included in the received transaction from the third-party storage system interconnected with the target member blockchain, the call of the smart contract is initiated, in the smart contract You can run the declared smart contract program and perform smart contract calculation on complete call data included in the transaction.

먼저, 스마트 계약은 식별된 타깃 데이터가 트랜잭션에 포함된 데이터 다이제스트에 대응하는 데이터 콘텐츠와 일치한다는 것을 보정하기 위해, 식별된 타깃 데이터에 대한 콘텐츠 검증을 수행할 수 있다.First, the smart contract may perform content verification on the identified target data in order to correct that the identified target data matches data content corresponding to the data digest included in the transaction.

구현 동안, 스마트 계약은 식별된 타깃 데이터의 데이터 다이제스트를 재계산한 후에, 수신된 트랜잭션에 포함된 데이터 다이제스트와 재계산된 데이터 다이제스트를 매칭시켜, 재계산된 데이터 다이제스트가, 수신된 트랜잭션에 포함된 데이터 다이제스트와 일치하는지 여부를 결정할 수 있다.During implementation, the smart contract recalculates the data digest of the identified target data, and then matches the data digest contained in the received transaction with the recalculated data digest so that the recalculated data digest is included in the received transaction. You can decide whether it matches the data digest.

이들이 일치하는 경우, 식별된 타깃 데이터에 대한 콘텐츠 검증이 성공하고, 트랜잭션은 유효한 트랜잭션이다. 스마트 계약은 트랜잭션에 포함된 완전한 호출 데이터를 획득하고, 스마트 계약에서 선언된 스마트 계약 프로그램의 입력 파라미터들로서 완전한 호출 파라미터들을 사용하며, 스마트 계약 계산을 위해 스마트 계약 프로그램에 그 파라미터들을 입력할 수 있다.If they match, content verification for the identified target data is successful, and the transaction is a valid transaction. The smart contract can acquire complete call data included in the transaction, use the complete call parameters as input parameters of the smart contract program declared in the smart contract, and input the parameters into the smart contract program for smart contract calculation.

이들이 일치하지 않은 경우, 식별된 타깃 데이터에 대한 콘텐츠 검증이 실패한다. 그러한 경우에, 제3자 저장 시스템에 저장된 원본의 참조된 타깃 데이터는 시스템 비신뢰성으로 인해 수정 및 업데이트될 수도 있다. 결과적으로, 트랜잭션은 무효한 트랜잭션이며, 스마트 계약을 호출한 프로세스가 바로 종료될 수 있다.If they do not match, content verification against the identified target data fails. In such a case, the referenced target data of the original stored in the third-party storage system may be modified and updated due to system unreliability. As a result, the transaction is an invalid transaction, and the process that called the smart contract can be terminated immediately.

스마트 계약이 식별된 타깃 데이터의 데이터 다이제스트를 재계산할 때, 타깃 데이터의 데이터 구조체, 타깃 데이터에 대한 인코딩 방법, 및 사용된 다이제스트 알고리즘 모두가 제3자 저장 시스템의 것들과 일치할 필요가 있어서, 노드 디바이스 및 제3자 저장 시스템이 동일한 타깃 데이터에 대한 데이터 다이제스트 계산을 수행할 때 동일한 계산 결과를 획득할 수 있다는 것을 보장한다는 것에 주목할 가치가 있다.When the smart contract recalculates the data digest of the identified target data, the data structure of the target data, the encoding method for the target data, and the digest algorithm used all need to match those of the third-party storage system, so that the node It is worth noting that the device and the third-party storage system ensure that the same calculation result can be obtained when performing data digest calculation on the same target data.

본 명세서에서, 트랜잭션에 포함된 완전한 호출 데이터가 입력 파라미터로서 사용되고 스마트 계약 계산을 완료하기 위해 스마트 계약에서 선언된 스마트 계약 프로그램에 입력된 후에, 트랜잭션의 실행이 완료되고, 스마트 계약 계산의 계산 결과(즉, 트랜잭션의 실행 결과)가 타깃 멤버 블록체인의 분산 데이터베이스에 추가로 저장될 수 있다.In this specification, after the complete call data included in the transaction is used as an input parameter and entered into the smart contract program declared in the smart contract to complete the smart contract calculation, the execution of the transaction is completed, and the calculation result of the smart contract calculation ( That is, the execution result of the transaction) may be additionally stored in the distributed database of the target member blockchain.

블록체인의 분산 데이터베이스에 기록된 정보는 통상적으로 트랜잭션 로그 및 트랜잭션 상태를 포함한다.The information recorded in the blockchain's distributed database typically includes transaction logs and transaction status.

트랜잭션 로그는 트랜잭션 로그를 저장하는 데 사용되고, 발생의 순서대로 직렬로 연결되는 블록들(블록)을 포함하며, 분산 데이터베이스에서의 트랜잭션 레코드이다. 트랜잭션에 대한 합의가 달성된 후에, 트랜잭션은 트랜잭션 로그의 대응하는 블록에 기록 및 저장될 수 있다.The transaction log is used to store the transaction log, contains blocks (blocks) connected in series in the order of occurrence, and is a transaction record in a distributed database. After consensus on the transaction is achieved, the transaction can be recorded and stored in the corresponding block of the transaction log.

트랜잭션 상태는 분산 데이터베이스에 기록된 트랜잭션의 실행에 의해 야기된 스테이터스 변화(status change)를 저장하는 데 사용된다. 예를 들어, 블록체인은, 많은 작은 오브젝트들(예컨대, 어카운트 오브젝트, 계약 오브젝트, 및 자산 오브젝트)을 통상적으로 포함한다. 트랜잭션이 블록체인의 분산 데이터베이스에 기록될 때마다, 트랜잭션과 관련된 스테이터스가 트랜잭션의 실행이 완료된 후에 동기적으로 업데이트된다. 블록체인에 제출되는 온라인 이체 트랜잭션(online transfer transaction)이 일 예로서 사용된다. 관련된 스마트 계약을 호출함으로써 트랜잭션이 실행된 후에, 현재 이체와 관련된 어카운트 오브젝트의 잔액이 동기적으로 업데이트된다.The transaction state is used to store status changes caused by the execution of transactions recorded in the distributed database. For example, a blockchain typically includes many small objects (eg, account object, contract object, and asset object). Whenever a transaction is recorded in the blockchain's distributed database, the status associated with the transaction is updated synchronously after the execution of the transaction is completed. An online transfer transaction submitted to the blockchain is used as an example. After the transaction is executed by calling the related smart contract, the balance of the account object associated with the current transfer is synchronously updated.

그러한 경우에, 트랜잭션에 포함된 완전한 호출 데이터에 대한 스마트 계약 계산을 완료한 후에, 스마트 계약은 스마트 계약 계산의 계산 결과를 트랜잭션 상태에 추가로 저장하여, 트랜잭션에 의해 야기된 관련 오브젝트의 스테이터스 변화를 업데이트할 수 있다. 블록체인에 제출되는 온라인 이체 트랜잭션이 여전히 일 예로서 사용된다. 트랜잭션에 포함된 완전한 호출 데이터에 대한 스마트 계약 계산을 완료한 후에, 스마트 계약은 트랜잭션 상태에서의 현재 이체와 관련된 어카운트 오브젝트의 잔액을 업데이트할 수 있다.In such a case, after completing the smart contract calculation for the complete call data included in the transaction, the smart contract additionally stores the calculation result of the smart contract calculation in the transaction state, thereby changing the status change of the related object caused by the transaction. Can be updated. Online transfer transactions submitted to the blockchain are still used as an example. After completing the smart contract calculation for the complete call data included in the transaction, the smart contract can update the balance of the account object related to the current transfer in the transaction state.

앞선 구현에서, 스마트 계약의 호출을 개시하는 데 사용된 트랜잭션은, 제3자 저장 시스템에 저장된 타깃 데이터의 데이터 다이제스트를 포함하여, 블록체인에서 트랜잭션을 수신한 노드 디바이스가 데이터 다이제스트에 기초하여 제3자 저장 시스템으로부터 대응하는 타깃 데이터를 질의하고, 타깃 데이터에 대한 콘텐츠 검증을 수행할 수 있다. 타깃 데이터에 대한 검증이 성공한 후에, 트랜잭션에서의 호출 데이터에 대한 스마트 계약 계산을 수행하도록 스마트 계약을 호출하고, 스마트 계약 계산이 완료된 후에 블록체인의 분산 데이터베이스에 계산 결과를 저장한다. 이와 같이, 블록체인과 상호연결된 제3자 저장 시스템에 저장된 타깃 데이터는 스마트 계약의 호출을 개시하는 데 사용된 트랜잭션에서 호출 데이터로서 참조되어, 제3자 저장 시스템에 저장된 타깃 데이터의 원본 콘텐츠를 블록체인에서의 각각의 노드 디바이스와 동기화시킴으로써 야기되는 블록체인 데이터 저장 리던던시를 완화시킬 수 있다.In the previous implementation, the transaction used to initiate the invocation of the smart contract includes a data digest of target data stored in a third-party storage system, where the node device receiving the transaction in the blockchain is based on the data digest. The corresponding target data may be queried from the child storage system, and content verification may be performed on the target data. After the verification of the target data is successful, the smart contract is called to perform smart contract calculation on the call data in the transaction, and the calculation result is stored in the distributed database of the blockchain after the smart contract calculation is completed. As such, the target data stored in the third-party storage system interconnected with the blockchain is referred to as call data in the transaction used to initiate the call of the smart contract, blocking the original content of the target data stored in the third-party storage system. The redundancy of blockchain data storage caused by synchronization with each node device in the chain can be mitigated.

예를 들어, 타깃 블록체인과 상호연결된 제3자 저장 시스템은, 블록체인과의 크로스 체인 데이터 참조 관계를 갖는 다른 블록체인이다. 다른 블록체인이 5개의 노드 디바이스들을 포함하고, 타깃 블록체인이 50개의 노드 디바이스들을 포함한다고 가정한다. 다른 블록체인에 저장된 참조된 데이터 콘텐츠가 여전히 타깃 블록체인과 동기화되는 경우, 참조된 데이터 콘텐츠는 타깃 블록체인에서의 50개의 노드들과 별개로 동기화될 필요가 있어서, 타깃 블록체인에서 참조된 데이터 콘텐츠의 많은 양의 리던던시를 초래한다. 그러나, 타깃 블록체인이 참조된 데이터 콘텐츠의 데이터 다이제스트만을 단지 저장하는 경우, 다른 블록체인은 참조된 데이터 콘텐츠를 50개의 노드 디바이스들과 별개로 동기화시킬 필요가 없다. 이와 같이, 타깃 블록체인에서의 데이터 저장 리던던시가 상당히 감소될 수 있다.For example, a third-party storage system interconnected with a target blockchain is another blockchain having a cross-chain data reference relationship with the blockchain. It is assumed that another blockchain includes 5 node devices, and the target blockchain includes 50 node devices. If the referenced data content stored in the other blockchain is still synchronized with the target blockchain, the referenced data content needs to be synchronized separately from the 50 nodes in the target blockchain, so the referenced data content in the target blockchain A large amount of redundancy results. However, if the target blockchain only stores the data digest of the referenced data content, other blockchains do not need to synchronize the referenced data content separately with 50 node devices. In this way, data storage redundancy in the target blockchain can be significantly reduced.

방법 구현에 대응하여, 본 명세서는 블록체인 기반 스마트 계약 호출 장치의 구현을 추가로 제공한다. 본 명세서에서, 블록체인 기반 스마트 계약 호출 장치의 구현은 전자 디바이스에 적용될 수 있다. 장치 구현은 소프트웨어, 하드웨어, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 소프트웨어 구현이 예로서 사용된다. 논리 장치로서, 장치는, 장치가 위치되는 전자 디바이스의 프로세서에 의해, 비휘발성 메모리로부터 전자 디바이스의 메모리까지의 대응하는 컴퓨터 프로그램 명령어를 판독함으로써 형성된다. 하드웨어의 관점에서, 도 3에 도시된 바와 같이, 도 3은 본 명세서에 따른, 블록체인 기반 스마트 계약 호출 장치가 위치되는 전자 디바이스의 하드웨어 구조체를 예시하는 다이어그램이다. 도 3에 도시된 프로세서, 메모리, 네트워크 인터페이스, 및 비휘발성 메모리에 부가적으로, 본 구현에서 장치가 위치되는 전자 디바이스는 통상적으로 전자 디바이스의 실제 기능에 기초하여 다른 하드웨어를 포함할 수 있다. 단순화를 위해 세부사항들이 생략된다.Corresponding to the method implementation, this specification further provides an implementation of a blockchain-based smart contract calling device. In the present specification, an implementation of a blockchain-based smart contract calling device can be applied to an electronic device. The device implementation can be implemented by software, hardware, or a combination of hardware and software. Software implementation is used as an example. As a logical apparatus, an apparatus is formed by reading a corresponding computer program instruction from a nonvolatile memory to a memory of an electronic device by a processor of an electronic device in which the apparatus is located. In terms of hardware, as shown in FIG. 3, FIG. 3 is a diagram illustrating a hardware structure of an electronic device in which a blockchain-based smart contract calling device is located, according to the present specification. In addition to the processor, memory, network interface, and non-volatile memory shown in FIG. 3, the electronic device in which the apparatus is located in this implementation may typically include other hardware based on the actual functionality of the electronic device. Details are omitted for simplicity.

도 4는 본 명세서의 예시적인 구현에 따른, 블록체인 기반 스마트 계약 호출 장치를 예시하는 블록 다이어그램이다.4 is a block diagram illustrating a blockchain-based smart contract calling device according to an exemplary implementation of the present specification.

도 4를 참조하면, 블록체인 기반 스마트 계약 호출 장치(40)는 도 3에 도시된 전자 디바이스에 적용될 수 있고, 수신 모듈(401), 질의 모듈(402), 및 호출 모듈(403)을 포함한다.Referring to FIG. 4, the blockchain-based smart contract calling device 40 may be applied to the electronic device shown in FIG. 3, and includes a receiving module 401, a query module 402, and a calling module 403 .

수신 모듈(401)은 스마트 계약의 호출을 개시하는 데 사용된 타깃 트랜잭션을 수신하도록 구성되고, 여기서 타깃 트랜잭션은 호출 데이터를 포함하고, 호출 데이터의 적어도 일부분은, 블록체인과 상호연결된 제3자 저장 시스템에 저장된 타깃 데이터의 데이터 다이제스트를 포함한다.The receiving module 401 is configured to receive the target transaction used to initiate the call of the smart contract, where the target transaction includes the call data, and at least a portion of the call data is stored by a third party interconnected with the blockchain Contains a data digest of target data stored in the system.

질의 모듈(402)은 제3자 저장 시스템으로부터 데이터 다이제스트에 대응하는 타깃 데이터를 질의하고, 타깃 데이터에 대한 콘텐츠 검증을 수행하도록 구성된다.The query module 402 is configured to query target data corresponding to a data digest from a third-party storage system, and to perform content verification on the target data.

호출 모듈(403)은: 타깃 데이터에 대한 검증이 성공한 경우, 타깃 트랜잭션에서의 호출 데이터에 대한 스마트 계약 계산을 수행하도록 스마트 계약을 호출하고, 스마트 계약 계산이 완료된 후에 블록체인의 분산 데이터베이스에 계산 결과를 저장하도록 구성된다.The calling module 403: When the verification of the target data is successful, the smart contract is called to perform smart contract calculation on the call data in the target transaction, and after the smart contract calculation is completed, the calculation result in the distributed database of the blockchain It is configured to store.

본 구현에서, 제3자 저장 시스템은 타깃 데이터와 타깃 데이터의 데이터 다이제스트 사이의 매핑 관계를 저장한다.In this implementation, the third-party storage system stores the mapping relationship between the target data and the data digest of the target data.

질의 모듈(402)은: 데이터 다이제스트에 대응하는 타깃 데이터를 질의하기 위해, 데이터 다이제스트를 질의 인덱스로서 사용함으로써 제3자 저장 시스템에 대한 질의를 개시하도록 구성된다.The query module 402 is configured to initiate a query to a third-party storage system by using the data digest as a query index, to query target data corresponding to the data digest.

본 구현에서, 질의 모듈(402)은: 미리 결정된 다이제스트 알고리즘에 기초하여 타깃 데이터의 데이터 다이제스트를 계산하고; 계산된 데이터 다이제스트가 타깃 트랜잭션에서의 타깃 데이터의 데이터 다이제스트와 일치하는지 여부를 결정하고; 계산된 데이터 다이제스트가 타깃 트랜잭션에서의 타깃 데이터의 데이터 다이제스트와 일치하는 경우, 타깃 데이터에 대한 검증이 성공한 것으로 결정하도록 추가로 구성된다.In this implementation, the query module 402: calculates a data digest of the target data based on a predetermined digest algorithm; Determine whether the calculated data digest matches the data digest of the target data in the target transaction; If the calculated data digest matches the data digest of the target data in the target transaction, it is further configured to determine that verification of the target data is successful.

본 구현에서, 제3자 저장 시스템은 중앙집중화 콘텐츠 어드레싱가능 저장(CAS) 시스템 또는 분산 CAS 시스템을 포함한다.In this implementation, the third-party storage system comprises a centralized content addressable storage (CAS) system or a distributed CAS system.

본 구현에서, 블록체인은, 몇몇 멤버 블록체인들을 포함하는 컨소시엄 블록체인에서의 임의의 멤버 블록체인이다.In this implementation, the blockchain is any member blockchain in a consortium blockchain that includes several member blockchains.

본 구현에서, 제3자 저장 시스템은, 컨소시엄 블록체인에서의 블록체인과의 크로스 체인 데이터 참조 관계를 갖는 다른 멤버 블록체인이다.In this implementation, the third-party storage system is another member blockchain having a cross-chain data reference relationship with the blockchain in the consortium blockchain.

장치에서의 모듈들의 기능들 및 역할들의 구현 프로세스에 대해, 앞선 방법에서의 대응하는 단계들의 구현 프로세스에 대한 참조들이 이루어질 수 있다. 단순화를 위해 여기서는 세부사항들이 생략된다.For the process of implementation of the functions and roles of modules in the device, references can be made to the implementation process of corresponding steps in the preceding method. Details are omitted here for simplicity.

장치 구현은 기본적으로 방법 구현에 대응하기 때문에, 관련 부분들에 대해서는, 방법 구현에서의 일부 설명들에 대한 참조들이 이루어질 수 있다. 앞서 설명된 장치 구현은 단지 예일 뿐이다. 별개의 부분들로서 설명되는 모듈들은 물리적으로 분리될 수도 있거나 또는 분리되지 않을 수도 있고, 모듈들로서 디스플레이되는 부분들은 물리적 모듈들일 수도 있거나 또는 아닐 수도 있거나, 하나의 위치에 위치될 수 있거나, 또는 복수의 네트워크 모듈들 상에 분산될 수 있다. 본 명세서의 솔루션들의 목표들을 달성하기 위해 실제 요건들에 기초하여 모듈들 중 일부 또는 전부가 선택될 수 있다. 본 기술분야의 통상의 기술자는 창조적 노력들 없이 본 명세서의 구현들을 이해하고 구현할 수 있다.Since the device implementation basically corresponds to the method implementation, reference may be made to some descriptions in the method implementation for related parts. The device implementation described above is merely an example. Modules described as separate parts may or may not be physically separated, and parts displayed as modules may or may not be physical modules, or may be located in one location, or multiple networks It can be distributed on modules. Some or all of the modules may be selected based on actual requirements to achieve the goals of the solutions herein. Those skilled in the art can understand and implement the implementations herein without creative efforts.

앞선 구현들에서 예시된 시스템, 장치, 또는 모듈은 컴퓨터 칩 또는 엔티티를 사용함으로써 구현될 수 있거나, 또는 특정 기능을 갖는 제품을 사용함으로써 구현될 수 있다. 전형적인 구현 디바이스는 컴퓨터이고, 컴퓨터의 형태는 퍼스널 컴퓨터, 랩톱 컴퓨터, 셀룰러 폰, 카메라 폰, 스마트폰, 개인 휴대 정보 단말기(personal digital assistant), 미디어 플레이어, 내비게이션 디바이스, 이메일 수신 및 전송 디바이스, 게임 콘솔, 태블릿 컴퓨터, 웨어러블 디바이스, 또는 이들 디바이스들의 임의의 조합일 수 있다.The system, apparatus, or module illustrated in the previous implementations can be implemented by using a computer chip or entity, or by using a product having a specific function. A typical implementation device is a computer, and the form of the computer is a personal computer, laptop computer, cellular phone, camera phone, smart phone, personal digital assistant, media player, navigation device, email receiving and sending device, game console , A tablet computer, a wearable device, or any combination of these devices.

앞선 방법 구현에 대응하여, 본 명세서는 전자 디바이스의 일 구현을 추가로 제공한다. 전자 디바이스는, 머신 실행가능 명령어를 저장하도록 구성되는 메모리 및 프로세서를 포함한다. 프로세서 및 메모리는 통상적으로 내부 버스를 사용함으로써 서로 연결된다. 다른 가능한 구현에서, 디바이스는 외부 인터페이스를 더 포함할 수 있어서, 디바이스가 다른 디바이스들 또는 컴포넌트들과 통신할 수 있다.Corresponding to the previous method implementation, this specification further provides one implementation of the electronic device. The electronic device includes a processor and memory configured to store machine-executable instructions. The processor and memory are typically connected to each other by using an internal bus. In another possible implementation, the device can further include an external interface, such that the device can communicate with other devices or components.

본 구현에서, 메모리에 저장되고 블록체인 기반 스마트 계약 호출의 제어 로직에 대응하는 머신 실행가능 명령어를 판독 및 실행함으로써, 프로세서는: 스마트 계약의 호출을 개시하는 데 사용된 타깃 트랜잭션을 수신하고 - 여기서 타깃 트랜잭션은 호출 데이터를 포함하고, 호출 데이터의 적어도 일부분은, 블록체인과 상호연결된 제3자 저장 시스템에 저장된 타깃 데이터의 데이터 다이제스트를 포함함 -; 제3자 저장 시스템으로부터 데이터 다이제스트에 대응하는 타깃 데이터를 질의하고, 타깃 데이터에 대한 콘텐츠 검증을 수행하고; 타깃 데이터에 대한 검증이 성공한 경우, 타깃 트랜잭션에서의 호출 데이터에 대한 스마트 계약 계산을 수행하도록 스마트 계약을 호출하고, 스마트 계약 계산이 완료된 후에 블록체인의 분산 데이터베이스에 계산 결과를 저장하도록 구성된다.In this implementation, by reading and executing machine-executable instructions stored in memory and corresponding to the control logic of the blockchain-based smart contract call, the processor: receives the target transaction used to initiate the call of the smart contract-where The target transaction includes call data, and at least a portion of the call data includes a data digest of target data stored in a third-party storage system interconnected with the blockchain; Query target data corresponding to a data digest from a third-party storage system, and perform content verification on the target data; When verification of the target data is successful, the smart contract is called to perform smart contract calculation on the call data in the target transaction, and after the smart contract calculation is completed, it is configured to store the calculation results in the distributed database of the blockchain.

본 구현에서, 제3자 저장 시스템은 타깃 데이터와 타깃 데이터의 데이터 다이제스트 사이의 매핑 관계를 저장한다.In this implementation, the third-party storage system stores the mapping relationship between the target data and the data digest of the target data.

메모리에 저장되고 블록체인 기반 스마트 계약 호출의 제어 로직에 대응하는 머신 실행가능 명령어를 판독 및 실행함으로써, 프로세서는: 데이터 다이제스트를 질의 인덱스로서 사용함으로써 제3자 저장 시스템에 대한 질의를 개시하여, 데이터 다이제스트에 대응하는 타깃 데이터를 질의하도록 구성된다.By reading and executing machine-executable instructions stored in memory and corresponding to the control logic of a blockchain-based smart contract call, the processor: initiates a query to a third-party storage system by using a data digest as a query index, thereby It is configured to query target data corresponding to the digest.

본 구현에서, 메모리에 저장되고 블록체인 기반 스마트 계약 호출의 제어 로직에 대응하는 머신 실행가능 명령어를 판독 및 실행함으로써, 프로세서는: 미리 결정된 다이제스트 알고리즘에 기초하여 타깃 데이터의 데이터 다이제스트를 계산하고; 계산된 데이터 다이제스트가 타깃 트랜잭션에서의 타깃 데이터의 데이터 다이제스트와 일치하는지 여부를 결정하고; 계산된 데이터 다이제스트가 타깃 트랜잭션에서의 타깃 데이터의 데이터 다이제스트와 일치하는 경우, 타깃 데이터에 대한 검증이 성공한 것으로 결정하도록 구성된다.In this implementation, by reading and executing machine-executable instructions stored in memory and corresponding to control logic of a blockchain-based smart contract call, the processor: calculates a data digest of the target data based on a predetermined digest algorithm; Determine whether the calculated data digest matches the data digest of the target data in the target transaction; If the calculated data digest matches the data digest of the target data in the target transaction, it is configured to determine that verification of the target data is successful.

본 기술분야의 통상의 기술자는 본 명세서를 숙고하여 여기서의 본 개시내용을 실시한 후에 본 명세서의 다른 구현을 용이하게 파악할 수 있다. 본 명세서는 본 명세서의 임의의 변형들, 사용들, 또는 적응들을 커버하도록 의도되고, 이들 변형들, 사용들, 또는 적응들은 본 명세서의 일반적인 원리를 따르고 본 명세서의 기술분야에서 개시되지 않은 종래의 기법들 또는 통상의 지식을 포함한다. 본 명세서 및 구현들은 단지 예들로서 간주될 뿐이고, 본 명세서의 실제 범주 및 사상은 다음의 청구범위에 의해 나타내어진다.Those skilled in the art can readily grasp other implementations of the present specification after contemplating the present specification and carrying out the present disclosure herein. This specification is intended to cover any variations, uses, or adaptations of this specification, and these variations, uses, or adaptations follow the general principles of this specification and are not disclosed in the art of this specification. Includes techniques or common knowledge. The specification and implementations are to be considered as examples only, and the true scope and spirit of the specification is indicated by the following claims.

본 명세서는 상기에 설명되고 첨부 도면들에 도시되는 정밀한 구조체들로 제한되지 않으며, 본 개시내용의 범주로부터 벗어남이 없이 다양한 수정들 및 변경들이 이루어질 수 있다는 것을 이해해야 한다. 본 명세서의 범주는 첨부된 청구범위에 의해서만 제한된다.It should be understood that the present specification is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from the scope of the present disclosure. The scope of this specification is limited only by the appended claims.

앞선 설명들은 단지 본 명세서의 선호되는 구현들일 뿐이고, 본 명세서를 제한하려고 의도된 것이 아니다. 본 명세서의 사상 및 원리로부터 벗어남이 없이 이루어지는 임의의 수정, 동등한 대체, 또는 개선이 본 명세서의 보호 범주 내에 있어야 한다.The preceding descriptions are merely preferred implementations of this specification and are not intended to limit the specification. Any modification, equivalent replacement, or improvement made without departing from the spirit and principles of this specification should fall within the protection scope of this specification.

본 명세서에서 설명되는 실시예들 및 동작들은 디지털 전자 회로부로, 본 명세서에 개시된 구조체들을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 것의 조합들로 구현될 수 있다. 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들 상에 저장되거나 또는 다른 소스들로부터 수신되는 데이터에 대해 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다. 데이터 프로세싱 장치, 컴퓨터, 또는 컴퓨팅 디바이스는, 예로서, 프로그래밍가능 프로세서, 컴퓨터, 시스템 온 칩(system on a chip), 또는 전술한 것의 다수의 것들, 또는 조합들을 포함하여, 데이터를 프로세싱하기 위한 장치, 디바이스들, 및 머신들을 포괄할 수도 있다. 장치는 특수 목적 로직 회로부, 예를 들어, 중앙 프로세싱 유닛(central processing unit)(CPU), 필드 프로그래밍가능 게이트 어레이(field programmable gate array)(FPGA) 또는 주문형 집적 회로(application-specific integrated circuit)(ASIC)를 포함할 수 있다. 장치는 또한 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제(예를 들어, 운영 체제 또는 운영 체제들의 조합), 크로스 플랫폼 런타임 환경, 가상 머신, 또는 이들 중 하나 이상의 것의 조합을 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라스트럭처들과 같은 다양한 컴퓨팅 모델 인프라스트럭처들을 실현할 수 있다.The embodiments and operations described herein can be implemented with a digital electronic circuitry, with computer software, firmware, or hardware including the structures disclosed herein, or a combination of one or more of these. The operations may be implemented as operations performed by a data processing apparatus on data stored on one or more computer readable storage devices or received from other sources. A data processing apparatus, computer, or computing device is an apparatus for processing data, including, for example, a programmable processor, a computer, a system on a chip, or a number of the foregoing, or combinations thereof , Devices, and machines. The device may be a special purpose logic circuit, such as a central processing unit (CPU), field programmable gate array (FPGA) or application-specific integrated circuit (ASIC) ). The device may also generate code that creates an execution environment for the computer program in question, for example, code constituting the processor firmware, protocol stack, database management system, operating system (eg, an operating system or a combination of operating systems), Cross-platform runtime environment, a virtual machine, or a combination of one or more of these. The device and execution environment can realize various computing model infrastructures such as web services, distributed computing and grid computing infrastructures.

컴퓨터 프로그램(예를 들어, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 소프트웨어 모듈, 소프트웨어 유닛, 스크립트, 또는 코드라고도 또한 알려져 있음)은 컴파일링된 또는 인터프리팅된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 그것은 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 오브젝트, 또는 컴퓨팅 환경에서의 사용에 적합한 다른 유닛으로서 포함하는 임의의 형태로 배치될 수 있다. 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)를 보유하는 파일의 일부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 조정된 파일들(예를 들어, 하나 이상의 모듈들, 서브프로그램들, 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치되거나 또는 다수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터들 상에서 또는 하나의 컴퓨터 상에서 실행될 수 있다.A computer program (eg, also known as a program, software, software application, software module, software unit, script, or code) is any that includes compiled or interpreted languages, declarative or procedural languages. It can be written in a programming language in the form of, and it can be placed in any form including as a standalone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A program can be part of a file that holds other programs or data (eg, one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or multiple adjusted files (eg For example, one or more modules, subprograms, or files that store parts of code). A computer program can be located on one site or distributed across multiple sites and running on multiple computers or interconnected by a communication network.

컴퓨터 프로그램의 실행을 위한 프로세서들은, 예로서, 범용 및 특수 목적 양측 모두의 마이크로프로세서들, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 이들 양측 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은, 명령어들에 따라 액션들을 수행하기 위한 프로세서, 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 또는 이들로 데이터를 전송하기 위해 동작적으로 커플링되거나, 또는 이들 양측 모두로 될 것이다. 컴퓨터는 다른 디바이스, 예를 들어, 모바일 디바이스, 개인 휴대 정보 단말기(PDA), 게임 콘솔, 글로벌 포지셔닝 시스템(Global Positioning System)(GPS) 수신기, 또는 휴대용 저장 디바이스에 내장될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은, 예로서, 반도체 메모리 디바이스들, 자기 디스크들, 및 광자기 디스크들을 포함하는, 비휘발성 메모리, 미디어 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로부에 의해 보충되거나 또는 그에 포함될 수 있다.Processors for the execution of a computer program include, by way of example, both general purpose and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, the processor will receive instructions and data from read-only memory or random access memory, or both. Essential elements of a computer are a processor for performing actions in accordance with instructions, and one or more memory devices for storing instructions and data. Generally, a computer will also include one or more mass storage devices for storing data, or operatively coupled to receive data from or transmit data to them, or both. . The computer can be embedded in another device, such as a mobile device, a personal digital assistant (PDA), a game console, a Global Positioning System (GPS) receiver, or a portable storage device. Devices suitable for storing computer program instructions and data include non-volatile memory, media and memory devices, including, for example, semiconductor memory devices, magnetic disks, and magneto-optical disks. The processor and memory may be supplemented or included in special purpose logic circuitry.

모바일 디바이스들은 핸드셋들, 사용자 장비(radio frequency)(UE), 모바일 전화기들(예를 들어, 스마트폰들), 태블릿들, 웨어러블 디바이스들(예를 들어, 스마트 시계들 및 스마트 안경들), 인체 내의 이식된 디바이스들(예를 들어, 바이오센서들, 인공 와우(cochlear implant)들), 또는 다른 타입들의 모바일 디바이스들을 포함할 수 있다. 모바일 디바이스들은 무선으로(예를 들어, 라디오 주파수(radio frequency)(RF) 신호들을 사용하여) 다양한 통신 네트워크들(아래에 설명됨)과 통신할 수 있다. 모바일 디바이스들은, 모바일 디바이스의 현재 환경의 특성들을 결정하기 위한 센서들을 포함할 수 있다. 센서들은 카메라들, 마이크로폰들, 근접 센서들, GPS 센서들, 모션 센서들, 가속도계들, 주변 광 센서들, 수분 센서들, 자이로스코프들, 나침반들, 기압계들, 지문 센서들, 얼굴 인식 시스템들, RF 센서들(예를 들어, Wi-Fi 및 셀룰러 라디오들), 열 센서들, 또는 다른 타입들의 센서들을 포함할 수 있다. 예를 들어, 카메라들은, 이동가능한 또는 고정된 렌즈들, 플래시, 이미지 센서, 및 이미지 프로세서를 갖는 전방 또는 후방 대향 카메라를 포함할 수 있다. 카메라는, 얼굴 및/또는 홍채 인식을 위해 상세한 것들을 캡처하는 것이 가능한 메가픽셀 카메라일 수 있다. 카메라는, 메모리에 저장되거나 또는 원격으로 액세스되는 데이터 프로세서 및 인증 정보와 함께 얼굴 인식 시스템을 형성할 수 있다. 얼굴 인식 시스템 또는 하나 이상의 센서들, 예를 들어, 마이크로폰들, 모션 센서들, 가속도계들, GPS 센서들, 또는 RF 센서들이 사용자 인증을 위해 사용될 수 있다.Mobile devices include handsets, user equipment (radio frequency) (UE), mobile phones (eg, smartphones), tablets, wearable devices (eg, smart watches and smart glasses), the human body Implanted devices (eg, biosensors, cochlear implants), or other types of mobile devices. Mobile devices can communicate with various communication networks (described below) wirelessly (eg, using radio frequency (RF) signals). Mobile devices can include sensors to determine characteristics of the mobile device's current environment. Sensors are cameras, microphones, proximity sensors, GPS sensors, motion sensors, accelerometers, ambient light sensors, moisture sensors, gyroscopes, compasses, barometers, fingerprint sensors, face recognition systems , RF sensors (eg, Wi-Fi and cellular radios), thermal sensors, or other types of sensors. For example, cameras may include front or rear facing cameras with movable or fixed lenses, flash, image sensor, and image processor. The camera may be a megapixel camera capable of capturing details for face and/or iris recognition. The camera may form a face recognition system with authentication information and data processors stored in memory or accessed remotely. A face recognition system or one or more sensors, such as microphones, motion sensors, accelerometers, GPS sensors, or RF sensors, can be used for user authentication.

사용자와의 상호작용을 제공하기 위해, 실시예들은 디스플레이 디바이스 및 입력 디바이스, 예를 들어, 사용자에게 정보를 디스플레이하기 위한 액정 디스플레이(liquid crystal display)(LCD) 또는 유기 발광 다이오드(organic light-emitting diode)(OLED)/가상 현실(virtual-reality)(VR)/증강 현실(augmented-reality)(AR) 디스플레이, 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 터치스크린, 키보드, 및 포인팅 디바이스를 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들이 또한 사용자와의 상호작용을 제공하는 데 사용될 수 있고; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예를 들어, 시각 피드백, 청각 피드백, 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성, 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 부가적으로, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서들을 전송하고 디바이스로부터 문서들을 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써 사용자와 상호작용할 수 있다.To provide interaction with a user, embodiments may include a display device and an input device, such as a liquid crystal display (LCD) or organic light-emitting diode (LCD) for displaying information to the user. ) (OLED)/virtual-reality (VR)/augmented-reality (AR) display, and a touch screen, keyboard, and pointing device that allow the user to provide input to the computer It can be implemented on a computer. Other types of devices can also be used to provide interaction with the user; For example, the feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; Input from the user may be received in any form, including acoustic, voice, or tactile input. Additionally, the computer sends documents to the device used by the user and receives documents from the device; For example, it may interact with the user by sending web pages to a web browser on the user's client device in response to requests received from the web browser.

실시예들은 임의의 형태 또는 매체의 유선 또는 무선 디지털 데이터 통신(또는 이들의 조합), 예를 들어, 통신 네트워크에 의해 상호연결되는 컴퓨팅 디바이스들을 사용하여 구현될 수 있다. 상호연결된 디바이스들의 예들은, 전형적으로 통신 네트워크를 통해 상호작용하는, 일반적으로 서로 원격으로 있는 클라이언트 및 서버이다. 클라이언트, 예를 들어, 모바일 디바이스는 트랜잭션들 자체를 서버와 함께 또는 서버를 통해 수행하여, 예를 들어, 구매, 판매, 지불, 제공, 전송, 또는 대출 트랜잭션들을 수행하거나, 또는 이를 인가할 수 있다. 그러한 트랜잭션들은 실시간으로 될 수도 있어서 액션 및 응답이 시간적으로 근접한데; 예를 들어, 개인은 액션 및 응답이 실질적으로 동시에 발생한다는 것을 지각하고, 개인의 액션에 뒤따르는 응답에 대한 시간 차이가 1 밀리초(ms) 미만 또는 1 초(s) 미만이거나, 또는 응답에는 시스템의 프로세싱 제한들을 고려한 의도적인 딜레이가 없다.Embodiments may be implemented using any form or medium of wired or wireless digital data communication (or combinations thereof), for example, computing devices interconnected by a communication network. Examples of interconnected devices are clients and servers that are generally remote from each other, typically interacting through a communication network. The client, for example, the mobile device, may perform the transactions themselves with or through the server, for example, to perform, or authorize, purchase, sale, payment, offer, transfer, or loan transactions. . Such transactions may be in real time, so actions and responses are close in time; For example, an individual perceives that actions and responses occur substantially simultaneously, and the time difference for a response following an individual's action is less than 1 millisecond (ms) or less than 1 second (s), or the response There is no intentional delay considering the processing limitations of the system.

통신 네트워크들의 예들은 로컬 영역 네트워크(local area network)(LAN), 라디오 액세스 네트워크(radio access network)(RAN), 도시 영역 네트워크(metropolitan area network)(MAN), 및 광역 네트워크(wide area network)(WAN)를 포함한다. 통신 네트워크는 인터넷의 전부 또는 일부, 다른 통신 네트워크, 또는 통신 네트워크들의 조합을 포함할 수 있다. 롱 텀 에볼루션(Long Term Evolution)(LTE), 5G, IEEE 802, 인터넷 프로토콜(Internet Protocol)(IP), 또는 다른 프로토콜들 또는 프로토콜들의 조합들을 포함하는 다양한 프로토콜들 및 표준들에 따라 통신 네트워크 상에서 정보가 송신될 수 있다. 통신 네트워크는 연결된 컴퓨팅 디바이스들 사이에서 보이스, 비디오, 생체인식(biometric), 또는 인증 데이터, 또는 다른 정보를 송신할 수 있다.Examples of communication networks include a local area network (LAN), a radio access network (RAN), a metropolitan area network (MAN), and a wide area network ( WAN). The communication network may include all or part of the Internet, other communication networks, or a combination of communication networks. Information on a communication network according to various protocols and standards, including Long Term Evolution (LTE), 5G, IEEE 802, Internet Protocol (IP), or other protocols or combinations of protocols Can be sent. The communication network may transmit voice, video, biometric, or authentication data, or other information between connected computing devices.

별개의 구현들로서 설명되는 피처들은 단일 구현으로 조합하여 구현될 수도 있는 한편, 단일 구현으로서 설명되는 피처들은 다수의 구현들로, 별개로, 또는 임의의 적합한 하위 조합으로 구현될 수도 있다. 특정 순서로 설명되고 청구되는 동작들은 특정 순서, 또는 모든 예시된 동작들이 수행되어야 한다고 요구하는 것으로 이해되어서는 안 된다(일부 동작들은 임의적일 수 있다). 적절한 경우, 멀티태스킹 또는 병렬 프로세싱(또는 멀티태스킹과 병렬 프로세싱의 조합)이 수행될 수 있다.Features described as separate implementations may be implemented in combination in a single implementation, while features described as single implementation may be implemented in multiple implementations, separately, or in any suitable subcombination. Operations described and claimed in a particular order should not be understood as requiring that a particular order, or all illustrated operations, be performed (some operations may be arbitrary). Where appropriate, multitasking or parallel processing (or a combination of multitasking and parallel processing) can be performed.

Claims (13)

블록체인 기반 스마트 계약(smart contract) 호출(invocation)을 위한 방법에 있어서,
스마트 계약의 호출을 개시하는 데 사용된 타깃 트랜잭션(target transaction)을 수신하는 단계 - 상기 타깃 트랜잭션은 호출 데이터를 포함하고, 상기 호출 데이터의 적어도 일부분은, 블록체인과 상호연결된 제3자 저장 시스템(third-party storage system)에 저장된 타깃 데이터의 데이터 다이제스트(data digest)를 포함함 -;
상기 제3자 저장 시스템으로부터 상기 데이터 다이제스트에 대응하는 타깃 데이터를 질의하는 단계;
실행 조건이 만족되는지 여부를 결정함으로써 상기 타깃 데이터에 대한 콘텐츠의 검증을 수행하는 단계;
상기 타깃 데이터에 대한 검증이 성공한 것으로 결정하는 것에 응답하여, 상기 타깃 트랜잭션에서의 상기 호출 데이터에 대한 스마트 계약 계산을 수행하도록 상기 스마트 계약을 호출하는 단계; 및
상기 스마트 계약 계산이 완료된 후에 상기 블록체인의 분산 데이터베이스에 계산 결과를 저장하는 단계
를 포함하는, 블록체인 기반 스마트 계약 호출 방법.
In the method for blockchain-based smart contract invocation,
Receiving a target transaction used to initiate a call to a smart contract, wherein the target transaction includes call data, and at least a portion of the call data is a third-party storage system interconnected with a blockchain ( Includes data digest of target data stored in a third-party storage system);
Querying target data corresponding to the data digest from the third-party storage system;
Performing verification of the content for the target data by determining whether an execution condition is satisfied;
In response to determining that verification of the target data is successful, invoking the smart contract to perform smart contract calculation on the call data in the target transaction; And
Storing the calculation result in the distributed database of the blockchain after the smart contract calculation is completed
Including, blockchain-based smart contract calling method.
제1항에 있어서,
상기 제3자 저장 시스템은 상기 타깃 데이터와 상기 타깃 데이터의 상기 데이터 다이제스트 사이의 매핑 관계를 저장하는 것인, 블록체인 기반 스마트 계약 호출 방법.
According to claim 1,
The third-party storage system is to store a mapping relationship between the target data and the data digest of the target data, a blockchain-based smart contract calling method.
제2항에 있어서,
상기 제3자 저장 시스템으로부터 상기 데이터 다이제스트에 대응하는 타깃 데이터를 질의하는 단계는:
상기 데이터 다이제스트에 대응하는 타깃 데이터를 질의하기 위해, 상기 데이터 다이제스트를 질의 인덱스로서 사용함으로써 상기 제3자 저장 시스템에 대한 질의를 개시하는 단계를 포함하는 것인, 블록체인 기반 스마트 계약 호출 방법.
According to claim 2,
Querying target data corresponding to the data digest from the third-party storage system includes:
And querying the third-party storage system by using the data digest as a query index to query target data corresponding to the data digest.
제1항에 있어서,
상기 타깃 데이터에 대한 콘텐츠의 검증을 수행하는 단계는:
미리 결정된 다이제스트 알고리즘에 기초하여 상기 타깃 데이터의 데이터 다이제스트를 계산하는 단계;
상기 계산된 데이터 다이제스트가 상기 타깃 트랜잭션에서의 상기 타깃 데이터의 데이터 다이제스트와 일치하는지 여부를 결정하는 단계; 및
상기 계산된 데이터 다이제스트가 상기 타깃 트랜잭션에서의 상기 타깃 데이터의 데이터 다이제스트와 일치한다고 결정하는 것에 응답하여, 상기 타깃 데이터에 대한 검증이 성공한 것으로 결정하는 단계
를 포함하는 것인, 블록체인 기반 스마트 계약 호출 방법.
According to claim 1,
The step of performing the verification of the content for the target data is:
Calculating a data digest of the target data based on a predetermined digest algorithm;
Determining whether the calculated data digest matches a data digest of the target data in the target transaction; And
In response to determining that the calculated data digest matches the data digest of the target data in the target transaction, determining that verification of the target data is successful
Including, blockchain-based smart contract calling method.
제1항에 있어서,
상기 제3자 저장 시스템은 중앙집중화(centralized) 콘텐츠 어드레싱가능 저장(content addressable storage)(CAS) 시스템 또는 분산 CAS 시스템을 포함하는 것인, 블록체인 기반 스마트 계약 호출 방법.
According to claim 1,
The third party storage system comprises a centralized content addressable storage (CAS) system or a distributed CAS system.
제1항에 있어서,
상기 블록체인은, 복수의 멤버 블록체인들을 포함하는 컨소시엄 블록체인(consortium blockchain)에서의 임의의 멤버 블록체인인 것인, 블록체인 기반 스마트 계약 호출 방법.
According to claim 1,
The blockchain is a member blockchain in a consortium blockchain that includes a plurality of member blockchains, a method for calling a smart contract based on a blockchain.
제6항에 있어서,
상기 제3자 저장 시스템은, 상기 컨소시엄 블록체인에서의 블록체인과의 크로스 체인 데이터 참조 관계를 갖는 다른 멤버 블록체인인 것인, 블록체인 기반 스마트 계약 호출 방법.
The method of claim 6,
The third-party storage system is a blockchain-based smart contract calling method, which is another member blockchain having a cross-chain data reference relationship with the blockchain in the consortium blockchain.
제1항에 있어서,
상기 제3자 저장 시스템은 중앙집중화 콘텐츠 어드레싱가능 저장 시스템, 또는 탈중앙집중화 분산 시스템을 포함하는 것인, 블록체인 기반 스마트 계약 호출 방법.
According to claim 1,
The third-party storage system comprises a centralized content addressable storage system, or a decentralized distributed system, a blockchain-based smart contract calling method.
제8항에 있어서,
상기 제3자 저장 시스템은, 상기 블록체인에 배치되고 오브젝트 저장 서비스 아키텍처에 따라 상기 블록체인의 각각의 멤버와 상호연결되는 분산 시스템을 포함하는 것인, 블록체인 기반 스마트 계약 호출 방법.
The method of claim 8,
The third-party storage system is a blockchain-based smart contract calling method that is disposed on the blockchain and includes a distributed system interconnected with each member of the blockchain according to an object storage service architecture.
제1항에 있어서,
트랜잭션 큐에서 상기 타깃 트랜잭션에 대한 합의 프로세싱(consensus processing)을 수행하는 단계를 더 포함하는, 블록체인 기반 스마트 계약 호출 방법.
According to claim 1,
The method further comprising performing consensus processing for the target transaction in a transaction queue.
제10항에 있어서,
상기 합의 프로세싱을 수행하는 단계는 합의 알고리즘에 기초하는 것인, 블록체인 기반 스마트 계약 호출 방법.
The method of claim 10,
The step of performing the consensus processing is based on a consensus algorithm, a method for calling a smart contract based on a blockchain.
제11항에 있어서,
상기 합의 알고리즘은 실용적 비잔틴 장애 허용 알고리즘(Practical Byzantine Fault Tolerance algorithm)을 포함하는 것인, 블록체인 기반 스마트 계약 호출 방법.
The method of claim 11,
The consensus algorithm includes a practical Byzantine Fault Tolerance algorithm, a method for calling a smart contract based on a blockchain.
블록체인 기반 스마트 계약 호출을 위한 장치에 있어서,
제1항 내지 제12항 중 어느 한 항의 방법을 수행하도록 구성되는 복수의 모듈들을 포함하는, 블록체인 기반 스마트 계약 호출 장치.
In the device for the blockchain-based smart contract call,
A blockchain-based smart contract calling device, comprising a plurality of modules configured to perform the method of claim 1.
KR1020207015564A 2018-06-27 2019-06-27 Blockchain-based smart contract calling method and apparatus, electronic device KR102343782B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810681249.1 2018-06-27
CN201810681249.1A CN109003078B (en) 2018-06-27 2018-06-27 Intelligent contract calling method and device based on block chain and electronic equipment
PCT/US2019/039386 WO2020006164A1 (en) 2018-06-27 2019-06-27 Blockchain-based smart contract invocation method and apparatus, and electronic device

Publications (2)

Publication Number Publication Date
KR20200088827A true KR20200088827A (en) 2020-07-23
KR102343782B1 KR102343782B1 (en) 2021-12-27

Family

ID=64601302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207015564A KR102343782B1 (en) 2018-06-27 2019-06-27 Blockchain-based smart contract calling method and apparatus, electronic device

Country Status (11)

Country Link
US (3) US10776348B2 (en)
EP (1) EP3701673B1 (en)
JP (1) JP6975332B2 (en)
KR (1) KR102343782B1 (en)
CN (1) CN109003078B (en)
AU (1) AU2019294726B2 (en)
CA (1) CA3084084A1 (en)
PH (1) PH12020550743B1 (en)
SG (1) SG11202005051UA (en)
TW (1) TWI746905B (en)
WO (1) WO2020006164A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210065852A (en) * 2019-11-27 2021-06-04 한국전자통신연구원 Method and device for generation policy-based smart contract
US11620722B2 (en) 2019-11-27 2023-04-04 Electronics And Telecommunications Research Institute Method and apparatus of generating policy-based smart contract

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109003078B (en) 2018-06-27 2021-08-24 创新先进技术有限公司 Intelligent contract calling method and device based on block chain and electronic equipment
CN108898390B (en) 2018-06-27 2021-01-12 创新先进技术有限公司 Intelligent contract calling method and device based on block chain and electronic equipment
GB2576375A (en) * 2018-08-17 2020-02-19 Uvue Ltd Transaction system and method of operation thereof
US11068470B2 (en) * 2018-11-09 2021-07-20 Innoplexus Ag System and method for interoperability of blockchains
CN109885612B (en) * 2018-12-26 2021-04-20 联动优势科技有限公司 Synchronous validation method and device for intelligent contracts of block chains
CN109754249A (en) * 2018-12-27 2019-05-14 石更箭数据科技(上海)有限公司 Data trade method and system, platform, storage medium
US20220122073A1 (en) 2018-12-28 2022-04-21 Love The Block, Inc. System architecture for enabling distributed temporary control of discrete units of an asset
CN109710617B (en) * 2018-12-29 2021-07-30 杭州趣链科技有限公司 Secure data transaction method based on Mercker certification
CN113287110A (en) * 2019-01-23 2021-08-20 株式会社斯凯拉 Data management system with tamper detection
CN112966311A (en) * 2019-03-15 2021-06-15 创新先进技术有限公司 Intelligent contract checking method and device and electronic equipment
CN110033244B (en) * 2019-03-15 2021-10-22 创新先进技术有限公司 Intelligent contract execution method and device based on block chain and electronic equipment
CN109886694B (en) * 2019-03-26 2021-04-27 创新先进技术有限公司 Data processing method and device based on block chain and electronic equipment
CN110060162B (en) * 2019-03-29 2023-10-27 创新先进技术有限公司 Data authorization and query method and device based on block chain
CN110147409B (en) * 2019-04-02 2021-07-13 爱驰汽车有限公司 Method, apparatus, and medium for querying battery information of vehicle
CN110188097A (en) * 2019-04-19 2019-08-30 阿里巴巴集团控股有限公司 The storage of intelligent contract, execution method and device and electronic equipment in block chain
CN110210961A (en) * 2019-05-21 2019-09-06 平安普惠企业管理有限公司 Data capture method, server and computer storage medium based on alliance's chain
CN110310203B (en) * 2019-06-21 2023-10-13 普洛斯科技(重庆)有限公司 Block chain transaction method and device
US11252166B2 (en) 2019-07-31 2022-02-15 Advanced New Technologies Co., Ltd. Providing data authorization based on blockchain
US11251963B2 (en) 2019-07-31 2022-02-15 Advanced New Technologies Co., Ltd. Blockchain-based data authorization method and apparatus
US11057189B2 (en) * 2019-07-31 2021-07-06 Advanced New Technologies Co., Ltd. Providing data authorization based on blockchain
CN110505311A (en) * 2019-09-12 2019-11-26 杭州秘猿科技有限公司 A kind of across the chain exchange method of isomorphism block chain and system
CN110659907B (en) * 2019-09-24 2021-11-12 北京海益同展信息科技有限公司 Method and device for executing intelligent contracts
CN110879687B (en) * 2019-10-18 2021-03-16 蚂蚁区块链科技(上海)有限公司 Data reading method, device and equipment based on disk storage
CN110781200B (en) * 2019-10-30 2022-07-08 百度在线网络技术(北京)有限公司 Processing method, device, equipment and medium for block chain abnormal data
CN110543526B (en) * 2019-10-31 2020-05-19 成都四方伟业软件股份有限公司 Optimized storage method and system based on block chain
CN111224962B (en) * 2019-12-30 2022-01-04 杭州羿贝科技有限公司 Internet of things equipment networking control method and control system based on block chain
US11310051B2 (en) 2020-01-15 2022-04-19 Advanced New Technologies Co., Ltd. Blockchain-based data authorization method and apparatus
CN111275553B (en) * 2020-01-20 2023-08-11 联动优势科技有限公司 Block chain data storage method and block chain system
CN111249745B (en) * 2020-02-18 2023-05-30 杭州复杂美科技有限公司 Game deployment method, game operation method, device and storage medium
GB2592222A (en) * 2020-02-19 2021-08-25 Nchain Holdings Ltd Distributed database
CN111339188B (en) * 2020-02-20 2023-10-31 百度在线网络技术(北京)有限公司 Media content processing method, device, equipment and medium based on blockchain
CN111092726B (en) * 2020-03-18 2020-07-28 支付宝(杭州)信息技术有限公司 Method and device for generating shared contract key
CN111339067B (en) * 2020-05-22 2020-08-14 中科软科技股份有限公司 Data structure construction method and system of alliance chain account book platform
CN111737312A (en) * 2020-06-05 2020-10-02 中国银行股份有限公司 Information query method, device, equipment and storage medium
CN115087960A (en) * 2020-06-16 2022-09-20 微软技术许可有限责任公司 Enhancing accessibility of topology-related applications
CN112035895A (en) * 2020-07-20 2020-12-04 江苏傲为控股有限公司 Electronic contract evidence obtaining method and system based on transaction mode
CN111738710B (en) * 2020-07-23 2020-12-01 支付宝(杭州)信息技术有限公司 Method and processor for resource deduction of execution of intelligent contract
EP3955224A1 (en) * 2020-08-14 2022-02-16 Nagravision S.A. Localized betting system and method
CN112561624B (en) * 2020-11-06 2024-01-05 国网安徽省电力有限公司信息通信分公司 Dynamic credit evaluation method and system based on multidimensional factor of blockchain
CN112818038A (en) * 2021-02-02 2021-05-18 山东伏羲智库互联网研究院 Data management method based on combination of block chain and IPFS (Internet protocol file system) and related equipment
CN112819468A (en) * 2021-02-24 2021-05-18 浙江蓝景科技有限公司 Intelligent contract processing method and device and electronic equipment
CN113077342B (en) * 2021-04-06 2023-01-20 立旃(上海)科技有限公司 Method and device for cross-border data use based on block chain
US11924222B2 (en) 2022-01-13 2024-03-05 Bank Of America Corporation Intelligent real time dynamic smart contract generation for secure processing of internet of things (IoT) device based events

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180174158A1 (en) * 2016-12-21 2018-06-21 Merck Patent Gmbh Composite security marking

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720727B2 (en) * 2001-03-01 2010-05-18 Fisher-Rosemount Systems, Inc. Economic calculations in process control system
TWI351864B (en) * 2005-03-25 2011-11-01 Via Tech Inc Apparatus and method for employing cyrptographic f
US9311108B2 (en) * 2010-11-05 2016-04-12 Mark Cummings Orchestrating wireless network operations
US20150379510A1 (en) 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
US8793506B2 (en) 2012-08-31 2014-07-29 Intel Corporation Mechanism for facilitating encryption-free integrity protection of storage data at computing systems
US9363267B2 (en) 2014-09-25 2016-06-07 Ebay, Inc. Transaction verification through enhanced authentication
US9992028B2 (en) 2015-11-26 2018-06-05 International Business Machines Corporation System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger
WO2017098519A1 (en) 2015-12-08 2017-06-15 Tallysticks Limited A system and method for automated financial transaction validation, processing and settlement using blockchain smart contracts
US20170236123A1 (en) * 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
SG11201806712RA (en) 2016-02-23 2018-09-27 Nchain Holdings Ltd A method and system for securing computer software using a distributed hash table and a blockchain
EP4167165A1 (en) 2016-02-23 2023-04-19 nChain Licensing AG Blockchain-based exchange with tokenisation
SG11201808657TA (en) 2016-04-01 2018-10-30 Jpmorgan Chase Bank Na Systems and methods for providing data privacy in a private distributed ledger
CN107306183B (en) * 2016-04-22 2021-12-21 索尼公司 Client, server, method and identity verification system
GB201607477D0 (en) 2016-04-29 2016-06-15 Eitc Holdings Ltd A method and system for controlling the performance of a contract using a distributed hash table and a peer to peer distributed ledger
US11829998B2 (en) * 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
US10108954B2 (en) 2016-06-24 2018-10-23 PokitDok, Inc. System and method for cryptographically verified data driven contracts
WO2018006072A1 (en) 2016-06-30 2018-01-04 Clause, Inc. Systems and method for forming, storing, managing,and executing contracts
US10114980B2 (en) * 2016-07-21 2018-10-30 Acronis International Gmbh System and method for verifying data integrity using a blockchain network
GB201613144D0 (en) * 2016-07-29 2016-09-14 Eitc Holdings Ltd Computer-implemented method and system
US10380359B2 (en) 2016-08-05 2019-08-13 Sensoriant, Inc. Software-based switch for providing products and/or services to users without compromising their privacy
CN107819582A (en) 2016-09-14 2018-03-20 陈新 Intelligent block chain interacted system
US11188883B2 (en) * 2016-09-23 2021-11-30 International Business Machines Corporation Using ledger sensors to enable contextual contracts across various enterprise blockchain applications
US11128603B2 (en) * 2016-09-30 2021-09-21 Nec Corporation Method and system for providing a transaction forwarding service in blockchain implementations
CN107967416B (en) * 2016-10-19 2021-07-09 华为技术有限公司 Copyright right-maintaining detection method, device and system
US20180123779A1 (en) 2016-11-01 2018-05-03 Jiangang Zhang Flexible Blockchain Smart-Contract Deployment
US11176519B2 (en) 2016-11-11 2021-11-16 International Business Machines Corporation Smart contract admission check and fault tolerance in a blockchain
JP6533771B2 (en) * 2016-11-15 2019-06-19 富士通株式会社 Communication method, apparatus and program
CN106559211B (en) 2016-11-22 2019-12-13 中国电子科技集团公司第三十研究所 Privacy protection intelligent contract method in block chain
CN106598549B (en) * 2016-12-08 2019-02-01 天津米游科技有限公司 A kind of intelligent contract system and implementation method based on block chain
JP6775086B2 (en) 2016-12-16 2020-10-28 株式会社日立製作所 Blockchain monitoring and management
CN107392610A (en) * 2017-03-06 2017-11-24 钱德君 A kind of implementation method in the authentic data source of distributed network
US10320566B2 (en) * 2017-04-04 2019-06-11 International Business Machines Corporation Distributed logging of application events in a blockchain
CN107274186A (en) * 2017-05-11 2017-10-20 上海点融信息科技有限责任公司 The method and apparatus that intelligent contract-defined interface is obtained in block chain
CN107193490B (en) * 2017-05-16 2020-04-17 北京中星仝创科技有限公司 Distributed data storage system and method based on block chain
CN107425982B (en) 2017-07-07 2020-05-12 众安信息技术服务有限公司 Method and block chain for realizing intelligent contract data encryption
US10135607B1 (en) 2017-08-11 2018-11-20 Dragonchain, Inc. Distributed ledger interaction systems and methods
CN107464118A (en) * 2017-08-16 2017-12-12 济南浪潮高新科技投资发展有限公司 A kind of data trade method based on block chain intelligence contract
CN107464148A (en) 2017-08-23 2017-12-12 众安信息技术服务有限公司 A kind of intelligent contract upgrade method and system based on alliance's chain
CN107688927A (en) * 2017-09-19 2018-02-13 中国银行股份有限公司 A kind of method and system for calling the intelligent contract on block chain
US20200313896A1 (en) 2017-10-04 2020-10-01 Algorand Inc. Declarative smart contracts
US10963400B2 (en) * 2017-10-11 2021-03-30 International Business Machines Corporation Smart contract creation and monitoring for event identification in a blockchain
CN108063752B (en) * 2017-11-02 2020-05-08 暨南大学 Credible gene detection and data sharing method based on block chain and agent re-encryption
EP3718069B1 (en) 2017-11-30 2024-04-17 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
US11205178B2 (en) 2017-12-28 2021-12-21 International Business Machines Corporation Converting processes into multiple blockchain smart contracts
CN108111312B (en) 2017-12-28 2019-09-27 电子科技大学 A kind of intelligent terminal safety communicating method based on block chain
CN108055138B (en) 2018-02-01 2020-03-17 国家计算机网络与信息安全管理中心 Block chain-based application distribution recording method and system
US20190251199A1 (en) * 2018-02-14 2019-08-15 Ivan Klianev Transactions Across Blockchain Networks
CN108389129B (en) * 2018-02-27 2020-12-04 创新先进技术有限公司 Transaction execution method and device based on block chain and electronic equipment
US20190287107A1 (en) 2018-03-15 2019-09-19 International Business Machines Corporation Resource equity for blockchain
US20190394267A1 (en) * 2018-06-26 2019-12-26 Anami Holdings, Inc. Dynamic voting nodes in blockchain networks
CN108898390B (en) 2018-06-27 2021-01-12 创新先进技术有限公司 Intelligent contract calling method and device based on block chain and electronic equipment
CN109003078B (en) 2018-06-27 2021-08-24 创新先进技术有限公司 Intelligent contract calling method and device based on block chain and electronic equipment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180174158A1 (en) * 2016-12-21 2018-06-21 Merck Patent Gmbh Composite security marking

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Emmanuel Boateng Sifah et al., Chain-based big data access control infrastructure, 2018.03.14. <DOI: https://doi.org/10.1007/s11227-018-2308-7> *
Thomas Renner et al., Endolith: A Blockchain-Based Framework to Enhance Data Retention in Cloud Storages, 2018.03.21. <DOI: 10.1109/PDP2018.2018.00105> *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210065852A (en) * 2019-11-27 2021-06-04 한국전자통신연구원 Method and device for generation policy-based smart contract
US11620722B2 (en) 2019-11-27 2023-04-04 Electronics And Telecommunications Research Institute Method and apparatus of generating policy-based smart contract

Also Published As

Publication number Publication date
JP6975332B2 (en) 2021-12-01
TWI746905B (en) 2021-11-21
EP3701673B1 (en) 2021-10-06
US20200349148A1 (en) 2020-11-05
CN109003078A (en) 2018-12-14
KR102343782B1 (en) 2021-12-27
TW202001608A (en) 2020-01-01
US20210263914A1 (en) 2021-08-26
US11347727B2 (en) 2022-05-31
CN109003078B (en) 2021-08-24
CA3084084A1 (en) 2020-01-02
US20200004737A1 (en) 2020-01-02
US10776348B2 (en) 2020-09-15
SG11202005051UA (en) 2020-06-29
PH12020550743A1 (en) 2021-04-19
AU2019294726A1 (en) 2020-06-18
PH12020550743B1 (en) 2021-04-19
WO2020006164A1 (en) 2020-01-02
AU2019294726B2 (en) 2021-08-19
EP3701673A1 (en) 2020-09-02
JP2021512379A (en) 2021-05-13
US11016961B2 (en) 2021-05-25

Similar Documents

Publication Publication Date Title
KR102343782B1 (en) Blockchain-based smart contract calling method and apparatus, electronic device
AU2019227618B2 (en) Method, apparatus, and electronic device for executing transactions based on blockchain
AU2019292928B2 (en) Blockchain-based smart contract invocation method and apparatus, and electronic device
CA3083819C (en) Cross-blockchain authentication method, apparatus, and electronic device
US11588653B2 (en) Blockchain-based smart contract call methods and apparatus, and electronic device
CA3084081A1 (en) Cross-blockchain authentication method and apparatus

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant