KR102455884B1 - 데이터 처리 방법 및 장치, 컴퓨터 디바이스, 및 저장 매체 - Google Patents

데이터 처리 방법 및 장치, 컴퓨터 디바이스, 및 저장 매체 Download PDF

Info

Publication number
KR102455884B1
KR102455884B1 KR1020217005410A KR20217005410A KR102455884B1 KR 102455884 B1 KR102455884 B1 KR 102455884B1 KR 1020217005410 A KR1020217005410 A KR 1020217005410A KR 20217005410 A KR20217005410 A KR 20217005410A KR 102455884 B1 KR102455884 B1 KR 102455884B1
Authority
KR
South Korea
Prior art keywords
block
transaction record
node
account reconciliation
transaction
Prior art date
Application number
KR1020217005410A
Other languages
English (en)
Other versions
KR20210034072A (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 KR20210034072A publication Critical patent/KR20210034072A/ko
Application granted granted Critical
Publication of KR102455884B1 publication Critical patent/KR102455884B1/ko

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/3827Use of message hashing
    • 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
    • G06Q20/0655Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
    • 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/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1089Hierarchical topologies
    • 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/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

데이터 처리 방법 및 장치, 컴퓨터 디바이스, 및 저장 매체를 제공하며, 본 방법은: 제1 블록 파일 내의 각각의 블록에 대해, 블록에서 보유될 트랜잭션 기록을 검출하는 단계; 블록의 해시 트리로부터, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드를 선택하는 단계; 선택된 노드에 기초하여, 노드 보유 트리를 구성하는 단계; 트랜잭션 기록을 노드 보유 트리의 대응하는 리프 노드에 저장하는 단계; 제2 블록 파일에서 블록의 블록 헤더와 트랜잭션 기록을 저장하는 노드 보유 트리의 연관성을 업데이트하는 단계- 블록 헤더는 제2 블록 파일 내의 이전 블록의 블록 헤드에 인접함 -; 및 각 블록에 대한 업데이트 처리를 완료한 후에, 제1 블록 파일을 삭제하는 단계를 포함한다. 본 방법은 저장 자원들을 절약할 수 있다.

Description

데이터 처리 방법 및 장치, 컴퓨터 디바이스, 및 저장 매체
본 출원은 2019년 1월 23일자로 출원된, 발명의 명칭이 "DATA PROCESSING METHOD AND APPARATUS, COMPUTER DEVICE, AND STORAGE MEDIUM"인 중국 특허 출원 제201910063326.1호에 대한 우선권을 주장하며, 이 출원은 그 전체가 본 명세서에 참고로 포함된다.
본 개시내용은 컴퓨터 기술 분야에 관한 것으로, 특히, 데이터 처리 방법, 데이터 처리 장치, 컴퓨터 디바이스, 및 저장 매체에 관한 것이다.
과학 및 기술의 급속한 발전에 따라, 다양한 기술이 비약적으로 급증하고 있고, 많은 진보된 기술이 끊임없이 등장하고 있다. 블록체인 기술은 현재 시대에 매우 중요한 기술이며, 매우 많은 시나리오에 적용되었다.
종래의 방법에서, 블록체인 기술은 주로 계정 기록에, 즉, 트랜잭션 기록을 저장하는데 사용된다. 일단 블록체인에 저장되면, 트랜잭션 기록은 삭제되거나 변조될 수 없어서, 저장된 트랜잭션 기록의 진정성을 보장한다. 그러나, 일부 경우에서, 블록체인 내의 모든 트랜잭션 기록이 영원히 보유될 필요는 없고, 일부 트랜잭션 기록만이 보유될 필요가 있다. 예를 들어, 계정 조정이 완료된 트랜잭션 기록들은 보유될 필요가 없고, 계정 조정이 완료되지 않은 트랜잭션 기록들만이 보유될 필요가 있다. 그러나, 블록체인의 데이터가 삭제되고 변조될 수 없는 특성에 기초하여, 종래의 방법에서는, 보유될 필요가 없는 트랜잭션 기록들을 삭제할 수 없다. 결과적으로, 불필요한 데이터는 많은 공간을 차지하므로, 많은 저장 자원이 낭비된다.
이에 기초하여, 본 개시내용은 블록체인에 저장 자원들을 저장하기 위한 데이터 처리 방법, 데이터 처리 장치, 컴퓨터 디바이스, 및 저장 매체를 제공한다.
데이터 처리 방법이 제공되고, 이 방법은 블록체인 노드에 의해 수행되고, 이 방법은:
제1 블록 파일 내의 각각의 블록에 대해, 블록에서 보유될 트랜잭션 기록을 검출하는 단계;
블록의 해시 트리로부터, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하는 단계;
선택된 노드들에 따라 노드 유지 트리를 구성하는 단계;
트랜잭션 기록을 노드 유지 트리의 대응하는 리프 노드에 저장하는 단계;
블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리를 연관된 방식으로 저장함으로써 제2 블록 파일을 업데이트하는 단계- 블록의 블록 헤드는 제2 블록 파일 내의 이전 블록의 블록 헤드에 인접함 -; 및
각 블록에 대한 업데이트 처리가 완료된 후에 제1 블록 파일을 삭제하는 단계를 포함한다.
데이터 처리 장치가 제공되고, 이 장치는 블록체인 노드에 적용되고, 이 장치는:
제1 블록 파일 내의 각각의 블록에 대해, 블록에서 보유될 트랜잭션 기록을 검출하고; 블록의 해시 트리로부터, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하고; 선택된 노드들에 따라 노드 유지 트리를 구성하도록 구성된 노드 유지 모듈;
트랜잭션 기록을 노드 유지 트리의 대응하는 리프 노드에 저장하도록 구성된 트랜잭션 저장 모듈;
블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리를 연관된 방식으로 저장함으로써 제2 블록 파일을 업데이트하도록 구성된 블록 업데이트 모듈- 블록의 블록 헤드는 제2 블록 파일 내의 이전 블록의 블록 헤드에 인접함 -; 및
각 블록에 대한 업데이트 처리가 완료된 후에 제1 블록 파일을 삭제하도록 구성된 삭제 모듈을 포함한다.
메모리와 프로세서를 포함하는 컴퓨터 디바이스가 제공되고, 메모리는 컴퓨터 프로그램을 저장하고, 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 프로세서로 하여금:
제1 블록 파일 내의 각각의 블록에 대해, 블록에서 보유될 트랜잭션 기록을 검출하는 동작;
블록의 해시 트리로부터, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하는 동작;
선택된 노드들에 따라 노드 유지 트리를 구성하는 동작;
트랜잭션 기록을 노드 유지 트리의 대응하는 리프 노드에 저장하는 동작;
블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리를 연관된 방식으로 저장함으로써 제2 블록 파일을 업데이트하는 동작- 블록의 블록 헤드는 제2 블록 파일 내의 이전 블록의 블록 헤드에 인접함 -; 및
각 블록에 대한 업데이트 처리가 완료된 후에 제1 블록 파일을 삭제하는 동작을 수행하게 한다.
컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체가 제공되고, 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 프로세서로 하여금:
제1 블록 파일 내의 각각의 블록에 대해, 블록에서 보유될 트랜잭션 기록을 검출하는 동작;
블록의 해시 트리로부터, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하는 동작;
선택된 노드들에 따라 노드 유지 트리를 구성하는 동작;
트랜잭션 기록을 노드 유지 트리의 대응하는 리프 노드에 저장하는 동작;
블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리를 연관된 방식으로 저장함으로써 제2 블록 파일을 업데이트하는 동작- 블록의 블록 헤드는 제2 블록 파일 내의 이전 블록의 블록 헤드에 인접함 -; 및
각 블록에 대한 업데이트 처리가 완료된 후에 제1 블록 파일을 삭제하는 동작을 수행하게 한다.
전술한 데이터 처리 방법 및 장치, 컴퓨터 디바이스, 및 저장 매체에서, 제1 블록 파일 내의 각각의 블록에 대해, 블록에서 보유될 트랜잭션 기록이 검출되고; 보유될 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드들은 블록의 해시 트리로부터 선택되고; 노드 유지 트리는 선택된 노드들에 따라 구성되고; 트랜잭션 기록은 노드 유지 트리의 대응하는 리프 노드에 저장된다. 제2 블록 파일은 블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리가 연관된 방식으로 저장되도록 업데이트되고, 블록 헤드는 제2 블록 파일 내의 이전 블록의 블록 헤드에 인접한다. 제2 블록 파일에서는, 연속적으로 여전히 인접하는 블록 헤드들이 변경되지 않기 때문에, 해시 값들에 의한 블록체인 상의 헤드-투-테일(head-to-tail connection) 접속의 특성이 유지된다. 이러한 방식으로, 노드 유지 트리의 리프 노드에 저장된 트랜잭션 기록 및 노드 유지 트리 내의 노드에 따라, 트랜잭션 기록이 대응하는 원래의 블록에 속하는 것을 증명할 수 있다. 즉, 데이터 진정성을 체크하기 위한 원래의 해시 트리의 기능이 여전히 유지됨으로써, 제2 블록 파일에 보유된 트랜잭션 기록은 여전히 위조 또는 변조될 수 없다. 제1 블록 파일은 각각의 블록에 대한 업데이트 처리가 완료된 후에 삭제된다. 제2 블록 파일은 원래의 블록에 보유될 필요가 없는 트랜잭션 기록들을 저장하지 않고, 단지 트랜잭션 기록의 진정성을 체크하는데 사용되는 노드 유지 트리 및 보유될 트랜잭션 기록만을 저장함으로써, 제1 블록 파일과 비교하여 저장 자원들을 크게 절약한다.
도 1은 실시예에 따른 데이터 처리 방법의 응용 시나리오의 도면이다.
도 2는 실시예에 따른 데이터 처리 방법의 개략적인 흐름도이다.
도 3은 실시예에 따른 노드 유지 트리를 구성하는 원리의 개략도이다.
도 4는 실시예에 따른 계정 조정 처리의 개략적인 흐름도이다.
도 5는 다른 실시예에 따른 데이터 처리 방법의 개략적인 흐름도이다.
도 6은 실시예에 따른 데이터 처리 장치의 블록도이다.
도 7은 다른 실시예에 따른 데이터 처리 장치의 블록도이다.
도 8은 실시예에 따른 컴퓨터 디바이스의 내부 구조의 개략도이다.
본 개시내용의 목적들, 기술적 해결책들, 및 장점들을 보다 명확하고 보다 이해하기 쉽게 하기 위해, 본 개시내용은 첨부 도면들 및 실시예들을 참조하여 이하에서 상세히 추가로 설명한다. 본 명세서에 설명되는 특정 실시예들은 단지 본 개시내용을 설명하기 위해 사용되며, 본 개시내용을 한정하려는 의도는 아니라는 점이 이해되어야 한다.
도 1은 실시예에 따른 데이터 처리 방법의 응용 시나리오의 도면이다. 도 1을 참조하면, 응용 시나리오는 네트워크를 통해 접속된 제1 계정 조정 디바이스(110), 제2 계정 조정 디바이스(120) 및 블록체인 노드(130)를 포함한다. 블록체인 노드(130)는 블록체인에 블록을 저장하는데 사용된다. 블록체인 노드(130)는 하나 이상의 서버에 의해 구성된다. 다수의 블록체인 노드(130)는 블록체인 플랫폼을 구성한다. 블록체인 플랫폼은 사설 블록체인 플랫폼 또는 개방 블록체인 플랫폼일 수 있다. 블록체인 플랫폼은 클라우드 블록체인 플랫폼일 수 있다. 클라우드 블록체인 플랫폼은 클라우드 기반으로 구성된 플랫폼이며, 따라서 사용자는 개방 클라우드 플랫폼 상에서 필요한 인프라스트럭처 및 블록체인 서비스를 신속하게 구성할 수 있다.
제1 계정 조정 디바이스(110)와 제2 계정 조정 디바이스(120)는 계정 조정을 구현하기 위한 계정 조정 당사자들의 디바이스들이다. 제1 계정 조정 디바이스(110)와 제2 계정 조정 디바이스(120)는 단말기들 또는 서버들일 수 있다. 단말기는 지능형 텔레비전, 데스크톱 컴퓨터, 또는 모바일 단말기일 수 있고, 모바일 단말기는 모바일 폰, 태블릿 컴퓨터, 노트북 컴퓨터, 개인 휴대 정보 단말기, 및 웨어러블 디바이스 중 적어도 하나를 포함할 수 있다. 서버는 독립 서버 또는 다수의 물리적 서버를 포함하는 서버 클러스터에 의해 구현될 수 있다.
제1 계정 조정 디바이스(110)와 제2 계정 조정 디바이스(120)는 계정 조정이 수행될 트랜잭션 기록을 블록체인 노드(130) 내의 블록체인에 저장할 수 있다. 블록체인 상의 블록들은 제1 블록 파일에 저장된다. 블록체인 노드(130)는 제1 블록 파일 내의 각각의 블록에 대해, 블록에서 보유될 트랜잭션 기록을 검출하고; 블록의 해시 트리로부터, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하고; 선택된 노드들에 따라 노드 유지 트리를 구성하고; 트랜잭션 기록을 노드 유지 트리의 대응하는 리프 노드(leaf node)에 저장하고; 블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리를 연관된 방식으로 저장함으로써 제2 블록 파일을 업데이트하고- 블록의 블록 헤드는 제2 블록 파일 내의 이전 블록의 블록 헤드에 인접함 -; 각각의 블록에 대한 업데이트 처리가 완료된 후에 제1 블록 파일을 삭제할 수 있다. 제2 블록 파일은 각각의 업데이트된 블록의 보유될 트랜잭션 기록을 저장하고 보유될 필요가 없는 트랜잭션 기록들을 포함하지 않으며, 그에 의해 저장 공간을 절약한다. 또한, 제2 블록 파일 내의 모든 블록의 블록 헤드들은 제1 블록 파일의 시퀀스에 따라 여전히 서로 인접하며, 즉, 해시 값들에 의한 블록체인 상의 헤드-투-테일(head-to-tail) 접속의 특성이 여전히 유지된다. 따라서, 제2 블록 파일에 보유된 트랜잭션 기록은 여전히 위조 및 변조될 수 없다.
도 1은 본 개시내용의 데이터 처리 방법의 응용 시나리오들 중 하나만을 도시한다. 본 개시내용의 데이터 처리 방법은 도 1에 도시된 바와 같은 계정 조정 시나리오에서뿐만 아니라, 다른 시나리오들에서도 트랜잭션 기록들을 적절히 제거할 수 있다.
도 2는 실시예에 따른 데이터 처리 방법의 개략적인 흐름도이다. 이 실시예에서는, 데이터 처리 방법이 도 1의 블록체인 노드(130)에 적용되는 예를 주로 이용하여 설명한다. 도 2를 참조하면, 본 방법은 구체적으로 다음의 단계들(S202 내지 S210)을 포함한다.
단계 S202에서, 제1 블록 파일의 각각의 블록에 대해, 블록에서 보유될 트랜잭션 기록이 검출된다.
보유될 트랜잭션 기록은 제거될 필요가 없는 트랜잭션 기록이다. 제1 블록 파일은 블록체인 노드 상에 저장된 원래의 블록체인의 파일이다. 제1 블록 파일은 블록체인을 구성하는 다수의 블록을 포함한다. 각각의 블록은 하나 이상의 트랜잭션 기록을 포함할 수 있다. 보유될 하나 이상의 트랜잭션 기록이 존재할 수 있다.
실시예에서, 트랜잭션 기록은 계정 조정에 사용되는 트랜잭션 기록일 수 있다. 다른 실시예들에서, 트랜잭션 기록은 대안적으로 백업들을 저장하는데 사용되는 트랜잭션 기록일 수 있다. 트랜잭션 기록은 대안적으로 다른 사용 시나리오들에서 사용되는 트랜잭션 기록일 수 있다는 것을 이해할 수 있다. 이는 본 명세서에서 한정되지 않는다.
실시예에서, 제1 블록 파일 내의 각각의 블록에 대해, 블록체인 노드는 직접 특정된 보유될 트랜잭션 기록을 블록에서 검출할 수 있다.
실시예에서, 블록체인 노드는 대안적으로 보유될 트랜잭션 기록을 결정하기 위해 블록들의 트랜잭션 기록들을 분석할 수 있다. 선택적으로, 블록체인 노드는 블록 내의 트랜잭션 기록들의 상태들을 획득하여, 유효 상태의 트랜잭션 기록을 보유될 트랜잭션 기록으로서 결정할 수 있다. 블록체인 노드는 대안적으로, 보유될 트랜잭션 기록으로서, 성공적으로 처리되지 않은 트랜잭션 기록들의 세트에 속하는 트랜잭션 기록을 블록으로부터 선택할 수 있다.
블록체인 노드는 제1 블록 파일의 제1 블록으로부터 단계들 S202 내지 S210을 블록 단위로 수행할 수 있다는 것을 이해할 수 있다. 블록체인 노드는 대안적으로 제1 블록 파일 내의 블록들에 대해 동시에 단계들 S202 내지 S210을 수행할 수 있다. 이는 본 명세서에서 한정되지 않는다.
블록체인 노드는 블록으로부터 보유될 트랜잭션 기록을 검출할 수 있거나 블록에서 보유될 트랜잭션 기록을 검출할 수 없다는 점에 유의한다. 따라서, 보유될 트랜잭션 기록이 블록으로부터 검출되는 것에 응답하여, 단계들 S204 내지 S210이 수행되고, 보유될 트랜잭션 기록이 블록으로부터 검출되지 않는 것에 응답하여, 이전 블록의 블록 헤드에 인접하도록 블록의 블록 헤드만을 저장함으로써 제2 블록 파일이 업데이트된다. 예를 들어, 보유될 트랜잭션 기록이 없는 블록의 경우, 블록체인 노드는 제2 블록 파일 내의 블록의 이전 블록의 블록 헤드를 결정하고, 이전 블록의 블록 헤드 이후의 블록의 블록 헤드를 제2 블록 파일에 업데이트 및 저장할 수 있다. 즉, 보유될 트랜잭션 기록이 없는 블록의 경우, 제2 블록 파일은 블록 헤드만을 저장할 수 있으며 어떠한 트랜잭션 기록도 저장하지 않는다.
단계 S204에서, 블록의 해시 트리로부터, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드들이 선택된다.
블록의 해시 트리는 블록의 트랜잭션 기록들에 따라 생성된 해시 트리이다. 해시 트리의 리프 노드들은 블록 내의 트랜잭션 기록들의 해시 값들과 일대일 대응관계에 있다. 해시 트리의 루트 노드의 해시 값은 리프 노드들의 해시 값들에 따라 계산된다. 해시 트리의 루트 노드의 해시 값은 블록에 고유하게 대응한다.
보유될 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드는 루트 노드의 해시 값이 보유될 트랜잭션 기록에 대응하는 리프 노드들의 해시 값들로부터 계산될 때 필요한 해시 값에 대응하는 노드를 지칭한다. 루트 노드의 해시 값이 보유될 트랜잭션 기록에 대응하는 리프 노드들의 해시 값들로부터 계산될 필요가 있기 때문에, 선택된 노드들이 보유될 트랜잭션 기록에 대응하는 리프 노드 및 루트 노드를 포함한다는 것을 이해할 수 있다.
실시예에서, 해시 트리는 이중-계층 해시 트리일 수 있다. 이중-계층 해시 트리는 루트 노드의 계층 및 리프 노드의 계층을 포함하는 2-계층 해시 트리를 지칭한다. 이중-계층 해시 트리의 루트 노드의 해시 값은 모든 리프 노드의 일련의 접속된 해시 값들에 대해 해시 연산을 수행함으로써 획득될 수 있다. 해시 트리가 이중-계층 해시 트리일 때, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 선택된 노드들은 해시 트리의 모든 노드라는 것을 이해할 수 있다.
다른 실시예에서, 해시 트리는 대안적으로 다계층 해시 트리일 수 있다. 다계층 해시 트리는 2개보다 많은 계층을 갖는 해시 트리를 지칭한다. 이 경우, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드는 단지 다계층 해시 트리의 일부 노드뿐이다. 실시예에서, 다계층 해시 트리는 머클(Merkle) 트리일 수 있다. 머클 트리는 다계층 트리 형태의 데이터 구조이다. 머클 트리의 리프 노드들의 라벨들은 트랜잭션 기록들의 해시 값들이다. 리프 노드의 라벨은 리프 노드의 자식 노드(child node)들의 일련의 접속된 라벨들에 대해 해시 연산을 수행함으로써 획득되는 해시 값이다. 머클 트리의 루트 노드의 라벨은 루트 노드에 가장 가까운 계층에서 노드들의 일련의 접속된 라벨들에 대해 해시 연산을 수행함으로써 획득된 해시 값이라는 것을 이해할 수 있다.
다수의 보유될 트랜잭션 기록이 존재할 때, 각각의 보유될 트랜잭션 기록에 대해, 보유될 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드들은 블록의 해시 트리로부터 선택된다. 다수의 보유될 트랜잭션 기록에 대해 선택된 노드들이 반복될 수 있다는 것이 이해될 수 있다.
단계 S206에서, 선택된 노드들에 따라 노드 유지 트리가 구성된다.
선택된 노드들은 원래 해시 트리에서 보유될 노드들이다. 노드 유지 트리는 선택된 보유될 노드들에 따라 재구성된 해시 트리이다.
보유될 트랜잭션 기록이 하나만 있는 경우에, 노드 유지 트리는 트랜잭션 기록에 대해 선택된 노드들에 따라서만 구성될 수 있다. 다수의 보유될 트랜잭션 기록이 존재할 때, 다수의 보유될 트랜잭션 기록에 대해 선택된 노드들이 수집 및 중복제거될 수 있고, 그 후 중복제거된 노드들에 따라 노드 유지 트리가 재구성된다. 구성된 노드 유지 트리는 원래의 해시 트리에서 선택된 노드들의 계층적 관계를 유지한다.
이해하기 쉽도록, 노드 유지 트리는 도 3을 참조한 예를 사용하여 설명된다. 도 3을 참조하면, (n-1)번째 블록의 블록 헤드는 이전 블록의 해시 값과 (n-1)번째 블록의 루트 해시를 포함한다. 도 3의 루트 해시는 머클 트리의 루트 노드이다. n번째 블록의 블록 헤드는 (n-1)번째 블록의 해시 값과 n번째 블록의 루트 해시를 포함하고, (n+1)번째 블록의 블록 헤드는 n번째 블록의 해시 값과 (n+1)번째 블록의 루트 해시를 포함한다. 일 예로서 n번째 블록을 사용하고, n번째 블록이 4개의 트랜잭션 기록들 Tx(1) 내지 Tx(4)를 포함한다고 가정하면, Tx(1) 내지 Tx(4)에 대해 개별적으로 해시 연산을 수행하여 대응하는 해시 값들 H(1) 내지 H(4)를 획득한다. 따라서, 리프 노드들 H(1) 내지 H(4), H(1+2), 및 H(3+4)와, 루트 노드를 포함하는 해시 트리는 4개의 트랜잭션 기록을 사용하여 생성될 수 있다. H(1+2)는 H(1)와 H(2)의 부모 노드(father node)이고, H(1+2)에 대응하는 해시 값은 일련의 접속된 H(1)와 H(2)에 대해 해시 연산을 수행함으로써 획득된다. H(3+4)는 H(3)와 H(4)의 부모 노드이고, H(3+4)에 대응하는 해시 값은 일련의 접속된 H(3)와 H(4)에 대해 해시 연산을 수행함으로써 획득된다. 루트 노드는 H(1+2) 및 H(3+4)의 부모 노드이고, 루트 노드에 대응하는 해시 값은 일련의 접속된 H(1+2)와 H(3+4)에 대해 해시 연산을 수행함으로써 획득된다.
n번째 블록의 경우, 트랜잭션 기록 Tx(3)가 보유될 트랜잭션 기록으로서 검출되고, 다른 트랜잭션 기록들이 보유될 필요가 없는 트랜잭션 기록들인 것으로 가정하면, Tx(3)가 블록에 속하는 것을 증명하는데 사용되는 노드들이 선택될 수 있다. 도 3에 도시된 바와 같이, 원으로 표시된 노드들은 루트 노드 이외에 선택될 노드들이다. 즉, 루트 노드 이외에, 노드들 H(1+2), H(3+4), H(3), 및 H(4)는 노드 유지 트리를 구성하기 위해 선택될 필요가 있다. 다른 예에서, 트랜잭션 기록들 Tx(2) 및 Tx(3)가 보유될 트랜잭션 기록들인 것으로 검출되었다고 가정하면, Tx(2) 및 Tx(3)가 블록에 속하는 것을 증명하는데 사용되는 노드들은 개별적으로 선택될 수 있다. Tx(2)에 대해 선택된 노드들은 또한 H(1+2)와 H(3+4)를 포함한다는 것을 이해할 수 있다. 따라서, Tx(2)와 Tx(3)에 대해 선택된 노드들은 수집 및 중복제거될 필요가 있다. 중복제거 후에, 전체 해시 트리 내의 모든 노드를 선택하여 노드 유지 트리를 구성한다. 그 후, Tx(2)와 Tx(3)는 각각의 리프 노드들에만 저장된다.
단계 S208에서, 보유될 트랜잭션 기록은 노드 유지 트리의 대응하는 리프 노드에 저장된다.
선택적으로, 블록체인 노드는 보유될 트랜잭션 기록을 노드 유지 트리에서의 보유될 트랜잭션에 대응하는 리프 노드에 대응하는 데이터 블록에 저장할 수 있다.
여전히 도 3을 일례로서 사용하여, 노드 유지 트리에서, 블록체인 노드는 트랜잭션 기록 Tx(3)를 트랜잭션 기록 Tx(3)에 대응하는 리프 노드 H(3)에 대응하는 데이터 블록에 저장할 수 있다.
단계 S210에서, 제2 블록 파일은 블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리를 연관된 방식으로 저장함으로써 업데이트되고, 블록 헤드는 제2 블록 파일 내의 이전 블록의 블록 헤드에 인접한다.
제2 블록 파일은 제1 블록 파일과 상이하고, 블록체인 노드 상에 새롭게 생성된 블록 파일이라는 것을 이해할 수 있다.
선택적으로, 블록체인 노드는 블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리를 직렬화하고, 블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리를 저장가능한 형태로 변환할 수 있다. 블록체인 노드는 제2 블록 파일에서 블록의 이전 블록의 블록 헤드를 결정할 수 있다. 제2 블록 파일은 이전 블록의 블록 헤드가 직렬화된 블록의 블록 헤드에 인접하고, 보유될 트랜잭션 기록을 저장하는 직렬화된 노드 유지 트리와 블록의 블록 헤드가 연관된 방식으로 제2 블록 파일에 저장되도록 업데이트된다.
실시예에서, 본 방법은: 제2 블록 파일의 제2 저장 위치를 획득하는 단계; 및 블록의 위치 인덱스를, 제1 블록 파일의 제1 저장 위치를 가리키는 것으로부터 제2 저장 위치를 가리키는 것으로 수정하는 단계를 추가로 포함한다.
블록의 위치 인덱스는 블록의 저장 위치를 검색하는데 사용되는 인덱스를 지칭한다.
블록의 위치 인덱스는 초기에 제1 블록 파일의 제1 저장 위치를 가리키고, 블록체인 노드가 단계들 S204 내지 210에 따라 블록을 제2 블록 파일로 업데이트한 후에, 블록의 위치 인덱스는 제2 블록 파일의 제2 저장 위치를 가리키도록 수정될 수 있다는 것을 이해할 수 있다. 이러한 방식으로, 후속하여 블록은 제2 저장 위치를 가리키는 위치 인덱스에 따라 제2 블록 파일로부터 발견될 수 있다.
블록체인 노드들 사이에 합의 메커니즘이 있기 때문에, 합의에 도달한 후에, 모든 블록체인 노드는 블록의 블록 헤드와 제2 블록 파일에 트랜잭션 기록을 저장하는 노드 유지 트리를 연관된 방식으로 업데이트한다.
단계 S212에서, 제1 블록 파일은 각각의 블록에 대해 업데이트 처리가 완료된 후에 삭제된다.
제1 블록 파일에서, 보유될 트랜잭션 기록을 포함하는 블록에 대해, 제2 블록 파일은 이전 블록의 블록 헤드가 블록의 블록 헤드에 인접하고, 단계들 S204 내지 S210을 수행함으로써 보유될 트랜잭션 기록을 저장하는 노드 유지 트리와 함께 연관된 방식으로 저장되도록 업데이트된다는 것을 이해할 수 있다. 보유될 트랜잭션 기록이 없는 블록의 경우, 제2 블록 파일은 블록의 블록 헤드가 이전 블록의 블록 헤드 이후의 위치에 저장되도록 업데이트된다. 제2 블록 파일에 저장된 각 블록의 내용은 블록이 업데이트된 후에 획득된 내용이다. 따라서, 제1 블록 파일 내의 각각의 블록이 완전히 업데이트된 후에, 모든 업데이트된 블록을 포함하는 제2 블록 파일이 획득된 다음, 제1 블록 파일이 삭제될 수 있다.
블록체인 노드들 사이에 합의 메커니즘이 있기 때문에, 합의에 도달한 후에, 모든 블록체인 노드는 제1 블록 파일을 삭제한다.
전술한 실시예에서, 블록 헤드들이 변경되지 않고 블록 헤드들이 연속적으로 여전히 인접하기 때문에, 해시 값들에 의한 블록체인 상의 헤드-투-테일 접속의 특성이 유지된다. 이러한 방식으로, 노드 유지 트리의 리프 노드에 저장된 트랜잭션 기록 및 노드 유지 트리 내의 노드에 따라, 트랜잭션 기록이 대응하는 원래의 블록에 속하는 것을 증명할 수 있다. 즉, 데이터 진정성을 체크하기 위한 원래의 해시 트리의 기능이 여전히 유지됨으로써, 제2 블록 파일에 보유된 트랜잭션 기록은 여전히 위조 또는 변조될 수 없다. 제1 블록 파일은 각각의 블록에 대해 업데이트 처리가 완료된 후에 삭제된다. 제2 블록 파일은 원래의 블록에 보유될 필요가 없는 트랜잭션 기록들을 저장하지 않고, 단지 트랜잭션 기록의 진정성을 체크하는데 사용되는 노드 유지 트리 및 보유될 트랜잭션 기록만을 저장함으로써, 제1 블록 파일과 비교하여 저장 자원들을 크게 절약한다.
실시예에서, 트랜잭션 기록은 계정 조정에 사용되는 트랜잭션 기록이다. 단계 S202는: 제1 블록 파일 내의 각각의 블록에 대해, 블록 내의 트랜잭션 기록을 성공하지 못한 계정 조정 세트 내의 트랜잭션 기록과 비교하는 단계; 및 블록 내의 트랜잭션 기록이 성공하지 못한 계정 조정 세트에 포함되는 것에 응답하여, 트랜잭션 기록을 보유될 트랜잭션 기록인 것으로 결정하는 단계를 포함한다.
성공하지 못한 계정 조정 세트는 계정 조정에 성공하지 못한 트랜잭션 기록들에 의해 형성된 세트이다.
실시예에서, 성공하지 못한 계정 조정 세트는 계정 조정이 아직 수행되지 않은 트랜잭션 기록들과 계정 조정에 실패한 트랜잭션 기록들 모두를 포함하는 세트일 수 있다.
실시예에서, 성공하지 못한 계정 조정 세트는 완료되지 않은 계정 조정 세트 또는 계정 조정 오류 세트를 포함할 수 있다.
실시예에서, 성공하지 못한 계정 조정 세트는 2개의 서브세트: 완료되지 않은 계정 조정 세트와 계정 조정 오류 세트를 포함할 수 있다.
완료되지 않은 계정 조정 세트는 계정 조정 처리가 수행되지 않은 트랜잭션 기록들에 의해 형성된 세트이다. 계정 조정 오류 세트는 계정 조정시 불일치로서 결정된 트랜잭션 기록들에 의해 형성되는 세트이다(즉, 계정 조정시 오류가 발생한다).
선택적으로, 블록체인 노드는 블록 내의 각각의 트랜잭션 기록을 성공하지 못한 계정 조정 세트 내의 트랜잭션 기록들과 비교하여, 성공하지 못한 계정 조정 세트가 블록 내의 트랜잭션 기록을 포함하는지를 결정할 수 있다. 블록 내의 트랜잭션 기록이 성공하지 못한 계정 조정 세트 내의 트랜잭션 기록과 일치한다는 것에 응답하여, 트랜잭션 기록이 성공하지 못한 계정 조정 세트에 포함된다는 것을 나타내고, 블록 내의 그리고 성공하지 못한 계정 조정 세트에 포함된 트랜잭션 기록은 보유될 트랜잭션 기록으로서 결정될 수 있다. 블록 내의 트랜잭션 기록이 성공하지 못한 계정 조정 세트 내의 임의의 트랜잭션 기록들과 일치하지 않는 것에 응답하여, 트랜잭션 기록이 성공하지 못한 계정 조정 세트 내에 있지 않다는 것을 나타내고, 트랜잭션 기록은 보유될 필요가 없는 트랜잭션 기록으로서 결정될 수 있다.
전술한 실시예에서, 성공하지 못한 계정 조정 세트는 블록체인 상에 구성되고, 블록 내의 트랜잭션 기록은 성공하지 못한 계정 조정 세트 내의 트랜잭션 기록들과 비교되어, 보유될 트랜잭션 기록이 보다 신속하게 결정될 수 있다.
실시예에서, 성공하지 못한 계정 조정 세트는 완료되지 않은 계정 조정 세트를 포함한다. 본 방법은 계정 조정 단계를 추가로 포함하고, 계정 조정 단계는 다음의 단계들 S402 내지 S408을 포함할 수 있다.
단계 S402에서, 제1 계정 조정 디바이스에 의해 송신된 계정 조정 호출 요청을 수신하는 것에 응답하여, 계정 조정이 수행될 것이고 계정 조정 호출 요청에서 운반되는 제1 트랜잭션 기록은 스마트 계약을 통해 제1 블록 파일 내의 블록에 저장된다.
완료되지 않은 계정 조정 세트는 계정 조정 처리가 수행되지 않은 트랜잭션 기록들에 의해 형성된 세트이다. 제1 계정 조정 디바이스는 계정 조정 처리를 시작하는 당사자에 의해 사용되는 디바이스이다. 계정 조정 호출 요청은 계정 조정 처리를 구현하기 위해, 블록체인 상의 스마트 계약을 호출하라고 요청하는데 사용된다.
스마트 계약은 블록체인 노드들에 의해 공동으로 공식화되고 권리 및 의무를 명확하게 하는데 사용되는 프로토콜을 프로그래밍함으로써 획득되는 블록체인 상에 구성된 한 조각의 코드이다. 코드는 계약의 자동 실행을 트리거하는 조건들을 포함한다. 이벤트에 대한 트리거 조건이 충족될 때, 블록체인 노드들이 이벤트에 대한 합의에 도달한 후에, 스마트 계약은 이벤트를 자동으로 실행할 수 있다는 것을 이해할 수 있다.
블록체인 노드들은 계정 조정이 수행되지 않은 트랜잭션 기록들을 저장하는데 사용되는 완료되지 않은 계정 조정 세트를 미리 생성한다는 것을 이해할 수 있다. 초기에 생성된 완료되지 않은 계정 조정 세트는 어떠한 트랜잭션 기록도 포함하지 않는 널 세트(null set)일 수 있다.
선택적으로, 계정 조정 당사자 양쪽 모두가 계정 조정을 수행할 때, 계정 조정 호출 요청을 각각의 계정 조정 디바이스들을 통해 블록체인 노드들에 송신하여, 블록체인 노드 상에 설정된 스마트 계약을 호출하도록 요청할 수 있다. 블록체인 노드가 제1 계정 조정 디바이스에 의해 송신된 계정 조정 호출 요청을 수신하는 것에 응답하여, 계정 조정 호출 요청은 스마트 계약을 통해 파싱되어, 계정 조정이 수행될 제1 트랜잭션 기록을 획득할 수 있다. 블록체인 노드는 스마트 계약을 통해 제1 블록 파일 내의 블록에 제1 트랜잭션 기록을 저장할 수 있다.
계정 조정 당사자들 중 임의의 당사자에 의해 사용되는 계정 조정 디바이스에 의해 송신된 계정 조정 호출 요청을 수신할 때, 블록체인 노드는 계정 조정 호출 요청에서 운반되는 트랜잭션 기록을 스마트 계약을 통해 제1 블록 파일 내의 블록에 저장할 수 있다는 것을 이해할 수 있다.
단계 S404에서, 제1 트랜잭션 기록에 대응하는 계정 조정 연관 식별자가 스마트 계약을 통해 획득된다.
계정 조정 연관 식별자는 동일한 트랜잭션을 표현하는데 사용되고 계정 조정 당사자들에 의해 사용되는 계정 조정 디바이스들에 의해 각각 송신되는 트랜잭션 기록들을 연관시키는데 사용된다.
실시예에서, 계정 조정 연관 식별자는 트랜잭션 일련 번호를 포함할 수 있다. 따라서, 동일한 트랜잭션 일련 번호에 대응하고 2명의 계정 조정 당사자에 의해 송신되는 트랜잭션 기록들에 대해 계정 조정 처리가 수행될 필요가 있다. 다른 실시예들에서, 계정 조정 연관 식별자는 대안적으로 동일한 트랜잭션을 고유하게 표현할 수 있는 다른 식별자들일 수 있다는 것을 이해할 수 있다.
블록체인 노드는 스마트 계약을 통해 제1 트랜잭션 기록으로부터 계정 조정 연관 식별자를 추출할 수 있다는 것을 이해할 수 있다. 블록체인 노드는 대안적으로 스마트 계약을 통해 제1 트랜잭션 기록에 대응하는 계정 조정 연관 식별자를 계정 조정 호출 요청으로부터 추출할 수 있다.
단계 S406에서, 블록체인 상에 생성된 완료되지 않은 계정 조정 세트가 제2 계정 조정 디바이스의 제2 트랜잭션 기록에 대해 검색되고, 제2 트랜잭션 기록은 계정 조정 연관 식별자에 대응한다.
제2 계정 조정 디바이스는 계정 조정 처리를 시작하는 다른 당사자에 의해 사용되는 디바이스이다.
구체적으로, 블록체인 노드는 계정 조정 연관 식별자에 대응하는 제2 트랜잭션 기록에 대해 스마트 계약을 통해 완료되지 않은 계정 조정 세트의 트랜잭션 기록들을 검색할 수 있다. 제2 트랜잭션 기록은 계정 조정 처리를 시작하는 다른 당사자에 의해 사용되는 제2 계정 조정 디바이스에 의해 송신된 계정 조정 호출 요청에서 운반되는 트랜잭션 기록이다.
단계 S408에서, 제1 트랜잭션 기록은 제2 트랜잭션 기록을 발견하지 못한 것에 응답하여 완료되지 않은 계정 조정 세트에 추가된다.
계정 조정을 수행하기 위해 스마트 계약을 호출할 때 2명의 계정 조정 당사자가 완전히 동기하지는 않지만, 속도가 명확히 다르고, 계정 조정을 위해 선택된 트랜잭션 기록들의 시퀀스들도 상이할 수 있다는 것을 이해할 수 있다. 한명의 계정 조정 당사자가 계정 조정이 수행될 트랜잭션 기록을 스마트 계약에 송신할 때, 다른 당사자는 동일한 계정 조정 연관 식별자에 대응하는 트랜잭션 기록을 스마트 계약에 송신하지 않았을 수 있다. 따라서, 계정 조정 연관 식별자에 대응하는 제2 계정 조정 디바이스의 제2 트랜잭션 기록이 발견되지 않을 수 있다. 유사하게, 다른 당사자가 먼저 계정 조정이 수행될 트랜잭션 기록을 스마트 계약에 송신하는 경우, 먼저 송신된 트랜잭션 기록에 대해 동일한 계정 조정 연관 식별자에 대응하는 어떠한 트랜잭션 기록도 발견되지 않을 수 있다. 그 결과, 계정 조정이 수행될 수 없다. 따라서, 먼저 송신된 트랜잭션 기록이 완료되지 않은 계정 조정 세트에 추가된다.
따라서, 완료되지 않은 계정 조정 세트로부터, 블록체인 노드는 계정 조정 연관 식별자에 대응하는 제2 계정 조정 디바이스의 제2 트랜잭션 기록을 발견하거나 발견하지 못할 수 있다.
블록체인 노드는 제2 트랜잭션 기록을 발견하지 못한 것에 응답하여 완료되지 않은 계정 조정 세트에 제1 트랜잭션 기록을 추가할 수 있다.
실시예에서, 계정 조정 연관 식별자에 대응하는 제2 계정 조정 디바이스의 제2 트랜잭션 기록을 발견한 것에 응답하여, 블록체인 노드는 완료되지 않은 계정 조정 세트로부터 제2 트랜잭션 기록을 삭제하고, 제1 트랜잭션 기록을 제2 트랜잭션 기록과 비교할 수 있다. 불일치를 표시하는 비교 결과에 응답하여, 제1 트랜잭션 기록과 제2 트랜잭션 기록 및 계정 조정이 성공적인 트랜잭션 기록에 대해 상이하게 처리할 수 있다. 구별 처리는 계정 조정이 성공적인 트랜잭션 기록들로부터 제1 트랜잭션 기록 및 제2 트랜잭션 기록을 구분하는 처리를 지칭한다.
실시예에서, 블록체인 노드는 불일치로서 비교된 제1 트랜잭션 기록 및 제2 트랜잭션 기록에 계정 조정 실패 마크를 추가할 수 있다. 블록체인 노드는 대안적으로 불일치로서 비교된 제1 트랜잭션 기록 및 제2 트랜잭션 기록을, 다른 방식들로 계정 조정이 성공적인 트랜잭션 기록들과 구별할 수 있다는 것을 이해할 수 있다.
전술한 실시예에서, 완료되지 않은 계정 조정 세트는 블록체인 상에 구성되고, 계정 조정 호출 요청이 수신될 때, 완료되지 않은 계정 조정 세트가 실시간 계정 조정 처리를 구현하는데 사용되어, 계정 조정은 보다 적절하고 편리하게 만든다.
도 4에 도시된 바와 같이, 실시예에서, 성공하지 못한 계정 조정 세트는 계정 조정 오류 세트를 추가로 포함한다. 단계들 S402 내지 408 이외에, 계정 조정 처리는 다음의 단계들 S410 내지 S414를 추가로 포함한다.
단계 S410에서, 제2 트랜잭션 기록을 발견한 것에 응답하여 완료되지 않은 계정 조정 세트로부터 제2 트랜잭션 기록을 제거한다.
단계 S412에서, 제1 트랜잭션 기록이 제2 트랜잭션 기록과 비교된다.
선택적으로, 완료되지 않은 계정 조정 세트 내의 제2 트랜잭션 기록을 발견한 것에 응답하여, 블록체인 노드는 완료되지 않은 계정 조정 세트로부터 제2 트랜잭션 기록을 삭제하고, 제2 트랜잭션 기록을 제1 트랜잭션 기록과 비교하여, 제2 트랜잭션 기록과 제1 트랜잭션 기록이 일치하는지를 판정한다.
단계 S414에서, 제1 트랜잭션 기록과 제2 트랜잭션 기록은 불일치를 표시하는 비교 결과에 응답하여 계정 조정 오류 세트에 추가된다.
계정 조정 오류 세트는 계정 조정시 실패한 트랜잭션 기록들에 의해 형성되는 세트이다.
제2 트랜잭션 기록과 제1 트랜잭션 기록을 비교한 결과는 일치 결과와 불일치 결과를 포함한다는 것을 이해할 수 있다. 일치 결과에 응답하여, 제1 트랜잭션 기록과 제2 트랜잭션 기록은 계정 조정이 성공적인 트랜잭션 기록들인 것으로 판정된다. 제1 트랜잭션 기록과 제2 트랜잭션 기록이 계정 조정이 실패한 트랜잭션 기록들인 것을 표시하는 불일치 결과에 응답하여, 제1 트랜잭션 기록과 제2 트랜잭션 기록은 계정 조정 오류 세트에 추가될 수 있다.
실시예에서, 블록체인 노드는 계정 조정 오류 세트의 트랜잭션 기록들에 대한 수정 처리를 수신하고, 수정된 트랜잭션 기록들에 대해 계정 조정 비교 처리를 다시 수행할 수 있다.
전술한 실시예에서, 계정 조정에 성공하지 못한 2가지 타입의 세트, 즉 완료되지 않은 계정 조정 세트와 계정 조정 오류 세트가 블록체인 상에 설정된다. 2가지 타입의 세트를 통해 실시간 계정 조정을 수행하는 것이 매우 편리하고, 계정 조정 결과는 보다 정확하게 관리될 수 있다.
실시예에서, 단계 S204는: 블록의 해시 트리에서, 트랜잭션 기록에 대응하는 리프 노드를 결정하는 단계; 해시 트리로부터 리프 노드의 제1 조상 노드 및 형제 리프 노드를 선택하는 단계; 리프 노드의 각각의 비-형제 리프 노드에 대해, 비-형제 리프 노드의 모든 조상 노드 중에서 제2 조상 노드를 선택하는 단계; 및 리프 노드, 제1 조상 노드, 형제 리프 노드, 및 제2 조상 노드에 따라 노드 유지 트리를 구성하는 단계를 포함한다.
트랜잭션 기록에 대응하는 리프 노드는 보유될 트랜잭션 기록의 해시 값으로서 라벨을 갖는 리프 노드를 지칭한다. 조상 노드는 리프 노드와 조상 관계에 있는 노드를 지칭한다. 부모 노드, 조부모 노드, 및 증조부 노드는 모두 리프 노드의 조상 노드들에 속한다는 것을 이해할 수 있다. 형제 리프 노드는 리프 노드와 동일한 부모 노드에 대응하는 리프 노드를 지칭한다. 비-형제 리프 노드는 리프 노드와 동일한 부모 노드를 갖지 않는 리프 노드를 지칭한다.
선택적으로, 블록체인 노드는 해시 트리로부터, 보유될 트랜잭션 기록에 대응하는 리프 노드의 제1 조상 노드와 리프 노드의 형제 리프 노드를 선택할 수 있다. 제1 조상 노드는 리프 노드의 모든 조상 노드를 포함한다는 것을 이해할 수 있다. 루트 노드는 명확히 보유될 트랜잭션 기록에 대응하는 리프 노드의 조상 노드이기 때문에, 제1 조상 노드는 루트 노드를 포함한다. 블록체인 노드는 해시 트리로부터 트랜잭션 기록에 대응하는 리프 노드의 비-형제 리프 노드를 결정하고, 비-형제 리프 노드의 모든 조상 노드 중에서 루트 노드에 가장 가까운 조상 노드를 결정하여 제2 조상 노드를 획득할 수 있다. 하나 이상의 비-형제 리프 노드가 존재할 수 있다는 것을 이해할 수 있다. 다수의 비-형제 리프 노드의 루트 노드에 가장 가까운 조상 노드들이 상이할 때, 루트 노드에 가장 가까운 각각의 조상 노드가 선택된다. 다수의 비-형제 리프 노드들의 루트 노드에 가장 가까운 조상 노드들이 동일할 때, 루트 노드에 가장 가까운 조상 노드만이 선택될 수 있다.
블록체인 노드는 리프 노드, 제1 조상 노드, 형제 리프 노드, 및 제2 조상 노드에 따라 노드 유지 트리를 구성할 수 있다.
도 3을 참조하여 설명 및 기술된다. 예를 들어, 보유될 트랜잭션 기록이 Tx(3)이면, 보유될 트랜잭션 기록에 대응하는 리프 노드는 H(3)이고, H(3)의 형제 리프 노드는 H(4)이고, H(3)의 제1 조상 노드들은 H(3+4) 및 루트 노드이다. H(1)과 H(2)는 H(3)의 비-형제 리프 노드들이고, 비-형제 리프 노드들 H(1)과 H(2)의 루트 노드에 가장 가까운 제2 조상 노드들은 둘다 H(1+2)이다. 따라서, 블록체인 노드는 Tx(3)에 대응하는 리프 노드들 H(3), H(4), H(3+4), 및 H(1+2), 및 루트 노드에 따라 노드 유지 트리를 구성할 수 있다.
전술한 실시예에서, 노드 유지 트리는 원래의 해시 트리 상의 보유될 트랜잭션 기록에 대응하는 리프 노드, 제1 조상 노드, 형제 리프 노드, 및 제2 조상 노드에 따라 구성되어, 데이터 진정성을 체크하기 위한 원래의 해시 트리의 기능을 유지하는 동안, 불필요한 노드들 및 트랜잭션 기록 데이터가 제거될 수 있고, 따라서 저장 자원들이 어느 정도 절약되게 된다.
도 5에 도시된 바와 같이, 실시예에서, 데이터 처리 방법이 제공되고, 이 데이터 처리 방법은 구체적으로 다음의 단계들 S502 내지 S522를 포함한다.
단계 S502에서, 완료되지 않은 계정 조정 세트와 계정 조정 오류 세트가 블록체인 상에 생성된다.
초기에 생성된 완료되지 않은 계정 조정 세트와 계정 조정 오류 세트는 널 세트들일 수 있다. 즉, 처음에는 어떠한 트랜잭션 기록도 포함되지 않지만, 후속하여, 트랜잭션 기록들은 실제 계정 조정 상황들에 따라 추가된다.
완료되지 않은 계정 조정 세트와 계정 조정 오류 세트는 블록체인의 일부 상태 데이터라는 것을 이해할 수 있다.
단계 S504에서, 스마트 계약에 관하여 제1 계정 조정 디바이스에 의해 송신된 계정 조정 호출 요청을 수신하는 것에 응답하여, 계정 조정이 수행될 것이고 계정 조정 호출 요청에서 운반되는 제1 트랜잭션 기록이 스마트 계약을 통해 제1 블록 파일 내의 블록에 저장된다.
단계 S506에서, 제1 트랜잭션 기록에 대응하는 계정 조정 연관 식별자를 스마트 계약을 통해 획득하고; 블록체인 상에 생성된 완료되지 않은 계정 조정 세트는 계정 조정 연관 식별자에 대응하는 제2 계정 조정 디바이스의 제2 트랜잭션 기록에 대해 검색된다. 제2 트랜잭션 기록을 발견하지 못한 것에 응답하여, 단계 S508이 수행되고, 제2 트랜잭션 기록을 발견한 것에 응답하여, 단계 S510이 수행된다.
단계 S508에서, 제1 트랜잭션 기록은 완료되지 않은 계정 조정 세트에 추가된다.
계정 조정 연관 식별자는 2명의 계정 조정 상대방에 의해 사용되는 계정 조정 디바이스들에 의해 송신되고 동일한 트랜잭션을 나타내는 트랜잭션 기록들을 연관된 방식으로 마킹하는데 사용된다.
블록체인은 트랜잭션 기록들을 저장하기 위해 제1 블록으로부터 순차적으로 블록들을 생성함으로써 생성된다는 것을 이해할 수 있다. 따라서, S506에서 완료되지 않은 계정 조정 세트에 포함된 트랜잭션 기록들은 제1 트랜잭션 기록이 블록에 저장될 때까지 계정 조정이 수행되지 않은 트랜잭션 기록들이다. 예를 들어, 제1 블록 파일 내의 처음 4개의 블록이 가득 차 있다면, 제1 트랜잭션 기록 R1이 제5 블록에 저장된다. 따라서, 완료되지 않은 계정 조정 세트는 계정 조정이 수행되지 않은 트랜잭션 기록들을 포함하고, 제1 내지 제5 블록에 저장된다. 블록체인 노드는 제1 트랜잭션 기록 R1과 동일한 계정 조정 연관 식별자에 대응하는 제2 트랜잭션 기록 R2에 대해 현재 완료되지 않은 계정 조정 세트를 검색할 수 있다. 제2 트랜잭션 기록 R2가 존재하지 않는 경우, 제1 트랜잭션 기록 R1은 완료되지 않은 계정 조정 세트에 추가될 수 있다.
단계 S510에서, 완료되지 않은 계정 조정 세트로부터 제2 트랜잭션 기록이 제거되고; 제1 트랜잭션 기록은 제2 트랜잭션 기록과 비교되고; 제1 트랜잭션 기록과 제2 트랜잭션 기록은 불일치를 표시하는 비교 결과에 응답하여 계정 조정 오류 세트에 추가된다.
유사하게, 블록체인은 트랜잭션 기록들을 저장하기 위해 제1 블록으로부터 순차적으로 블록들을 생성함으로써 생성되기 때문에, 제1 트랜잭션 기록과 제2 트랜잭션 기록이 추가되는 계정 조정 오류 세트에 포함된 트랜잭션 기록들은 제1 트랜잭션 기록이 블록에 저장될 때까지 계정 조정시 오류가 발생하는 트랜잭션 기록들이다.
단계들 S504 내지 S510은 실시간 계정 조정 프로세스를 설명하는데, 즉, 블록체인 노드는 제1 계정 조정 디바이스의 계정 조정 호출 요청에서 운반되는 제1 트랜잭션 기록을 제1 트랜잭션 기록에 대해 계정 조정 처리를 수행하는 동안 블록에 저장할 수 있고, 그에 의해 저장과 동시에 실시간 계정 조정 처리를 구현한다는 점이 이해될 수 있다.
본 명세서에서 용어들 "제1 계정 조정 디바이스"와 "제2 계정 조정 디바이스"는 제한이 아니라 구별을 위해서만 사용된다. 임의의 당사자로부터 계정 조정 호출 요청을 수신한 후에, 스마트 계약은 계정 조정 호출 요청에서 운반되는 트랜잭션 기록을 블록에 저장할 수 있다는 것을 이해할 수 있다.
또한, 스마트 계약을 호출함으로써 계정 조정을 수행할 때 2명의 계정 조정 당사자가 완전히 동기하지는 않지만, 속도가 명확히 다를 때, 계정 조정을 위해 선택된 트랜잭션 기록들의 시퀀스들도 상이할 수 있다. 한명의 계정 조정 당사자가 계정 조정 디바이스를 통해 계정 조정이 수행될 트랜잭션 기록을 스마트 계약에 송신하고, 다른 계정 조정 당사자가 계정 조정 데이터를 송신하지 않은 경우, 계정 조정이 수행될 트랜잭션 기록이 완료되지 않은 계정 조정 세트에 추가될 수 있다.
한명의 계정 조정 당사자가 계정 조정이 수행될 트랜잭션 기록을 스마트 계약에 송신하고, 다른 계정 조정 당사자도 동일한 트랜잭션에 대응하는 트랜잭션 기록을 송신했을 때, 동일한 트랜잭션에 대응하는 상이한 트랜잭션 기록들이 비교될 수 있다는 것을 이해할 수 있다. 트랜잭션 기록들이 불일치하는 경우, 이는 계정 조정시 오류가 발생하고, 불일치하는 트랜잭션 기록들이 계정 조정 오류 세트에 추가될 수 있다는 것을 나타낸다.
단계 S512에서, 제1 블록 파일 내의 각각의 블록에 대해, 블록 내의 트랜잭션 기록은 계정 조정 오류 세트 및 완료되지 않은 계정 조정 세트 내의 트랜잭션 기록들과 비교된다. 블록 내의 트랜잭션 기록이 계정 조정 오류 세트 또는 완료되지 않은 계정 조정 세트 내에 포함되는 것에 응답하여, 단계들 S514 내지 S516이 수행되고, 블록 내의 트랜잭션 기록이 계정 조정 오류 세트 또는 완료되지 않은 계정 조정 세트 내에 포함되지 않는 것에 응답하여, 단계 S518이 수행된다.
제1 블록 파일 내의 각각의 블록에 대해, 블록체인 노드는 (블록체인 내의 데이터를 정기적으로 제거하는 것과 동등한) 미리 설정된 사이클로 단계 S512를 수행할 수 있다는 것이 이해될 수 있다. 다른 실시예들에서, 블록체인 노드는 또한 제1 블록 파일 내의 블록들의 수량이 미리 설정된 수량의 임계값에 도달할 때 단계 S512를 수행하도록 트리거할 수 있다(이는 블록체인 내에 과도한 블록들이 있고, 과도하게 큰 저장 공간을 차지할 때 블록체인 내의 데이터를 제거하는 것과 등가임).
단계 S514에서, 블록의 해시 트리에서, 트랜잭션 기록에 대응하는 리프 노드가 결정되고; 리프 노드의 제1 조상 노드 및 형제 리프 노드는 해시 트리로부터 선택되고; 리프 노드의 각각의 비-형제 리프 노드에 대해, 비-형제 리프 노드의 모든 조상 노드 중에서 루트 노드에 가장 가까운 제2 조상 노드가 선택되고; 리프 노드, 형제 리프 노드, 제1 조상 노드, 및 제2 조상 노드에 따라 노드 유지 트리가 구성된다.
S516에서, 트랜잭션 기록은 노드 유지 트리의 대응하는 리프 노드에 저장되고; 블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리는 연관된 방식으로 제2 블록 파일에 저장되고, 블록 헤드는 제2 블록 파일 내의 이전 블록의 블록 헤드에 인접한다.
단계 S518에서, 블록의 블록 헤드가 이전 블록의 블록 헤드에 인접하도록 제2 블록 파일이 업데이트된다.
단계 S520에서, 블록의 위치 인덱스가 제1 블록 파일의 제1 저장 위치를 가리키는 것으로부터 제2 블록 파일의 제2 저장 위치를 가리키는 것으로 수정된다.
단계 S522에서, 각 블록에 대한 업데이트 처리가 완료된 후에 제1 블록 파일이 삭제된다.
전술한 실시예에서, 제2 블록 파일에서는, 블록 헤드들이 변경되지 않고 블록 헤드들이 연속적으로 여전히 인접하기 때문에, 해시 값들에 의한 블록체인 상의 헤드-투-테일 접속의 특성이 유지된다. 이러한 방식으로, 노드 유지 트리의 리프 노드에 저장된 트랜잭션 기록 및 노드 유지 트리 내의 노드에 따라, 트랜잭션 기록이 대응하는 원래의 블록에 속하는 것을 증명할 수 있다. 즉, 데이터 진정성을 체크하기 위한 원래의 해시 트리의 기능이 여전히 유지됨으로써, 제2 블록 파일에 보유된 트랜잭션 기록은 여전히 위조 또는 변조될 수 없다. 제1 블록 파일은 각각의 블록에 대해 업데이트 처리가 완료된 후에 삭제된다. 제2 블록 파일은 원래의 블록에 보유될 필요가 없는 트랜잭션 기록들을 저장하지 않고, 단지 트랜잭션 기록의 진정성을 체크하는데 사용되는 노드 유지 트리 및 보유될 트랜잭션 기록만을 저장함으로써, 제1 블록 파일과 비교하여 저장 자원들을 크게 절약한다.
도 6에 도시된 바와 같이, 실시예에서, 데이터 처리 장치(600)가 제공된다. 본 장치는 하드웨어 또는 하드웨어와 소프트웨어의 결합 방식으로 컴퓨터 디바이스의 전부 또는 일부로서 구현될 수 있다. 선택적으로, 컴퓨터 디바이스는 도 1의 블록체인 노드일 수 있다. 장치(600)는: 노드 유지 모듈(602), 트랜잭션 저장 모듈(604), 블록 업데이트 모듈(606), 및 삭제 모듈(608)을 포함한다.
노드 유지 모듈(602)은: 제1 블록 파일 내의 각각의 블록에 대해, 블록에서 보유될 트랜잭션 기록을 검출하고; 블록의 해시 트리로부터, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하고; 선택된 노드들에 따라 노드 유지보수 트리를 구성하도록 구성된다.
트랜잭션 저장 모듈(604)은 트랜잭션 기록을 노드 유지 트리의 대응하는 리프 노드에 저장하도록 구성된다.
블록 업데이트 모듈(606)은 블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리를 연관된 방식으로 저장함으로써 제2 블록 파일을 업데이트하도록 구성되고, 블록의 블록 헤드는 제2 블록 파일 내의 이전 블록의 블록 헤드에 인접한다.
삭제 모듈(608)은 각 블록에 대한 업데이트 처리가 완료된 후에 제1 블록 파일을 삭제하도록 구성된다.
실시예에서, 노드 유지 모듈(602)은 보유될 트랜잭션 기록이 블록에서 검출되는 것에 응답하여, 블록의 해시 트리로부터, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하는 동작을 수행하도록 구성되고; 노드 유지 모듈(620)은 블록에서 보유될 트랜잭션 기록이 검출되지 않는 것에 응답하여, 블록 업데이트 모듈(606)에게, 블록의 블록 헤드를 이전 블록의 블록 헤드에 인접하도록 저장함으로써 제2 블록 파일을 업데이트하게 지시하도록 추가로 구성된다.
실시예에서, 트랜잭션 기록은 계정 조정에 사용되는 트랜잭션 기록이고; 노드 유지 모듈(602)은 블록 내의 트랜잭션 기록을 성공하지 못한 계정 조정 세트 내의 트랜잭션 기록과 비교하고; 블록 내의 트랜잭션 기록이 성공하지 못한 계정 조정 세트에 포함되는 것에 응답하여, 트랜잭션 기록을 보유될 트랜잭션 기록으로서 판정하도록 추가로 구성된다.
도 7에 도시된 바와 같이, 실시예에서, 성공하지 못한 계정 조정 세트는 완료되지 않은 계정 조정 세트를 포함한다. 장치(600)는:
제1 계정 조정 디바이스에 의해 송신된 계정 조정 호출 요청을 수신하는 것에 응답하여, 계정 조정이 수행될 제1 트랜잭션 기록을 스마트 계약을 통해 제1 블록 파일 내의 블록에 저장하고- 제1 트랜잭션 기록은 계정 조정 호출 요청에서 운반됨 -; 제1 트랜잭션 기록에 대응하는 계정 조정 연관 식별자를 스마트 계약을 통해 획득하고; 블록체인 상에 생성된 완료되지 않은 계정 조정 세트에서 제2 계정 조정 디바이스의 제2 트랜잭션 기록을 검색하고- 제2 트랜잭션 기록은 계정 조정 연관 식별자에 대응함 -; 제2 트랜잭션 기록을 발견하지 못한 것에 응답하여 제1 트랜잭션 기록을 완료되지 않은 계정 조정 세트에 추가하도록 구성된 실시간 계정 조정 모듈(601)을 추가로 포함한다.
실시예에서, 성공하지 못한 계정 조정 세트는 계정 조정 오류 세트를 추가로 포함한다. 실시간 계정 조정 모듈(601)은: 제2 트랜잭션 기록을 발견한 것에 응답하여 완료되지 않은 계정 조정 세트로부터 제2 트랜잭션 기록을 제거하고; 제1 트랜잭션 기록을 제2 트랜잭션 기록과 비교하고; 불일치를 표시하는 비교 결과에 응답하여 계정 조정 오류 세트에 제1 트랜잭션 기록과 제2 트랜잭션 기록을 추가하도록 추가로 구성된다.
실시예에서, 노드 유지 모듈(602)은: 블록의 해시 트리에서, 트랜잭션 기록에 대응하는 리프 노드를 결정하고; 해시 트리로부터 리프 노드의 제1 조상 노드 및 형제 리프 노드를 선택하고; 리프 노드의 각각의 비-형제 리프 노드에 대해, 비-형제 리프 노드의 모든 조상 노드 중에서 루트 노드에 가장 가까운 제2 조상 노드를 선택하고; 리프 노드, 제1 조상 노드, 형제 리프 노드, 및 제2 조상 노드에 따라 노드 유지 트리를 구성하도록 추가로 구성된다.
실시예에서, 해시 트리는 이중-계층 해시 트리이고, 이중-계층 해시 트리의 루트 노드의 해시 값은 모든 리프 노드의 일련의 접속된 해시 값들에 대해 해시 연산을 수행함으로써 획득되고, 선택된 노드들은 해시 트리의 모든 노드이다.
실시예에서, 블록 업데이트 모듈(606)은 제2 블록 파일의 제2 저장 위치를 획득하고; 블록의 위치 인덱스를, 제1 블록 파일의 제1 저장 위치를 가리키는 것으로부터 제2 저장 위치를 가리키는 것으로 수정하도록 추가로 구성된다.
도 8은 실시예에 따른 컴퓨터 디바이스의 내부 구조의 개략도이다. 도 8을 참조하면, 컴퓨터 디바이스는 도 1에 도시된 블록체인 노드(130) 내의 임의의 서버일 수 있다. 컴퓨터 디바이스는 프로세서, 메모리, 및 시스템 버스를 통해 접속된 네트워크 인터페이스를 포함한다. 메모리는 비휘발성 저장 매체 및 내부 메모리를 포함한다. 컴퓨터 디바이스의 비휘발성 저장 매체는 운영 체제 및 컴퓨터 프로그램을 저장할 수 있다. 컴퓨터 프로그램은 실행될 때, 프로세서로 하여금 전술한 방법 실시예들에서의 데이터 처리 방법의 모든 또는 일부 단계들을 수행하게 할 수 있다. 컴퓨터 디바이스의 프로세서는 계산 및 제어 능력들을 제공하여, 전체 컴퓨터 디바이스의 실행을 지원하는데 사용된다. 내부 메모리는 컴퓨터 프로그램을 저장할 수 있고, 컴퓨터 프로그램은 프로세서에 의해 실행될 때, 프로세서로 하여금 전술한 방법 실시예들에서의 데이터 처리 방법의 모든 또는 일부 단계들을 수행하게 할 수 있다. 컴퓨터 디바이스의 네트워크 인터페이스는 네트워크 통신을 수행하도록 구성된다.
본 기술분야의 통상의 기술자는 도 8에 도시된 구조가 본 개시내용의 해결책에 관련된 구조의 일부의 블록도일뿐이고, 본 개시내용의 해결책이 적용되는 컴퓨터 디바이스에 대한 제한을 구성하지 않는다는 것을 이해할 수 있다. 컴퓨터 디바이스는 도면에 도시된 컴포넌트들보다 더 많거나 더 적은 컴포넌트를 구체적으로 포함하거나, 또는 일부 컴포넌트를 조합하거나, 또는 상이한 컴포넌트 배열을 가질 수 있다.
실시예에서, 본 개시내용에서 제공되는 데이터 처리 장치는 도 8에 도시된 컴퓨터 디바이스 상에서 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있다. 컴퓨터 디바이스의 비휘발성 저장 매체는 도 6에 도시된 노드 유지 모듈(602), 트랜잭션 저장 모듈(604), 블록 업데이트 모듈(606), 및 삭제 모듈(608)과 같은, 데이터 처리 장치를 구성하는 프로그램 모듈들을 저장할 수 있다. 프로그램 모듈들로 구성된 컴퓨터 프로그램은 컴퓨터 디바이스가 본 명세서에 기술된 본 개시내용의 실시예들의 데이터 처리 방법에서의 동작들을 수행하게 하기 위해 사용된다. 예를 들어, 도 6에 도시된 데이터 처리 장치(600) 내의 노드 유지 모듈(602)을 사용함으로써, 컴퓨터 디바이스는 제1 블록 파일 내의 각각의 블록에 대해, 블록에서 보유될 트랜잭션 기록을 검출하고; 블록의 해시 트리로부터, 트랜잭션 기록이 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하고; 선택된 노드들에 따라 노드 유지 트리를 구성할 수 있다. 컴퓨터 디바이스는 트랜잭션 저장 모듈(604)을 사용하여 노드 유지 트리의 대응하는 리프 노드에 트랜잭션 기록을 저장할 수 있다. 컴퓨터 디바이스는 블록 업데이트 모듈(606)을 사용함으로써, 블록의 블록 헤드와 트랜잭션 기록을 저장하는 노드 유지 트리를 연관된 방식으로 저장함으로써 제2 블록 파일을 업데이트할 수 있고, 블록의 블록 헤드는 제2 블록 파일 내의 이전 블록의 블록 헤드에 인접한다. 컴퓨터 디바이스는 각 블록에 대한 업데이트 처리가 완료된 후에 삭제 모듈(608)을 사용하여 제1 블록 파일을 삭제할 수 있다.
실시예에서, 프로세서와 메모리를 포함하는 컴퓨터 디바이스가 제공된다. 메모리는 컴퓨터 프로그램을 저장하고, 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 프로세서로 하여금 전술한 데이터 처리 방법의 단계들을 수행하게 한다. 본 명세서에서의 데이터 처리 방법의 단계들은 전술한 실시예들에서의 데이터 처리 방법의 단계들일 수 있다.
실시예에서, 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체가 제공되며, 컴퓨터 프로그램은 프로세서에 의해 실행될 때, 프로세서로 하여금 전술한 데이터 처리 방법의 단계들을 수행하게 한다. 본 명세서에서의 데이터 처리 방법의 단계들은 전술한 실시예들에서의 데이터 처리 방법의 단계들일 수 있다.
본 개시내용의 실시예들에서의 "제1" 및 "제2"는 단지 구별을 위해 사용되었으며, 크기, 순서, 종속 등의 측면에서 제한을 구성하려는 의도는 아니다.
본 개시내용의 다양한 실시예들에서의 단계들이 반드시 단계 번호들로 표시되는 시퀀스로 수행되는 것은 아니라는 점이 이해되어야 한다. 본 개시내용에서 명시적으로 특정되지 않는 한, 단계들을 수행하기 위한 시퀀스는 엄격하게 제한되지 않고, 단계들은 다른 시퀀스들로 수행될 수 있다. 또한, 각각의 실시예에서의 단계들 중 적어도 일부는 다수의 서브-단계 또는 다수의 스테이지를 포함할 수 있다. 이 서브-단계들 또는 스테이지들은 반드시 동일한 순간에 수행되지 않고, 상이한 순간들에서 수행될 수 있다. 이 서브-단계들 또는 스테이지들은 반드시 순서대로 수행되지 않고, 다른 단계들의 적어도 일부 또는 다른 단계들의 서브-단계들 또는 스테이지들로 차례차례 또는 교대로 수행될 수 있다.
본 기술분야의 통상의 기술자는 전술한 실시예들에서의 방법들의 프로세스들의 전부 또는 일부가 컴퓨터 프로그램 명령 관련 하드웨어에 의해 구현될 수 있음을 이해할 수 있다. 프로그램은 비휘발성 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 프로그램이 실행될 때, 전술한 방법 실시예들의 절차들이 수행될 수 있다. 본 개시내용에서 제공되는 실시예들에서 사용되는 메모리, 스토리지, 데이터베이스, 또는 다른 매체에 대한 임의의 참조는 비휘발성 및/또는 휘발성 메모리를 포함할 수 있다. 비휘발성 메모리는 판독 전용 메모리(ROM), 프로그램가능한 ROM(PROM), 전기적으로 프로그램가능한 ROM(EPROM), 전기적으로 소거가능하고 프로그램가능한 ROM(EEPROM), 또는 플래시를 포함할 수 있다. 휘발성 메모리는 랜덤 액세스 메모리(RAM) 또는 외부 캐시를 포함할 수 있다. 제한 대신에 예시로서, RAM은 SRAM(static RAM), DRAM(dynamic RAM), SDRAM(synchronous DRAM), DDRSDRAM(double data rate SDRAM), ESDRAM(enhanced SDRAM), SLDRAM(synchronization link (Synchlink) DRAM), RDRAM(rambus direct RAM), DRDRAM(direct rambus dynamic RAM), 및 RDRAM(rambus dynamic RAM)와 같이, 다양한 형태로 이용가능하다.
전술한 실시예들에서의 다양한 기술적 특징들은 랜덤하게 조합될 수 있다. 설명의 용이함을 위해, 전술한 실시예들에서의 다양한 기술적 특징들의 가능한 조합들이 모두 설명되는 것은 아니다. 그러나, 이러한 기술적 특징들의 조합들은, 이러한 기술적 특징들의 조합들이 서로 호환될 수 있다면, 본 명세서에 기록되는 범위 내에 있는 것으로서 고려되어야 한다.
전술한 실시예들은 구체적으로 그리고 상세히 설명되는 본 개시내용의 몇몇 구현들만을 설명하고 있지만, 본 개시내용의 특허 범위에 대한 제한으로서 해석될 수는 없다. 본 기술분야의 통상의 기술자는 본 개시내용의 사상들로부터 벗어나지 않고 다양한 변경들 및 개선들을 할 수 있으며, 이들 모두 본 개시내용의 보호 범위 내에 속한다. 따라서, 본 개시내용의 특허의 보호 범위는 첨부된 청구항들에 따라야 한다.

Claims (18)

  1. 블록체인 노드에 의해 수행되는 데이터 처리 방법으로서,
    상기 블록체인 노드는 제1 블록 파일을 저장하고, 상기 제1 블록 파일은 블록체인 상의 블록들을 저장하고, 상기 블록들 각각은 하나 이상의 트랜잭션 기록을 저장하며, 상기 방법은:
    상기 블록체인 노드 상에 제2 블록 파일을 생성하는 단계- 상기 제2 블록 파일은 상기 제1 블록 파일 내의 블록들의 시퀀스에 따라 서로 인접한 모든 블록들의 블록 헤드들을 저장함 -;
    상기 제1 블록 파일 내의 각각의 블록에 대해, 상기 블록에서 보유될 트랜잭션 기록을 검출하는 단계;
    상기 블록의 해시 트리로부터, 상기 보유될 트랜잭션 기록이 상기 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하는 단계;
    상기 선택된 노드들에 따라 노드 유지 트리를 구성하는 단계;
    상기 보유될 트랜잭션 기록을 상기 노드 유지 트리의 대응하는 리프 노드에 저장하는 단계;
    상기 블록의 블록 헤드와 상기 보유될 트랜잭션 기록을 저장하는 노드 유지 트리를 연관된 방식으로 저장함으로써 상기 제2 블록 파일을 업데이트하는 단계; 및
    상기 제1 블록 파일 내의 모든 블록들에 대한 업데이트 처리가 완료된 후에 상기 제1 블록 파일을 삭제하는 단계를 포함하는 데이터 처리 방법.
  2. 제1항에 있어서,
    상기 블록의 해시 트리로부터, 상기 트랜잭션 기록이 상기 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하는 단계는:
    상기 보유될 트랜잭션 기록이 상기 블록에서 검출되는 것에 응답하여, 상기 블록의 해시 트리로부터, 상기 트랜잭션 기록이 상기 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하는 동작을 수행하는 단계를 포함하고;
    상기 방법은:
    상기 블록에서 보유될 트랜잭션 기록이 검출되지 않는 것에 응답하여, 상기 블록의 블록 헤드를 이전 블록의 상기 블록 헤드에 인접하도록 저장함으로써 상기 제2 블록 파일을 업데이트하는 단계를 추가로 포함하는 데이터 처리 방법.
  3. 제1항에 있어서,
    상기 트랜잭션 기록은 계정 조정에 사용되는 트랜잭션 기록이고; 상기 블록에서 보유될 트랜잭션 기록을 검출하는 단계는:
    상기 블록 내의 트랜잭션 기록을 성공하지 못한 계정 조정 세트 내의 트랜잭션 기록과 비교하는 단계; 및
    상기 블록 내의 상기 트랜잭션 기록이 상기 성공하지 못한 계정 조정 세트에 포함되는 것에 응답하여, 상기 트랜잭션 기록을 상기 보유될 트랜잭션 기록으로서 판정하는 단계를 포함하는 데이터 처리 방법.
  4. 제3항에 있어서,
    상기 성공하지 못한 계정 조정 세트는 완료되지 않은 계정 조정 세트를 포함하고; 상기 방법은:
    제1 계정 조정 디바이스에 의해 송신된 계정 조정 호출 요청을 수신하는 것에 응답하여, 계정 조정이 수행될 제1 트랜잭션 기록을 스마트 계약을 통해 상기 제1 블록 파일 내의 블록에 저장하는 단계- 상기 제1 트랜잭션 기록은 상기 계정 조정 호출 요청에서 운반됨 -;
    상기 제1 트랜잭션 기록에 대응하는 계정 조정 연관 식별자를 상기 스마트 계약을 통해 획득하는 단계;
    블록체인 상에 생성된 완료되지 않은 계정 조정 세트에서 제2 계정 조정 디바이스의 제2 트랜잭션 기록을 검색하는 단계- 상기 제2 트랜잭션 기록은 상기 계정 조정 연관 식별자에 대응함 -; 및
    상기 제2 트랜잭션 기록을 발견하지 못한 것에 응답하여 상기 제1 트랜잭션 기록을 상기 완료되지 않은 계정 조정 세트에 추가하는 단계를 추가로 포함하는 데이터 처리 방법.
  5. 제4항에 있어서,
    상기 성공하지 못한 계정 조정 세트는 계정 조정 오류 세트를 추가로 포함하고; 상기 방법은:
    상기 제2 트랜잭션 기록을 발견한 것에 응답하여 상기 완료되지 않은 계정 조정 세트로부터 상기 제2 트랜잭션 기록을 제거하는 단계;
    상기 제1 트랜잭션 기록을 상기 제2 트랜잭션 기록과 비교하는 단계; 및
    불일치를 표시하는 비교 결과에 응답하여 상기 계정 조정 오류 세트에 상기 제1 트랜잭션 기록과 상기 제2 트랜잭션 기록을 추가하는 단계를 추가로 포함하는 데이터 처리 방법.
  6. 제1항에 있어서,
    상기 블록의 해시 트리로부터, 상기 트랜잭션 기록이 상기 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하는 단계는:
    상기 블록의 해시 트리에서, 상기 트랜잭션 기록에 대응하는 리프 노드를 결정하는 단계;
    상기 해시 트리로부터 상기 리프 노드의 제1 조상 노드(ancestor node) 및 형제 리프 노드(brother leaf node)를 선택하는 단계; 및
    상기 리프 노드의 각각의 비-형제 리프 노드에 대해, 상기 비-형제 리프 노드의 모든 조상 노드 중에서 루트 노드(root node)에 가장 가까운 제2 조상 노드를 선택하는 단계를 포함하고;
    상기 선택된 노드들에 따라 노드 유지 트리를 구성하는 단계는:
    상기 리프 노드, 상기 제1 조상 노드, 상기 형제 리프 노드, 및 상기 제2 조상 노드에 따라 노드 유지 트리를 구성하는 단계를 포함하는 데이터 처리 방법.
  7. 제1항에 있어서,
    상기 해시 트리는 이중-계층 해시 트리이고, 상기 이중-계층 해시 트리의 루트 노드의 해시 값은 모든 리프 노드의 일련의 접속된 해시 값들에 대해 해시 연산을 수행함으로써 획득되고, 상기 선택된 노드들은 상기 해시 트리의 모든 노드인 데이터 처리 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제2 블록 파일의 제2 저장 위치를 획득하는 단계; 및
    상기 블록의 위치 인덱스를, 상기 제1 블록 파일의 제1 저장 위치를 가리키는 것으로부터 상기 제2 저장 위치를 가리키는 것으로 수정하는 단계를 추가로 포함하는 데이터 처리 방법.
  9. 블록체인 노드에 적용되는 데이터 처리 장치로서,
    상기 블록체인 노드는 제1 블록 파일을 저장하고, 상기 제1 블록 파일은 블록체인 상의 블록들을 저장하고, 상기 블록들 각각은 하나 이상의 트랜잭션 기록을 저장하며, 상기 장치는:
    상기 블록체인 노드 상에 제2 블록 파일을 생성하도록 구성된 블록 파일 생성 모듈- 상기 제2 블록 파일은 상기 제1 블록 파일 내의 블록들의 시퀀스에 따라 서로 인접한 모든 블록들의 블록 헤드들을 저장함 -;
    상기 제1 블록 파일 내의 각각의 블록에 대해, 상기 블록에서 보유될 트랜잭션 기록을 검출하고; 상기 블록의 해시 트리로부터, 상기 보유될 트랜잭션 기록이 상기 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하고; 상기 선택된 노드들에 따라 노드 유지 트리를 구성하도록 구성된 노드 유지 모듈;
    상기 보유될 트랜잭션 기록을 상기 노드 유지 트리의 대응하는 리프 노드에 저장하도록 구성된 트랜잭션 저장 모듈;
    상기 블록의 블록 헤드와 상기 보유될 트랜잭션 기록을 저장하는 노드 유지 트리를 연관된 방식으로 저장함으로써 상기 제2 블록 파일을 업데이트하도록 구성된 블록 업데이트 모듈; 및
    상기 제1 블록 파일 내의 모든 블록들에 대한 업데이트 처리가 완료된 후에 상기 제1 블록 파일을 삭제하도록 구성된 삭제 모듈을 포함하는 데이터 처리 장치.
  10. 제9항에 있어서,
    상기 노드 유지 모듈은 상기 보유될 트랜잭션 기록이 상기 블록에서 검출되는 것에 응답하여, 상기 블록의 해시 트리로부터, 상기 트랜잭션 기록이 상기 블록에 속하는 것을 증명하는데 사용되는 노드들을 선택하는 동작을 수행하도록 구성되고;
    상기 노드 유지 모듈은 상기 블록에서 보유될 트랜잭션 기록이 검출되지 않는 것에 응답하여, 상기 블록 업데이트 모듈에게, 상기 블록의 블록 헤드를 이전 블록의 상기 블록 헤드에 인접하도록 저장함으로써 상기 제2 블록 파일을 업데이트하게 지시하도록 추가로 구성되는 데이터 처리 장치.
  11. 제9항에 있어서,
    상기 트랜잭션 기록은 계정 조정에 사용되는 트랜잭션 기록이고; 상기 노드 유지 모듈은 상기 블록 내의 트랜잭션 기록을 성공하지 못한 계정 조정 세트 내의 트랜잭션 기록과 비교하고; 상기 블록 내의 상기 트랜잭션 기록이 상기 성공하지 못한 계정 조정 세트에 포함되는 것에 응답하여, 상기 트랜잭션 기록을 상기 보유될 트랜잭션 기록으로서 판정하도록 추가로 구성되는 데이터 처리 장치.
  12. 제11항에 있어서,
    상기 성공하지 못한 계정 조정 세트는 완료되지 않은 계정 조정 세트를 포함하고; 상기 장치는:
    제1 계정 조정 디바이스에 의해 송신된 계정 조정 호출 요청을 수신하는 것에 응답하여, 계정 조정이 수행될 제1 트랜잭션 기록을 스마트 계약을 통해 상기 제1 블록 파일 내의 블록에 저장하고- 상기 제1 트랜잭션 기록은 상기 계정 조정 호출 요청에서 운반됨 -; 상기 제1 트랜잭션 기록에 대응하는 계정 조정 연관 식별자를 상기 스마트 계약을 통해 획득하고; 블록체인 상에 생성된 완료되지 않은 계정 조정 세트에서 제2 계정 조정 디바이스의 제2 트랜잭션 기록을 검색하고- 상기 제2 트랜잭션 기록은 상기 계정 조정 연관 식별자에 대응함 -; 상기 제2 트랜잭션 기록을 발견하지 못한 것에 응답하여 상기 제1 트랜잭션 기록을 상기 완료되지 않은 계정 조정 세트에 추가하도록 구성된 실시간 계정 조정 모듈을 추가로 포함하는 데이터 처리 장치.
  13. 제12항에 있어서,
    상기 성공하지 못한 계정 조정 세트는 계정 조정 오류 세트를 추가로 포함하고; 상기 실시간 계정 조정 모듈은: 상기 제2 트랜잭션 기록을 발견한 것에 응답하여 상기 완료되지 않은 계정 조정 세트로부터 상기 제2 트랜잭션 기록을 제거하고; 상기 제1 트랜잭션 기록을 상기 제2 트랜잭션 기록과 비교하고; 불일치를 표시하는 비교 결과에 응답하여 상기 계정 조정 오류 세트에 상기 제1 트랜잭션 기록과 상기 제2 트랜잭션 기록을 추가하도록 추가로 구성되는 데이터 처리 장치.
  14. 제9항에 있어서,
    상기 노드 유지 모듈은: 상기 블록의 해시 트리에서, 상기 트랜잭션 기록에 대응하는 리프 노드를 결정하고; 상기 해시 트리로부터 상기 리프 노드의 제1 조상 노드 및 형제 리프 노드를 선택하고; 상기 리프 노드의 각각의 비-형제 리프 노드에 대해, 상기 비-형제 리프 노드의 모든 조상 노드 중에서 루트 노드에 가장 가까운 제2 조상 노드를 선택하고; 상기 리프 노드, 상기 제1 조상 노드, 상기 형제 리프 노드, 및 상기 제2 조상 노드에 따라 노드 유지 트리를 구성하도록 추가로 구성되는 데이터 처리 장치.
  15. 제9항에 있어서,
    상기 해시 트리는 이중-계층 해시 트리이고, 상기 이중-계층 해시 트리의 루트 노드의 해시 값은 모든 리프 노드의 일련의 접속된 해시 값들에 대해 해시 연산을 수행함으로써 획득되고, 상기 선택된 노드들은 상기 해시 트리의 모든 노드인 데이터 처리 장치.
  16. 제15항에 있어서,
    상기 블록 업데이트 모듈은 상기 제2 블록 파일의 제2 저장 위치를 획득하고; 상기 블록의 위치 인덱스를, 상기 제1 블록 파일의 제1 저장 위치를 가리키는 것으로부터 상기 제2 저장 위치를 가리키는 것으로 수정하도록 추가로 구성되는 데이터 처리 장치.
  17. 메모리와 프로세서를 포함하는 컴퓨터 디바이스로서,
    상기 메모리는 컴퓨터 프로그램을 저장하고, 상기 컴퓨터 프로그램은 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제7항 중 어느 한 항에 따른 방법의 동작들을 수행하게 하는 컴퓨터 디바이스.
  18. 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 프로그램은 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제7항 중 어느 한 항에 따른 방법의 동작들을 수행하게 하는 컴퓨터 판독가능 저장 매체.
KR1020217005410A 2019-01-23 2020-01-20 데이터 처리 방법 및 장치, 컴퓨터 디바이스, 및 저장 매체 KR102455884B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910063326.1 2019-01-23
CN201910063326.1A CN110264187B (zh) 2019-01-23 2019-01-23 数据处理方法、装置、计算机设备及存储介质
PCT/CN2020/073127 WO2020151635A1 (zh) 2019-01-23 2020-01-20 数据处理方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
KR20210034072A KR20210034072A (ko) 2021-03-29
KR102455884B1 true KR102455884B1 (ko) 2022-10-19

Family

ID=67911755

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217005410A KR102455884B1 (ko) 2019-01-23 2020-01-20 데이터 처리 방법 및 장치, 컴퓨터 디바이스, 및 저장 매체

Country Status (7)

Country Link
US (2) US11574290B2 (ko)
EP (1) EP3917115A4 (ko)
JP (1) JP7090972B2 (ko)
KR (1) KR102455884B1 (ko)
CN (1) CN110264187B (ko)
SG (1) SG11202101120XA (ko)
WO (1) WO2020151635A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110264187B (zh) 2019-01-23 2021-06-04 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备及存储介质
CN110659907B (zh) * 2019-09-24 2021-11-12 北京海益同展信息科技有限公司 用于执行智能合约的方法和装置
CN110879687B (zh) * 2019-10-18 2021-03-16 蚂蚁区块链科技(上海)有限公司 一种基于磁盘存储的数据读取方法、装置及设备
CN111444197B (zh) * 2020-06-12 2020-12-11 支付宝(杭州)信息技术有限公司 一种块链式账本中数据记录的验证方法、装置及设备
CN111459948B (zh) * 2020-06-15 2020-12-29 支付宝(杭州)信息技术有限公司 一种基于中心化块链式账本的交易完整性验证方法
KR102473672B1 (ko) * 2020-10-20 2022-12-02 주식회사 커먼컴퓨터 트리 구조의 상태 데이터베이스를 포함하는 블록체인에 대한 상태 관리 방법 및 시스템
CN113297235B (zh) * 2020-11-03 2023-12-19 阿里巴巴集团控股有限公司 分布式数据库集群的数据一致性检验方法及装置
CN113704182B (zh) * 2021-06-15 2023-05-12 成都统信软件技术有限公司 一种数据检查方法及计算设备
US11941589B2 (en) * 2022-04-01 2024-03-26 Shopify Inc. System and method for associating a successful second transaction with a first failed transaction
CN117421254B (zh) * 2023-12-19 2024-03-22 杭银消费金融股份有限公司 一种用于对账业务的自动化测试方法与系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106686087A (zh) * 2016-12-30 2017-05-17 先锋支付有限公司 一种区块链截断方法及分布式节点
CN107728941A (zh) * 2017-09-28 2018-02-23 中国银行股份有限公司 一种区块链数据压缩方法及系统
KR101924026B1 (ko) * 2017-11-10 2018-11-30 부산대학교 산학협력단 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903881A (en) * 1997-06-05 1999-05-11 Intuit, Inc. Personal online banking with integrated online statement and checkbook user interface
JP4111529B2 (ja) 2005-07-01 2008-07-02 インターナショナル・ビジネス・マシーンズ・コーポレーション トレーサビリティ署名システム、署名方法、プログラム
PT3095044T (pt) * 2013-11-19 2020-12-24 Top Galore Ltd Aparelhos e métodos de mineração de blocos
EP3405862B1 (en) * 2016-01-19 2020-11-18 Priv8Pay, Inc. Network node authentication
JP6586046B2 (ja) 2016-06-13 2019-10-02 日本電信電話株式会社 処理システムおよび処理方法
US10157295B2 (en) * 2016-10-07 2018-12-18 Acronis International Gmbh System and method for file authenticity certification using blockchain network
US10554746B2 (en) * 2016-11-14 2020-02-04 International Business Machines Corporation Decentralized immutable storage blockchain configuration
EP3552343B1 (en) * 2016-12-08 2022-03-23 Telefonaktiebolaget LM Ericsson (PUBL) Method and apparatus for creating a finite blockchain
US10447480B2 (en) 2016-12-30 2019-10-15 Guardtime Sa Event verification receipt system and methods
CN108270836B (zh) * 2017-01-03 2020-04-03 华为技术有限公司 基于区块链的数据处理方法、设备和系统
JP6495346B2 (ja) 2017-01-10 2019-04-03 日本電信電話株式会社 情報処理システム
CN108696356B (zh) * 2017-04-05 2020-08-18 中国移动通信有限公司研究院 一种基于区块链的数字证书删除方法、装置及系统
JP6814094B2 (ja) 2017-05-22 2021-01-13 Kddi株式会社 合意形成システム、プログラム、及び生成方法
CA3065319A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management
CN107423426B (zh) * 2017-08-02 2020-06-02 众安信息技术服务有限公司 一种区块链块数据的数据归档方法及电子设备
CN107807608A (zh) 2017-11-02 2018-03-16 腾讯科技(深圳)有限公司 数据处理方法、数据处理系统及存储介质
US20210182849A1 (en) * 2017-11-06 2021-06-17 Velo Holdings Limited Limited scope blockchain system
US20190197562A1 (en) * 2017-12-27 2019-06-27 Irene Woerner System and method for product authentication
US10261711B1 (en) * 2018-01-25 2019-04-16 Merck Sharp & Dohme Corp. Proof of non-tampering for stored data
US10630463B2 (en) * 2018-02-26 2020-04-21 Ca, Inc. Meta block chain
CN108615156A (zh) * 2018-05-09 2018-10-02 上海魅联信息技术有限公司 一种基于区块链的数据结构
US11036395B2 (en) * 2018-10-18 2021-06-15 Nec Corporation Secure and transparent pruning for blockchains
CN110264187B (zh) * 2019-01-23 2021-06-04 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106686087A (zh) * 2016-12-30 2017-05-17 先锋支付有限公司 一种区块链截断方法及分布式节点
CN107728941A (zh) * 2017-09-28 2018-02-23 中国银行股份有限公司 一种区块链数据压缩方法及系统
KR101924026B1 (ko) * 2017-11-10 2018-11-30 부산대학교 산학협력단 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법

Also Published As

Publication number Publication date
US20210133702A1 (en) 2021-05-06
EP3917115A4 (en) 2022-02-16
US11574290B2 (en) 2023-02-07
US11935015B2 (en) 2024-03-19
WO2020151635A1 (zh) 2020-07-30
SG11202101120XA (en) 2021-03-30
EP3917115A1 (en) 2021-12-01
US20230144811A1 (en) 2023-05-11
JP2021536085A (ja) 2021-12-23
JP7090972B2 (ja) 2022-06-27
CN110264187A (zh) 2019-09-20
KR20210034072A (ko) 2021-03-29
CN110264187B (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
KR102455884B1 (ko) 데이터 처리 방법 및 장치, 컴퓨터 디바이스, 및 저장 매체
WO2017124933A1 (zh) 一种信息处理方法、装置和系统
US20220004334A1 (en) Data Storage Method, Apparatus and System, and Server, Control Node and Medium
US20180189315A1 (en) Method and device for calling a distributed file system
WO2018233630A1 (zh) 故障发现
CN109361628B (zh) 报文组装方法、装置、计算机设备和存储介质
CN107580032B (zh) 数据处理方法、装置及设备
US20220188288A1 (en) Identifying and resolving differences between datastores
US20170024447A1 (en) System, method, and apparatus for collaborative editing of common or related computer based software output
CN111984732A (zh) 在区块链上实现去中心化检索的方法、节点及区块链网络
CN108389124B (zh) 数据处理方法、装置、计算机设备和存储介质
CN108133026B (zh) 一种多数据的处理方法、系统及存储介质
CN113342746A (zh) 文件管理系统、文件管理方法、电子设备和存储介质
CN110543465B (zh) 目录操作方法、装置、计算机设备和存储介质
CN114064674A (zh) 数据同步方法、装置、计算机设备、存储介质和产品
CN115840753A (zh) 数据校验方法及电子设备
CN111191082A (zh) 数据管理方法、装置、计算机设备和存储介质
CN111667190A (zh) 一种电力施工接地监控方法、装置及服务器
WO2019242112A1 (zh) 审计字段信息获取方法、装置、计算机设备和存储介质
CN115730016B (zh) 数据同步方法、系统、装置、计算机设备和存储介质
CN115357384B (zh) 重复数据删除存储系统的空间回收方法和装置
CN111079199B (zh) 基于区块链技术的企业信用数据截图防篡改方法
CN117667837A (zh) 数据归档方法、装置、计算机设备和存储介质
CN116974574A (zh) 智能合约执行方法、装置、设备、存储介质和程序产品
CN116263756A (zh) 文件挂载方法及装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right