KR20190079324A - 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법 및 시스템 - Google Patents
블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법 및 시스템 Download PDFInfo
- Publication number
- KR20190079324A KR20190079324A KR1020170181437A KR20170181437A KR20190079324A KR 20190079324 A KR20190079324 A KR 20190079324A KR 1020170181437 A KR1020170181437 A KR 1020170181437A KR 20170181437 A KR20170181437 A KR 20170181437A KR 20190079324 A KR20190079324 A KR 20190079324A
- Authority
- KR
- South Korea
- Prior art keywords
- hash value
- record
- block chain
- database
- stored
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 블록체인 시스템이 제공하는 안전성을 기반으로 하여 데이터베이스 상의 데이터 무결성을 보장하고, 데이터베이스 내용의 변경, 삭제, 추가, 순서 변경, 위변조 및 데이터베이스 복원에 대한 보안을 강화하기 위한 방법 및 시스템에 관한 것으로, 본 발명에 의한 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법은 (a) 해쉬값 및 트랜잭션 ID를 저장하는 컬럼을 구비한 테이블을 데이터베이스에 생성하는 단계; (b) 블록체인 시스템을 구성하는 특정 블록체인 노드에 테이블에 대응하여 하나의 주소를 생성하는 단계; (c) 테이블에 저장할 레코드(현재 레코드)의 해쉬값을 구하여 상기 주소를 통해 블록체인 노드에 저장한 후 결과값인 트랜잭션 ID를 현재 레코드에 저장하는 단계; (d) 현재 레코드를 테이블에 저장하는 단계; 및 (e) 테이블에 저장된 레코드에 대하여, 블록체인 시스템에 저장된 해쉬값과 테이블에 저장된 레코드에서 구한 해쉬값을 비교함으로써 테이블의 레코드의 손상 여부를 검증하는 단계;를 포함하여 구성된다.
Description
본 발명은 데이터베이스의 무결성을 강화하기 위한 방법 및 시스템에 관한 것으로, 특히 블록체인 시스템이 제공하는 안전성을 기반으로 하여 데이터베이스 상의 데이터 무결성을 보장하고, 데이터베이스 내용의 변경, 삭제, 추가, 순서 변경, 위변조 및 데이터베이스 복원에 대한 보안을 강화하기 위한 방법 및 시스템에 관한 것이다.
데이터베이스는 그 내용을 쉽게 접근하여 처리하고 갱신할 수 있도록 구성된 데이터의 집합체이다. 가장 널리 보급된 데이터베이스로는 데이터를 다양한 방법으로 접근하고 재구성할 수 있도록 정의한 테이블형의 데이터베이스인 관계형 데이터베이스, 네트웍 상의 여러 다른 지점에 분산되어 있거나 중복되어 있는 데이터베이스인 분산 데이터베이스, 객체 클래스와 서브 클래스로 정의된 데이터가 서로 일치하는 데이터베이스인 객체지향 데이터베이스 등이 있다.
데이터 무결성(data integrity)은 데이터베이스에 저장되어 있는 데이터가 사용 후나 조작 후에도 항상 정확성과 유효성을 유지하는 것을 의미한다. 데이터 무결성을 어떻게 보장하느냐 하는 것이 데이터베이스 설계의 가장 중요한 작업 중 하나이다.
대한민국 특허 제10-1712726호에는 해시 코드(해쉬값)를 이용하는 콘텐츠의 무결성 및 유효성 검증에 대한 기술적 구성이 제시되어 있다. 그런데, 제10-1712726호 특허의 경우, 콘텐츠의 해쉬값을 데이터베이스에 단순히 저장하고 비교하는 방식으로 콘텐츠의 무결성을 검증하므로, 데이터베이스가 변조되거나 위조 되는 경우는 대응을 할 수 없다. 즉 데이터베이스의 해쉬값이 변경되는 경우 사용자는 콘텐츠가 변경되었는지, 해쉬가 변경되었는지 알 수가 없다.
한편, 블록체인은 P2P 분산 원장(Distributed ledger) 형태의 데이터베이스 구조라 할 수 있다. 일정 크기의 거래 정보(데이터)들이 모여 블록이 형성되고, 이러한 블록들이 시간의 흐름상 순차적으로 체인으로 연결된 구조이다. 블록체인 형성을 위해서는 네트워크 참여자들의 거래 내역 검증과 승인 과정이 요구되고, 각 블록들은 바로 이전 블록의 존재를 정교하게 참조하고 있어 블록 순서를 바꾼다거나 블록 내 정보를 조작하는 것은 사실상 불가능하다. 이는 거래 관계에서 서로를 신뢰하지 못해 발생하는 비효율을 제거하는 결정적인 역할을 한다.
블록체인이 가져올 변화의 본질은 '거래 승인 권한과 정보의 민주화(Democratization)'로 요약할 수 있다. 이는 강력한 제3의 공인기관이나 중개자의 개입 없이 투명하고 안전한 직접 거래를 가능하게 한다. 안전한 시스템에 의한 자율적 권한 위임이 가능하므로 거의 실시간 승인이 가능해지고, 정보는 네트워크 참여자 모두에게 공개ㅇ보관ㅇ관리되므로 특정 거래 정보를 조작하려면 모든 참여자의 컴퓨터를 해킹해서 블록체인 전체를 조작해야 하는 비현실적 작업이 필요하다. 이렇듯 블록체인 기반의 거래 시스템은 신속성, 안전성, 투명성, 비용 절감 등의 사용자 편의를 제고시키는 효과를 가져다 준다.
이에 블록체인을 이용하여 데이터베이스의 무결성을 보장할 수 있는 다양한 응용이 요구된다.
본 발명은 블록체인 시스템과 데이터베이스를 통합하여 데이터베이스 상의 데이터 무결성을 보장하고, 데이터베이스 내용의 변경, 삭제, 추가, 순서 변경, 위변조 및 데이터베이스 복원에 대한 보안을 강화하기 위한 것으로, 블록체인 시스템에는 데이터베이스의 테이블, 레코드에 대한 해쉬값이 저장되고, 데이터베이스의 각 테이블에는 테이블, 레코드마다 해쉬값이 저장되어, 이 해쉬값을 상호 비교함으로써 DB의 무결성을 검증하는 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법 및 시스템을 제공함을 그 목적으로 한다.
상기의 목적을 달성하기 위하여, 본 발명의 일측면에 의한 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법은 (a) 해쉬값 및 트랜잭션 ID를 저장하는 컬럼을 구비한 테이블을 데이터베이스에 생성하는 단계; (b) 블록체인 시스템을 구성하는 특정 블록체인 노드에 상기 테이블에 대응하여 하나의 주소를 생성하는 단계; (c) 상기 테이블에 저장할 레코드(현재 레코드)의 해쉬값을 구하여 상기 주소를 통해 상기 블록체인 노드에 저장한 후 결과값인 트랜잭션 ID를 현재 레코드에 저장하는 단계; (d) 현재 레코드를 상기 테이블에 저장하는 단계; 및 (e) 상기 테이블에 저장된 레코드에 대하여, 블록체인 시스템에 저장된 해쉬값과 테이블에 저장된 레코드에서 구한 해쉬값을 비교함으로써 테이블의 레코드의 손상 여부를 검증하는 단계;를 포함하여 구성된다.
상기 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법에 있어서, 상기 (b) 단계에서 상기 블록체인 노드의 첫 번째 생성된 주소에는 데이터베이스 전체의 설정 정보를 저장하고, 두 번째 생성된 주소에는 데이터베이스 테이블의 스키마 정보 및 테이블 설정 정보를 저장하는 것을 특징으로 한다.
상기 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법에 있어서, 상기 (c) 단계는, (c1) 현재 레코드의 해쉬값(hash1)을 구하고, 현재 레코드 바로 직전에 상기 테이블에 저장된 레코드(직전 레코드)의 해쉬값(hash2)에 현재 레코드 해쉬값(hash1)을 결합한 후 해쉬값(hash3)을 구하여 상기 블록체인 노드에 저장하고, 해쉬값(hash3)에 트랜잭션 ID를 결합한 후 해쉬값(hash4)을 구하여 트랜잭션 ID와 해쉬값(hash4)을 현재 레코드에 저장하는 단계;임을 특징으로 한다.
상기 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법에 있어서, 상기 (e) 단계는, (e1) 상기 테이블에 저장된 레코드에 대하여, 상기 블록체인 노드에 저장된 해쉬값(hash3)을 반환받고, 데이터베이스에서도 현재 레코드의 해쉬값(hash1)에 직전 레코드의 해쉬값(hash2)을 결합한 후 해쉬값(hash3)을 구하여 블록체인 노드에서 반환된 해쉬값(hash3)과 비교하여 검증하고, 데이터베이스에서 구한 해쉬값(hash3)에 트랜잭션 ID를 결합한 후 해쉬값(hash4)을 구하여 현재 레코드에 저장된 해쉬값(hash4)을 비교하여 검증하는 단계;임을 특징으로 한다.
상기 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법에 있어서, (f) 테이블 전체에 대한 해쉬값을 구하는 단계; (g) 상기 블록체인 노드에 테이블 전체에 대한 해쉬값을 저장하는 단계; 및 (h) 테이블의 무결성 검증을 위해, 테이블 전체에 대한 해쉬값을 구하고, 상기 블록체인 노드에 저장된 테이블 전체에 대한 해쉬값과 비교하는 단계;를 더 포함함을 특징으로 한다.
상기 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법에 있어서, (i) 상기 테이블의 각 레코드를 암호화하고 Hex 값으로 변환하여 상기 블록체인 노드에 트랜잭션 데이터로 저장하는 단계; 및 (j) 데이터베이스 무결성에 이상이 있는 경우, 상기 블록체인 노드에서 트랜잭션 데이터를 시간순으로 조회하여 Binary값으로 변환하고 복호화한 후, 각 레코드별 해쉬값을 구하여 복호화된 레코드에 저장된 해쉬값과 비교하여 일치하는 경우에만 상기 테이블에 해당 레코드를 복원하여 저장하는 단계;를 포함함을 특징으로 한다.
상기의 목적을 달성하기 위하여, 본 발명의 다른 측면에 의한 컴퓨터로 읽을 수 있는 기록 매체는 상기 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한다.
상기의 목적을 달성하기 위하여, 본 발명의 또 다른 측면에 의한 블록체인 시스템을 이용하여 무결성 강화된 데이터베이스 시스템은 해쉬값 및 트랜잭션 ID를 저장하는 열을 구비한 테이블을 생성하는 데이터베이스 시스템; 및 상기 테이블에 대응하여 하나의 주소를 생성하는 블록체인 노드;를 포함하여 구성되고, 상기 데이터베이스 시스템은, 상기 테이블에 저장할 레코드(현재 레코드)의 해쉬값을 구하여 상기 블록체인 노드에 저장한 후 결과값인 트랜잭션 ID과 해쉬값을 현재 레코드에 저장하는 해쉬값 산출/저장부; 현재 레코드를 상기 테이블에 저장하는 레코드 저장부; 및 상기 테이블에 저장된 레코드에 대하여, 상기 블록체인 노드에 저장된 해쉬값과 테이블에 저장된 레코드에서 구한 해쉬값을 비교함으로써 테이블의 레코드의 손상 여부를 검증하는 무결성 검증부;를 포함하여 구성된다.
본 발명은 기존의 데이터베이스 시스템에서 악의적인 데이터 조작이나 변동을 막을 수 있는 기술로, 본 발명에 의하면, 데이터의 위변조를 방지할 수 있는 블록체인 시스템을 이용해서 데이터베이스의 테이블 및 레코드 정보에 해당하는 해쉬 값을 블록체인 시스템에 저장하고, 추후 블록체인 시스템에 저장된 해쉬값과 비교함으로써 테이블 및 레코드의 무결성을 검증할 수 있다. 또한 본 발명에 의하면, 손상된 테이블이나 레코드를 원본 그대로 정확하게 복원할 수도 있다.
도 1은 본 발명에 의한 블록체인 시스템을 이용하여 무결성 강화된 데이터베이스 시스템의 구성을 도시한 것이다.
도 2는 본 발명에 의한 무결성 정보 저장 프로세스를 단순화하여 도시한 것이다.
도 3은 데이터베이스에 새로운 레코드를 저장할 때 무결정 정보를 저장하는 프로세스를 도시한 것이다.
도 4는 데이터베이스에서 레코드를 읽을 때 무결성을 검증하는 프로세스를 도시한 것이다.
도 5는 테이블 단위의 무결성을 검증하는 프로세스를 도시한 것이다.
도 6은 테이블을 블록체인 노드에 백업하는 프로세스를 도시한 것이다.
도 7은 테이블을 복원하는 프로세스를 도시한 것이다.
도 2는 본 발명에 의한 무결성 정보 저장 프로세스를 단순화하여 도시한 것이다.
도 3은 데이터베이스에 새로운 레코드를 저장할 때 무결정 정보를 저장하는 프로세스를 도시한 것이다.
도 4는 데이터베이스에서 레코드를 읽을 때 무결성을 검증하는 프로세스를 도시한 것이다.
도 5는 테이블 단위의 무결성을 검증하는 프로세스를 도시한 것이다.
도 6은 테이블을 블록체인 노드에 백업하는 프로세스를 도시한 것이다.
도 7은 테이블을 복원하는 프로세스를 도시한 것이다.
도 1에 의하면, 본 발명에 의한 블록체인 시스템을 이용하여 무결성 강화된 데이터베이스 시스템의 바람직한 일실시예는 데이터베이스 시스템(1)과 블록체인 노드(5)로 구성된다.
데이터베이스 시스템(1)은 데이터를 중앙에서 통제할 수 있게 하여 데이터의 중복과 데이터의 불일치성을 없애고 데이터를 여러 사용자가 공동 이용하게 하며 데이터를 접근하는 데 비밀 유지가 되게 하는 시스템으로, 데이터베이스 관리 책임자(DBA), 데이터베이스(3), 데이터베이스가 저장되는 하드웨어, 데이터베이스 관리 시스템(DBMS) 프로그램 등을 포함한다.
블록체인은 퍼블릭 또는 프라이빗 P2P 네트워크에서 일어나는 트랜잭션의 정보가 네트워크 참여자간 공유된 디지털 원장으로, 네트워크의 모든 구성원 노드(블록체인 노드)에 분산되어있는 원장은 네트워크 피어 간에 이루어지는 자산 교환의 결과 블록 단위로 영구하게 저장된다. 네트워크 참여자에 의해 합의되고 유효성이 확인된 모든 거래의 블록은 체인의 시작 부분(Genesis block)에서부터 가장 최근의 블록으로 연결되어 블록체인이라는 이름으로 불려진다. 블록체인은 완전 무결한 원본데이터의 단일 접근경로로서의 역할을 하며, 블록체인 네트워크(7)의 구성원은 자신과 관련이 있는 트랜잭션만 볼 수 있다.
따라서 본 발명에 의한 블록체인 노드(5)는 P2P 네트워크 상에서 블록체인 네트워크(7)의 구성원을 형성하는 것으로, 블록체인 시스템은 블록체인 노드들의 집합체로 구성된다.
블록체인 노드에는 지갑(wallet)이 생성되며, 여기에는 최초의 주소(address)가 생성된다. 블록체인 노드에서 주소는 정보를 저장하거나 조회하거나 트랜잭션을 주고받는 키가 된다. 따라서, 블록체인 노드 상의 모든 정보 교환은 기본적으로 주소를 통해서 이루어진다. 각 블록체인 노드에는 1개 이상의 주소가 존재할 수 있고, 하나의 주소에는 시간별로 저장된 다수의 트랜잭션이 기록될 수 있다. 트랜잭션 ID는 하나의 트랜잭션마다 부여되는 고유의 해쉬값으로, 트랜잭션 ID를 알면 전체 블록체인 정보 중에서 해당하는 정보를 즉시 조회할 수 있다.
이하에서, 도 2를 참조하여 본 발명에 의한 무결성 정보 저장 프로세스를 우선 개념적으로 설명한다.
본 발명에 의한 블록체인 노드(5)에서 최초로 생성된 주소는 데이터베이스(3) 전체의 설정 및 데이터베이스(3)의 주요한 정보(데이터베이스 설정 정보)를 저장하기 위한 키(key)로 사용된다(도 2의 ①). 또한, 두 번째로 생성된 주소를 통해서는 데이터베이스 테이블의 스키마(schema) 정보 및 테이블 설정에 연관된 정보(테이블 정보)를 저장한다(도 2의 ②).
데이터베이스(3)의 각 테이블 레코드에 대한 무결성 검증을 위해, 각 테이블 별로 하나의 주소를 블록체인 노드(5)에 생성하고, 여기에 각 레코드의 해쉬값을 계산하여 저장한다(도 2의 ③,④). 데이터베이스 테이블의 레코드에는 해당 레코드의 해쉬값이 저장된 블록체인 노드(5)의 트랜잭션 ID를 저장하는 공간이 필요하다(도 2의 ⑥). 따라서, 각각의 레코드는 블록체인 노드(5)에 저장된 해쉬값과 현재의 레코드 해쉬값을 비교함으로써 레코드의 내용에 손상이 없는지 검증할 수 있다. 데이터베이스 테이블의 레코드에는 해당 레코드의 해쉬값을 저장하기 위한 공간을 구비함이 바람직하다(도 2의 ⑤).
이하에서, 도 3을 참조하여 데이터베이스(3)에 새로운 레코드를 저장할 때 무결정 정보를 저장하는 프로세스를 설명한다.
여기서 데이터베이스(3)의 테이블에는 해쉬값과 트랜잭션 ID를 저장할 컬럼이 있다는 것이 전제된다. 더불어 테이블에는 자동 시퀀스 컬럼도 있는 것이 바람직하다.
먼저, 데이터베이스(3)의 테이블에 저장할 새로운 레코드(현재 레코드)를 준비하고(도 3의 ①), 현재 레코드의 레코드 내용에 해쉬 함수를 사용하여 해쉬값(hash1)을 구한다(도 3의 ②). 본 발명에서는 해쉬 함수로 SHA256(Secure Hash Algorithms 256), 또는 SHA512를 사용하는 것이 바람직하다.
이후, 현재 테이블에 있는 최종 레코드(직전 레코드)의 해쉬값(hash2)을 가져온다(도 3의 ③).
다음, 직전 레코드의 해쉬값(hash2)에 현재 레코드 해쉬값을 결합(2개의 문자열을 앞뒤로 잇는 것을 의미한다)한 후, 이 데이터로 해쉬값(hash3)을 구한다(도 3의 ④). 이렇게 구한 해쉬값(hash3)은 이전 레코드와 연결되어 있기 때문에 이전의 값이 하나만 바뀌어도 이후의 모든 레코드 값이 맞지 않게 되어, 어느 레코드에서 문제가 생겼는지 검증이 가능하게 된다.
이후 해쉬값(hash3)을 블록체인 노드(5) 상에 저장하고(도 3의 ⑤), 그 결과값인 트랜잭션 ID를 입수한다(도 3의 ⑥).
④에서 구한 해쉬값(hash3)과 트랜잭션 ID를 합쳐 새로운 해쉬값(hash4)를 만든다(도 3의 ⑦).
현재 레코드에 해쉬값(hash4)과 트랜잭션 ID를 업데이트 하고(도 3의 ⑧), 업데이터 된 현재 레코드를 데이터베이스(3)의 테이블에 저장한다(도 3의 ⑨).
레코드의 무결성은 해쉬값(hash4)를 상기 과정과 동일하게 검증함으로써 검증할 수 있다.
또한, 레코드가 삭제되는 경우 각 레코드의 해쉬값(hash4)을 계산하면 삭제된 레코드 이후의 레코드는 해쉬값(hash4)이 달라지기 때문에 레코드의 무결성을 검증할 수 있다.
이하에서, 도 4를 참조하여 데이터베이스(3)에서 레코드를 읽을 때 무결성을 검증하는 프로세스를 설명한다.
데이터베이스(3)의 테이블에서 특정 레코드(현재 레코드)를 조회하여 현재 레코드의 해쉬값(hash1)을 구한다(도 4의 ①).
현재 레코드의 직전 레코드의 해쉬값(hash2)을 입수한다(도 4의 ②).
이후, 두 레코드의 해쉬값을 합쳐서 새로운 해쉬값(hash3)을 만든다(도 4의 ③).
해쉬값(hash3)와 현재 레코드의 트랜잭션 ID를 합쳐서 새로운 해쉬값(hash4)을 만든다(도 4의 ④).
④에서 구한 해쉬값(hash4)과 현재 레코드의 해쉬값 피일드에 저장된 해쉬값(hash4)이 일치하는지 검증한다(도 4의 ⑦).
블록체인 노드(5)에서 트랜잭션 ID에 해당하는 정보를 읽어 블록체인 노드(5)에서 반환된 해쉬값(hash3)과 ③)에서 구한 해쉬값(hash3)이 일치하는지 검증한다(도 4의 ⑤,⑥,⑦).
⑦에서 3개의 값이 모두 일치하면 무결성이 검증된 것이며, 일치하지 않을 경우는 무결성이 손상된 것이다.
이하에서, 도 5를 참조하여 테이블 단위의 무결성을 검증하는 프로세스를 설명한다.
먼저, 데이터베이스(3)에서 무결성을 검증하기를 원하는 테이블을 준비한다.
다음, 테이블 전체의 해쉬값을 구하여, 블록체인 노드(5)에 그 해쉬값을 저장한다(도 5의 ①,②).
이후 테이블의 무결성을 검증하기 위해서는, 테이블 전체의 해쉬값을 구한 다음, 블록체인 노드(5)에 저장된 테이블 전체의 해쉬값과 비교함으로써 무결성 검증이 가능하다(도 5의 ③,④).
이하에서, 도 6을 참조하여 테이블을 블록체인 노드에 백업하는 프로세스를 설명한다.
먼저, 데이터베이스(3)에서 복원을 위한 테이블을 준비한다.
다음, 각 레코드를 암호화하고(도 6의 ①), 암호화된 정보를 Hex 값으로 변환한 다음(도 6의 ②), 블록체인 노드(5)의 트랜잭션 데이터로 저장한다(도 6의 ③).
이하에서, 도 7을 참조하여 도 6에 도시된 바와 같이 백업된 상태에서 테이블을 복원하는 프로세스를 도시한 것이다.
테이블 복원시, 블록체인 노드(5)에서 트랜잭션 데이터를 순서대로 불러온다(도 7의 ①).
입수된 정보를 Biany 값으로 변환하고 암호를 해독하여 복호화한다(도 7의 ②,③).
이후, 각 레코드별 해쉬값을 구하여 복호화된 레코드에 저장된 해쉬값과 비교하여(도 7의 ④,⑤), 일치하는 경우에만 데이터베이스(3)의 테이블에 해당 레코드를 복원하여 저장한다(도 7의 ⑥). 이와 같은 과정을 모든 트랜잭션 데이터에 대해 반복함으로써 테이블 내의 레코드를 복원한다.
한편, 도 1에 도시된 바와 같이, 본 발명에 의한 블록체인 시스템을 이용하여 무결성 강화된 데이터베이스 시스템은 데이터베이스 시스템(1)과 블록체인 노드(5)를 포함하여 구성되고, 데이터베이스 시스템(1)은 테이블 생성부(11), 해쉬값 산출/저장부(13), 레코드 저장부(15) 및 무결성 검증부(17)를 구비한다.
테이블 생성부(11)는 해쉬값 및 트랜잭션 ID를 저장하는 컬럼을 구비한 테이블을 생성한다.
해쉬값 산출/저장부(13)는 테이블에 저장할 레코드(현재 레코드)의 해쉬값을 구하여 블록체인 노드(5)에 저장한 후 결과값인 트랜잭션 ID과 해쉬값을 현재 레코드에 저장한다.
레코드 저장부(15)는 현재 레코드를 테이블에 저장한다.
무결성 검증부(17)는 테이블에 저장된 레코드에 대하여, 블록체인 노드(5)에 저장된 해쉬값과 테이블에 저장된 레코드에서 구한 해쉬값을 비교함으로써 테이블의 레코드의 손상 여부를 검증한다.
한편, 상술한 본 발명의 실시예는 개인용 컴퓨터를 포함한 범용 컴퓨터에서 사용되는 매체에 기록될 수 있다. 상기 매체는 마그네틱 기록매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독매체(예를 들면, 씨디롬, 디브이디 등) 및 전기적 기록매체(예를 들면, 플레쉬 메모리, 메모리 스틱 등)와 같은 기록매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
Claims (8)
- (a) 해쉬값 및 트랜잭션 ID를 저장하는 컬럼을 구비한 테이블을 데이터베이스에 생성하는 단계;
(b) 블록체인 시스템을 구성하는 특정 블록체인 노드에 상기 테이블에 대응하여 하나의 주소를 생성하는 단계;
(c) 상기 테이블에 저장할 레코드(현재 레코드)의 해쉬값을 구하여 상기 주소를 통해 상기 블록체인 노드에 저장한 후 결과값인 트랜잭션 ID를 현재 레코드에 저장하는 단계;
(d) 현재 레코드를 상기 테이블에 저장하는 단계; 및
(e) 상기 테이블에 저장된 레코드에 대하여, 블록체인 시스템에 저장된 해쉬값과 테이블에 저장된 레코드에서 구한 해쉬값을 비교함으로써 테이블의 레코드의 손상 여부를 검증하는 단계;를 포함함을 특징으로 하는 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법. - 제1항에서, 상기 (b) 단계에서
상기 블록체인 노드의 첫 번째 생성된 주소에는 데이터베이스 전체의 설정 정보를 저장하고, 두 번째 생성된 주소에는 데이터베이스 테이블의 스키마 정보 및 테이블 설정 정보를 저장하는 것을 특징으로 하는 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법.
- 제1항에서, 상기 (c) 단계는,
(c1) 현재 레코드의 해쉬값(hash1)을 구하고, 현재 레코드 바로 직전에 상기 테이블에 저장된 레코드(직전 레코드)의 해쉬값(hash2)에 현재 레코드 해쉬값(hash1)을 결합한 후 해쉬값(hash3)을 구하여 상기 블록체인 노드에 저장하고, 해쉬값(hash3)에 트랜잭션 ID를 결합한 후 해쉬값(hash4)을 구하여 트랜잭션 ID와 해쉬값(hash4)을 현재 레코드에 저장하는 단계;임을 특징으로 하는 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법. - 제3항에서, 상기 (e) 단계는,
(e1) 상기 테이블에 저장된 레코드에 대하여, 상기 블록체인 노드에 저장된 해쉬값(hash3)을 반환받고, 데이터베이스에서도 현재 레코드의 해쉬값(hash1)에 직전 레코드의 해쉬값(hash2)을 결합한 후 해쉬값(hash3)을 구하여 블록체인 노드에서 반환된 해쉬값(hash3)과 비교하여 검증하고, 데이터베이스에서 구한 해쉬값(hash3)에 트랜잭션 ID를 결합한 후 해쉬값(hash4)을 구하여 현재 레코드에 저장된 해쉬값(hash4)을 비교하여 검증하는 단계;임을 특징으로 하는 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법. - 제1항에서,
(f) 테이블 전체에 대한 해쉬값을 구하는 단계;
(g) 상기 블록체인 노드에 테이블 전체에 대한 해쉬값을 저장하는 단계; 및
(h) 테이블의 무결성 검증을 위해, 테이블 전체에 대한 해쉬값을 구하고, 상기 블록체인 노드에 저장된 테이블 전체에 대한 해쉬값과 비교하는 단계;를 더 포함함을 특징으로 하는 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법. - 제1항에서,
(i) 상기 테이블의 각 레코드를 암호화하고 Hex 값으로 변환하여 상기 블록체인 노드에 트랜잭션 데이터로 저장하는 단계; 및
(j) 데이터베이스 무결성에 이상이 있는 경우, 상기 블록체인 노드에서 트랜잭션 데이터를 시간순으로 조회하여 Binary값으로 변환하고 복호화한 후, 각 레코드별 해쉬값을 구하여 복호화된 레코드에 저장된 해쉬값과 비교하여 일치하는 경우에만 상기 테이블에 해당 레코드를 복원하여 저장하는 단계;를 포함함을 특징으로 하는 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법. - 제1항 내지 제6항 중 어느 한 항의 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
- 해쉬값 및 트랜잭션 ID를 저장하는 열을 구비한 테이블을 생성하는 데이터베이스 시스템; 및
상기 테이블에 대응하여 하나의 주소를 생성하는 블록체인 노드;를 포함하여 구성되고,
상기 데이터베이스 시스템은,
상기 테이블에 저장할 레코드(현재 레코드)의 해쉬값을 구하여 상기 블록체인 노드에 저장한 후 결과값인 트랜잭션 ID과 해쉬값을 현재 레코드에 저장하는 해쉬값 산출/저장부;
현재 레코드를 상기 테이블에 저장하는 레코드 저장부; 및
상기 테이블에 저장된 레코드에 대하여, 상기 블록체인 노드에 저장된 해쉬값과 테이블에 저장된 레코드에서 구한 해쉬값을 비교함으로써 테이블의 레코드의 손상 여부를 검증하는 무결성 검증부;를 포함함을 특징으로 하는 블록체인 시스템을 이용하여 무결성 강화된 데이터베이스 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170181437A KR20190079324A (ko) | 2017-12-27 | 2017-12-27 | 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170181437A KR20190079324A (ko) | 2017-12-27 | 2017-12-27 | 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법 및 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190079324A true KR20190079324A (ko) | 2019-07-05 |
Family
ID=67225214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170181437A KR20190079324A (ko) | 2017-12-27 | 2017-12-27 | 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20190079324A (ko) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597835A (zh) * | 2019-09-17 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 一种基于区块链的交易数据删除方法及装置 |
CN111177272A (zh) * | 2019-12-31 | 2020-05-19 | 杭州趣链科技有限公司 | 一种基于区块链的大数据可信审计方法 |
CN111859456A (zh) * | 2020-07-30 | 2020-10-30 | 重庆倍来电新能源有限公司 | 一种全可信数据***解决方法 |
KR20210011139A (ko) * | 2019-07-22 | 2021-02-01 | 에이치엔핀코어 주식회사 | 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법 |
CN112948898A (zh) * | 2021-03-31 | 2021-06-11 | 北京众享比特科技有限公司 | 一种区块链中防止应用数据被篡改的方法和安全模块 |
KR20210074982A (ko) * | 2019-12-12 | 2021-06-22 | (주)포뎁스 | 블록체인을 기반으로 응용 애플리케이션에 대한 업데이트 처리 및 응용 애플리케이션의 위변조 탐지를 가능하게 하는 전자 단말 장치 및 그 동작 방법 |
CN113079027A (zh) * | 2021-06-04 | 2021-07-06 | 江苏数字产权交易有限公司 | 一种基于哈希值的区块数据生成与验证方法 |
CN113407626A (zh) * | 2021-06-16 | 2021-09-17 | 深圳大学 | 一种基于区块链的规划管控方法、存储介质及终端设备 |
CN113590375A (zh) * | 2021-06-25 | 2021-11-02 | 北京电链科技有限公司 | 一种基于区块链的稳控装置信息校验方法及*** |
KR102338756B1 (ko) * | 2020-11-17 | 2021-12-14 | 한국과학기술원 | 블록 데이터를 공유하는 블록체인 네트워크의 시뮬레이션 방법 및 이를 이용하는 시스템 |
KR102344933B1 (ko) * | 2020-10-08 | 2021-12-30 | (주)바다플랫폼 | 체인 데이터베이스를 구비한 블록체인 기반의 데이터 저장 장치 |
KR20220001644A (ko) * | 2020-06-30 | 2022-01-06 | 주식회사 트러스트디비 | Rdbms 기반의 분산원장 관리 시스템 및 방법 |
CN114884672A (zh) * | 2022-04-29 | 2022-08-09 | 华控清交信息科技(北京)有限公司 | 一种数据流通网络***、数据流通消息传输方法及装置 |
KR102461213B1 (ko) * | 2021-05-06 | 2022-10-31 | 주식회사 오퍼스엠 | 블록체인 기반 데이터베이스 운영방법 및 이를 구동하기 위한 블록체인 시스템 |
KR102526406B1 (ko) * | 2021-12-03 | 2023-04-27 | 에이치닥 테크놀로지 아게 | Nft의 대상이 되는 원본 콘텐츠 데이터에 대한 액세스를 관리하는 액세스 관리 시스템 장치 및 그 동작 방법 |
CN117290363A (zh) * | 2023-11-23 | 2023-12-26 | 北京科技大学 | 一种面向救援活动的异构数据管理方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101637868B1 (ko) | 2016-02-22 | 2016-07-08 | 주식회사 코인플러그 | 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법 |
KR101712726B1 (ko) | 2015-04-27 | 2017-03-14 | 갤럭시아커뮤니케이션즈 주식회사 | 해시 코드를 이용하는 콘텐츠의 무결성 및 유효성 검증 방법 및 시스템 |
-
2017
- 2017-12-27 KR KR1020170181437A patent/KR20190079324A/ko not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101712726B1 (ko) | 2015-04-27 | 2017-03-14 | 갤럭시아커뮤니케이션즈 주식회사 | 해시 코드를 이용하는 콘텐츠의 무결성 및 유효성 검증 방법 및 시스템 |
KR101637868B1 (ko) | 2016-02-22 | 2016-07-08 | 주식회사 코인플러그 | 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210011139A (ko) * | 2019-07-22 | 2021-02-01 | 에이치엔핀코어 주식회사 | 블록체인 네트워크에서 블록을 생성하기 이전에 트랜잭션을 전파함으로써 트랜잭션 처리 속도를 향상시킬 수 있는 노드 장치 및 그 동작 방법 |
CN110597835B (zh) * | 2019-09-17 | 2024-02-27 | 深圳前海微众银行股份有限公司 | 一种基于区块链的交易数据删除方法及装置 |
CN110597835A (zh) * | 2019-09-17 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 一种基于区块链的交易数据删除方法及装置 |
KR20210074982A (ko) * | 2019-12-12 | 2021-06-22 | (주)포뎁스 | 블록체인을 기반으로 응용 애플리케이션에 대한 업데이트 처리 및 응용 애플리케이션의 위변조 탐지를 가능하게 하는 전자 단말 장치 및 그 동작 방법 |
CN111177272B (zh) * | 2019-12-31 | 2023-09-08 | 杭州趣链科技有限公司 | 一种基于区块链的大数据可信审计方法 |
CN111177272A (zh) * | 2019-12-31 | 2020-05-19 | 杭州趣链科技有限公司 | 一种基于区块链的大数据可信审计方法 |
KR20220001644A (ko) * | 2020-06-30 | 2022-01-06 | 주식회사 트러스트디비 | Rdbms 기반의 분산원장 관리 시스템 및 방법 |
CN111859456A (zh) * | 2020-07-30 | 2020-10-30 | 重庆倍来电新能源有限公司 | 一种全可信数据***解决方法 |
KR102344933B1 (ko) * | 2020-10-08 | 2021-12-30 | (주)바다플랫폼 | 체인 데이터베이스를 구비한 블록체인 기반의 데이터 저장 장치 |
KR102338756B1 (ko) * | 2020-11-17 | 2021-12-14 | 한국과학기술원 | 블록 데이터를 공유하는 블록체인 네트워크의 시뮬레이션 방법 및 이를 이용하는 시스템 |
CN112948898A (zh) * | 2021-03-31 | 2021-06-11 | 北京众享比特科技有限公司 | 一种区块链中防止应用数据被篡改的方法和安全模块 |
KR102461213B1 (ko) * | 2021-05-06 | 2022-10-31 | 주식회사 오퍼스엠 | 블록체인 기반 데이터베이스 운영방법 및 이를 구동하기 위한 블록체인 시스템 |
CN113079027A (zh) * | 2021-06-04 | 2021-07-06 | 江苏数字产权交易有限公司 | 一种基于哈希值的区块数据生成与验证方法 |
CN113407626A (zh) * | 2021-06-16 | 2021-09-17 | 深圳大学 | 一种基于区块链的规划管控方法、存储介质及终端设备 |
CN113407626B (zh) * | 2021-06-16 | 2024-05-10 | 深圳大学 | 一种基于区块链的规划管控方法、存储介质及终端设备 |
CN113590375A (zh) * | 2021-06-25 | 2021-11-02 | 北京电链科技有限公司 | 一种基于区块链的稳控装置信息校验方法及*** |
KR102526406B1 (ko) * | 2021-12-03 | 2023-04-27 | 에이치닥 테크놀로지 아게 | Nft의 대상이 되는 원본 콘텐츠 데이터에 대한 액세스를 관리하는 액세스 관리 시스템 장치 및 그 동작 방법 |
CN114884672A (zh) * | 2022-04-29 | 2022-08-09 | 华控清交信息科技(北京)有限公司 | 一种数据流通网络***、数据流通消息传输方法及装置 |
CN117290363A (zh) * | 2023-11-23 | 2023-12-26 | 北京科技大学 | 一种面向救援活动的异构数据管理方法及*** |
CN117290363B (zh) * | 2023-11-23 | 2024-02-13 | 北京科技大学 | 一种面向救援活动的异构数据管理方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20190079324A (ko) | 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법 및 시스템 | |
CN110495132B (zh) | 用于在分布式网络节点内生成、上传和执行代码区块的***和方法 | |
US9720943B2 (en) | Columnar table data protection | |
JP2021527274A (ja) | ブロックチェーンの分散アクセス、記憶、及び転送 | |
US11907199B2 (en) | Blockchain based distributed file systems | |
CN106600403A (zh) | 一种资产管理方法、装置和*** | |
US11256662B2 (en) | Distributed ledger system | |
CN111201519A (zh) | 用于低时延读取和写入大型数据集的不可变数据存储 | |
CA3171228C (en) | Block chain proof for identification | |
CN109428892A (zh) | 多阶段可重写区块链 | |
US11314885B2 (en) | Cryptographic data entry blockchain data structure | |
US10515231B2 (en) | Method of obfuscating relationships between data in database tables | |
US11868339B2 (en) | Blockchain based distributed file systems | |
CN111783141B (zh) | 基于区块链的数据存储方法、装置、设备及存储介质 | |
CN113112354A (zh) | 一种区块链网络的交易处理方法、区块链网络及存储介质 | |
CN114579637A (zh) | 一种电网业务***区块链高效检索方法 | |
Al Osimi et al. | Towards designing and development of an artifact storage and trading framework utilizing the ethereum blockchain | |
Gupta et al. | Blockchain Enabled Hadoop Distributed File System Framework for Secure and Reliable Traceability | |
Mata et al. | Blockchain technology for improving land registration system in an emerging economy | |
Shkoukani et al. | Graph Database Security: Blockchain Solution and Open Challenges | |
Wang et al. | A query verification scheme for dynamic outsourced databases. | |
US20220230169A1 (en) | Systems and Methods for Extending the Utility of Blockchains Through Use of Related Child Blockchains | |
CA2832978C (en) | Method of obfuscating relationships between data in database tables | |
Razali et al. | Blockchain System Architecture for Land Registration | |
Do et al. | BML: A Data Mapping Language for Blockchain Platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |