KR102511570B1 - 블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체 - Google Patents

블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체 Download PDF

Info

Publication number
KR102511570B1
KR102511570B1 KR1020220130800A KR20220130800A KR102511570B1 KR 102511570 B1 KR102511570 B1 KR 102511570B1 KR 1020220130800 A KR1020220130800 A KR 1020220130800A KR 20220130800 A KR20220130800 A KR 20220130800A KR 102511570 B1 KR102511570 B1 KR 102511570B1
Authority
KR
South Korea
Prior art keywords
data
state
blockchain
plaintext data
chain
Prior art date
Application number
KR1020220130800A
Other languages
English (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 박정훈
Priority to KR1020220130800A priority Critical patent/KR102511570B1/ko
Application granted granted Critical
Publication of KR102511570B1 publication Critical patent/KR102511570B1/ko

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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

본 개시의 일부 실시예에서, 블록체인 네트워크의 프로세스를 처리하기 위한 방법이 설명된다. 블록체인 네트워크는 복수의 노드 및 스테이트 데이터베이스(DB)를 포함한다. 예시적인 방법은 암호화된 평문 데이터를 포함하는 트랜잭션이 블록체인에 추가되었다는 블록체인 합의를 획득하는 단계; 평문 데이터의 식별자, 평문 데이터를 암호화한 암호화 키 중 적어도 일부 및 평문 데이터의 제1 해시 데이터를 포함하는 스테이트 데이터를 상기 스테이트 DB에 등록하는 단계; 및 평문 데이터의 식별자 및 평문 데이터를 포함하는 오프체인 데이터를 오프체인 DB에 등록하는 단계를 포함한다.

Description

블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체{METHOD, DEVICE, SYSTEM AND COMPUTER READABLE STORAGE MEDIUM FOR PROCESSES IN BLOCKCHAIN NETWORK}
본 발명은 블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체에 관한 것이다.
여기에서 달리 언급하지 않으면 본 섹션에서 기술되는 내용은 본 출원에서의 청구범위의 선행 기술이 아니며, 본 섹션에 기재하였다는 이유로 선행 기술로 인정되어서는 안 된다.
통신 기능을 가지는 컴퓨팅 장치의 사용이 일반화됨에 따라, 컴퓨팅 장치에 저장된 데이터에 대한 해킹을 방지하기 위한 보안 기술에 대한 관심이 높아지고 있다. 다양한 국가와 다양한 기업에서 관심을 가지는 보안 기술 중 하나는 블록체인(Block Chain)이다. 블록체인은 분산형 데이터 저장 기법을 이용하며, 이는 데이터를 단일의 컴퓨팅 장치에 저장하지 않고 네트워크에 참여하는 복수의 컴퓨팅 장치에 데이터를 저장하는 방식을 이용한다.
블록체인은 복수의 컴퓨팅 장치에 의해 저장되어 유지되므로, 보안의 관점에서 이점을 가짐과 동시에, 데이터를 필요에 의해 변경하는 것도 불가능하다는 점은 블록체인 기술의 활용의 범위에 영향을 준다. 한국 공개특허공보 제10-2022-001644호(선행 특허문헌 1)는 관계형 데이터베이스(Relational Database Managing System; RDBMS)을 이용한 분산원장 관리 시스템에 관하여 개시한다. 이러한 선행특허문헌 1은 RDBMS 기반의 분산원장 관리 시스템을 이용하여, 블록체인 시스템에서 관리되는 분산원장을 통한 거래 추적을 용이하게 하도록 하고 있으나, RDBMS 고유의 특성상 외부의 접근이 용이하며, 그에 따른 저장된 자료의 신뢰성과 무결성 확보의 문제점이 여전히 남아 있었다.
선행 특허문헌 1: 한국 공개특허공보 제10-2022-001644호
도 1a는 블록체인 네트워크를 이용하여 데이터 관리 서비스를 제공하기 위한 종래 블록체인 시스템(100)의 아키텍처이다. 종래의 블록체인 시스템(100)은 서비스 액세스 장치(110), 예컨대, WAS(Web Application Server), 블록체인 네트워크(120) 및 외부의 오프체인 데이터베이스(DB)(150)를 포함한다.
이러한 종래 블록체인 시스템(100)의 아키텍처에서, 사용자가 평문 데이터를 등록하고자 하는 경우, 서비스 액세스 장치(110)로부터 외부 오프체인 DB(150)로의 평문 데이터 등록; 서비스 액세스 장치(110)로부터 블록체인(140)으로의 평문 데이터 등록; 블록체인(140)으로부터 스테이트 DB(150)로의 데이터 등록; 서비스 액세스 장치(110)에 의한 스테이트 DB(150)로부터의 평문 데이터의 등록에 대한 성공 메시지 수신; 서비스 액세스 장치(110)로부터 외부 오프체인 DB(150)로의 평문 데이터에 관한 블록체인의 현재 상태 갱신 등의 길게 이어진 다양한 프로세스를 순차적으로 수행해야 한다. 이러한 종래 블록체인 시스템(100)은 처리 능력이 낮고, 스테이트 DB(130)와 오프체인 DB(150)에 등록된 데이터 간의 불일치가 발생될 가능성이 비교적 높았고, 개인정보와 같이 삭제가 필요한 데이터를 삭제하지 못하는 문제점이 있었다. 본 개시는 전술한 바와 같은 문제를 해결하기 위한 것이다.
본 개시의 일부 실시예에서, 블록체인 네트워크의 프로세스를 처리하기 위한 방법이 설명된다. 블록체인 네트워크는 복수의 노드 및 스테이트 데이터베이스(DB)를 포함한다. 예시적인 방법은 암호화된 평문 데이터를 포함하는 트랜잭션이 블록체인에 추가되었다는 블록체인 합의를 획득하는 단계; 평문 데이터의 식별자, 평문 데이터를 암호화한 암호화 키 중 적어도 일부 및 평문 데이터의 제1 해시 데이터를 포함하는 스테이트 데이터를 상기 스테이트 DB에 등록하는 단계; 및 평문 데이터의 식별자 및 평문 데이터를 포함하는 오프체인 데이터를 오프체인 DB에 등록하는 단계를 포함한다.
일부 예시에서, 방법은 획득하는 단계 이전에, 평문 데이터 및 암호화 키를 이용하여, 암호화된 평문 데이터를 생성하는 단계; 암호화된 평문 데이터를 포함하는 트랜잭션을 생성하여 블록체인에 등록하는 단계를 포함할 수 있다.
일부 예시에서, 스테이트 DB에 등록하는 단계 및 오프체인 DB에 등록하는 단계는 복수의 트랜잭션에 대하여 배치 처리될 수 있다.
일부 예시에서, 방법은 스테이트 DB로부터 상기 평문 데이터의 식별자 및 상기 제1 해시 데이터를 판독하는 단계; 판독된 상기 평문 데이터의 식별자를 이용하여, 오프체인 DB로부터 평문 데이터를 판독하는 단계; 판독된 평문 데이터로부터 제2 해시 데이터를 생성하는 단계; 제1 해시 데이터와 제2 해시 데이터를 비교하여, 제1 해시 데이터와 제2 해시 데이터가 상이하다고 결정하는 단계; 및 오프체인 DB 내 평문 데이터에 대한 부정합 발생 보고를 생성하는 단계를 더 포함할 수 있다.
일부 예시에서, 방법은 스테이트 DB로부터 상기 평문 데이터의 식별자 및 상기 제1 해시 데이터를 판독하는 단계; 판독된 평문 데이터의 식별자를 이용하여, 오프체인 DB로부터 평문 데이터를 판독하는 단계; 판독된 평문 데이터로부터 제2 해시 데이터를 생성하는 단계; 제1 해시 데이터와 제2 해시 데이터를 비교하여, 제1 해시 데이터와 제2 해시 데이터가 상이하다고 결정하는 단계; 및 오프체인 DB 내 평문 데이터에 대한 부정합 발생 보고를 생성하는 단계를 더 포함할 수 있다.
추가적으로, 방법은 제1 해시 데이터와 제2 해시 데이터가 상이하다고 결정하는 단계에 응답하여, 스테이트 DB로부터의 암호화 키 중 적어도 일부에 기초하여, 암호화 키를 획득하는 단계; 암호화 키를 이용하여, 블록체인으로부터 트랜잭션에 포함된 암호화된 평문 데이터를 판독하는 단계; 및 암호화 키를 이용하여 암호화된 평문 데이터를 복호화하는 단계를 더 포함할 수 있다. 이러한 추가적인 예시에서, 부정합 발생 보고는 복호화하는 단계에서 복호화된 평문 데이터를 포함할 수 있다.
일부 예시에서, 스테이트 데이터는 평문 데이터의 삭제 예정일을 포함하고, 방법은 평문 데이터의 삭제 예정일이 도과되었다고 결정하는 삭제 결정 단계; 및 삭제 결정 단계에 응답하여, 블록체인에 평문 데이터가 삭제되었음을 나타내는 트랜잭션을 등록하고, 평문 데이터가 삭제 상태임을 나타내도록 스테이트 DB를 갱신하며, 오프체인 DB 내 상기 평문 데이터를 삭제하는 단계를 더 포함할 수 있다.
일부 추가적인 예시에서, 방법은 블록체인 합의를 획득하는 단계 이후 및 상기 스테이트 DB에 등록하는 단계 이전에, 암호화 키를 제1 부분과 제2 부분으로 분할하는 암호화키 분할 단계를 더 포함한다. 이러한 예시에서, 스테이트 데이터에 포함되는 암호화 키의 적어도 일부는 제1 부분이고, 오프체인 DB에는 제2 부분이 더 등록된다.
일부 실시예에서, 블록체인 네트워크의 처리 장치가 설명된다. 예시적인 블록체인 네트워크 처리 장치는 하나 이상의 프로세서; 메모리; 및 통신부를 포함한다. 통신부는 블록체인 네트워크에 포함된 복수의 노드 및 스테이트 DB와 통신할 수 있다. 메모리는 블록체인 네트워크의 프로세스를 처리하기 위한 프로그램을 저장한다. 프로그램은 하나 이상의 프로세서에 의해 실행되면, 블록체인 네트워크 처리 장치로 하여금, 전술한 방법의 다양한 예시에 따른 동작들을 수행하도록 한다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체에 의해서도 달성된다.
본 개시에 따르면, 블록체인 네트워크 처리 장치가 블록 체인 네트워크 내부에서 스테이트 DB와 오프체인 DB 모두에 연결되어 프로세스를 일괄적으로 수행하므로, 다양한 프로세스에 대한 절차를 구조적으로 단순화할 수 있어, 스테이트 DB와 오프체인 DB 에 등록된 데이터 간의 불일치의 발생 가능성을 낮출 수 있다. 또한, 다수의 트랜잭션에 대한 데이터를 배치 처리하도록 함으로써, 그 처리 성능을 향상시킬 수 있다.
한편, 본 개시에 따르면, 평문 데이터를 암호화하여 블록체인에 등록하고, 스테이트 DB에 암호 키의 일부를 저장하도록 함으로써, 블록체인을 활용한 시스템에서도 데이터의 실질적인 삭제가 가능하도록 하였다.
본 개시에 따르면, 사용자 장치의 접속에 대한 인증이 완료된 후에, 접속 정책을 생성하고, 사용자 장치의 접속이 종료된 경우에 생성된 접속 정책을 배제시킴으로써, 사설 네트워크에 대한 보안성을 향상시킬 수 있다. 또한, 접속 정책에 대한 무결성 검사를 수행하여, 해커와 같은 제3자에 의한 공격에 의해 접속 정책이 변조되는 것을 방지할 수 있으므로, 사설 네트워크에 대한 보안성을 더욱 향상시킬 수 있다. 나아가, ID와 같은 사용자 식별 정보, 사용자 패스워드와 같이 인증 데이터 중 일부도 접속 정책과 같이 휘발성으로 관리함으로써, 보안성을 한층 더 향상시킬 수 있다. 추가적으로, 사용자 또는 제3자에게 노출되지 않는 랜덤 패스워드를 사용자 인증에 이용함으로써 보안성을 더욱 향상시킬 수 있다.
이상의 간단한 요약 및 효과에 관한 설명은 단순히 예시적인 것으로서 본 개시에서 의도한 기술적 사항을 제한하기 위한 것이 아니다. 이하의 상세한 설명과 첨부된 도면을 참조함으로써, 전술한 예시적인 실시예들과 기술적 특징들에 더하여, 추가적인 실시예와 기술적 특징들이 이해될 수 있을 것이다.
본 개시의 전술한 특징들 및 기타 특징들은, 첨부 도면을 참조하여 이하의 설명으로부터 충분히 분명해질 것이다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시예만을 도시한 것이고, 따라서 그 범위를 제한하는 것으로 간주되어서는 안되는 것을 이해하면서, 본 개시는 첨부된 도면의 사용을 통하여, 더 구체적이고 상세하게 기술될 것이다.
도 1a는 블록체인 네트워크를 이용하여 데이터 관리 서비스를 제공하기 위한 종래 블록체인 시스템의 아키텍처이고,
도 1b는 도 1a의 종래 블록체인 시스템에서 사용되는 블록체인 내 블록의 구조를 나타내는 도면이고,
도 2a는 본 개시의 일부 실시예에 따라, 데이터 관리 서비스를 제공하기 위한 예시적인 블록체인 시스템의 아키텍처이고,
도 2b는 도 2a의 예시적인 블록체인 시스템에서 사용되는 블록체인 내 블록의 구조를 나타내는 도면이고,
도 3은 본 개시의 일부 실시예에 따른 블록체인 네트워크 처리 장치를 도시하는 블록도이고,
도 4는 본 개시의 일부 실시예에 따라, 블록체인 네트워크에서 데이터를 등록하는 프로세스를 나타내는 흐름도이고,
도 5는 본 개시의 일부 실시예에 따라, 블록체인 네트워크에 등록된 데이터에 대한 검증 프로세스를 나타내는 흐름도이고,
도 6은 본 개시의 일부 실시예에 따라, 블록체인 네트워크에 등록된 데이터에 대한 삭제 프로세스를 나타내는 흐름도이고,
도 7은 본 개시의 적어도 일부 실시예에 따라, 블록체인 네트워크에서의 프로세스를 처리하는 데 이용될 수 있는 예시적인 컴퓨터 프로그램 제품을 도시한다.
이하, 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 구현예 및 실시예를 상세히 설명한다. 그러나, 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 구현예 및 실시예에 한정되지 않는다.
본 개시의 전술한 특징들 및 기타 특징들은, 첨부 도면을 참조하여 이하의 설명으로부터 충분히 분명해질 것이다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시예만을 도시한 것이고, 따라서 그 범위를 제한하는 것으로 간주되어서는 안되는 것을 이해하면서, 본 개시는 첨부된 도면의 사용을 통하여, 더 구체적이고 상세하게 기술될 것이다.
본 개시는 일반적으로, 블록체인 네트워크에서의 프로세스를 처리하기 위한 장치, 시스템, 방법, 컴퓨터 프로그램 및 이를 저장하는 컴퓨터 판독가능 저장 매체에 관한 것이다.
도 1a는 블록체인 네트워크를 이용하여 데이터 관리 서비스를 제공하기 위한 종래 블록체인 시스템(100)의 아키텍처이다. 블록체인 시스템(100)은 서비스 액세스 장치(110), 블록체인 네트워크(120) 및 외부의 오프체인 데이터베이스(DB)(150)를 포함한다.
서비스 액세스 장치(110)는 사용자가 데이터 관리 서비스에 접근하고자 하는 경우 이용하는 컴퓨팅 장치이며, 블록체인 네트워크(120)와 외부의 오프체인 DB에 접근하기 위한 어플리케이션을 구동한다. 서비스 액세스 장치(110)는 예컨대, 다양한 유형의 컴퓨팅 장치가 이용될 수 있으며, 예컨대, WAS(Web Application Server)와 같은 형태로 구현될 수 있다.
블록체인 네트워크(120)는 블록체인(140)과 스테이트 DB(130)를 포함한다. 블록체인 네트워크(120)가 미리 정해진 컴퓨팅 장치가 노드로서 동작하는 프라이빗 블록체인(private blockchain)으로 구현되는 경우, 시스템(100)의 운영 비용, 이용 용이성, 속도, 안정성 등의 측면에서 이점을 가지지만, 본 개시는 이에 제한되지 않는다. 다른 구현예에서, 블록체인 네트워크(120)는 퍼블릭 블록체인(public blockchain)의 구조로 구현되는 것도 가능하다.
블록체인(140)은 복수의 노드(142-1, 142-2, 142-3, ..., 142-n)에 의해 운용된다. 복수의 노드(142-1, 142-2, 142-3, ..., 142-n) 각각은 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 단일 컴퓨팅 장치; 또는 서버 팜(server farm), 분산형 네트워크, 클라우드 컴퓨팅 구성과 같이 복수의 컴퓨팅 장치를 포함하는 복수 컴퓨팅 구성일 수 있으나, 이에 제한되지 않는다. 예컨대, 둘 이상의 노드가 단일 컴퓨팅 장치에서 가상 노드의 형태로 구현되는 것 또한 가능하다. 복수의 노드(142-1, 142-2, 142-3, ..., 142-n) 각각은 블록 및 트랜잭션을 생성하고, 생성된 블록 및 트랜잭션을 연결된 다른 노드로 전파하고, 수신된 블록과 트랜잭션을 검증하는 기능을 수행한다. 이러한 블록체인(140)은 스마트 컨트랙트 기능을 포함한다.
도 1b는 도 1a의 종래 블록체인 시스템에서 사용되는 블록체인 내 블록(160)의 구조를 나타내는 도면이다. 도 1b에 도시된 바와 같이, 블록(160)은 블록 해시부(162), 블록 헤더부(164) 및 블록 바디부(166)를 포함한다. 블록 해시부(162)는 블록 해시 값을 포함하며, 이는 블록(160)을 식별하는 고유 값에 해당한다. 블록 해시 값은 아래 설명되는 바와 같이, 블록(160) 내의 블록 헤더부(164) 및 블록 바디부(166)에 포함된 데이터에 기초하여 연산된다. 블록 헤더부(164)는 블록체인 기법의 유형에 따라 다양한 값을 포함한다. 블록 헤더부(164)는 적어도, 이전 블록 해시 값 및 데이터 해시 값을 포함할 수 있다. 이전 블록 해시 값은 블록체인 내에서 해당 블록의 직전의 블록인 이전 블록(previous block)의 블록 해시 값이다. 데이터 해시 값은 블록 바디부(166)에 저장되는 하나 이상의 트랜잭션의 데이터에 기초하여 결정된다. 일부 선택적인 예시에서, 블록 헤더부(164)는 현재 블록의 깊이 값, 블록 생성 시각 값, 프로토콜 버전 값, 난이도 설정 값(nonce) 중 적어도 하나를 더 포함할 수 있다.
블록 바디부(166)는 예컨대, "트랜잭션 n.1", "트랜잭션 n.2" 등과 같은 하나 이상의 트랜잭션을 포함할 수 있다. 트랜잭션이 생성되면, 도 1a의 노드(142-1, 142-2, 142-3, ..., 142-n) 중 하나로부터 다른 노드(142-1, 142-2, 142-3, ..., 142-n) 전파되어 블록체인 합의가 수행된다. 블록(160) 내에 포함될 트랜잭션의 수 또는 사이즈는 구현예에 따라 미리 정해질 수 있다. 각각의 트랜잭션에는 블록체인의 구현예에 따라 요구되는 평문 데이터가 포함된다. 블록 바디부(166)에 저장되는 트랜잭션이 미리 정해진 기간, 미리 정해진 트랜잭션의 수 등과 같은 미리 정해진 조건에 만족하는 경우, 블록 바디부(166)에 포함된 하나 이상의 트랜잭션과 연관된 값으로부터 블록 헤더부(164)의 데이터 해시 값이 연산된다. 예컨대, 데이터 해시 값은 머클 트리(Merkle tree) 구조를 이용하여 머클 루트(Merkle root)를 연산함으로써 획득할 수 있다. 이후, 이러한 데이터 해시 값을 포함하는 블록 헤더부(164) 내 다양한 값에 기초하여, 블록 해시 값이 연산되어, 결과적으로 블록(160)이 생성(완성)된다. 이와 같이 생성된 블록(160)은 각 노드(142-1, 142-2, 142-3, ..., 142-n)에 전파되고, 전파된 블록(160)에 대한 합의 프로세스가 수행되며, 블록(160)이 기존 블록체인(140)에 추가된다.
도 1a로 돌아와, 스테이트 DB(130)는 블록체인(140) 내 노드(142-1, 142-2, 142-3, ..., 142-n)에 연결된다. 스테이트 DB(130)는 월드 스테이트 DB로도 지칭되며 예컨대, 레벨 DB 또는 카우치 DB(COUCH DB)가 이용된다. 분산 원장의 특성상, 블록체인(140)은 데이터의 변경 이력을 모두 저장하고, 보통 외부에서 접근 불가능하다. 이러한 블록체인(140)에 저장된 데이터의 현재 상태를 확인하기 위하여 스테이트 DB(130)가 이용되며, 스테이트 DB(130)는 블록체인(140)과 통신 가능하고, 외부에서 접근 가능한 저장소이지만 데이터의 추가만이 가능하다. 스테이트 DB(130)는 데이터의 식별자인 키(key)와 데이터인 값(Value)의 쌍, 즉, 키-값 쌍을 저장하며, 동일한 키에 대해서 다수의 데이터, 즉 변경된 이력의 데이터가 저장된다. 따라서, 스테이트 DB는 데이터의 현재 값을 제공할 수 있다. 스테이트 DB(130)는 또한 데이터를 등록한 등록일과 데이터의 수정에 관한 버전 값을 더 포함할 수 있다. 이하에서는 스테이트 DB(130)에 추가되는 데이터를 스테이트 데이터로 지칭하며, 여기서, 스테이트 데이터는 특정 데이터 및 그러한 특정 데이터에 관한, 상술한 값, 예컨대, 버전 값, 등록일 등을 포함한다.
외부 오프체인 DB(150)는 외부에서 접근 가능하고, 기록 및 수정이 가능한 DB로서, 예컨대 관계형 데이터베이스(Relational Database Managing System; RDBMS)이며, 구조화 질의어(Structured Query Language)를 처리할 수 있는 기능을 가지므로, 사용자는 외부 오프체인 DB(150)를 통해 데이터를 쉽게 조회할 수 있다. 이러한 외부 오프체인 DB(150)은, 도 1a에 도시된 바와 같이, 블록체인 네트워크(120)와 결합하여 운용되는 경우, 데이터가 블록체인 네트워크(120)에 의해 검증(validation)되었는지 여부를 나타내는 데이터를 더 포함한다.
이러한 종래 블록체인 시스템(100)의 아키텍처에서, 사용자가 평문 데이터를 등록하고자 하는 경우, 서비스 액세스 장치(110)는 다음과 같은 프로세스를 통해 평문 데이터의 등록을 수행한다. 서비스 액세스 장치(110)가 사용자로부터 평문 데이터의 등록 요청을 입력받으면, 평문 데이터를 외부 오프체인 DB(150)에 전송하여 외부 오프체인 DB(150) 상에 평문 데이터를 등록한다. 서비스 액세스 장치(110)가 외부 오프체인 DB(150)로부터 등록의 성공에 대한 신호를 수신하면, 평문 데이터를 블록체인 네트워크(120)에 전송한다. 평문 데이터가 블록체인 네트워크(120)에 전송되면, 노드(142-1)는 이러한 평문 데이터를 수신하고, 데이터를 포함하는 트랜잭션을 생성하여, 잘 알려진 방식으로, 트랜잭션을 블록에 포함시킴으로써, 블록체인(140)에 추가한다. 노드(142-1)가 평문 데이터를 포함하는 트랜잭션이 블록체인(140)에 정상적으로 추가되었다는 블록체인 합의를 획득하면, 평문 데이터를 포함하는 스테이트 데이터를 스테이트 DB(130)에 등록한다. 이후, 서비스 액세스 장치(110)가 스테이트 데이터가 정상적으로 등록되었다는 신호를 수신하는 것에 응답하여, 외부 오프체인 DB(150)로 해당 평문 데이터에 대한 블록체인 상태를 전송하여, 외부 오프체인 DB(150)로 하여금 평문 데이터의 블록체인 상태를 갱신하도록 한다. 이와 같이, 종래 블록체인 시스템(100)에서는 하나의 평문 데이터를 등록하기 위해서, 오프체인 DB(150)로의 데이터 등록, 블록체인(140)으로의 데이터 등록, 스테이트 DB(130)로의 데이터 등록 및 오프체인 DB(150)로의 데이터 갱신을 포함하는 많은 프로세스가 순차적으로 수행되어야 하므로, 종래 블록체인 시스템(100)은 처리 능력이 낮고, 스테이트 DB(130)와 오프체인 DB(150)에 등록된 데이터 간의 불일치가 발생될 가능성이 비교적 높았다.
이하에서는, 본 개시에 따른 블록체인 시스템이 설명된다.
블록체인 시스템의 아키텍처
도 2a는 본 개시의 일부 실시예에 따라, 데이터 관리 서비스를 제공하기 위한 예시적인 블록체인 시스템(200)의 아키텍처이다. 예시적인 블록체인 시스템(200)은 서비스 액세스 장치(210)와 블록체인 네트워크(220)를 포함한다. 블록체인 네트워크(220)는, 도 2a에 도시된 바와 같이, 블록체인(240), 스테이트 DB(230), 오프체인 DB(250) 및 블록체인 네트워크 처리 장치(300)를 포함한다. 도 2a에 도시된, 서비스 액세스 장치(210), 블록체인 네트워크(220), 블록체인(240), 스테이트 DB(230), 오프체인 DB(250) 및 노드(242-1, 242-2, 242-3, ..., 242-n)에 관한 설명은 도 1a에 관하여 설명한 서비스 액세스 장치(110), 블록체인 네트워크(120), 블록체인(140), 스테이트 DB(130), 오프체인 DB(150) 및 노드(142-1, 142-2, 142-3, ..., 142-n)에 각각 대응되므로, 이하에서는 설명의 명료함을 위하여, 중복된 설명을 생략하고, 도 1a와 차이점이 있는 부분에 초점을 두어 설명한다.
도 2a에 도시된 블록체인 시스템(200)은 도 1a에서 설명된 블록체인 시스템(100)과 적어도 아키텍처의 측면에서 상이하므로, 그에 따른 프로세스도 상이하다. 이러한 점에서, 서비스 액세스 장치(210)는 도 1a의 서비스 액세스 장치(110)와 비교하여 이하에서 설명되는 본 개시에 따른 프로세스를 수행하기 위한 소프트웨어적인 구성이 상이하다. 일부 실시예에서, 서비스 액세스 장치(210)는 평문 데이터의 등록, 수정, 삭제 및 조회를 위하여 블록체인 네트워크(220)에 접근한다. 서비스 액세스 장치(210)는 예컨대, 평문 데이터의 등록, 수정 및 삭제를 위하여, 블록체인 네트워크(220) 내 노드(242-1) 또는 그러한 노드(242-1)에 연결된 블록체인 네트워크 처리 장치(300)에 접근할 수 있고, 평문 데이터의 조회를 위하여, 블록체인 네트워크 처리 장치(300)에 접근할 수 있다.
블록체인 네트워크(220)는 블록체인(240), 스테이트 DB(230), 오프체인 DB(250) 및 블록체인 네트워크 처리 장치(300)를 포함한다. 도 1a와 비교하여 오프체인 DB(250)가, 도 2a에 도시된 바와 같이, 블록체인 네트워크(220)의 내부에 있다는 점이 상이하지만, 서비스 액세스 장치(210)가 오프체인 DB(250) 직접 접속하지 않는 다는 점에서 오프체인 DB(250)가 블록체인 네트워크(220) 내부에 있는 것으로 표현된 것이며, 블록체인 네트워크(220)의 범위는 개념적인 것이므로, 통상의 기술자가 오프체인 DB(250)가 블록체인 네트워크(220) 내부에 있지 않다고 이해하는 것도 가능하다. 블록체인(240) 내 블록(260)은 도 2b에 도시된다. 도 2b에 도시된 블록(260)은 블록 바디부(266)를 제외하고는 도 1b의 블록(160)과 동일하고, 블록 바디부(266)는 도 1b의 블록 바디부(166)와 비교하여, 트랜잭션에 평문 데이터 대신, 암호화된 평문 데이터를 포함한다는 점을 제외하고는 동일하므로, 중복된 설명은 생략한다. 본 개시의 일부 실시예에 따르면, 평문 데이터는 블록체인(240)에 등록되기 전에 암호화된다. 이러한 암호화는 블록체인(140)의 스마트 컨트랙트에 의해 수행될 수 있다. 스마트 컨트랙트는 평문 데이터를 암호화하기 위하여, 대칭적 암호화 기법, 비대칭적 암호화 기법 및 이들의 임의의 조합을 이용할 수 있다.
도 2a에 도시된 바와 같이, 스테이트 DB(230)는 스테이트 DB(130)와 유사하게 데이터의 식별자인 키(key)와 데이터인 값(Value)의 쌍, 즉, 키-값 쌍을 저장하지만, 값이 평문 데이터가 아닌 평문 데이터의 해시 값이라는 점에서 스테이트 DB(130)와 상이하다. 또한, 스테이트 DB(230)는 평문 데이터를 트랜잭션에 포함시키기 전에 암호화하는 데 이용한 암호키의 적어도 일부를 저장한다. 일부 예시에서, 암호키의 일부가 스테이트 DB(230)에 저장되는 경우, 암호키의 나머지 일부가 오프체인 DB(250)에 저장된다. 이러한 예시에서, 오프체인 DB(250)에 저장된 평문 데이터와 암호키의 일부를 삭제하는 경우, 결과적으로 평문 데이터가 복구 불가능하게 되어, 블록체인 네트워크(220)에 등록된 평문 데이터를 실질적으로 삭제하는 것이 가능하다. 일부 다른 예시에서, 암호키의 전부를 스테이트 DB(230)에 저장함으로써 평문 데이터를 복구할 수 있는 가능성을 남길 수 있다.
블록체인 네트워크 처리 장치(300)는 블록체인(240), 스테이트 DB(230) 및 오프체인 DB(250)에 연결되며, 스테이트 DB(230) 및/또는 오프체인 DB(250)에 대하여, 등록, 수정, 삭제, 조회 등의 다양한 프로세스를 수행할 수 있다. 일부 예시에서, 서비스 액세스 장치(210)는 예컨대, 데이터의 조회와 같은 특정 프로세스를 수행하기 위하여, 블록체인 네트워크 처리 장치(300)에 접근할 수 있다. 블록체인 네트워크 처리 장치(300)는 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 단일 컴퓨팅 장치; 또는 서버 팜(server farm), 분산형 네트워크, 클라우드 컴퓨팅 구성과 같이 복수의 컴퓨팅 장치를 포함하는 복수 컴퓨팅 구성일 수 있으나, 이에 제한되지 않는다. 도 2a에서 블록체인 네트워크 처리 장치(300)가 노드(242-1, 242-2, …242-n)과 별개의 컴퓨팅 구성인 것으로 도시되었으나, 이에 제한되지 않고, 일부 예시에서는 노드를 구현하는 컴퓨팅 장치에서 구현되는 것도 가능하다.
도 3은 본 개시의 일부 실시예에 따른 블록체인 네트워크 처리 장치(300)를 도시하는 블록도이다. 블록체인 네트워크 처리 장치(300)는 도 3에 도시된 바와 같이, 프로세서(310), 메모리(320) 및 통신부(330)를 포함한다. 메모리(320)에는 데이터 검증 프로그램(324)이 저장된다. 이러한 데이터 검증 프로그램(324)은 프로세서(310)에 의해 실행되며, 실행되는 경우, 이하에서 상세히 설명되는 데이터의 등록/수정 프로세스, 삭제 프로세스, 검증 프로세스, 조회 프로세스 등을 수행할 수 있다. 일부 예시에서, 메모리(320)는 스마트 컨트랙트(322)를 더 저장할 수 있다. 데이터 검증 프로그램(324)은 스마트 컨트랙트(322)를 이용하여 블록체인 네트워크(220)내 다양한 프로세스를 수행할 수 있다. 통신부(330)는 서비스 액세스 장치(210) 및 블록체인(240) 내 노드(242-1, 242-2, …242-n)와 통신을 수행할 수 있으며, 본 개시에서 설명되는 다양한 데이터를 송신하거나 수신할 수 있다. 도 3의 각 구성은 분리된 컴포넌트로 도시되었으나, 개시된 대상의 범위를 벗어나지 않으면서 다양한 컴포넌트가 추가적인 컴포넌트로 분리될 수 있거나 더 적은 컴포넌트로 조합될 수 있거나 또는 제거될 수 있다. 당업자라면 컴포넌트의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어 또는 그들의 임의의 조합에 의해, 개별적으로 및/또는 종합적으로 구현될 수 있음을 이해할 것이다.
블록체인 시스템(200)은 이상 설명된 바와 같이, 블록체인 네트워크 처리 장치(300)가 블록 체인 네트워크(220) 내부에서 스테이트 DB(230) 및 오프체인 DB(250) 모두에 연결되어 프로세스를 일괄적으로 수행하므로, 다양한 프로세스에 대한 절차를 구조적으로 단순화할 수 있으므로, 스테이트 DB(230)와 오프체인 DB(250)에 등록된 데이터 간의 불일치의 발생 가능성을 낮출 수 있다.
이하에서는 블록체인 네트워크 처리 장치(300)에서 수행되는 다양한 프로세스를 전술한 도 2a 와 후술할 도 4 내지 6을 참조하여 상세히 설명한다.
도 4는 본 개시의 일부 실시예에 따라, 블록체인 네트워크에서 데이터를 등록하는 프로세스(400)를 나타내는 흐름도이고, 도 5는 본 개시의 일부 실시예에 따라, 블록체인 네트워크에 등록된 데이터에 대한 검증 프로세스(500)를 나타내는 흐름도이고, 도 6은 본 개시의 일부 실시예에 따라, 블록체인 네트워크에 등록된 데이터에 대한 삭제 프로세스(600)를 나타내는 흐름도이다.
예컨대, 예시적인 프로세스(400, 500, 600)는 도 2a의 블록체인 네트워크 처리 장치(300)와 같은 컴퓨팅 장치의 제어 하에서 수행될 수 있다. 도 4 내지 6에 도시된 프로세스(400, 500, 600)는 도 4 내지 6에 도시된 블록에 의하여 예시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 한편, 도 4 내지 6에서 예시된 개략적인 동작들은 예시로서만 제공되고, 개시된 실시예의 본질에서 벗어나지 않으면서, 동작들 중 일부가 선택적일 수 있거나, 더 적은 동작으로 조합될 수 있거나, 추가적인 동작으로 확장될 수 있다.
데이터 등록 프로세스
데이터, 예컨대, 평문 데이터를 블록체인 시스템(200)에 등록하고자 하는 경우, 서비스 액세스 장치(210)는 평문 데이터를 블록체인 네트워크(220)로 전송한다. 노드(242-1)는 평문 데이터를 수신할 수 있다(S410). 여기서, 데이터 등록은 새로운 데이터를 등록하는 것뿐만 아니라 데이터를 수정하는 것도 포함하는 개념이다. 노드(242-1)는 서비스 액세스 장치(210)로부터 평문 데이터를 직접 수신할 수 있으나, 이에 제한되지 않으며, 블록체인 네트워크 처리 장치(300)를 통하여 수신하는 것도 가능하다.
일부 예시에서, 노드(242-1)는 암호화키를 이용하여 수신된 평문 데이터를 암호화하여 암호화된 평문 데이터를 생성할 수 있다(S420). 이후, 노드(242-1)는 암호화된 평문 데이터를 포함하는 트랜잭션을 생성할 수 있으며, 그러한 트랜잭션을 포함하는 블록을 생성하여 해당 블록을 블록체인(240)에 등록할 수 있다(S430). 이후, 노드(242-1)는 구현된 블록체인(240)의 규약에 따라 블록체인 노드 간의 합의 프로세스를 수행할 수 있다(S440).
블록(S410~S440)은 블록체인 네트워크 처리 장치(300)가 노드(242-1)가 구현되는 컴퓨팅 장치에서 구현되는 경우, 블록체인 네트워크 처리 장치(300)에서 수행된다고 할 수 있으나, 별도의 컴퓨팅 장치에서 구현되는 경우, 블록(S410~S440)은 블록체인 네트워크 처리 장치(300)에서 수행되지 않을 수 있다.
블록(S450)에서, 블록체인 네트워크 처리 장치(300)는 평문 데이터를 포함하는 트랜잭션이 블록체인에 추가되었다는 블록체인 합의를 획득할 수 있다. 일부 예시에서, 블록체인 네트워크 처리 장치(300)는 평문 데이터의 등록에 대한 블록체인 합의를 노드(242-1)로부터 수신할 수 있다.
블록(S460)에서, 블록(S450)에서의 블록체인 합의의 획득에 응답하여, 블록체인 네트워크 처리 장치(300)는 스테이트 데이터를 스테이트 DB(230)에 등록할 수 있다. 스테이트 데이터는 평문 데이터의 식별자(키), 암호화 키 중 적어도 일부 및 평문 데이터의 해시 데이터(제1 해시 데이터)를 포함할 수 있다. 일부 예시에서, 블록체인 네트워크 처리 장치(300)는 적어도 평문 데이터 및 암호화 키를 수신할 수 있다. 블록체인 네트워크 처리 장치(300)는, 예컨대, SHA 256함수를 이용하여 평문 데이터를 해시 데이터로 변환할 수 있다. 일부 실시예에서, 블록체인 네트워크 처리 장치(300)는 암호화 키를 분할할 수 있다. 예컨대, 암호화 키는 제1 부분 및 제2 부분으로 분할될 수 있다. 암호화 키를 분할하는 방식에는 제한이 없다(ex 홀수 문자는 제1 부분, 짝수 문자는 제2 부분 등으로도 분할 가능). 블록체인 네트워크 처리 장치(300)는 평문 데이터의 식별자, 변환된 해시 데이터 및 암호화 키의 제1 부분을 포함하는 스테이트 데이터를 생성할 수 있다. 일부 다른 실시예에서, 블록체인 네트워크 처리 장치는 스테이트 데이터에 암호화 키 전체를 포함시킬 수 있다. 블록체인 네트워크 처리 장치(300)는 생성된 스테이트 데이터를 스테이트 DB(230)에 전송하여 등록을 수행할 수 있다.
블록(S470)에서, 블록체인 네트워크 처리 장치(300)는 오프체인 데이터를 오프체인 DB(250)에 등록할 수 있다. 일부 실시예에서, 블록(S460)가 수행된 것에 응답하여 블록(S470)이 수행되지만, 이에 제한되지 않으며, 블록(S460)과 동시에 수행되는 것이 가능하다. 블록(S470)이 블록(S460)과 동시에 수행되는 경우, 블록(S450)에서의 블록체인 합의의 획득에 응답하여, 수행될 수 있다. 오프체인 데이터는 평문 데이터, 평문 데이터의 식별자(키)를 포함할 수 있다. 블록체인 네트워크 처리 장치(300)는 오프체인 데이터를 생성하여 스테이트 DB(230)에 전송함으로써 스테이트 DB(230) 상으로의 등록을 수행할 수 있다.
일부 실시예에서, 데이터를 수정하는 경우, 블록(S460) 및 블록(S470)은 블록체인 네트워크 장치(300)는 평문 데이터(키)의 식별자에 기초하여, 스테이트 DB(230)와 오프체인 DB(250)을 조회할 수 있다.
블록(S460)과 블록(S470)은 각각의 평문 데이터 마다 수행되는 것으로 설명되었으나, 복수의 트랜잭션, 즉 복수의 평문 데이터에 대하여 일괄 수행하도록 함으로써, 블록체인 시스템(200)의 성능을 더욱 향상시킬 수 있다. 일부 구현예에서, 3,000 ~ 5,000 개의 트랜잭션에 대하여, 배치 처리하도록 구현하였으나, 본 개시는 이에 제한되지 않으며, 장치의 기계적 성능, 네트워크 프로토콜, 요구되는 구현 조건 등을 고려하여, 다른 수의 트랜잭션에 대한 배치 처리를 수행하도록 하는 것도 가능하다.
데이터 검증 프로세스
블록체인 네트워크 처리 장치(300)는 이하에서 설명되는 검증 프로세스를 수행할 수 있다. 블록체인 네트워크 처리 장치(300)는 오프체인 DB(250)에 저장된 데이터에 대한 무결성을 검증하기 위한 별도의 프로세스 뿐만 아니라, 블록체인 시스템(200)에 의한 전반적인 프로세스 각각에서 수행될 수 있다. 예컨대, 블록체인 네트워크 처리 장치(300)가 서비스 액세스 장치(210)로부터 데이터 조회에 대한 요청을 수신한 경우, 검증 프로세스가 수행될 수 있다. 또한, 블록체인 네트워크 처리 장치(300)는 노드(242-1) 또는 서비스 액세스 장치(210)로부터 데이터를 수정하기 위한 수정 요청을 수신하는 경우, 기존에 저장된 데이터에 대한 검증 프로세스를 수행할 수 있다.
도 5는 본 개시의 일부 실시예에 따라, 블록체인 네트워크에 등록된 데이터에 대한 검증 프로세스를 나타내는 흐름도이다. 블록(S510)에서, 블록체인 네트워크 처리 장치(300)는 스테이트 DB(230)로부터 평문 데이터의 식별자 및 평문 데이터로부터 변환되어 스테이트 DB(230)에 저장된 제1 해시 데이터를 판독할 수 있다. 블록(S520)에서, 블록체인 네트워크 처리 장치(300)는 블록(S510)에서 식별된 평문 데이터의 식별자를 이용하여, 오프체인 DB(250)로부터 평문 데이터를 판독할 수 있다. 블록(S510)과 블록(S520)이 수행되는 순서는 요구되는 구현예에 따라, 반대일 수 있다.
블록(S530)에서, 블록체인 네트워크 처리 장치(300)는 블록(S520)에서 판독된 평문 데이터를 해시 함수, 예컨대, SHA 256함수에 적용하여, 제2 해시 데이터를 생성할 수 있다. 블록(S540)에서, 블록체인 네트워크 처리 장치(300)는 블록(S510)에서 판독한 제1 해시 데이터와 블록(S520)에서 판독한 제2 해시 데이터가 동일한지 여부를 결정한다.
블록(S540)에서, 제1 해시 데이터가 제2 해시 데이터가 동일하다고 결정된 경우(Y), 블록체인 네트워크 처리 장치(300)는 오프체인 DB(250)에 등록된 해당 평문 데이터가 유효하다는 응답을 반환할 수 있다. 데이터를 조회하기 위한 조회 프로세스의 경우, 조회된 평문 데이터를 반환할 수 있다.
블록(S550)에서, 제1 해시 데이터가 제2 해시 데이터가 동일하지 않다고 결정된 경우(N), 블록체인 네트워크 처리 장치(300)는 평문 데이터의 식별자를 이용하여, 스테이트 DB(230)로부터 암호화 키를 획득한다. 암호화 키의 일부가 스테이트 DB(230)에 저장되고 나머지 일부가 오프체인 DB(250)에 저장되는 일부 예시에서, 블록체인 네트워크 처리 장치(300)는 스테이트 DB(230)와 오프체인 DB(250)로부터 암호화 키의 부분을 수집하여 암호화 키를 복구한다.
블록(S560)에서, 블록체인 네트워크 처리 장치(300)는 블록(S550)에서 획득한 암호화 키 또는 블록(S510)에서 획득한 평문 데이터의 식별자를 이용하여, 블록체인(240)으로부터 트랜잭션에 포함된 암호화된 평문 데이터를 판독한다.
블록(S570)에서, 블록체인 네트워크 처리 장치(300)는 블록(S550)에서 획득한 암호화 키를 이용하여, 블록(S560)에서 판독한 암호화된 평문 데이터를 복호화하여 평문 데이터를 복구한다.
블록(S580)에서, 블록체인 네트워크 처리 장치(300)는 블록(S570)에서 복구된 평문 데이터를 포함하는 부정합 발생 보고를 생성할 수 있다. 부정합 발생 보고는 스테이트 DB(230)에 저장된 데이터와 오프체인 DB(250)에 저장된 데이터가 상이하며, 따라서, 조작의 가능성이 있음을 나타낼 수 있다. 또한, 부정합 발생 보고는 블록체인(240)으로부터 복구된 평문 데이터를 포함함으로서, 원 평문 데이터가 무엇인지 통지할 수 있다. 부정합 발생 보고에 복구된 평문 데이터가 무엇인지 포함하는 것으로 설명되었으나, 본 개시는 이에 제한되지 않으며, 블록체인(240)으로부터 복구된 평문 데이터를 부정합 발생 보고에 포함시킬지 여부에 대해서는 통상의 기술자가 요구되는 구현예에 따라 결정할 수 있다.
또한, 전술한 바와 같이, 일부 실시예에 따라, 블록(S530)에서, 제1 해시 데이터와 제2 해시 데이터가 동일한 경우, 데이터가 유효하다고 결정하는 것으로 설명되었으나, 본 개시는 이에 제한되지 않고 다른 실시예도 가능하다. 일부 다른 실시예에서, 블록체인 네트워크 처리 장치(300)는 블록(S540)에서 제1 해시 데이터와 제2 해시 데이터가 동일하다고 결정한 이후에, 블록(S550) 내지 블록(S570)을 수행한 뒤 복호화된 평문 데이터와 블록(S520)에서 획득한 평문 데이터를 비교하거나, 복호화된 평문 데이터에 다시 해시 함수를 적용하여 제3 해시 데이터를 생성할 수 있으며, 이를 제1 또는 제2 해시 데이터와 비교함으로써 추가 검증을 수행할 수 있다.
데이터 삭제 프로세스
본 개시에 따르면, 블록체인 시스템(200)은 블록체인(240) 내에 등록된 데이터를 '실질적으로' 삭제할 수 있다. 블록체인(240)은 데이터 구조의 특성상 로그에 저장된 데이터를 삭제할 수 없고, 스테이트 DB(230) 또한 데이터의 추가만이 가능하며, 내부에 저장된 데이터를 삭제할 수 없다. 본 개시에서 데이터를 '실질적으로' 삭제한다는 것은 데이터를 복원할 수 없는 상태로 만드는 것을 의미한다.
일부 실시예에 따르면, 평문 데이터를 암호화한 암호화 키의 일부인 제1 부분은 스테이트 DB(230)에 저장되며, 암호화 키의 나머지 일부인 제2 부분은 오프체인 DB(250)에 저장된다. 블록체인(240)과 스테이트 DB(230)와 다르게, 오프체인 DB(250)는 접근이 가능하며, 삭제가 가능한 유형의 데이터베이스이다. 따라서, 운용자는 오프체인 DB(250)에 저장된 암호화 키의 제2 부분을 삭제할 수 있다. 오프체인 DB(250)에 저장된 제2 부분이 삭제되면, 블록체인 네트워크 처리 장치(300)는 암호화 키를 완전히 복구할 수 없으므로, 블록체인(240)으로부터 평문 데이터를 복구하는 것이 불가능해진다. 이러한 방식으로, 블록체인 내 데이터를 실질적으로 삭제할 수 있다.
한편, 데이터 관리 서비스를 제공하는 다양한 예시에서, 데이터의 자동으로 삭제가 요구된다. 일부 실시예에 따르면, 스테이트 DB(230)에 저장되는 스테이트 데이터는 해당 평문 데이터의 자동 만료 일자(Auto Expire Date), 즉 삭제 예정일에 관한 데이터를 더 포함할 수 있다. 도 6은 본 개시의 일부 실시예에 따라, 블록체인 네트워크에 등록된 데이터에 대한 삭제 프로세스(600)를 나타내는 흐름도이다.
블록(S610)에서, 블록체인 네트워크 처리 장치(300)는 스테이트 데이터의 삭제 예정일을 조회할 수 있다. 블록체인 네트워크 처리 장치(300)는 조회된 삭제 예정일 중 도과된 평문 데이터, 예컨대, 평문 데이터의 식별자를 추출할 수 있다.
블록(S620)에서, 블록체인 네트워크 처리 장치(300)는 삭제 예정일이 도과된 평문 데이터에 대하여, 블록체인(240)에 해당 평문 데이터가 삭제 상태임을 나타내는 트랜잭션을 등록하도록, 요청할 수 있다. 이러한 삭제 요청에는 스마트 컨트랙트가 이용될 수 있으며, 블록체인 네트워크 처리 장치(300)는 노드 중 하나(예컨대, 242-1)와 통신할 수 있다.
블록(S630)에서, 블록체인 네트워크 처리 장치(300)가 트랜잭션이 블록체인(240)에 등록되었다는 합의를 노드(예컨대, 242-1)로부터 획득하면, 스테이트 DB(230)의 상태를 갱신할 수 있다. 일부 예시에서, 블록체인 네트워크 처리 장치(300)는 해당 평문 데이터가 삭제 상태임을 나타내도록, 예컨대, 플래그를 갱신할 수 있다.
블록(S640)에서, 블록체인 네트워크 처리 장치(300)는 오프체인 DB(250) 내 평문 데이터를 삭제할 수 있다. 일부 예시에서, 블록체인 네트워크 처리 장치(300)는 평문 데이터의 삭제와 함께 암호화 키의 일부(제2 부분)를 삭제할 수 있다. 이 경우, 전술한 바와 같이, 해당 평문 데이터는 실질적으로 삭제된다. 암호화 키의 일부가 오프체인 DB(250)에 저장되지 않는 일부 다른 예시에서, 블록체인 네트워크 처리 장치(300)는 암호화 키의 일부를 삭제하지 않을 수 있으나, 스테이트 DB(230)와 블록체인(240)에서 해당 평문 데이터의 상태가 "삭제"된 것으로 표시되므로, 원칙적으로 오프체인 DB(230)와 블록체인(240)으로부터 평문 데이터가 복구되지 못하도록 설정될 수 있다.
이상 설명된 바와 같이, 블록체인(240)에 저장된 데이터를 암호화하여 저장하고, 암호화된 데이터를 복구하기 위한 암호화 키의 적어도 일부를 영구적으로 삭제할 수 있도록 함으로써, 삭제를 필요로 하는 데이터가 실질적으로 복구되지 못하도록 할 수 있다. 따라서, 블록체인 시스템(200)을 활용하면서도, 영구 삭제가 가능하게 되어, 블록체인 시스템(200)의 활용 가능성이 높아진다.
도 7은 본 개시의 적어도 일부 실시예에 따라, 블록체인 네트워크에서의 프로세스를 처리하는 데 이용될 수 있는 예시적인 컴퓨터 프로그램 제품(700)을 도시한다. 예시적인 컴퓨터 프로그램 제품의 예시적인 실시예는 신호 베어링 매체(710)를 이용하여 제공된다. 일부 실시예에서, 하나 이상의 컴퓨터 프로그램 제품(700)의 신호 베어링 매체(710)는 컴퓨터 판독가능 매체(730) 및/또는 기록 가능 매체(740)를 포함할 수 있다.
신호 베어링 매체(710)에 포함된 명령어(720)는 예컨대, 도 2 및 3에서 예시된 블록체인 네트워크 처리 장치(300)와 같은 컴퓨팅 장치에 의해 실행될 수 있다. 블록체인 네트워크는 복수의 노드와 스테이트 DB를 포함한다. 명령어(720)는 암호화된 평문 데이터를 포함하는 트랜잭션이 블록체인에 추가되었다는 블록체인 합의를 획득하기 위한 하나 이상의 명령어; 평문 데이터의 식별자, 평문 데이터를 암호화한 암호화 키 중 적어도 일부 및 평문 데이터의 제1 해시 데이터를 포함하는 스테이트 데이터를 스테이트 DB에 등록하기 위한 하나 이상의 명령어; 및 평문 데이터의 식별자 및 평문 데이터를 포함하는 오프체인 데이터를 오프체인 DB에 등록하기 위한 하나 이상의 명령어 중 적어도 하나를 포함한다.
이상, 본 개시에서 청구하고자 하는 대상에 대해 구체적으로 살펴보았다. 본 개시에서 청구된 대상은 앞서 기술한 특정 구현예로 그 범위가 제한되지 않는다. 예컨대, 어떤 구현예에서는 장치 또는 장치의 조합 상에서 동작 가능하게 사용되는 하드웨어의 형태일 수 있으며, 다른 구현예에서는 소프트웨어 및/또는 펌웨어의 형태로 구현될 수 있고, 또 다른 구현예에서는 신호 베어링 매체, 저장 매체와 같은 하나 이상의 물품을 포함할 수 있다. 여기서, CD-ROM, 컴퓨터 디스크, 플래시 메모리 등과 같은 저장 매체는, 예컨대 컴퓨팅 시스템, 컴퓨팅 플랫폼 또는 기타 시스템과 같은 컴퓨팅 장치에 의하여 실행될 때 앞서 설명한 구현예에 따라 해당 프로세서의 실행을 야기시킬 수 있는 명령을 저장할 수 있다. 이러한 컴퓨팅 장치는 하나 이상의 처리 유닛 또는 프로세서, 디스플레이, 키보드 및/또는 마우스와 같은 하나 이상의 입/출력 장치, 및 정적 랜덤 액세스 메모리, 동적 랜덤 액세스 메모리, 플래시 메모리 및/또는 하드 드라이브와 같은 하나 이상의 메모리를 포함할 수 있다.
한편, 시스템을 하드웨어로 구현할 것인지 아니면 소프트웨어로 구현할 것인지는, 일반적으로 비용 대비 효율의 트레이드오프를 나타내는 설계상 선택 문제이다. 본 개시에서는 프로세스, 시스템, 기타 다른 기술들의 영향을 받을 수 있는 다양한 수단(예를 들어, 하드웨어, 소프트웨어 및/또는 펌웨어)이 있으며, 선호되는 수단은 프로세스 및/또는 시스템 및/또는 다른 기술이 사용되는 맥락(context)에 따라 변경될 것이다. 예를 들어, 구현자가 속도 및 정확성이 가장 중요하다고 결정한다면, 구현자는 주로 하드웨어 및/또는 펌웨어 수단을 선택할 수 있으며, 유연성이 가장 중요하다면, 구현자는 주로 소프트웨어 구현을 선택할 수 있으며; 또는, 다른 대안으로서, 구현자는 하드웨어, 소프트웨어 및/또는 펌웨어의 어떤 결합을 선택할 수 있다.
전술한 상세한 설명에서는 블록도, 흐름도 및/또는 기타 예시를 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 기타 예시는 하나 이상의 기능 및/또는 동작을 포함하게 되며, 당업자라면 블록도, 흐름도 및/또는 기타 예시 내의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 개별적으로 혹은 집합적으로 구현될 수 있다는 점을 이해할 수 있을 것이다. 일 실시예에서, 본 개시에 기재된 대상의 몇몇 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 이와 달리, 본 개시의 실시예의 일부 양상은 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 이들의 실질적으로 임의의 조합으로써 전체적으로 또는 부분적으로 균등하게 집적 회로에서 구현될 수도 있으며, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시에 비추어 당업자의 기술 범위 내에 속하는 것이다. 또한, 당업자라면, 본 개시의 대상의 매커니즘들이 다양한 형태의 프로그램 제품으로 분배될 수 있음을 이해할 것이며, 본 개시의 대상의 예시는 분배를 실제로 수행하는데 사용되는 신호 베어링 매체의 특정 유형과 무관하게 적용됨을 이해할 것이다.
특정 예시적 기법이 다양한 방법 및 시스템을 이용하여 여기에서 기술되고 도시되었으나, 당업자라면, 청구된 대상에서 벗어남이 없이, 다양한 기타의 수정 또는 등가물로의 치환 가능성을 이해할 수 있다. 추가적으로, 여기에 기술된 중심 개념으로부터 벗어남이 없이 특정 상황을 청구된 대상의 교시로 적응시키도록 많은 수정이 이루어질 수 있다. 따라서, 청구된 대상이 개시된 특정 예시로 제한되지 않으나, 그러한 청구된 대상은 또한 첨부된 청구범위 및 그 균등의 범위 내에 들어가는 모든 구현예를 포함할 수 있음이 의도된다.
본 개시 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 본 개시 전체에서, 어떤 부재가 다른 부재 "상에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다. 나아가, 본 개시 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위, 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.

Claims (9)

  1. 컴퓨팅 장치에서 수행되는, 복수의 노드 및 스테이트 데이터베이스(DB)를 포함하는 블록체인 네트워크의 프로세스를 처리하기 위한 방법으로서,
    암호화된 평문 데이터를 포함하는 트랜잭션이 블록체인에 추가되었다는 블록체인 합의를 획득하는 단계;
    상기 평문 데이터를 암호화한 암호화 키 중 적어도 일부, 상기 평문 데이터의 식별자 및 상기 평문 데이터의 제1 해시 데이터를 포함하는 스테이트 데이터를 상기 스테이트 DB에 등록하는 단계; 및
    상기 평문 데이터의 식별자 및 상기 평문 데이터를 포함하는 오프체인 데이터를 오프체인 DB에 등록하는 단계
    를 포함하고,
    상기 스테이트 DB로부터 상기 평문 데이터의 식별자 및 상기 제1 해시 데이터를 판독하는 단계;
    상기 판독된 상기 평문 데이터의 식별자를 이용하여, 상기 오프체인 DB로부터 상기 평문 데이터를 판독하는 단계;
    상기 판독된 평문 데이터로부터 제2 해시 데이터를 생성하는 단계;
    상기 제1 해시 데이터와 상기 제2 해시 데이터를 비교하여, 상기 제1 해시 데이터와 상기 제2 해시 데이터가 상이하다고 결정하는 단계; 및
    상기 오프체인 DB 내 평문 데이터에 대한 부정합 발생 보고를 생성하는 단계
    를 더 포함하며,
    상기 제1 해시 데이터와 상기 제2 해시 데이터가 상이하다고 결정하는 단계에 응답하여, 상기 스테이트 DB로부터의 상기 암호화 키 중 적어도 일부에 기초하여, 상기 암호화 키를 획득하는 단계;
    상기 암호화 키를 이용하여, 상기 블록체인으로부터 상기 트랜잭션에 포함된 암호화된 상기 평문 데이터를 판독하는 단계; 및
    상기 암호화 키를 이용하여 암호화된 상기 평문 데이터를 복호화하는 단계
    를 더 포함하고,
    상기 부정합 발생 보고는 상기 복호화하는 단계에서 복호화된 평문 데이터를 포함하는 블록체인 네트워크의 프로세스를 처리하기 위한 방법.
  2. 제1항에 있어서,
    상기 획득하는 단계 이전에,
    상기 평문 데이터 및 상기 암호화 키를 이용하여, 암호화된 상기 평문 데이터를 생성하는 단계;
    상기 암호화된 평문 데이터를 포함하는 상기 트랜잭션을 생성하여 상기 블록체인에 등록하는 단계
    를 더 포함하는 블록체인 네트워크의 프로세스를 처리하기 위한 방법.
  3. 제1항에 있어서,
    상기 스테이트 DB에 등록하는 단계 및 상기 오프체인 DB에 등록하는 단계는 복수의 트랜잭션에 대하여 배치 처리되는 것인, 블록체인 네트워크의 프로세스를 처리하기 위한 방법.
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 스테이트 데이터는 상기 평문 데이터의 삭제 예정일을 포함하고,
    상기 블록체인 네트워크의 프로세스를 처리하기 위한 방법은
    상기 평문 데이터의 삭제 예정일이 도과되었다고 결정하는 삭제 결정 단계; 및
    상기 삭제 결정 단계에 응답하여, 상기 블록체인에 상기 평문 데이터가 삭제되었음을 나타내는 트랜잭션을 등록하고, 상기 평문 데이터가 삭제 상태임을 나타내도록 상기 스테이트 DB를 갱신하며, 상기 오프체인 DB 내 상기 평문 데이터를 삭제하는 단계
    를 더 포함하는 블록체인 네트워크의 프로세스를 처리하기 위한 방법.
  7. 컴퓨팅 장치에서 수행되는, 복수의 노드 및 스테이트 데이터베이스(DB)를 포함하는 블록체인 네트워크의 프로세스를 처리하기 위한 방법으로서,
    암호화된 평문 데이터를 포함하는 트랜잭션이 블록체인에 추가되었다는 블록체인 합의를 획득하는 단계;
    상기 평문 데이터를 암호화한 암호화 키 중 적어도 일부, 상기 평문 데이터의 식별자 및 상기 평문 데이터의 제1 해시 데이터를 포함하는 스테이트 데이터를 상기 스테이트 DB에 등록하는 단계; 및
    상기 평문 데이터의 식별자 및 상기 평문 데이터를 포함하는 오프체인 데이터를 오프체인 DB에 등록하는 단계
    를 포함하고,
    상기 블록체인 합의를 획득하는 단계 이후 및 상기 스테이트 DB에 등록하는 단계 이전에,
    상기 암호화 키를 제1 부분과 제2 부분으로 분할하는 암호화키 분할 단계
    를 더 포함하고,
    상기 스테이트 데이터에 포함되는 상기 암호화 키의 적어도 일부는 상기 제1 부분이고,
    상기 오프체인 DB에는 상기 제2 부분이 더 등록되는 것인, 블록체인 네트워크의 프로세스를 처리하기 위한 방법.
  8. 블록체인 네트워크 처리 장치로서,
    하나 이상의 프로세서;
    복수의 노드 및 스테이트 데이터베이스(DB)를 포함하는 블록체인 네트워크의 프로세스를 처리하기 위한 프로그램을 저장하는 메모리; 및
    상기 복수의 노드 및 상기 스테이트 DB와 통신하는 통신부
    을 포함하고,
    상기 프로그램은 상기 하나 이상의 프로세서에 의해 실행되면, 상기 블록체인 네트워크 처리 장치로 하여금,
    암호화된 평문 데이터를 포함하는 트랜잭션이 블록체인에 추가되었다는 블록체인 합의를 획득하는 동작;
    상기 평문 데이터를 암호화한 암호화 키 중 적어도 일부, 상기 평문 데이터의 식별자 및 상기 평문 데이터의 제1 해시 데이터를 포함하는 스테이트 데이터를 상기 스테이트 DB에 등록하는 동작; 및
    상기 평문 데이터의 식별자 및 상기 평문 데이터를 오프체인 DB에 등록하는 동작
    을 포함하는 동작들을 수행하도록 하고,
    상기 스테이트 DB로부터 상기 평문 데이터의 식별자 및 상기 제1 해시 데이터를 판독하는 동작;
    상기 판독된 상기 평문 데이터의 식별자를 이용하여, 상기 오프체인 DB로부터 상기 평문 데이터를 판독하는 동작;
    상기 판독된 평문 데이터로부터 제2 해시 데이터를 생성하는 동작;
    상기 제1 해시 데이터와 상기 제2 해시 데이터를 비교하여, 상기 제1 해시 데이터와 상기 제2 해시 데이터가 상이하다고 결정하는 동작; 및
    상기 오프체인 DB 내 평문 데이터에 대한 부정합 발생 보고를 생성하는 동작을 포함하는 동작들을 더 수행하도록 하며,
    상기 제1 해시 데이터와 상기 제2 해시 데이터가 상이하다고 결정하는 단계에 응답하여, 상기 스테이트 DB로부터의 상기 암호화 키 중 적어도 일부에 기초하여, 상기 암호화 키를 획득하는 동작;
    상기 암호화 키를 이용하여, 상기 블록체인으로부터 상기 트랜잭션에 포함된 암호화된 상기 평문 데이터를 판독하는 동작; 및
    상기 암호화 키를 이용하여 암호화된 상기 평문 데이터를 복호화하는 동작을 포함하는 동작들을 더 수행하도록 하고,
    상기 부정합 발생 보고는 상기 복호화하는 단계에서 복호화된 평문 데이터를 포함하는 것인, 블록체인 네트워크 처리 장치.
  9. 블록체인 네트워크 처리 장치로서,
    하나 이상의 프로세서;
    복수의 노드 및 스테이트 데이터베이스(DB)를 포함하는 블록체인 네트워크의 프로세스를 처리하기 위한 프로그램을 저장하는 메모리; 및
    상기 복수의 노드 및 상기 스테이트 DB와 통신하는 통신부
    을 포함하고,
    상기 프로그램은 상기 하나 이상의 프로세서에 의해 실행되면, 상기 블록체인 네트워크 처리 장치로 하여금,
    암호화된 평문 데이터를 포함하는 트랜잭션이 블록체인에 추가되었다는 블록체인 합의를 획득하는 동작;
    상기 평문 데이터를 암호화한 암호화 키 중 적어도 일부, 상기 평문 데이터의 식별자 및 상기 평문 데이터의 제1 해시 데이터를 포함하는 스테이트 데이터를 상기 스테이트 DB에 등록하는 동작; 및
    상기 평문 데이터의 식별자 및 상기 평문 데이터를 오프체인 DB에 등록하는 동작
    을 포함하는 동작들을 수행하도록 하고,
    상기 블록체인 합의를 획득하는 동작 이후 및 상기 스테이트 DB에 등록하는 동작 이전에,
    상기 암호화 키를 제1 부분과 제2 부분으로 분할하는 암호화키 분할 동작을 포함하는 동작을 더 수행하도록 하며,
    상기 스테이트 데이터에 포함되는 상기 암호화 키의 적어도 일부는 상기 제1 부분이고,
    상기 오프체인 DB에는 상기 제2 부분이 더 등록되는 것인, 블록체인 네트워크 처리 장치.
KR1020220130800A 2022-10-12 2022-10-12 블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체 KR102511570B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220130800A KR102511570B1 (ko) 2022-10-12 2022-10-12 블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220130800A KR102511570B1 (ko) 2022-10-12 2022-10-12 블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체

Publications (1)

Publication Number Publication Date
KR102511570B1 true KR102511570B1 (ko) 2023-03-16

Family

ID=85985611

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220130800A KR102511570B1 (ko) 2022-10-12 2022-10-12 블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체

Country Status (1)

Country Link
KR (1) KR102511570B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210085389A (ko) * 2019-12-30 2021-07-08 주식회사 안랩 블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법
KR20210142823A (ko) * 2020-05-19 2021-11-26 삼성에스디에스 주식회사 블록체인 기반의 데이터 관리 방법 및 장치
KR20220001644A (ko) 2020-06-30 2022-01-06 주식회사 트러스트디비 Rdbms 기반의 분산원장 관리 시스템 및 방법
KR20220052117A (ko) * 2020-10-20 2022-04-27 주식회사 커먼컴퓨터 트리 구조의 상태 데이터베이스를 포함하는 블록체인에 대한 상태 관리 방법 및 시스템
KR20220109099A (ko) * 2021-01-28 2022-08-04 한국전자통신연구원 블록체인 기반으로 데이터 기밀성과 무결성을 강화한 전력 중개 방법 및 전력 중개 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210085389A (ko) * 2019-12-30 2021-07-08 주식회사 안랩 블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법
KR20210142823A (ko) * 2020-05-19 2021-11-26 삼성에스디에스 주식회사 블록체인 기반의 데이터 관리 방법 및 장치
KR20220001644A (ko) 2020-06-30 2022-01-06 주식회사 트러스트디비 Rdbms 기반의 분산원장 관리 시스템 및 방법
KR20220052117A (ko) * 2020-10-20 2022-04-27 주식회사 커먼컴퓨터 트리 구조의 상태 데이터베이스를 포함하는 블록체인에 대한 상태 관리 방법 및 시스템
KR20220109099A (ko) * 2021-01-28 2022-08-04 한국전자통신연구원 블록체인 기반으로 데이터 기밀성과 무결성을 강화한 전력 중개 방법 및 전력 중개 시스템

Similar Documents

Publication Publication Date Title
JP7044881B2 (ja) 分散型ストレージ方法及び装置、コンピュータ機器及び記憶媒体
US11315110B2 (en) Private resource discovery and subgroup formation on a blockchain
US11425108B2 (en) Blockchain-based service data encryption methods and apparatuses
US20210103581A1 (en) Blockchain based data management system and method thereof
US10410018B2 (en) Cryptographic assurances of data integrity for data crossing trust boundaries
US20180219687A1 (en) Secure sharing
CN111047324B (zh) 用于更新区块链节点处的公钥集合的方法及装置
CN111242617B (zh) 用于执行交易正确性验证的方法及装置
US8997198B1 (en) Techniques for securing a centralized metadata distributed filesystem
US8321688B2 (en) Secure and private backup storage and processing for trusted computing and data services
US10911538B2 (en) Management of and persistent storage for nodes in a secure cluster
JP6543743B1 (ja) 管理プログラム
AU2010258678A1 (en) Secure and private backup storage and processing for trusted computing and data services
Li et al. Integrity-verifiable conjunctive keyword searchable encryption in cloud storage
US9053130B2 (en) Binary data store
US11917088B2 (en) Integrating device identity into a permissioning framework of a blockchain
US20210157942A1 (en) Authenticating data for use using a data storage system and distributed electronic ledger system
US10756896B2 (en) Trustless account recovery
US20190260715A1 (en) Computer system, connection apparatus, and processing method using transaction
WO2022241571A1 (en) System and method for the safe custody of private data using blockchain
US11893577B2 (en) Cryptographic key storage system and method
JP2023551458A (ja) Oprfを介したブロックチェーンネットワークにおける鍵再生
Kumar et al. Centralized and Decentralized data backup approaches
KR102511570B1 (ko) 블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체
US11575499B2 (en) Self auditing blockchain

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant