KR102242220B1 - 블록체인 기반 데이터 프로세싱 방법 및 디바이스 - Google Patents

블록체인 기반 데이터 프로세싱 방법 및 디바이스 Download PDF

Info

Publication number
KR102242220B1
KR102242220B1 KR1020197013510A KR20197013510A KR102242220B1 KR 102242220 B1 KR102242220 B1 KR 102242220B1 KR 1020197013510 A KR1020197013510 A KR 1020197013510A KR 20197013510 A KR20197013510 A KR 20197013510A KR 102242220 B1 KR102242220 B1 KR 102242220B1
Authority
KR
South Korea
Prior art keywords
service data
processed
blockchain
processing
attribute value
Prior art date
Application number
KR1020197013510A
Other languages
English (en)
Other versions
KR20190069473A (ko
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 KR20190069473A publication Critical patent/KR20190069473A/ko
Application granted granted Critical
Publication of KR102242220B1 publication Critical patent/KR102242220B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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
    • 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
    • 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
    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • 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
    • 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
    • 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
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • Computational Linguistics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 출원은 블록체인 기반의 데이터 프로세싱 방법과 디바이스를 개시하며, 프로세싱 예정 서비스 데이터가 이미 프로세싱되었는지 여부를 결정하기 위해, 프로세싱 예정 서비스 데이터의 고유성을 나타낼 수 있는 속성값(attribute value)을 이미 프로세싱된 서비스 데이터의, 블록체인 노드에 저장된, 속성값과 비교하는 것; 및, 프로세싱 예정 서비스 데이터가 프로세싱되지 않았다고 결정될 때, 프로세싱 예정 서비스 데이터의 프로세싱을 개시(開始)하는 것을 포함한다. 그리 하여, 재전송 공격(replay attack)이 효과적으로 방지될 수 있다. 또한, 상이한 서비스 데이터의 속성값들은 서로다르기 때문에, 현재 프로세싱되고 있는 하나의 서비스 데이터의 잠금 상태로 인해 다른 서비스 데이터가 프로세싱될 수 없는 문제가 회피될 수 있다. 그래서, 블록체인 네트워크에서의 서비스 데이터 프로세싱 효율이 효과적으로 보장되며, 블록체인 네트워크에서의 전체 서비스 데이터 프로세싱량(throughput)이 증가한다.

Description

블록체인 기반 데이터 프로세싱 방법 및 디바이스
본 출원은 인터넷 정보 프로세싱 기술과 컴퓨터 기술 분야에 관한 것으로, 특히 블록체인 기반의 데이터 프로세싱 방법 및 디바이스에 관한 것이다.
블록체인(blockchain) 기술은 분산 원장 기술(distributed ledger technology)이라고도 지칭되는, 분산 인터넷 데이터베이스 기술이다. 블록체인 기술을 기반으로 구성된 네트워크는 블록체인 네트워크라 지칭될 수 있으며, 블록체인 네트워크는 네트워크 노드(블록체인 노드라고도 지칭될 수 있으며, 이하에서는 약칭으로 노드라 지칭됨)를 포함한다. 각 노드는 적어도 하나의 블록체인에 대응하며, 각 블록체인은 적어도 하나의 블록을 포함한다. 블록체인 네트워크(또는 블록체인 기술)은 분산적이고(decentralized), 투명하며, 신뢰성이 있고, 임의 변조될 수 없다. 이러한 특성을 기초로, 블록체인 기술은 점점 더 광범위하게 적용되고 있다.
블록체인 기술의 발전에 따라, 실제에서는 재전송 공격(replay attack) 기술이 발생할 수 있다. 재전송 공격 기술은 악성 사용자(malicious user)가 블록체인 네트워크에 의해 현재 프로세싱되고 있는 서비스 데이터 또는 블록체인 네트워크에 의해 이미 프로세싱된 서비스 데이터를 불법으로 획득하고는, 이 서비스 데이터를 블록체인 네트워크에 재전송하여, 블록체인 네트워크가 이 서비스 데이터를 재프로세싱하게 하는 것을 의미한다. 예를 들어, 재전송 공격 기술을 사용하여 획득된 서비스 데이터가 "계정 A로부터 계정 B로 100위안 전송"이라고 가정해 보자. 계정 A에 300위안이 있으면, 계정 A에 해당하는 사용자가 전송한 서비스 데이터가 수신되면, 트랜잭션 데이터(transaction data)가 프로세싱되며, 그리고 나서 계정 A에는 200위안이 남는다. 악성 사용자가 재전송 공격 기술을 사용하여 서비스 데이터를 획득하였기 때문에, 블록체인 네트워크는 악성 사용자가 전송한 서비스 데이터를 수신한 후에 이 서비스 데이터도 또한 프로세싱하게 되어, 계정 A에는 100위안만 남게된다. 재전송 공격 기술은 블록체인 네트워크의 데이터 보안을 위협하는 것을 알 수 있다.
재전송 공격을 방지하기 위해, 이더리움(Ethereum)은 각 계정에 난수(random number)를 구성한다. 계정에서 서비스 데이터가 생성될 때, 난수가 자동으로 1씩 증가하여 수치(value)가 얻어지며, 이 수치와 서비스 데이터 양자(兩者) 모두가 블록체인 노드에 전송된다. 그래서, 서비스 데이터를 수신하면, 블록체인 노드는 이 수치를 사용하여 서비스 데이터에 대한 검증을 행할 수 있다. 블록체인 노드는 서비스 데이터가 반복 트랜잭션(repeated transaction)이 아니라는 결정에 응답하여 서비스 데이터를 프로세싱하는데; 그렇지 않으면, 서비스 데이터의 프로세싱을 폐기한다.
하지만, 생성되는 서비스 데이터와 함께 난수가 지속적으로 증가하는 것을 보장하기 위해서는, 동일 계정에서 생성된 두 가지 서비스 데이터 중 한 가지가 블록체인 노드에 전송될 때, 난수는 잠금 상태(locked)가 되어야 하며, 이 난수는 서비스 데이터가 프로세싱될 때 잠금 해제될 수 있다. 즉, 재전송 공격을 방지하기 위해 이러한 방법이 사용될 때, 서비스 데이터는 시리얼 모드(serial mode)로 프로세싱되며, 그 결과 블록체인 네트워크에서의 서비스 데이터 프로세싱 효율이 상대적으로 낮다.
이러한 관점에서, 본 출원의 실시예는 블록체인 트랜잭션 데이터 프로세싱의 전체 프로세싱량을 향상시킬 수 있도록 블록체인 네트워크에서 재전송 공격을 방지하는 문제를 완화하기 위하여, 블록체인 기반의 데이터 프로세싱 방법 및 디바이스를 제시한다.
본 출원의 실시예에서는 하기의 기술적 해법이 사용된다.
본 출원의 일 실시예는 다음의: 블록체인 노드에 의해, 제1의 서비스 데이터를 획득하고는, 제1의 서비스 데이터의 속성값 - 이 속성값은 제1의 서비스 데이터의 고유성을 나타내는데 사용됨 - 을 결정하는 단계; 프로세싱된 제2의 서비스 데이터의 저장된 속성값들과 제1의 서비스 데이터의 속성값을 기초로 블록체인 노드에 의해, 제1의 서비스 데이터가 프로세싱되었는지를 결정하는 단계; 및, 제1의 서비스 데이터가 프로세싱되지 않았다는 결정에 응답하여, 블록체인 노드에 의해 제1의 서비스 데이터를 프로세싱하는 단계: 를 포함하는, 블록체인 기반의 데이터 프로세싱 방법을 제시한다.
본 출원의 일 실시예는 다음의: 제1의 서비스 데이터를 획득하고, 제1의 서비스 데이터의 속성값 - 이 속성값은 제1의 서비스 데이터의 고유성을 나타내는데 사용됨 - 을 결정하도록 구성된, 획득 유닛; 프로세싱된 제2의 서비스 데이터의 저장된 속성값들과 제1의 서비스 데이터의 속성값을 기초로, 제1의 서비스 데이터가 프로세싱되었는지 여부를 결정하도록 구성된, 결정 유닛; 및, 제1의 서비스 데이터가 프로세싱되지 않았다는 결정에 응답하여, 제1의 서비스 데이터를 프로세싱하도록 구성된, 프로세싱 유닛: 을 포함하는, 블록체인 기반의 데이터 프로세싱 디바이스를 또한 제시한다.
본 출원의 실시예에 사용된 전술한 적어도 하나의 기술적 해법은 다음과 같은 유익한 효과를 달성할 수 있다:
본 출원의 실시예에서는, 프로세싱 예정 서비스 데이터의 고유성을 나타낼 수 있는 속성값(attribute value)이 이미 프로세싱된 서비스 데이터의, 블록체인 노드에 저장된, 속성값과 비교되어 프로세싱 예정 서비스 데이터가 이미 프로세싱되었는지 여부를 결정할 수 있고; 프로세싱 예정 서비스 데이터가 아직 프로세싱되지 않았다고 결정될 때, 프로세싱 예정 서비스 데이터의 프로세싱이 개시(開始)된다. 그래서, 재전송 공격이 효과적으로 방지될 수 있다. 또한, 상이한 서비스 데이터의 속성값들은 상이하기 때문에, 현재 프로세싱되고 있는 하나의 서비스 데이터의 잠금 상태로 인해 다른 서비스 데이터가 프로세싱될 수 없는 문제가 회피될 수 있다. 그래서, 블록체인 네트워크에서의 서비스 데이터 프로세싱 효율이 효과적으로 보장되며, 블록체인 네트워크에서의 전체 서비스 데이터 프로세싱량(throughput)이 증가한다.
여기에 기술된 첨부 도면들은 본 출원의 구체적인 이해를 제공하기 위한 것으로, 본 출원의 일부를 구성한다. 본 출원의 예시적인 실시예와 본 출원의 실시예의 기술(description)은 본 출원을 설명하기 위한 것으로, 본 출원에 대한 제한을 구성하지 않는다.
도 1은 본 출원의 일 실시예에 따른, 블록체인 기반의 데이터 프로세싱 방법을 예시하는 개략적인 순서도.
도 2는 본 출원의 일 실시예에 따른, 블록체인 기반의 데이터 프로세싱 방법을 예시하는 개략적인 순서도.
도 3은 본 출원의 일 실시예에 따른, 블록체인 기반의 데이터 프로세싱 디바이스를 예시하는 개략적인 구조도.
본 출원의 목적, 기술적 해법, 및 이점을 보다 명확하게 하기 위해, 이하에서는 본 출원의 구체적인 실시예 및 대응하는 첨부 도면을 참조하여 본 출원의 기술적 해법을 명료하고 포괄적으로 기술한다. 자명하다시피, 기술된 실시예들은 본 출원의 모든 실시예가 아니라 일부일 뿐이다. 창의적인 노력없이 본 출원의 실시예를 기초로 본 기술분야의 통상의 기술자에 의해 얻어지는 모든 다른 실시예들도 본 출원의 보호 범위 내에 있게 된다.
이하에서는 첨부 도면을 참조하여 본 출원의 실시예에 제시된 기술적 해법을 상세히 설명한다.
도 1은 본 출원의 일 실시예에 따른, 블록체인 기반의 데이터 프로세싱 방법을 예시하는 개략적인 순서도이다. 본 방법은 다음과 같이 기술될 수 있다.
단계 101: 블록체인 노드가 제1의 서비스 데이터를 획득하고는, 이 제1의 서비스 데이터의 속성값(attribuate value)을 결정한다.
이 속성값은 제1의 서비스 데이터의 고유성을 나타내는데 사용된다.
본 출원의 이 실시예에서는, 다른 디바이스가 전송한 서비스 프로세싱 요청을 수신할 때, 블록체인 노드는 서비스 프로세싱 요청으로부터 서비스 데이터를 획득할 수 있다. 여기서 서비스 데이터는 제1의 서비스 데이터로 간주될 수 있다.
또한, 합의 동작(consensus operation)을 트리거하기 전에, 블록체인 노드는 저장된 복수의 서비스 데이터로부터 사전 설정량(predetermined amount)의 서비스 데이터를 획득할 수 있다. 여기서 서비스 데이터는 복수의 제1의 서비스 데이터로 간주될 수 있다. 제1의 서비스 데이터를 획득하는 구체적인 실시예는 여기에 국한되지 않는다.
블록체인 노드가 서비스 데이터의 프로세싱 노드(processing node)일 수도 있고, 또는 서비스 데이터의 비프로세싱 노드(non-processing node)일 수도 있다는 것에 주목할 필요가 있다. 프로세싱 노드는 다른 디바이스로부터 서비스 데이터를 직접 수신하는 노드로 이해될 수 있고, 비프로세싱 노드는 방송(broadcast)을 통해서 다른 블록체인 노드로부터 서비스 데이터를 수신하는 노드로 이해될 수 있다. 즉, 하나의 서비스 데이터에 대해, 블록체인 네트워크는 가능케는 하나의 프로세싱 노드와 복수의 비프로세싱 노드를 포함한다.
제1의 서비스 데이터를 획득할 때, 블록체인 노드는 제1의 서비스 데이터의 속성값을 결정할 수 있다. 여기서 속성값은 서비스 데이터가 생성될 때 얻어진다. 서비스 데이터가 트랜잭션 데이터이면, 트랜잭션 데이터가 생성될 때, 트랜잭션 데이터의 시리얼 번호도 또한 생성되는데, 이 시리얼 번호가 트랜잭션 데이터의 속성값으로, 즉 본 출원의 이 실시예에 기술된 속성값으로 사용될 수 있다. 또한, 서비스 데이터가 생성될 때, 생성된 트랜잭션 데이터가 사전 결정 알고리즘을 사용하여 또한 계산될 수 있으며, 얻어진 계산 결과가 서비스 데이터의 속성값으로 간주될 수 있다. 예를 들면, 생성된 서비스 데이터는 해쉬 알고리즘(hash algorithm)을 사용하여 계산되고, 얻어진 해쉬값(hash value)이 서비스 데이터의 속성값이 된다.
본 출원의 이 실시예에 기술된 속성값은 하나 이상의 서비스 데이터의 해쉬값과 서비스 데이터의 시리얼 번호를 포함한다.
본 출원의 이 실시예에서는, 속성값이 서비스 데이터를 고유하게 식별할 수 있기 때문에, 속성값이 서비스 데이터가 고유한 지를 식별하는 조건으로 사용될 수 있다는 것에 주목할 필요가 있다.
서비스 데이터의 속성값의 보안을 보장하기 위해, 속성값은 암호화(encrypted)될 수 있다. 이는 특별히 여기에 국한되는 것은 아니다.
단계 102: 블록체인 노드는, 이미 프로세싱된 제2의 서비스 데이터의 저장된 속성값들과 제1의 서비스 데이터의 속성값을 기초로, 제1의 서비스 데이터가 프로세싱되었는지 여부를 결정한다.
본 출원의 이 실시예에서, 서비스 데이터를 프로세싱할 때, 블록체인 노드는 프로세싱된 서비스 데이터의 속성값을 저장한다. 즉, 본 출원의 이 실시예에 제시된 기술적 해법에서는, 블록체인 노드가 데이터베이스를 유지할 필요가 있고, 이 데이터베이스에는 블록체인 노드에 의해 프로세싱된 서비스 데이터의 속성값이 저장된다. 이와 같이, 재전송 공격이 발생할 때, 프로세싱 예정 서비스 데이터가 반복 프로세싱되는지 여부가 이미 프로세싱된 서비스 데이터의, 데이터베이스에 저장된, 속성값을 사용하여 결정될 수 있다. 또한, 현재 프로세싱되고 있는 하나의 서비스 데이터의 잠금 상태로 인해 다른 서비스 데이터가 프로세싱될 수 없는 종래 기술의 문제점이 회피될 수 있다. 공간적으로 조금 과잉이긴 하나, 시스템 성능과 프로세싱 시간이 향상될 수 있다. 그래서, 블록체인 네트워크에서의 서비스 데이터 프로세싱 효율이 효과적으로 보장되고, 블록체인 네트워크에 있어서의 전체 서비스 데이터 프로세싱량이 증가한다.
구체적으로, 블록체인 노드는, 이미 프로세싱된 제2의 서비스 데이터의 저장된 속성값들 중에, 제1의 서비스 데이터의 속성값과 동일한 속성값이 존재하는 지에 대해 질의(query)한다.
블록체인 노드는, 질의 결과를 기초로 제1의 서비스 데이터가 프로세싱되었는지 여부를 결정한다.
예를 들면, 블록체인 노드는 이미 프로세싱된 제2의 서비스 데이터의 저장된 속성값들을 제1의 서비스 데이터의 속성값과 비교하여, 이미 프로세싱된 제2의 서비스 데이터의 속성값에 제1의 서비스 데이터의 속성값과 동일한 속성값이 존재하는지 여부를 결정한다.
이미 프로세싱된 제2의 서비스 데이터의 속성값에 제1의 서비스 데이터의 속성값과 동일한 속성값이 존재하면, 이는 제1의 서비스 데이터가 이미 프로세싱되었음을 나타내고, 제1의 서비스 데이터가 유효하지 않은(invalid) 서비스 데이터이며 재전송 공격일 가능성이 있다고 또한 결정될 수 있다. 이미 프로세싱된 제2의 서비스 데이터의 속성값에 제1의 서비스 데이터의 속성값과 동일한 속성값이 존재하지 않으면, 이는 제1의 서비스 데이터가 아직 프로세싱되지 않았음을 나타낸다.
재전송 공격 기술에서는, 서비스 데이터(이하에서는 유효한(valid) 서비스 데이터로 지칭됨)가 탈취(intercept)되거나 도용(steal)될 때, 이 서비스 데이터가 복제되어, 탈취된 서비스 데이터와 동일한 다른 서비스 데이터(이하에서는 유효하지 않은 서비스 데이터로 지칭됨)를 생성한다 것에 주목할 필요가 있다. 이는 유효한 서비스 데이터의 속성값이 유효하지 않은 서비스 데이터의 속성값과 동일하다는 것을 나타낸다.
또한, 본 출원의 이 실시예에 기술된 "제1의 서비스 데이터"와 "제2의 서비스 데이터"의 "제1의"와 "제2의"는 특별한 의미는 없으며, 단지 상이한 서비스 데이터간에 구분하기 위해 사용될 뿐이다.
단계 103: 제1의 서비스 데이터가 프로세싱되지 않았다는 결정에 응답하여, 블록체인 노드가 제1의 서비스 데이터를 프로세싱한다.
본 출원의 이 실시예에서는, 제1의 서비스 데이터가 프로세싱되지 않았다고 결정되면, 블록체인 노드가 제1의 서비스 데이터를 프로세싱할 수 있는데, 즉 서비스 데이터에 대해 합의 프로세싱(consensus processing), 저장 프로세싱(storage processing) 등을 행할 수 있다.
블록체인 노드가 제1의 서비스 데이터의 프로세싱 노드이면, 제1의 서비스 데이터가 프로세싱되지 않았다는 결정에 응답하여, 블록체인 노드는 제1의 서비스 데이터를 프로세싱한 후에 종래 기술의 방법을 사용하여 블록체인 네트워크 내의 다른 블록체인 노드에 제1의 서비스 데이터를 또한 방송할 수 있다.
구체적으로, 제1의 서비스 데이터가 프로세싱되지 않았다고, 블록체인 노드에 의해 결정하는 것은 다음의: 이미 프로세싱된 제2의 서비스 데이터의 저장된 속성값들 중에서 어떠한 속성값도 제1의 서비스 데이터의 속성값과 동일하지 않다는 결정에 응답하여, 제1의 서비스 데이터가 아직 프로세싱되지 않았다고, 블록체인 노드에 의해 결정하는 것: 을 포함한다.
바람직하게는, 본 출원의 이 실시예에서는, 본 방법이 다음의: 제1의 서비스 데이터의 속성값을, 블록체인 노드에 의해 저장하는 단계: 를 더 포함한다.
상술(上述)한 바와 같이, 블록체인 노드는 데이터베이스(이하에서는 기프로세싱 데이터베이스(processed database)로 지칭됨)를 유지할 수 있는데, 기프로세싱 데이터베이스에는 이미 프로세싱된 서비스 데이터의 속성값들이 저장된다. 블록체인 노드는 기프로세싱 데이터베이스에 제1의 서비스 데이터의 속성값을 저장할 수 있다.
본 출원의 이 예에서 기술된 기프로세싱 데이터베이스는 관계형 데이터베이스(relational database)이거나, 키-값(Key-Value) 데이터베이스일 수 있다는 것에 주목할 필요가 있다. 이는 특별히 여기에 국한되지 않는다.
바람직하게는, 제1의 서비스 데이터의 속성값을 기프로세싱 데이터베이스에 저장할 때, 블록체인 노드는 제1의 서비스 데이터의 속성값에 대한 질의 색인(query index)을 또한 결정할 수 있으며, 질의 색인과 제1의 서비스 데이터의 속성값 사이에 매핑 관계를 또한 확립할 수 있다. 이는 단계 102의 실행 효율을 향상시키는데 도움을 주며, 전체 시스템에서의 서비스 데이터 프로세싱 성능을 더욱 향상시키는데 도움을 준다.
바람직하게는, 본 출원의 이 실시예에서는, 본 방법이 다음의: 제1의 서비스 데이터가 이미 프로세싱되었다는 결정에 응답하여 제1의 서비스 데이터의 프로세싱을, 블록체인 노드에 의해 폐기하는 단계: 를 더 포함한다.
본 출원의 이 실시예의 기술적 해법이 블록체인 노드(여기서는 프로세싱 노드를 칭함)가 서비스 프로세싱 요청을 수신할 때 트리거 및 실행될 수 있거나, 합의(concensus)가 트리거되기 전에 실행될 수 있다는 것에 주목할 필요가 있다. 실시간 타이밍은 여기서 특별히 국한되지 않으며, 실제 필요에 따라 결정될 수 있다.
전술한 해법이 합의가 트리거되기 전에 실행되면, 수신된 서비스 데이터가 이미 프로세싱되었는지 여부가 프로세싱 노드 또는 비프로세싱 노드에 관계없이 합의가 개시되기 전에 식별되어야 함을 의미하며, 전술한 기프로세싱 데이터베이스는 블록체인 네트워크 내의 임의의 블록체인 노드에 의해 액세스될 수 있는데, 즉 블록체인 네트워크 내에서 공유된 데이터베이스이다. 또한, 블록체인 노드가 프로세싱 노드이면, 제1의 서비스 데이터가 이미 프로세싱되었다는 결정에 응답하여, 블록체인 노드가 다른 블록체인 노드에 제1의 서비스 데이터가 이미 프로세싱되었다는 정보를 방송하며, 그래서 다른 블록체인 노드도 제1의 서비스 데이터의 프로세싱을 또한 폐기할 수 있다. 여기서의 프로세싱은 합의 프로세싱, 저장 프로세싱 등일 수 있다.
본 출원의 이 실시예의 기술적 해법에 따르면, 프로세싱 예정 서비스 데이터의 고유성을 나타낼 수 있는 속성값이 이미 프로세싱된 서비스 데이터의, 블록체인 노드에 저장된, 속성값과 비교되어 프로세싱 예정 서비스 데이터가 이미 프로세싱되었는지 여부를 결정할 수 있고; 프로세싱 예정 서비스 데이터가 아직 프로세싱되지 않았다고 결정될 때, 프로세싱 예정 서비스 데이터의 프로세싱이 개시된다. 그래서, 재전송 공격이 효과적으로 방지될 수 있다. 또한, 상이한 서비스 데이터의 속상값들은 상이하기 때문에, 현재 프로세싱되고 있는 하나의 서비스 데이터의 잠금 상태로 인해 다른 서비스 데이터가 프로세싱될 수 없는 문제가 회피될 수 있다. 그래서, 블록체인 네트워크에서의 서비스 데이터 프로세싱 효율이 효과적으로 보장되며, 블록체인 네트워크에서의 전체 서비스 데이터 프로세싱량이 증가한다.
동일한 발명의 개념에 의거하여, 도 2는 본 출원의 일 실시예에 따른, 블록체인 기반의 데이터 프로세싱 방법을 예시하는 개략적인 순서도이다. 본 방법은 이하와 같이 기술된다. 본 출원의 이 실시예에서는, 블록체인 노드가 서비스 프로세싱 요청을 수신할 때 본 해법의 실행이 트리거되는 예가 설명에 사용된다.
단계 201: 블록체인 노드가 서비스 프로세싱 요청을 수신하고는, 서비스 프로세싱 요청으로부터 서비스 데이터를 획득한다.
단계 202: 블록체인 노드가 서비스 데이터의 속성값을 결정한다.
여기서 속성값은 서비스 데이터의 시리얼 번호, 서비스 데이터의 해쉬값 등일 수 있다. 이는 특별히 국한되지 않는다.
단계 203: 블록체인 노드는 서비스 데이터의 속성값을 사용하여, 서비스 데이터가 이미 프로세싱된 서비스 데이터인지 여부를 결정하며; 서비스 데이터가 프로세싱되지 않은 서비스 데이터라고 결정되는 경우에는, 단계 204를 수행하고, 그렇지 않으면 단계 206을 수행한다.
본 출원의 이 실시예에서는, 블록체인 노드가 서비스 데이터가 이미 프로세싱된 서비스 데이터인지 여부를 결정하는 것이 다음의: 이미 프로세싱된 제2의 서비스 데이터의 저장된 속성값들과 제1의 서비스 데이터의 속성값을 기초로 블록체인 노드에 의해, 제1의 서비스 데이터가 이미 프로세싱되었는지 여부를 결정하는 것: 을 포함하나 이에 국한되지 않는다.
특정 실시예의 경우에는, 상술한 단계 102가 참조될 수 있다. 여기서는 간략화를 상세사항이 생략된다.
단계 204: 블록체인 노드가 서비스 데이터를 프로세싱한다.
단계 205: 블록체인 노드가 블록체인 네트워크 내의 다른 블록체인 노드에 서비스 데이터를 방송한다.
단계 206: 블록체인 노드가 서비스 데이터를 폐기한다.
동일한 발명의 개념에 의거하여, 도 3은 본 출원의 일 실시예에 따른, 블록체인 기반의 데이터 프로세싱 디바이스를 예시하는 개략적인 구조도이다. 데이터 프로세싱 디바이스는 획득 유닛(301)과, 결정 유닛(302), 및 프로세싱 유닛(303)을 포함한다.
획득 유닛(301)은 제1의 서비스 데이터를 획득하고는, 제1의 서비스 데이터의 속성값을 결정하도록 구성되는데, 속성값은 제1의 서비스 데이터의 고유성을 나타내는데 사용된다.
결정 유닛(302)은 이미 프로세싱된 제2의 서비스 데이터의 저장된 속성값들과 제1의 서비스 데이터의 속성값을 기초로, 제1의 서비스 데이터가 이미 프로세싱되었는지 여부를 결정하도록 구성된다.
프로세싱 유닛(303)은 제1의 서비스 데이터가 아직 프로세싱되지 않았다는 결정에 응답하여, 제1의 서비스 데이터를 프로세싱하도록 구성된다.
본 출원의 다른 실시예에서는, 데이터 프로세싱 디바이스가 폐기 유닛(discarding unit)(304)을 더 포함한다.
폐기 유닛(304)은 제1의 서비스 데이터가 이미 프로세싱되었다는 결정에 응답하여, 제1의 서비스 데이터의 프로세싱을 폐기하도록 구성된다.
본 출원의 다른 실시예에서는, 결정 유닛(302)이 이미 프로세싱된 제2의 서비스 데이터의 저장된 속성값들과 제1의 서비스 데이터의 속성값을 기초로, 제1의 서비스 데이터가 이미 프로세싱되었는지 여부를 결정하는 것이 다음의: 이미 프로세싱된 제2의 서비스 데이터의 저장된 속성값들에, 제1의 서비스 데이터의 속성값과 동일한 속성값이 존재하는지 여부를 질의하는 것과; 질의 결과를 기초로, 제1의 서비스 데이터가 이미 프로세싱되었는지 여부를 결정하는 것: 을 포함한다.
본 출원의 다른 실시예에서는, 프로세싱 유닛(303)이 제1의 서비스 데이터가 아직 프로세싱되지 않았다고 결정하는 것이 다음의: 이미 프로세싱된 제2의 서비스 데이터의 저장된 속성값들 중에서 어떠한 속성값도 제1의 서비스 데이터의 속성값과 동일하지 않다는 결정에 응답하여, 제1의 서비스 데이터가 아직 프로세싱되지 않았다고 결정하는 것: 을 포함한다.
본 출원의 다른 실시예에서는, 데이터 프로세싱 디바이스가 저장 유닛(305)을 더 포함한다.
저장 유닛(305)은 제1의 서비스 데이터의 속성값을 저장하도록 구성된다.
본 출원의 다른 실시예에서는, 데이터 프로세싱 디바이스가 확립 유닛(306)을 더 포함한다.
확립 유닛(306)은, 제1의 서비스 데이터의 속성값을 기프로세싱 데이터베이스 - 기프로세싱 데이터베이스에는 이미 프로세싱된 서비스 데이터의 속성값들도 저장됨 - 에 저장하고; 제1의 서비스 데이터의 속성값의 질의 색인(query index)을 결정하며; 질의 색인과 제1의 서비스 데이터의 속성값 사이에 매핑 관계를 확립하도록 구성된다.
본 출원의 다른 실시예에서는, 서비스 데이터가 생성될 때 속성값이 얻어진다.
본 출원의 다른 실시예에서는, 속성값이 하나 이상의 서비스 데이터의 해쉬값과 서비스 데이터의 시리얼 번호를 포함한다.
본 출원의 이 실시예에 제시된 데이터 프로세싱 디바이스는 하드웨어로 구현될 수도 있고, 아니면 소프트웨어로 구현될 수 있다는 것에 주목할 필요가 있다. 이는 특별히 여기에 국한되지 않는다. 본 출원의 이 실시예에 기술된 데이터 프로세싱 디바이스에 따르면, 프로세싱 예정 서비스 데이터의 고유성을 나타낼 수 있는 속성값이 이미 프로세싱된 서비스 데이터의, 블록체인 노드에 저장된, 속성값과 비교되어 프로세싱 예정 서비스 데이터가 이미 프로세싱되었는지 여부를 결정할 수 있고; 프로세싱 예정 서비스 데이터가 아직 프로세싱되지 않았다고 결정될 때, 프로세싱 예정 서비스 데이터의 프로세싱이 개시된다. 그래서, 재전송 공격이 효과적으로 방지될 수 있다. 또한, 상이한 서비스 데이터의 속상값들은 상이하기 때문에, 현재 프로세싱되고 있는 하나의 서비스 데이터의 잠금 상태로 인해 다른 서비스 데이터가 프로세싱될 수 없는 문제가 회피될 수 있다. 그래서, 블록체인 네트워크에서의 서비스 데이터 프로세싱 효율이 효과적으로 보장되며, 블록체인 네트워크에서의 전체 서비스 데이터 프로세싱량이 증가한다.
동일한 발명의 개념에 의거하여, 본 출원의 일 실시예는 적어도 하나의 프로세서와 메모리를 포함하는, 데이터 프로세싱 디바이스를 또한 제시한다.
메모리는 프로그램을 저장하도록 구성되며, 그래서 적어도 하나의 프로세서가 다음의 단계를 수행한다: 제1의 서비스 데이터를 획득하고, 이 제1의 서비스 데이터의 속성값 - 속성값은 제1의 서비스 데이터의 고유성을 나타내는데 사용됨 - 을 결정하는 단계; 이미 프로세싱된 제2의 서비스 데이터의 저장된 속성값들과 제1의 서비스 데이터의 속성값을 기초로, 제1의 서비스 데이터가 이미 프로세싱되었는지 여부를 결정하는 단계; 및, 제1의 서비스 데이터가 아직 프로세싱되지 않았다는 결정에 응답하여, 제1의 서비스 데이터를 프로세싱하는 단계.
동일한 발명의 개념에 의거하여, 본 출원의 일 실시예는 데이터 프로세싱 디바이스와 연계하여 사용되는 프로그램을 포함하는 컴퓨터 저장 매체를 또한 제시하며, 이 프로그램은 다음의 단계들을 수행하기 위해 프로세서에 의해 사용될 수 있다: 제1의 서비스 데이터를 획득하고, 이 제1의 서비스 데이터의 속성값 - 속성값은 제1의 서비스 데이터의 고유성을 나타내는데 사용됨 - 을 결정하는 단계; 이미 프로세싱된 제2의 서비스 데이터의 저장된 속성값들과 제1의 서비스 데이터의 속성값을 기초로, 제1의 서비스 데이터가 이미 프로세싱되었는지 여부를 결정하는 단계; 및, 제1의 서비스 데이터가 아직 프로세싱되지 않았다는 결정에 응답하여, 제1의 서비스 데이터를 프로세싱하는 단계.
구체적인 실시예의 경우에, 전술한 실시예의 내용이 참조될 수 있다. 여기서는 간략화를 상세사항이 생략된다.
1990년대에는, 기술의 향상이 하드웨어의 향상(예를 들면, 다이오드, 트랜지스터, 또는 스위치와 같은 회로 구조의 향상)인지 소프트웨어의 향상(방법 절차의 향상)인지 명확히 구분될 수 있었다. 하지만 기술의 발전에 따라, 많은 방법 절차의 향상이 하드웨어 회로 구조의 직접적인 향상으로도 간주될 수 있다. 설계자는 향상된 방법 절차를 하드웨어 회로에 거의 모두 프로그램함으로써, 해당 하드웨어 회로 구조를 얻는다. 그래서, 방법 절차의 향상이 하드웨어 실체 모듈을 사용하여 구현될 수 없다고 말할 수 없다. 예를 들면, PLD(progrmmable logic device)(예컨대 FPGA: field programmable gate array)가 일종의 이러한 집적회로이다. PLD의 논리 함수(logical function)는 사용자에 의해 실행되는 컴포넌트 프로그래밍에 의해 결정된다. 설계자는 칩 제조업자가 전용 집적회로 칩을 설계 및 제작할 필요없이, 디지털 시스템을 단일의 PLD에 "통합(integrate)"하기 위해 자발적인 프로그래밍을 수행한다. 또한, 집적회로 칩을 수작업으로 제작하는 대신에, 프로그래밍은 대부분 "로직 컴파일러(logic compiler)" 소프트웨어로 구현되는데, 이 로직 컴파일러 소프트웨어는 프로그램 개발시에 사용되는 소프트웨어 컴파일러와 유사하다. 컴파일링 이전의 원 코드(original code)도 또한 특정 프로그래밍 언어로 작성되는데, 이는 HDL(hardware description language: 하드웨어 기술 언어)이라 지칭되며, ABEL(Advanced Boolean Expression Language), AHDL(Altera Hardware Description Language), Confluence(컨플루언스), CUPL(Cornell University Programming Language), HDCal, JHDL(Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, 및 RHDL(Ruby Hardware Description Language) 등과 같은 한 가지 유형 이상의 HDL이 존재한다. 현재, VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)과 Verilog(베릴로그)가 가장 흔히 사용된다. 본 기술분야의 통상의 기술자는 방법 절차가 논리적으로 프로그램되고, 전술한 하드웨어 기술 언어(description language)를 사용하여 집적회로에 프로그램되기만 하면, 논리 방법 절차를 구현하는 하드웨어 회로가 쉽사리 얻어질 수 있다는 것도 또한 이해해야 한다.
임의의 적절한 방법을 사용하여 컨트롤러가 구현될 수 있다. 예를 들면, 컨트롤러는 마이크로프로세서 또는 프로세서, 마이크로프로세서 또는 프로세서에 의해 실행될 수 있는 컴퓨터 판독 가능 프로그램 코드(예컨대 소프트웨어 또는 펌웨어)를 저장하는 컴퓨터 판독 가능 매체, 논리 게이트, 스위치, ASIC(application-specific integrated circuit), PLC(programmable logic controller), 및 임베디드 마이크로컨트롤러일 수 있다. 컨트롤러의 예로는 다음의 마이크로프로세서들이 포함되나 이에 국한되지 않는다: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, 및 Silicone Labs C8051F320. 메모리 컨트롤러도 메모리의 제어 논리(controlling logic)의 일부로 또한 구현될 수 있다. 본 기술분야의 통상의 기술자는 컨트롤러가 컴퓨터 판독 가능 프로그램 코드만을 사용하여 구현될 수도 있으며, 컨트롤러가 논리 게이트, 스위치, ASIC, PLC, 임베디드 마이크로컨트롤러 등의 형태로 동일 기능을 또한 구현할 수 있도록, 본 방법의 단계들이 논리적으로 프로그램될 수 있음을 또한 알고 있다. 그래서, 컨트롤러는 하드웨어 컴포넌트로 간주될 수 있으며, 컨트롤러 내에 포함되며 다양한 기능들을 구현하도록 구성된 장치도 또한 하드웨어 컴포넌트 내의 구조로 간주될 수 있다. 이와 달리, 다양한 기능들을 구현하도록 구성된 장치가 방법을 구현하는 소프트웨어 모듈과 하드웨어 컴포넌트 내의 구조의 양자(兩者) 모두로 간주될 수도 있다.
전술한 실시예에 기술된 시스템, 장치, 모듈, 또는 유닛은 컴퓨터 칩 또는 엔티티(entity)로 구현될 수 있거나, 특정 기능을 갖는 제품으로 구현될 수 있다. 전형적인 구현 디바이스는 컴퓨터이다. 컴퓨터는 예를 들면, PC, 랩탑컴퓨터, 휴대전화, 카메라폰, 스마트폰, PDA(personal digital assistant), 미디어 플레이어, 네비게이션 디바이스, 이메일 디바이스, 게임콘솔, 태블릿 컴퓨터, 웨어러블 디바이스, 또는 이들 디바이스들의 임의의 조합일 수 있다.
기술(記述)의 편의를 위해, 전술한 장치는 기능들을 다양한 유닛으로 구분하여 기술되었다. 물론, 본 출원의 실시시에는 유닛들의 기능들이 한 가지 이상의 소프트웨어 및/또는 하드웨어로 구현될 수도 있다.
본 기술분야의 통상의 기술자는 본 발명의 실시예들이 방법, 시스템, 또는 컴퓨터 프로그램 제품으로 제시될 수 있음을 이해해야 한다. 그래서, 본 발명은 하드웨어 전용 실시예, 소프트웨어 전용 실시예, 또는 소프트웨어와 하드웨어의 조합의 실시예의 형태로 사용될 수 있다. 또한, 본 발명은 컴퓨터 사용 가능 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용 가능 저장 매체(디스크 메모리, CD-ROM, 광 메모리를 포함하나 이에 국한되지 않음)에서 구현되는 컴퓨터 프로그램 제품의 형태로 사용될 수 있다.
본 발명은 본 발명의 실시예에 따른 한 방법, 디바이스(시스템), 및 컴퓨터 프로그램 제품의 순서도 및/또는 블록도를 참조하여 기술되었다. 컴퓨터 프로그램 명령들이 순서도들 및/또는 블록도들 내의 각 프로세스 및/또는 각 블록 및 순서도들 및/또는 블록도들 내의 프로세스 및/또는 블록의 조합을 구현하는데 사용될 수 있음을 이해해야 한다. 이들 컴퓨터 프로그램 명령은 컴퓨터 또는 임의의 다른 프로그램 가능 데이터 프로세싱 디바이스의 프로세서에 의해 실행되는 명령이 순서도들 내의 하나 이상의 프로세스들 또는 블록도들 내의 하나 이상의 블록들의 특정 기능을 구현하는 장치를 생성하도록, 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서, 또는 머신을 생성하는 임의의 다른 프로그램 가능 데이터 프로세싱 디바이스의 프로세서에 제공될 수 있다.
이들 컴퓨터 프로그램 명령은 컴퓨터 또는 임의의 다른 프로그램 가능 데이터 프로세싱 디바이스가 특정 방법으로 작동하도록 지시할 수 있는 컴퓨터 판독 가능 메모리에 저장될 수 있으며, 그래서 컴퓨터 판독 가능 메모리에 저장된 명령이 명령 장치(instruction apparatus)를 포함하는 아티팩트(artifact)를 생성할 수 있다. 명령 장치는 순서도들 내의 하나 이상의 프로세스들 및/또는 블록도들 내의 하나 이상의 블록들의 특정 기능을 구현할 수 있다.
이들 컴퓨터 프로그램 명령은 컴퓨터 또는 다른 프로그램 가능 데이터 프로세싱 디바이스에 로딩될 수 있으며, 그래서 일련의 동작들 또는 단계들이 컴퓨터 또는 다른 프로그램 가능 디바이스에서 수행되고, 그에 따라 컴퓨터 구현 프로세싱을 발생시키게 된다. 그래서, 컴퓨터 또는 다른 프로그램 가능 디바이스에서 실행되는 명령들은 순서도들 내의 하나 이상의 프로세스들 또는 블록도들 내의 하나 이상의 블록들의 특정 기능을 구현하는 단계들을 제공한다.
전형적인 구성에서, 컴퓨팅 디바이스는 하나 이상의 프로세서(CPU), 하나 이상의 입출력 인터페이스, 하나 이상의 네트워크 인터페이스, 및 하나 이상의 메모리를 포함한다.
메모리는 비영구 메모리, RAM(random access memory), 및/또는 컴퓨터 판독 가능 매체의 비휘발성 메모리, 예를 들면, ROM(read-only memory) 또는 플래시 메모리(플래시 RAM)를 포함할 수 있다. 메모리는 컴퓨터 판독 가능 매체의 일례이다.
컴퓨터 판독 가능 매체는 임의의 방법 또는 기술을 사용하여 정보 저장을 구현할 수 있는 영구, 비영구, 이동형, 또는 비이동형 매체를 포함한다. 정보는 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터일 수 있다. 컴퓨터 저장 매체는 PRAM(parameter random access memory), SRAM(static random access memory), DRAM(dynamic random access memory), 다른 유형의 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), 플래시 메모리 또는 다른 메모리 기술, CD-ROM(compact disc read-only memory), DVD(digital versatile disc) 또는 광저장디바이스, 자기테이프, 자기 디스크 저장디바이스 또는 다른 자기 저장 디바이스, 또는 컴퓨팅 디바이스에 의해 액세스될 수 있는 정보를 저장하는데 사용될 수 있는 임의의 다른 비전송 매체를 포함하나 이에 국한되지 않는다. 본 명세서에서의 한정에 기초하여, 컴퓨터 판독 가능 매체는 일시적 컴퓨터 판독 가능 매체(transitory media), 예를 들면 변조 데이터 신호와 반송파(carrier)는 포함하지 않는다.
"포함하다(include 또는 contain)"라는 용어 또는 그들의 임의의 다른 변형 표현은 비배타적인 포함을 커버하기 위한 것으로, 일련의 요소들을 포함하는 프로세스, 방법, 품목, 또는 디바이스가 이들 요소들을 포함할 뿐만 아니라 명시적으로 열거되지 않은 다른 요소들도 또한 포함하거나, 또는 이러한 프로세스, 방법, 제품, 또는 디바이스에 본질적인 요소들도 더 포함한다는 것에 또한 주목할 필요가 있다. "포함하다"라는 표현 이전에 나오는 요소는 더 이상의 제한이 없을 때에는, 그 요소를 포함하는 프로세스, 방법, 제품, 또는 디바이스 내에 추가적인 동일한 요소가 존재하는 것을 배제하지 않는다.
본 출원은 컴퓨터에 의해 실행되는 컴퓨터 실행 가능 명령, 예를 들면 프로그램 모듈의 일반적인 맥락에서 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크(task)를 실행하거나 또는 특정 추상(abstract) 데이터 유형을 구현하기 위한, 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 출원은 분산 컴퓨팅 환경에서도 또한 실시될 수 있다. 분산 컴퓨팅 환경에서는, 통신 네트워크를 통해 연결된 원격 프로세싱 디바이스들에 의해 태스크가 수행된다. 분산 컴퓨팅 환경에서는, 프로그램 모듈이 저장디바이스를 포함하는 로컬 및 원격 컴퓨터 저장 매체 양자 모두에 위치될 수 있다.
본 출원의 실시예들은 모두 점진적인 방식으로 기술되었다. 실시예 내의 동일하거나 유사한 부분들에 대해서는, 실시예를 참조하면 된다. 각 실시예는 다른 실시예들과의 차이점에 초점을 맞추고 있다. 특히, 시스템 실시예는 방법 실시예와 기본적으로 유사하며, 그래서 간략하게만 기술된다. 관련 부분에 대해서는, 방법 실시예의 일부 설명을 참조하면 된다.
전술한 설명은 단지 본 출원의 실시예들일 뿐으로, 본 출원을 제한하기 위한 것이 아니다. 본 기술분야의 통상의 기술자는 본 출원에 다양한 수정과 변경을 가할 수 있다. 본 출원의 사상과 원리 내에서 이루어진 임의의 수정, 등가 대체, 및 개선 등도 본 출원의 청구의 범위 내에 있게 된다

Claims (18)

  1. 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법으로서,
    블록체인 네트워크의 블록체인 노드에 의해, 제1의 서비스 데이터를 획득하는 단계;
    상기 제1의 서비스 데이터의 속성값 - 상기 속성값은 상기 제1의 서비스 데이터의 고유성을 나타내는데 사용됨 - 을 결정하는 단계;
    (i) 프로세싱된 제2의 서비스 데이터의 기프로세싱(processed) 데이터베이스에 저장된 속성값들 및 (ii) 상기 제1의 서비스 데이터의 속성값에 기초하여, 상기 블록체인 노드에 의해, 상기 제1의 서비스 데이터가 프로세싱되었는지 여부를 결정하는 단계;
    상기 제1의 서비스 데이터가 프로세싱되었다는 결정에 응답하여,
    상기 블록체인 노드에 의해, 상기 블록체인 네트워크의 적어도 하나의 추가 블록체인 노드에 상기 제1의 서비스 데이터가 프로세싱되었다는 정보를 브로드캐스팅하는 단계 - 상기 적어도 하나의 추가 블록체인 노드는 상기 블록체인 노드로부터 상기 정보를 수신하면 상기 제1의 서비스 데이터의 프로세싱을 폐기함 - ; 및
    상기 제1의 서비스 데이터의 프로세싱을 폐기하는 단계와,
    상기 제1의 서비스 데이터가 프로세싱되지 않았다는 결정에 응답하여,
    상기 블록체인 노드에 의해, 상기 기프로세싱 데이터베이스에 상기 제1의 서비스 데이터의 속성값을 저장하는 단계 - 상기 기프로세싱 데이터베이스는 프로세싱된 서비스 데이터의 속성값들을 저장함 - ;
    상기 블록체인 네트워크 내의 다른 블록체인 노드에 상기 제1의 서비스 데이터를 브로드캐스팅하는 단계;
    상기 블록체인 노드에 의해, 상기 제1의 서비스 데이터를 포함하는 사전 설정량(predetermined amount)의 저장된 서비스 데이터를 획득하는 단계; 및
    상기 블록체인 노드에 의해, 상기 사전 설정량의 저장된 서비스 데이터에 대한 합의 동작을 트리거하는 단계
    를 포함하는, 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 제1의 서비스 데이터가 프로세싱되었다는 결정에 응답하여, 상기 제1의 서비스 데이터의 프로세싱을 상기 블록체인 노드에 의해 폐기하는 단계를 더 포함하는, 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 제1의 서비스 데이터가 프로세싱되었는지 여부를 결정하는 단계는,
    이전에 저장된 속성값이 상기 제1의 서비스 데이터의 속성값과 동일한지의 여부에 기초하여, 상기 블록체인 노드에 의해 질의 결과를 결정하는 단계; 및
    상기 질의 결과에 기초하여, 상기 블록체인 노드에 의해, 상기 제1의 서비스 데이터가 프로세싱되었는지 여부를 결정하는 단계
    를 포함하는 것인, 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법.
  4. 제3항에 있어서,
    상기 블록체인 노드에 의해, 상기 제1의 서비스 데이터가 프로세싱되지 않았음을 결정하는 것은,
    프로세싱된 상기 제2의 서비스 데이터의 저장된 속성값들로부터 상기 제1의 서비스 데이터의 속성값과 동일한 속성값이 발견되지 않았다는 결정에 응답하여, 상기 블록체인 노드에 의해, 상기 제1의 서비스 데이터가 프로세싱되지 않았음을 결정하는 단계를 포함하는 것인, 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법.
  5. 제3항에 있어서,
    상기 블록체인 노드에 의해, 상기 제1의 서비스 데이터가 프로세싱되었음을 결정하는 것은,
    프로세싱된 상기 제2의 서비스 데이터의 저장된 속성값들로부터 상기 제1의 서비스 데이터의 속성값과 동일한 속성값이 발견되었다는 결정에 응답하여, 상기 블록체인 노드에 의해, 상기 제1의 서비스 데이터가 프로세싱되었음을 결정하는 단계; 및
    상기 제1의 서비스 데이터가 유효하지 않은(invalid) 서비스 데이터라고 결정하는 단계
    를 포함하는 것인, 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 블록체인 노드에 의해 상기 제1의 서비스 데이터의 속성값을 저장하는 단계를 더 포함하는, 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 기프로세싱 데이터베이스는 상기 블록체인 네트워크 내의 모든 블록체인 노드에 의해 액세스될 수 있어 상기 블록체인 네트워크 내에서 공유되고,
    상기 컴퓨터 구현 방법은,
    상기 블록체인 노드에 의해, 상기 기프로세싱 데이터베이스에 상기 제1의 서비스 데이터의 속성값을 저장할 때, 상기 제1의 서비스 데이터의 속성값의 질의 색인(query index)을 결정하는 단계;
    상기 질의 색인과 상기 제1의 서비스 데이터의 속성값 사이에 매핑 관계(mapping relathionship)를 확립하는 단계; 및
    상기 매핑 관계 및 질의 색인을 사용하여 상기 기프로세싱 데이터베이스에서 상기 속성값을 검색(lookup)하는 단계
    를 더 포함하는, 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 기프로세싱 데이터베이스는 관계형 데이터베이스(relational database) 또는 키-값(Key-Value) 데이터베이스인 것인, 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 속성값은 상기 제1의 서비스 데이터가 생성될 때 획득되는 것인, 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법.
  10. 제1항에 있어서,
    상기 속성값은 상기 제1의 서비스 데이터의 해쉬값(hash value) 및 상기 제1의 서비스 데이터의 시리얼 번호 중 하나 이상을 포함하는 것인, 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법.
  11. 제1항에 있어서,
    상기 속성값은 암호화 데이터(encrypted data)를 포함하는 것인, 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법.
  12. 제1항 내지 제11항 중 어느 한 항의 블록체인 기반의 데이터 프로세싱을 위한 컴퓨터 구현 방법을 수행하도록 구성된 복수의 모듈을 포함하는, 블록체인 기반의 데이터 프로세싱 디바이스.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
KR1020197013510A 2017-05-12 2018-05-10 블록체인 기반 데이터 프로세싱 방법 및 디바이스 KR102242220B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710335973.4A CN108881120B (zh) 2017-05-12 2017-05-12 一种基于区块链的数据处理方法及设备
CN201710335973.4 2017-05-12
PCT/CN2018/086280 WO2018205971A1 (zh) 2017-05-12 2018-05-10 一种基于区块链的数据处理方法及设备

Publications (2)

Publication Number Publication Date
KR20190069473A KR20190069473A (ko) 2019-06-19
KR102242220B1 true KR102242220B1 (ko) 2021-04-21

Family

ID=64104352

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197013510A KR102242220B1 (ko) 2017-05-12 2018-05-10 블록체인 기반 데이터 프로세싱 방법 및 디바이스

Country Status (14)

Country Link
US (1) US11281661B2 (ko)
EP (1) EP3528451B1 (ko)
JP (1) JP2020516089A (ko)
KR (1) KR102242220B1 (ko)
CN (1) CN108881120B (ko)
AU (1) AU2018264441B2 (ko)
BR (1) BR112019009576A2 (ko)
CA (1) CA3043536A1 (ko)
MX (1) MX2019005529A (ko)
MY (1) MY195245A (ko)
PH (1) PH12019501055A1 (ko)
RU (1) RU2720641C9 (ko)
TW (1) TWI684878B (ko)
WO (1) WO2018205971A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108881120B (zh) 2017-05-12 2020-12-04 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
CN110431577B (zh) 2018-12-29 2023-08-22 创新先进技术有限公司 用于检测重放攻击的系统和方法
JP6882474B2 (ja) 2018-12-29 2021-06-02 アドバンスド ニュー テクノロジーズ カンパニー リミテッド リプレイ攻撃の検出のためのシステム及び方法
AU2019207310A1 (en) 2019-04-26 2020-11-12 Advanced New Technologies Co., Ltd. Anti-replay attack authentication protocol
CN110415114A (zh) * 2019-06-12 2019-11-05 阿里巴巴集团控股有限公司 一种在区块链中解锁账户的方法和装置
CN114666163A (zh) * 2019-06-26 2022-06-24 创新先进技术有限公司 基于存储空间互换的改进的防重放设备
CN111598558B (zh) * 2020-05-13 2023-08-22 中国联合网络通信集团有限公司 记账方法及记账节点服务器、付款方节点服务器
CN111541789A (zh) 2020-07-08 2020-08-14 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的数据同步方法及装置
CN111541783B (zh) 2020-07-08 2020-10-20 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的交易转发方法及装置
CN113726875A (zh) 2020-07-08 2021-11-30 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的交易处理方法及装置
CN111541726B (zh) * 2020-07-08 2021-05-18 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的重放交易识别方法及装置
CN111539829B (zh) 2020-07-08 2020-12-29 支付宝(杭州)信息技术有限公司 一种基于区块链一体机的待过滤交易识别方法及装置
CN117478301B (zh) * 2023-12-27 2024-04-09 湖南天河国云科技有限公司 基于有向无环图的区块链共识达成方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016204572A2 (ko) * 2015-06-18 2016-12-22 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
US20170132621A1 (en) 2015-11-06 2017-05-11 SWFL, Inc., d/b/a "Filament" Systems and methods for autonomous device transacting

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065919A1 (en) * 2001-04-18 2003-04-03 Albert Roy David Method and system for identifying a replay attack by an access device to a computer system
US7653401B2 (en) * 2002-07-25 2010-01-26 Hai Qu Filtering of broadcast SMS messages
US20040201647A1 (en) * 2002-12-02 2004-10-14 Mark Jackson Pulver Stitching of integrated circuit components
US7873782B2 (en) * 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
CN101009703B (zh) * 2007-02-07 2011-07-20 杭州华三通信技术有限公司 一种验证数据同步的方法及系统
DE102008046563A1 (de) * 2008-09-10 2010-03-11 Siemens Aktiengesellschaft Verfahren zur Datenübertragung zwischen Netzwerkknoten
WO2011163525A1 (en) * 2010-06-23 2011-12-29 Obopay, Inc. Mobile networked payment system
CN102915421B (zh) * 2011-08-04 2013-10-23 腾讯科技(深圳)有限公司 文件的扫描方法及系统
US9858401B2 (en) 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
CN103036696B (zh) * 2011-09-30 2016-05-25 中国移动通信集团甘肃有限公司 一种联机业务的实现方法、系统及相应设备
JP6065113B2 (ja) * 2013-06-04 2017-01-25 三菱電機株式会社 データ認証装置、及びデータ認証方法
CA2985040A1 (en) * 2014-05-06 2015-12-03 Case Wallet, Inc. Cryptocurrency virtual wallet system and method
US9836908B2 (en) * 2014-07-25 2017-12-05 Blockchain Technologies Corporation System and method for securely receiving and counting votes in an election
CN106156050B (zh) * 2015-03-27 2020-01-10 阿里巴巴集团控股有限公司 一种数据处理方法及装置
EP3292484B1 (en) * 2015-05-05 2021-07-07 Ping Identity Corporation Identity management service using a block chain
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US10963881B2 (en) 2015-05-21 2021-03-30 Mastercard International Incorporated Method and system for fraud control of blockchain-based transactions
GB201511963D0 (en) * 2015-07-08 2015-08-19 Barclays Bank Plc Secure digital data operations
US20170048235A1 (en) 2015-07-14 2017-02-16 Fmr Llc Crypto Captcha and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20170132626A1 (en) * 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for processing of a blockchain transaction in a transaction processing network
US20180331832A1 (en) * 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
US20170132625A1 (en) * 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for use of a blockchain in a transaction processing network
US10423938B1 (en) * 2015-11-20 2019-09-24 United Services Automobile Association Identifying negotiable instrument fraud using distributed ledger systems
CN105931052A (zh) * 2016-04-21 2016-09-07 四川大学 一种基于区块链多因子交叉验证的虚拟货币交易验证方法
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
CN106295401A (zh) * 2016-08-13 2017-01-04 深圳市樊溪电子有限公司 一种用于区块链的只读安全文件存储系统及其方法
CN106131048B (zh) * 2016-08-13 2020-05-19 广州商品清算中心股份有限公司 一种用于区块链的非信任远程交易文件安全存储系统
CN106530083B (zh) * 2016-10-27 2018-06-29 深圳壹账通智能科技有限公司 基于区块链的多链管理方法及系统
CN106650494B (zh) * 2016-12-16 2019-07-16 杭州嘉楠耘智信息科技有限公司 一种数据处理方法及装置
CN108881120B (zh) 2017-05-12 2020-12-04 创新先进技术有限公司 一种基于区块链的数据处理方法及设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016204572A2 (ko) * 2015-06-18 2016-12-22 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
US20170132621A1 (en) 2015-11-06 2017-05-11 SWFL, Inc., d/b/a "Filament" Systems and methods for autonomous device transacting

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ethan Cecchetti et al., Solidus: Confidential Dostrubuted Ledger Transactions via PVORM, IACR 2017.04.10*

Also Published As

Publication number Publication date
US20190391973A1 (en) 2019-12-26
AU2018264441A1 (en) 2019-05-30
RU2720641C1 (ru) 2020-05-12
PH12019501055A1 (en) 2019-12-02
CA3043536A1 (en) 2018-11-15
TW201901480A (zh) 2019-01-01
BR112019009576A2 (pt) 2019-10-22
RU2720641C9 (ru) 2020-07-07
JP2020516089A (ja) 2020-05-28
TWI684878B (zh) 2020-02-11
MY195245A (en) 2023-01-11
CN108881120B (zh) 2020-12-04
KR20190069473A (ko) 2019-06-19
WO2018205971A1 (zh) 2018-11-15
CN108881120A (zh) 2018-11-23
EP3528451B1 (en) 2022-07-06
EP3528451A4 (en) 2019-12-04
MX2019005529A (es) 2019-09-05
AU2018264441B2 (en) 2020-05-21
US11281661B2 (en) 2022-03-22
EP3528451A1 (en) 2019-08-21

Similar Documents

Publication Publication Date Title
KR102242220B1 (ko) 블록체인 기반 데이터 프로세싱 방법 및 디바이스
CN113766035B (zh) 一种业务受理及共识的方法及装置
KR102272117B1 (ko) 블록체인 기반 데이터 프로세싱 방법 및 디바이스
KR102340223B1 (ko) 블록체인 합의 방법 및 디바이스
KR102255724B1 (ko) 블록체인 기반 합의 방법 및 디바이스
EP3561674B1 (en) Method and apparatus for verifying block data in a blockchain
JP2020509690A (ja) 業務検証方法および装置
TWI737107B (zh) 資料處理方法、裝置、區塊鏈客戶端和區塊鏈節點
US10999283B2 (en) Addressing transaction conflict in blockchain systems
JP2020512779A (ja) トランザクション要求を処理するための方法及び装置
WO2020024650A1 (zh) 数据处理方法和装置、客户端
KR20210125522A (ko) 블록체인 거래를 추적하기 위한 방법 및 장치
US20210073024A1 (en) Data processing method, apparatus, and server
US20170270133A1 (en) Method, apparatus, and system for determining the existence of a data file
Tao et al. A semi-centralized algorithm to detect and resolve distributed deadlocks in the generalized model

Legal Events

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