KR102046059B1 - 블록체인의 정보변경장치 및 방법 - Google Patents

블록체인의 정보변경장치 및 방법 Download PDF

Info

Publication number
KR102046059B1
KR102046059B1 KR1020190031606A KR20190031606A KR102046059B1 KR 102046059 B1 KR102046059 B1 KR 102046059B1 KR 1020190031606 A KR1020190031606 A KR 1020190031606A KR 20190031606 A KR20190031606 A KR 20190031606A KR 102046059 B1 KR102046059 B1 KR 102046059B1
Authority
KR
South Korea
Prior art keywords
transaction
block
hash value
information
change
Prior art date
Application number
KR1020190031606A
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 KR1020190031606A priority Critical patent/KR102046059B1/ko
Application granted granted Critical
Publication of KR102046059B1 publication Critical patent/KR102046059B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 따른 블록체인의 정보변경장치는 상기 블록체인을 구성하는 블록들에 포함되는 트랜잭션이 다른 노드로부터 전파되면, 상기 전파된 트랜잭션을 수집하는 정보 수집부; 상기 수집된 트랜잭션의 데이터를 상기 블록체인의 블록 해시값 산출에 사용되는 변경 불가 데이터와 상기 블록 해시값 산출에 사용되지 않는 변경 가능 데이터로 구분하여 인식하는 정보 인식부; 상기 트랜잭션의 데이터 중 상기 변경 불가 데이터에 대한 트랜잭션 해시값을 산출하고, 상기 산출된 트랜잭션 해시값과 다른 트랜잭션에 대응하는 트랜잭션 해시값을 이용하여 머클루트 해시값을 산출하는 머클루트 처리부; 및 상기 산출된 머클루트 해시값을 이용해 상기 블록체인의 조건을 만족하는 블록 해시값을 산출하고, 상기 산출된 블록 해시값을 포함하는 신규 블록을 생성하는 블록 생성부를 포함한다.

Description

블록체인의 정보변경장치 및 방법{Apparatus and method changing information of block chain}
본 발명은 블록 체인을 기반으로 한 정보 처리 기술에 관한 것으로서, 더욱 구체적으로는 블록 체인에 포함되는 정보를 변경할 수 있도록 하는 블록체인의 정보변경장치 및 방법에 관한 것이다.
개인정보 유출 및 침해에 따른 피해 증가는 날로 심각해져 사회 문제화 되어 있다. 한국인터넷진흥원 자료에 따르면 개인정보 침해 신고, 상담 및 피해구제 신청건수는 클라우드화 및 스마트폰 확대 시점인 2010년을 기점으로 지속적으로 급증하고 있다.
이를 방지하기 위해, 최근에 연구되고 있는 것이 블록체인(block chain) 기술이다. 블록체인 기술은 특정 데이터나 디지털 거래 장부 등을 중앙 집중형 서버가 아닌 다수의 참여 노드에 분산 저장하여 공동으로 관리하는 기술이다. 즉, 블록체인 기술은 정보로의 접근을 차단하는 방식이 아닌 정보를 공유하고 분산 저장하는 방식으로 해당 정보의 위조 또는 변조를 방지하는 기술이다.
그런데, 블록체인에 저장된 정보는 삭제 또는 수정이 불가능하다. 따라서, 개인정보 중에서 노출되어서는 않되는 정보가 블록체인에 등록되었을 경우, 개인정보가 노출된 자의 피해가 발생할 수 있다. 또한, 유럽의 GDPR의 ‘잊혀질 권리’및 개인정보의 활용 목적 달성 시 파기해야 하는 개인정보보호법을 위배할 소지가 발생할 수 있다.
블록체인을 플랫폼으로 다양한 비즈니스에 적용하면, 블록 내 여러 형태의 데이터를 기록하게 되어 개인정보를 포함할 가능성이 높아진다. 이는 블록체인을 기반으로하는 신규 사업의 저해 요인으로 작용한다.
이를 해결하기 위한 기존의 방안으로는 Off-chain Storage 방식, Blacklisting 방식, Hard Fork 방식 등이 있다. Off-chain Storage 방식은 개인정보를 블록 밖에 저장하고, 필요시 블록체인의 해시값을 호출해 일치 여부를 확인하여 사용하는 방식이다. Blacklisting 방식은 저장정보를 암호화하고 삭제 시 암호키를 파기해 영원히 개인정보에 대한 열람 및 접근을 차단하는 방식이다. Hard Fork 방식은 기존 블록체인에서 새로운 블록체인을 생성하는 방식으로, 블록체인을 소유하는 각 구성원 간의 합의에 따라 전면 업데이트(Hard Fork)를 하고 소멸해야 하는 정보를 포함한 기존의 블록체인을 파기하는 방식이다.
그런데, Off-chain Storage 방식에 의할 경우에는 실제 정보의 저장 시 기존 중앙집중형 방식에 해당한다는 점에서, 블록체인의 장점인 분산원장이 동작하지 않아 해킹 및 정보조작의 위험이 존재한다. 또한, Blacklisting 방식의 경우에 암호키를 파기하는 것은 실제 완전한 정보 파기가 아닌 정보에 대한 접근성만 없애는 것이라는 점에서, 암호화 키에 대한 Brute-Force 공격 가능성이 상존하고, 암호키 관리의 신뢰성이 문제될 수 있다. 또한, Hard Fork 방식은 블록체인에 참여하는 채굴 노드들의 전원 합의가 필요하므로, 현실적으로 전원 합의에 도달하기가 어렵고 비효율적이며, 단지 Private 블록체인에서 한해서만 제한적으로 적용될 수 있을 뿐이다.
대한민국 등록번호 제10-1628007호(등록일 2016년 6월 3일, 발명의 명칭:당사자간 블록체인을 갖는 디지털 가상화폐의 거래 시스템)
본 발명이 해결하고자 하는 과제는 블록체인 기능의 특장점(예를 들어, 정보의 독점적 권한 방지, 정보의 훼손 방지)을 유지하면서도 제한된 범위에서 정보의 변경(예를 들어, 정정 또는 업데이트)가 가능하도록 하는 블록체인의 정보변경장치 및 방법을 제공하는데 있다.
상기의 과제를 해결하기 위한 본 발명에 따른 블록체인의 정보변경장치는 상기 블록체인을 구성하는 블록들에 포함되는 트랜잭션이 다른 노드로부터 전파되면, 상기 전파된 트랜잭션을 수집하는 정보 수집부; 상기 수집된 트랜잭션의 데이터를 상기 블록체인의 블록 해시값 산출에 사용되는 변경 불가 데이터와 상기 블록 해시값 산출에 사용되지 않는 변경 가능 데이터로 구분하여 인식하는 정보 인식부; 상기 트랜잭션의 데이터 중 상기 변경 불가 데이터에 대한 트랜잭션 해시값을 산출하고, 상기 산출된 트랜잭션 해시값과 다른 트랜잭션에 대응하는 트랜잭션 해시값을 이용하여 머클루트 해시값을 산출하는 머클루트 처리부; 및 상기 산출된 머클루트 해시값을 이용해 상기 블록체인의 조건을 만족하는 블록 해시값을 산출하고, 상기 산출된 블록 해시값을 포함하는 신규 블록을 생성하는 블록 생성부를 포함한다.
상기 변경 불가 데이터는 상기 트랜잭션의 데이터 중 상기 변경 가능 데이터의 해시값을 포함하는 것을 특징으로 한다.
상기 수집된 트랜잭션이 상기 블록체인 중 일정 블록에 포함된 변경대상 트랜잭션에 대한 데이터의 변경을 요청하는 변경요청 트랜잭션인가를 판단하는 변경요청 판단부; 및 상기 변경요청 트랜잭션이라고 판단되면, 상기 변경대상 트랜잭션에 포함된 변경 가능 데이터를 변경하는 정보 변경부를 더 포함하는 것을 특징으로 한다.
상기 변경요청 판단부는, 상기 수집된 트랜잭션에 포함된 트랜잭션 타입정보에 따라 상기 수집된 트랜잭션이 상기 변경요청 트랜잭션인가를 판단하는 것을 특징으로 한다.
상기 정보 변경부는, 상기 수집된 트랜잭션에 포함된 데이터 중에서 상기 일정 블록에 대한 블록 포인터 정보 및 상기 일정 블록 내에 포함된 상기 변경대상 트랜잭션에 대한 트랜잭션 포인터 정보를 이용하여 상기 변경대상 트랜잭션을 추적하는 것을 특징으로 한다.
상기 정보 변경부는, 상기 변경대상 트랜잭션의 변경 가능 데이터에 대한 해시값을 산출하고, 상기 산출된 해시값이 상기 변경대상 트랜잭션의 생성시에 변경 불가 데이터에 미리 포함되어 저장된 해시값과 일치하는가를 비교하고, 상기 산출된 해시값이 상기 저장된 해시값과 일치하는 경우에 상기 변경대상 트랜잭션에 포함된 상기 변경 가능 데이터를 변경하는 것을 특징으로 한다.
상기 정보 변경부는, 상기 변경대상 트랜잭션에 포함된 변경 가능 데이터에 대해 상기 변경요청 트랜잭션에 포함된 변경 가능 데이터를 지시하는 포인터 정보로 변경하는 것을 특징으로 한다.
상기 블록체인에 속하는 블록들 중에서 랜덤하게 지정되는 검사용 블록에 대한 블록 지정정보를 다른 노드들과 함께 미리 공유하고 있으며, 상기 블록 지정정보를 이용해 상기 검사용 블록을 지정하고, 상기 지정된 검사용 블록에 포함된 변경 가능 데이터들의 훼손 여부를 확인하기 위한 검사용 해시값을 산출하고, 상기 산출된 검사용 해시값을 상기 블록 생성부로 전달하는 정보 훼손 검사부를 더 포함하는 것을 특징으로 한다.
상기 정보 훼손 검사부는, 상기 신규 블록 또는 상기 다른 노드들로부터 생성되어 수신된 블록 중 생성 순서에 따라 순차적으로 상기 검사용 해시값을 비교하여 블록의 유효성을 검사하는 것을 특징으로 한다.
상기 정보 훼손 검사부는, 블록의 유효성 검사에 따라 결정된 유효 블록이 상기 블록체인의 구성 블록으로 확정되는지를 확인하고, 상기 유효 블록에 대한 변경 가능 데이터의 복구 동작을 수행하는 것을 특징으로 한다.
본 발명에 따른 일 실시예의 블록체인의 정보변경방법은 상기 블록체인을 구성하는 블록들에 포함되는 트랜잭션이 다른 노드로부터 전파되면, 상기 전파된 트랜잭션을 수집하는 단계; 상기 수집된 트랜잭션의 데이터를 상기 블록체인의 블록 해시값 산출에 사용되는 변경 불가 데이터와 상기 블록 해시값 산출에 사용되지 않는 변경 가능 데이터로 구분하여 인식하는 단계; 상기 트랜잭션의 데이터 중 상기 변경 불가 데이터에 대한 트랜잭션 해시값을 산출하고, 상기 산출된 트랜잭션 해시값과 다른 트랜잭션에 대응하는 트랜잭션 해시값을 이용하여 머클루트 해시값을 산출하는 단계; 및 상기 산출된 머클루트 해시값을 이용해 상기 블록체인의 조건을 만족하는 블록 해시값을 산출하고, 상기 산출된 블록 해시값을 포함하는 신규 블록을 생성하는 단계를 포함한다.
상기 수집된 트랜잭션이 상기 블록체인 중 일정 블록에 포함된 변경대상 트랜잭션에 대한 데이터의 변경을 요청하는 변경요청 트랜잭션인가를 판단하는 단계; 및 상기 변경요청 트랜잭션이라고 판단되면, 상기 변경대상 트랜잭션에 포함된 변경 가능 데이터를 변경하는 단계를 더 포함하는 것을 특징으로 한다.
상기 변경요청 트랜잭션인가를 판단하는 단계는, 상기 수집된 트랜잭션에 포함된 트랜잭션 타입정보에 따라 상기 수집된 트랜잭션이 상기 변경요청 트랜잭션인가를 판단하는 것을 특징으로 한다.
상기 변경대상 트랜잭션에 포함된 변경 가능 데이터를 변경하는 단계는, 상기 수집된 트랜잭션에 포함된 데이터 중에서 상기 일정 블록에 대한 블록 포인터 정보 및 상기 일정 블록 내에 포함된 상기 변경대상 트랜잭션에 대한 트랜잭션 포인터 정보를 이용하여 상기 변경대상 트랜잭션을 추적하는 단계; 상기 추적된 변경대상 트랜잭션의 변경가능 데이터에 대한 해시값을 산출하는 단계; 상기 산출된 해시값이 상기 변경대상 트랜잭션의 생성시에 변경 불가 데이터에 미리 포함되어 저장된 해시값과 일치하는가를 비교하는 단계; 및 상기 산출된 해시값이 상기 저장된 해시값과 일치하는 경우에 상기 변경대상 트랜잭션에 포함된 상기 변경가능 데이터를 변경하는 단계를 포함하는 것을 특징으로 한다.
상기 변경대상 트랜잭션에 포함된 변경 가능 데이터를 변경하는 단계는, 상기 변경대상 트랜잭션에 포함된 변경 가능 데이터에 대해 상기 변경요청 트랜잭션에 포함된 변경가능 데이터를 지시하는 포인터 정보로 변경하는 것을 특징으로 한다.
상기 변경대상 트랜잭션에 포함된 변경 가능 데이터를 변경하는 단계는, 상기 산출된 해시값이 상기 저장된 해시값과 일치하지 않는다면, 상기 변경 대상 트랜잭션에 포함된 변경 가능 데이터가 상기 변경요청 트랜잭션의 포인터정보와 일치하는가를 판단하는 단계; 및 상기 일치 여부에 따라, 상기 변경 대상 트랜잭션에 포함된 변경 가능 데이터의 유효 확인 또는 데이터 훼손에 따른 복구를 수행하는 단계를 더 포함하는 것을 특징으로 한다.
상기 블록체인에 속하는 블록들 중에서 랜덤하게 지정되는 검사용 블록에 대한 블록 지정정보를 다른 노드들과 함께 미리 공유하고 있으며, 상기 블록 지정정보를 이용해 상기 검사용 블록을 지정하고, 상기 지정된 검사용 블록에 포함된 변경 가능 데이터들의 훼손 여부를 확인하기 위한 검사용 해시값을 산출하고, 상기 산출된 검사용 해시값을 신규 블록의 헤더에 저장하는 단계를 더 포함하는 것을 특징으로 한다.
상기 신규 블록 또는 상기 다른 노드들로부터 생성되어 수신된 블록 중 생성 순서에 따라 순차적으로 상기 검사용 해시값을 비교하여 블록의 유효성을 검사하는 단계를 더 포함하는 것을 특징으로 한다.
블록의 유효성 검사에 따라 결정된 유효 블록이 상기 블록체인의 구성 블록으로 확정되는지를 확인하고, 상기 유효 블록에 대한 변경 가능 데이터의 복구 동작을 수행하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명에 따르면, 블록체인을 구성하는 블록의 트랜잭션 데이터에 대해서 변경이 불가능한 데이터 영역과 변경이 가능한 데이터 영역으로 구분하고, 변경 가능한 데이터 영역에 거래 내역 정보와 관련성이 적은 사용자 개인정보 및 사용자 등록정보 등을 등록할 수 있도록 하고, 이후에 변경요청 트랜잭션의 생성에 의해 변경 가능한 데이터 영역에 등록된 정보를 수정 또는 업데이트할 수 있도록 한다.
이에 따라, 거래 내역 정보 등 변경되지 말아야 하는 정보에 대해서는 변경 불가 데이터로서 영구 보존할 수 있도록 하면서도, 수정이 필요하거나 정보의 노출이 제한되어야 하는 개인 정보 등에 대해서는 블록체인에 포함된 정보라고 하더라도 제한된 범위 내에서는 추후에 정정 또는 업데이트를 통해 변경할 수 있다. 따라서, 블록체인에 의한 거래의 안전을 도모하면서도 개인 정보 등의 노출에 따른 위험성을 제거할 수 있다.
또한, 각 노드의 트랜잭션들 중에서 변경 가능한 데이터들에 대해 업데이트 또는 데이터 훼손 여부를 신규 블록의 유효성 검증을 통해 모니터링하고, 업데이트 지연이나 데이터 훼손 시에 신규 블록의 등록에 따른 보상을 제한함으로써, 각 노드들로 하여금 변경 가능한 데이터들에 대한 업데이트 지연나 데이터 훼손에 대해 신속하게 대응할 수 있도록 동기를 부여할 수 있다.
도 1은 본 발명에 따른 블록체인의 정보변경장치에 의해 수행되는 기능을 개략적으로 설명하기 위한 개념도이다.
도 2는 본 발명에 따른 블록체인의 정보변경장치를 설명하기 위한 일 실시예의 블록도이다.
도 3은 트랜잭션을 생성하는 노드들의 정보 설정부가 트랜잭션 생성에 따른 데이터를 구분하여 설정한 상태를 종래와 비교하여 예시한 참조도이다.
도 4는 본 발명에 따른 머클루트 처리부에 의해 머클루트 해시값이 산출되는 과정을 설명하기 위한 일 실시예의 참조도이다.
도 5는 본 발명에 따른 변경요청 판단부의 동작을 설명하기 위한 트랜잭션 데이터의 구조를 예시하는 참조도이다.
도 6은 본 발명에 따른 정보 변경부의 동작을 설명하기 위한 예시적인 참조도이다.
도 7a 내지 도 7c는 변경 대상 트랜잭션의 변경 가능 데이터가 변경되는 동작 과정을 설명하기 위한 예시적인 참조도이다.
도 8은 본 발명에 따른 정보 훼손 검사부의 동작을 설명하기 위한 일 실시예의 참조도이다.
도 9는 본 발명에 따른 블록체인의 정보변경방법을 설명하기 위한 일 실시예의 플로차트이다.
도 10은 도 9에 도시된 변경대상 트랜잭션에 포함된 변경 가능 데이터의 변경 과정을 상세히 설명하기 위한 일 실시예의 플로차트이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다. 
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용된 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다. 
이하, 본 발명의 실시예는 도 1에 도시된 사항을 통해 간략히 설명한 후에, 이하에서 상세히 설명한다.
도 1은 본 발명에 따른 블록체인의 정보변경장치에 의해 수행되는 기능을 개략적으로 설명하기 위한 개념도이다. 도 1에 따르면, 블록체인에서 연속된 해시값에 의해서 전체 데이터가 보호되는 블록체인과 달리 해시값에 영향을 받지 않는 일부 데이터 즉, 변경 가능한 데이터를 허용하고, 변경 가능한 데이터에 대해 구조적으로 안전하게 변경하고 유지할 수 있도록 하는 기능을 제공한다. 또한, 블록 내 변경 가능한 데이터를 최신 업데이트 상태로 유지하기 위하여 생성된 블록들을 주기적이고 무작위로 선정하여 블록체인 참여 노드들이 검증하고 수정하는 방법을 제시한다.
도 2는 본 발명에 따른 블록체인의 정보변경장치(100)를 설명하기 위한 일 실시예의 블록도이다. 본 발명의 정보변경장치(100)는 블록체인을 생성 및 배포하는 노드들 각각에 구비되어 있다.
도 2를 참조하면, 블록체인의 정보변경장치(100)는 정보 수집부(110), 정보 전파부(120), 정보 인식부(130), 머클루트 처리부(140), 블록 생성부(150), 변경요청 판단부(160), 정보 변경부(170), 및 정보 훼손 검사부(180)를 포함한다.
정보 수집부(110)는 블록체인을 구성하는 블록들에 포함되는 트랜잭션이 다른 노드로부터 생성되어 전파되면, 전파된 트랜잭션을 수집한다. 이를 위해, 정보 수집부(110)은 다른 노드들과 유선 및 무선 통신망을 통해 연결되어 있다. 유선 통신망은 LAN, WAN 또는 유선 인터넷을 포함하며, 무선 통신망은 무선인터넷, 휴대인터넷, 이동통신망을 포함한다. 정보 수집부(110)은 유선 통신망 또는 무선 통신망을 지원하는 유선 통신모듈 또는 무선 통신모듈을 포함할 수 있다.
트랜잭션은 블록체인을 구성하는 각각의 블록들에 포함되는 관련 데이터이다. 이러한 트랜잭션은 다른 노드들에서 생성되어 전파되는데, 본 발명에서 전파되는 트랜잭션의 데이터는 블록체인을 구성할 경우에 데이터의 변경이 불가능한 변경 불가 데이터와 블록체인을 구성하더라도 데이터의 변경이 가능한 변경 가능 데이터로 나뉘어진다.
변경 불가 데이터는 블록체인의 블록 해시값 산출에 사용되는 데이터로서, 예를 들어, 암호 화폐의 경우에 송금 내역 정보일 수도 있고, 데이터 송수신과 관련한 전송 내역 정보 등일 수도 있다. 한편, 변경 가능 데이터는 블록 해시값 산출에 사용되지 않는 데이터로서, 예를 들어, 트랜잭션의 생성에 따른 사용자 개인정보 및 사용자 등록정보 등을 포함할 수 있다.
트랜잭션을 생성하여 전파하는 노드들은 해당 트랜잭션의 생성 시에 전술한 바와 같이, 트랜잭션의 데이터가 변경 불가 데이터와 변경 가능 데이터로 구분되도록 설정하고, 이렇게 설정된 트랜잭션을 다른 노드들로 전파한다. 이를 위해, 트랜잭션을 전파하는 노드들은 트랜잭션 데이터를 변경 불가 데이터 및 변경 가능 데이터로 설정하기 위한 정보 설정부(미도시)를 포함할 수 있다.
도 3은 트랜잭션을 생성하는 노드들의 정보 설정부가 트랜잭션 생성에 따른 데이터를 구분하여 설정한 상태를 종래와 비교하여 예시한 참조도이다.
도 3의 (a)는 종래의 일반적인 트랜잭션 데이터를 예시하는 것으로 트랜잭션데이터 모두가 변경 불가 데이터에 해당한다. 이에 비해, 도 3의 (b)의 트랜잭션 데이터는 변경 불가 데이터와 변경 가능 데이터로 구분되어 설정될 수 있다. 도 3의 (b)를 참조하면, 정보 설정부는 블록체인에 포함된 트랜잭션들 각각에 대해 변경 불가 데이터 및 변경 가능 데이터로 구분하여 설정한다.
이때, 정보 설정부는 트랜잭션 내에서 데이터 변경이 허용된 구간 즉 변경 가능 데이터에 대해 추후 변경여부를 확인할 수 있도록 변경 가능 데이터의 해시값을 구하고, 구해진 변경 가능 데이터의 해시값을 변경 불가한 구간 즉, 변경 불가 데이터 영역에 포함시키는 설정동작을 수행한다. 예를 들어, 정보 설정부는 트랜잭션 중 변경 가능 데이터(Dc1, Dc2, Dc3, Dc4) 의 각각의 해시값(h1, h2, h3, h4)을 트랜잭션 데이터 중 상기 변경 불가 데이터에 포함하도록 설정한다. 따라서, 정보 설정부는 각 트랜잭션의 생성 시에 저장된 변경 가능 데이터가 변경되었을 경우에, 확인만 가능하며 블록의 전체 해시값에는 영향을 주지 않도록 트랜잭션 데이터를 설정한다. 이렇게 생성된 트랜잭션이 네트워크로 연결된 노드들로 전파되며, 이에 따라, 본원발명의 정보 수집부(110)에서 변경 불가 데이터와 변경 가능 데이터로 구분되어 설정된 트랜잭션을 유선 또는 무선 통신망을 통해 수집한다.
정보 수집부(110)는 수집한 트랜잭션이 이전에 이미 전달받아 처리한 트랜잭션에 해당하는 것인지를 확인하고, 수집된 해당 트랜잭션의 전자서명을 검증하여 트랜잭션의 유효여부를 판단한다. 정보 수집부(110)는 수집된 트랜잭션이 유효하지 않다고 판단되면 해당 트랜잭션을 폐기하고, 수집된 트랜잭션이 유효하다고 판단되면 정보 전파부(120) 및 정보 인식부(130)로 전달한다.
정보 전파부(120)는 정보 수집부(110)로부터 전달받은 트랜잭션을 다른 노드들로 전파한다. 이를 위해, 정보 전파부(120)는 다른 노드들과 유선 및 무선 통신망을 통해 연결되어 있다. 정보 전파부(120)은 유선 통신망 또는 무선 통신망을 지원하는 유선 통신모듈 또는 무선 통신모듈을 포함할 수 있다.
정보 인식부(130)는 수집된 트랜잭션의 데이터를 상기 블록체인의 블록 해시값 산출에 사용되는 변경 불가 데이터와 상기 블록 해시값 산출에 사용되지 않는 변경 가능 데이터로 구분하여 인식한다. 정보 인식부(130)는 전달받은 트랜잭션에 포함된 변경 불가 데이터 및 변경 가능 데이터의 식별을 위한 코드 정보를 확인함으로써, 데이터의 변경 가능 여부를 인식하며, 이렇게 인식된 데이터 중에서 블록 해시값 산출을 위해 필요한 변경 불가 데이터에 대한 정보를 머클로트 처리부(140)로 전달한다.
머클루트 처리부(140)는 정보 인식부(130)로부터 전달받은 변경 불가 데이터에 대한 정보를 기초로 하여, 트랜잭션의 변경 불가 데이터에 대한 트랜잭션 해시값을 산출하고, 상기 산출된 트랜잭션 해시값과 다른 트랜잭션에 대응하는 트랜잭션 해시값을 이용하여 머클루트 해시값을 산출한다.
도 4는 본 발명에 따른 머클루트 처리부(140)에 의해 머클루트 해시값이 산출되는 과정을 설명하기 위한 일 실시예의 참조도이다.
도 4를 참조하면, 머클루트 처리부(140)는 수집된 트랜잭션에 포함된 변경 불가 데이터를 해시 알고리즘을 이용해 트랜잭션 해시값으로 변환하고, 이와 아울러 해당 트랜잭션과 가장 근접한 거래 내역에 해당하는 다른 트랜잭션의 해시값들(예를 들어, H1, H2, H3, H4)을 산출한다. 그 후, 머클루트 처리부(140)는 서로 이웃하는 트랜잭션들의 해시값들(H1과 H2, 또는 H3과 H4)을 묶어서 하나의 해시값을 산출한다. 머클루트 처리부(140)는 단 하나의 해시값이 산출될 때까지 트랜잭션들의 해시값을 묶어서 산출하는 과정을 반복하며, 최종 해시값을 머클루트 해시값으로 산출한다.
블록 생성부(150)는 머클루트 처리부(140)에서 산출된 머클루트 해시값을 이용하여 블록체인에 연결되기 위한 조건을 만족하는 블록 해시값을 산출하고, 상기 산출된 블록 해시값을 포함하는 신규 블록을 생성한다. 블록 해시값은 해당 블록의 식별자로서 기능하며, 블록체인에 연결되는 다음 블록의 생성을 위한 정보로 이용된다.
이때, 블록 생성부(150)는 유효성 검사를 위해 다른 노드로부터 생성되어 전파된 신규 블록이 수신되었는가를 먼저 확인한다. 만일, 다른 노드로부터 유효성 검사를 위한 신규 블록이 수신된 경우에는, 블록 생성부(150)는 수신된 신규 블록의 유효성 검사가 유효하면 신규 블록의 생성 동작을 중지한다. 한편, 다른 노드로부터 신규 블록이 수신되지 않는다면, 블록 생성부(150)는 블록 헤더에 포함된 정보를 이용하여 신규 블록을 생성한다.
블록 생성부(150)는 블록 헤더에 포함된 버전정보, 이전 블록의 블록 해시값, 시간정보, 난이도정보, 논스(nonce)값과 함께 머클루트 해시값을 조합하여 블록 해시값을 산출할 수 있다. 여기서, 버전정보는 소프트웨어 및 프로토콜 버전정보를 의미하고, 이전 블록의 블록 해시값은 블록 체인에서 바로 앞에 위치하는 블록의 해쉬값을 의미하고, 시간정보는 블록이 생성된 시간을 의미하고, 난이도 정보는 논스값 산출을 위한 난이도 조절용 값을 의미하고, 논스값은 최초 0에서 시작하여 조건을 만족하는 해쉬값을 찾아낼때까지의 1씩 증가하는 계산 회수를 의미한다. 블록 생성부(150)는 블록체인에 연결되기 위한 조건을 만족하는 논스값을 산출하고, 산출된 논스값을 이용하여 블록 해시값을 산출한다. 이를 작업 증명(Proof of Work) 합의 알고리즘에 의한 산출방식이다. 한편, 블록 생성부(150)는 지분 증명(Proof of Stake) 합의 알고리즘을 이용하여 노드가 갖는 지분(stake)에 의해 블록 해시값을 산출할 수도 있다.
블록 생성부(150)는 산출된 블록 해시값을 블록 정보로 저장하며, 블록 해시값이 저장된 신규 블록을 생성한다. 신규 블록에 저장된 블록 해시값은 신규 블록의 다음에 연결되는 블록의 이전 블록 해시값으로 제공된다. 이를 위해, 블록 생성부(150)는 생성된 신규 블록을 정보 전파부(120)로 전달한다. 정보 전파부(120)는 블록 생성부(150)로부터 전달받은 신규 블록을 다른 노드들로 전파한다.
변경요청 판단부(160)는 정보 수집부(110)에서 수집된 트랜잭션이 블록체인 중 일정 블록(즉, 변경대상 블록)에 포함된 변경대상 트랜잭션에 대한 정보 변경을 요청하는 변경요청 트랜잭션인가를 판단한다. 이때, 변경요청 판단부(160)는 수집된 트랜잭션에 대한 전자서명에서 트랜잭션 생성자를 확인하여 정보 변경을 위한 유효한 권한이 있는지를 확인한다. 예를 들어, 변경요청 판단부(160)는 변경요청 트랜잭션의 생성자와 변경대상 트랜잭션의 생성자의 일치 여부를 확인하여 정보 변경을 위한 유효한 권한 존부를 확인할 수 있다.
변경요청 판단부(160)는 수집된 트랜잭션에 포함된 트랜잭션 타입정보에 따라, 해당 트랜잭션이 변경요청 트랜잭션인가를 판단한다.
도 5는 본 발명에 따른 변경요청 판단부(160)의 동작을 설명하기 위한 트랜잭션 데이터의 구조를 예시하는 참조도이다.
도 5를 참조하면, 블록체인을 구성하는 트랜잭션 데이터는 전술한 바와 같이, 변경 불가 데이터와 변경 가능 데이터로 구분될 수 있으며, 변경 불가 데이터 내에는 거래 내역과 관련한 정보 및 변경 가능 데이터의 해시값 이외에, 트랜잭션 타입정보(Tx Type), 변경대상 트랜잭션을 포함하는 변경대상 블록의 블록 포인터 정보(Block Pointer) 및 변경대상 블록 내에 포함된 해당 변경대상 트랜잭션에 대한 트랜잭션 포인터 정보(Tx Pointer)를 포함할 수 있다.
트랜잭션 타입정보(Tx Type)는 생성된 트랜잭션(Tx)이 신규 거래에 따른 신규 트랜잭션에 해당하는 것인지, 블록체인에 이미 포함된 이전 트랜잭션의 변경 요청을 위한 트랜잭션에 해당하는 것인지를 판단하기 위한 정보이다. 또한, 블록 포인터 정보(Block Pointer)는 블록체인에 포함된 다수의 블록들 중에서 트랜잭션 타입정보(Tx Type)에 따른 변경대상 트랜잭션이 포함된 블록을 지시하는 주소 정보이다. 또한, 트랜잭션 포인터 정보(Tx Pointer)는 블록 포인터 정보(Block Pointer)에 의해 지시되는 변경대상 블록에 포함된 변경대상 트랜잭션을 지시하는 주소 정보이다.
다음의 표 1은 트랜잭션의 데이터 필드를 테이블 정보로 표시한 것이다.
데이터 필드 트랜잭션 특징
신규 Tx 변경요청 Tx
Tx Type 있음 있음 신규 트랜잭션 및 변경요청 트랜잭션 구분
Tx Pointer 없음 있음 변경대상 트랜잭션이 포함된 블록 주소정보
Block Pointer 없음 있음 변경대상 트랜잭션의 주소정보
변경불가 데이터 있음 있음 트랜잭션 주요정보, 이전트랜잭션정보, 전자서명 정보 등
변경가능 데이터 해시값 있음 있음 트랜잭션 데이터 중 변경불가 데이터에 포함시키기 위한 변경가능 데이터에 대한 해시값
변경가능 데이터 또는
업데이트 데이터
있음 있음 신규 트랜잭션 또는 변경요청 트랜잭션의 생성에 따라 변경불가 데이터와 구분되는 데이터
예를 들어, 변경요청 판단부(160)는 표 1에 기재된 데이터 필드 중 트랜잭션 타입정보에 따라, 수집된 트랜잭션이 신규 트랜잭션인지 또는 이전 트랜잭션에 대한 변경요청 트랜잭션인지를 판단한다. 변경요청 판단부(160)는 데이터 필드 중 트랜잭션 타입정보에 따라, 해당 트랜잭션이 변경요청 트랜잭션이라고 판단하면, 변경요청 트랜잭션의 데이터를 정보 변경부(170)로 전달한다.
정보 변경부(170)는 변경요청 판단부(160)에서 변경요청 트랜잭션이라고 판단된 트랜잭션 데이터를 전달받으면, 변경요청 트랜잭션에 대응하는 변경대상 트랜잭션의 변경 가능 데이터를 변경한다. 정보 변경부(170)는 변경대상 블록에 대한 블록 포인터 정보 및 변경대상 트랜잭션에 대한 트랜잭션 포인터 정보를 이용하여 변경대상 트랜잭션을 추적한다. 정보 변경부(170)는 변경대상 트랜잭션의 변경 가능 데이터에 대한 해시값을 산출하고, 산출된 해시값이 변경대상 트랜잭션의 생성시에 변경 불가 데이터에 미리 포함되어 저장된 해시값과 일치하는가를 비교한다. 정보 변경부(170)는 산출된 해시값이 상기 저장된 해시값과 일치하는 경우에 상기 변경대상 트랜잭션에 포함된 상기 변경 가능 데이터를 변경한다. 이때, 정보 변경부(170)는 변경대상 트랜잭션에 포함된 변경 가능 데이터에 대해 상기 변경요청 트랜잭션에 포함된 변경 가능 데이터를 지시하는 포인터 정보로 변경한다.
도 6은 본 발명에 따른 정보 변경부(170)의 동작을 설명하기 위한 예시적인 참조도이다.
정보 변경부(170)는 변경대상 트랜잭션의 변경 불가 데이터에 포함된 정보 중 변경대상 블록에 대한 블록 포인터 정보 및 변경대상 트랜잭션에 대한 트랜잭션 포인터 정보를 이용하여 변경대상 트랜잭션을 추적한다. 그 후, 정보 변경부(170)는 변경대상 트랜잭션의 변경 가능 데이터(Changeable Data)와 이에 매칭되는 해시값(h i )를 조사한다. 정보 변경부(170)는 변경대상 트랜잭션의 변경 가능 데이터와 매칭된 해시값(h i )과 변경 가능 데이터의 해시함수에 의한 해시값이 일치하는가 여부를 판단한다.
변경 가능 데이터와 매칭된 해시값(h i )이 변경 가능 데이터의 해시함수에 의한 해시값과 일치한다면, 정보 변경부(170)는 변경 가능 데이터가 아직 변경되지 않은 상태로 판단하여, 변경대상 트랜잭션에 포함된 변경 가능 데이터에 대해 변경요청 트랜잭션에 포함된 변경 가능 데이터(Changeable Update Date)를 지시하는 포인터 정보로 변경한다.
한편, 변경 가능 데이터와 매칭된 해시값(h i )이 변경 가능 데이터의 해시함수에 의한 해시값과 일치하지 않는다면, 정보 변경부(170)는 변경 가능 데이터가 이미 다른 포인터 정보로 변경된 것으로 판단한다. 정보 변경부(170)는 이미 변경 대상 트랜잭션의 변경 가능 데이터가 다른 트랜잭션의 포인터 정보로 변경된 경우에 해당 포인터 정보가 지시하는 다른 트랜잭션의 변경 가능 데이터를 추적한다. 이에 따라, 정보 변경부(170)는 변경 가능 데이터가 변경되지 않은 상태의 변경 대상 트랜잭션을 찾을 때까지 추적한다. 정보 변경부(170)는 변경 가능 데이터가 변경되지 않은 상태의 변경대상 트랜잭션을 추적하여 발견하게 되면, 발견한 변경 대상 트랜잭션에 포함된 변경 가능 데이터에 대해 변경요청 트랜잭션의 변경 가능 데이터를 지시하는 포인터 정보로 변경한다.
도 7a 내지 도 7c는 변경대상 트랜잭션의 변경 가능 데이터가 변경되는 동작 과정을 설명하기 위한 예시적인 참조도이다.
도 7a를 참조하면, 블록체인에 포함된 이전의 트랜잭션에 대한 변경요청 트랜잭션이 전달되면, 정보 변경부(170)는 변경요청 트랜잭션에 포함된 변경대상 블록의 포인터 정보와 변경대상 블록에 포함된 변경대상 트랜잭션의 포인터 정보를 참조하여 변경대상 트랜잭션을 추적한다. 그 후, 정보 변경부(170)는 변경 대상 트랜잭션의 변경가능 데이터를 변경요청 트랜잭션의 변경 가능 데이터에 대한 포인터 정보를 변경한다. 이때, 변경대상 트랜잭션의 변경가능 데이터가 이전에 이미 변경되어 포인터 정보가 이미 저장되어 있는 경우에는, 정보 변경부(170)는 변경 가능 데이터의 해시값이 일치하는 트랜잭션을 찾을 때까지 추적하여 해당 변경 가능 데이터를 변경 요청 트랜잭션의 포인터 정보를 변경한다.
또한, 도 7b를 참조하면, 정보 변경부(170)는 변경대상 트랜잭션의 변경 가능 데이터와 이에 매칭되는 해시값를 조사한다. 이때, 정보 변경부(170)는 변경요청 트랜잭션에 포함된 변경대상 블록의 포인터 정보 및 변경대상 트랜잭션의 포인터 정보를 이용하여 블록체인에 연결(등록)된 가장 최초의 블록 및 트랜잭션을 추적할 수 있다.
정보 변경부(170)는 변경가능 데이터(Dci)와 매칭된 해시값(h i )과 해시함수에 의한 변경가능 데이터의 해시값(H(Dci))이 일치하지 않는다면, 변경대상 트랜잭션(Txi)에 포함된 변경가능 데이터(Dci)가 변경요청 트랜잭션의 포인터 정보(Pointer(Txj))에 해당하는가를 판단한다. 만일, 변경대상 트랜잭션(Txi)에 포함된 변경가능 데이터(Dci)가 변경요청 트랜잭션의 포인터 정보(Pointer(Txj))에 해당한다면, 정보 변경부(170)는 해당 포인터 정보(Pointer(Txj))가 유효하다고 판단한다. 그러나, 만일, 변경대상 트랜잭션(Txi)에 포함된 변경가능 데이터(Dci)가 어떠한 변경요청 트랜잭션의 포인터 정보와도 일치하지 않는다면, 정보 변경부(170)는 변경대상 트랜잭션(Txi)에 포함된 변경 가능 데이터(Dci)가 훼손되어 유효하지 않다고 판단하여, 다른 노드의 조회 또는 트랜잭션의 추적을 통해 유효한 데이터로 복구한다.
또한, 도 7c를 참조하면, 트랜잭션에 포함된 변경가능 데이터가 연속적으로 포인터 정보를 지시하는 경우에 신속한 액세스를 위해, 정보 변경부(170)는 마지막 변경 요청 트랜잭션(Tx j )에 대응하는 가장 최근의 변경대상 트랜잭션(Tx i )에 대한 변경 가능 데이터를 변경할 수 있도록 한다.
예를 들어, 변경요청 트랜잭션(Tx j )에 포함된 변경대상 블록의 포인터 정보 및 변경대상 트랜잭션의 포인터 정보는 도 7b에서의 최초의 변경 대상 트랜잭션(Tx1)을 지시하는 것이 아닌 블록체인에 등록되어 변경된 가장 최근의 트랜잭션(Tx i )을 지시하는 것일 수 있다. 이에 따라, 정보 변경부(170)는 변경요청 트랜잭션(Tx j )에 포함된 변경 대상 블록의 포인터 정보 및 변경 대상 트랜잭션의 포인터 정보를 이용하여 블록체인에 등록된 가장 최근의 블록 및 트랜잭션을 추적할 수 있다.
정보 훼손 검사부(180)는 각 노드의 트랜잭션들이 무단 훼손되지 않음을 확인하기 위해, 블록체인에 속하는 블록들 중에서 랜덤하게 지정되는 검사용 블록에서 변경 가능 데이터들의 훼손 여부를 확인하기 위한 검사용 해시값을 산출한다. 또한, 정보 훼손 검사부(180)는 생성된 신규 블록 또는 다른 노드들로부터 전파되어 수집된 블록에 대한 유효성 검사를 수행한다.
정보 훼손 검사부(180)는 각 노드의 트랜잭션들이 무단 훼손되지 않음을 확인하기 위해, 블록체인에 속하는 블록들 중에서 임의의 검사용 블록을 지정하기 위한 블록 지정정보(예를 들어, 랜덤함수)를 다른 노드들과 함께 미리 공유하고 있다. 이러한, 블록 지정정보는 블록 생성 전까지는 미리 알 수는 없으며, 블록 생성시에 비로소 랜덤한 값을 이용해 검사용 블록을 지정할 수 있는 정보이다. 따라서, 블록이 생성될 때까지는 예측할 수 없지만 모든 노드들이 공통적으로 공유하는 블록 지정정보를 활용하여 새로운 블록 생성 시마다 모든 노드들이 동일한 검사용 블록을 지정할 수 있다.
정보 훼손 검사부(180)는 블록 지정정보에 의해 지정된 검사용 블록에 대한 검사용 해시값을 산출한다. 정보 훼손 검사부(180)는 검사용 블록에 포함된 적어도 하나 이상의 트랜잭션에 포함된 변경 가능 데이터들의 검사용 해시값을 산출한다. 그 후, 정보 훼손 검사부(180)는 산출된 검사용 해시값을 블록 생성부(140)로 전달한다. 이에 따라, 블록 생성부(140)는 전달받은 검사용 해시값을 블록의 헤더에 저장한다. 그 후, 블록 생성부(140)는 산출된 블록 해시값과 검사용 해시값을 포함하는 신규 블록을 생성할 수 있다. 신규 블록이 생성된 후에, 신규 블록의 검증을 위해, 정보 전파부(150)는 검사용 해시값을 포함하는 신규 블록을 상기 노드들로 전파한다.
도 8은 본 발명에 따른 정보 훼손 검사부(180)의 동작을 설명하기 위한 일 실시예의 참조도이다.
도 8을 참조하여 설명하면, 정보 훼손 검사부(180)는 신규 블록 생성 시에 블록 지정정보를 이용하여 검사용 블록을 지정할 수 있으며, 이를 위해, 정보 훼손 검사부(180)는 블록 지정정보를 블록체인의 형성을 위한 합의에 참여하는 모든 노드들과 공유한다. 정보 훼손 검사부(180)는 지정된 검사용 블록에 포함된 변경 가능 데이터들의 해시값을 산출하고, 산출된 검사용 블록에 대한 해시값을 블록 생성부(140)에 전달하여 신규 블록의 헤더에 저장한다.
한편, 정보 훼손 검사부(180)는 상기 신규 블록 또는 상기 다른 노드로부터 전파되어 수신된 신규 블록 중 생성 순서에 따라 순차적으로 상기 검사용 해시값을 비교하여 블록의 유효성을 검사한다. 다른 노드에서 생성되어 전파된 신규 블록을 정보 수집부(110)가 수신하면, 정보 훼손 검사부(180)는 수신된 신규 블록에 포함된 헤더로부터 검사용 해시값을 추출하고, 상기 추출된 검사용 해시값이 신규 블록의 생성시에 자신이 산출한 검사용 해시값과 일치하는가 여부에 따라 블록체인을 구성하기 위한 유효 블록을 결정한다. 정보 훼손 검사부(180)는 자신의 노드를 포함하여 다른 노드들로부터 전달된 블록 중 가장 먼저 생성된 블록에 대해 유효한지 검증한다. 정보 훼손 검사부(180)는 생성된 신규 블록 및 다른 노드들로부터 전파된 블록들의 블록 생성 순서에 따라 순차적으로 유효성을 검사하며, 검사한 결과 유효할 경우 블록을 블록체인을 구성하는 블록으로 결정한다.
이때, 정보 훼손 검사부(180)는 참조하는 블록 해시값, 블록 생성 조건의 유효성을 검사함과 더불어, 검사용 해시값을 비교하여 블록의 유효성을 검사한다. 정보 훼손 검사부(180)는 검사용 해시값을 사용하여 유효성 검사를 수행할 경우에는, 이러한 검사용 해시값을 주기적 또는 무작위적으로 사용할 수 있다.
유효 블록을 결정하기 위해, 정보 훼손 검사부(180)는 다른 노드에서 전파된 블록의 검사용 해시값과 자신이 계산한 검사용 해시값을 비교한다. 만일, 전파된 블록의 검사용 해시값과 자신이 계산한 검사용 해시값이 일치된다면, 정보변경장치는 해당 블록이 유효 블록이라고 결정한다. 그러나, 전파된 블록의 검사용 해시값과 자신이 계산한 검사용 해시값이 일치하지 않는다면, 정보 훼손 검사부(180)는 해당 블록이 유효하지 않다고 판단한다.
또한, 정보 훼손 검사부(180)는 블록의 유효성 검사에 따라 결정된 유효 블록이 블록체인의 구성 블록으로 확정되는지를 확인하고, 해당 유효 블록에 대한 변경 가능 데이터의 복구 동작을 수행한다. 예를 들어, 정보 훼손 검사부(180)는 블록체인을 구성하는 블록들 중에서 유효 블록을 포함하여 6개의 컨펌 블록이 블록체인을 구성하는 경우에 해당 유효 블록이 비가역적 블록으로 확정된 것으로 판단하며, 이에 따라, 정보 훼손 검사부(180)는 해당 유효 블록에 대한 변경 가능 데이터가 최근에 업데이트된 유효한 데이터라고 판단한다. 그러나, 유효 블록이 다른 6개의 컨펌 블록과 함께 블록체인을 구성하지 않거나 유효하지 않는 블록에 해당하는 경우에, 정보 훼손 검사부(180)는 해당 유효 블록 또는 유효하지 않은 블록에 대한 변경 가능 데이터의 복구 동작을 수행한다. 정보 훼손 검사부(180)는 다른 노드들로부터 유효한 블록의 변경가능 데이터를 수집하여 업데이터하거나, 변경 가능 데이터의 포인터 정보를 추적하여 해당 정보를 업데이트한다.
도 9는 본 발명에 따른 블록체인의 정보변경방법을 설명하기 위한 일 실시예의 플로차트이다. 이러한, 블록체인의 정보변경방법은 블록체인을 생성 및 배포하는 노드들 각각에서 수행된다.
먼저, 정보변경장치는 블록체인을 구성하는 블록들에 포함되는 트랜잭션이 다른 노드로부터 전파되면, 상기 전파된 트랜잭션을 수집한다(S200 단계). 정보변경장치가 수집하는 트랜잭션의 데이터는 블록체인을 구성할 경우에 데이터의 변경이 불가능한 변경 불가 데이터와 블록체인을 구성하더라도 데이터의 변경이 가능한 변경 가능 데이터를 포함한다. 여기서, 수집된 트랜잭션에 포함된 변경 불가 데이터는 블록체인의 블록 해시값 산출에 사용되는 불변 데이터이다. 한편, 수집된 트랜잭션에 포함된 변경 가능 데이터는 블록 해시값 산출에 사용되지 않는 가변 데이터이다. 트랜잭션을 생성하여 전파하는 노드들은 해당 트랜잭션의 생성 시에 전술한 바와 같이, 트랜잭션의 데이터가 변경 불가 데이터와 변경 가능 데이터로 구분되도록 설정하고, 이렇게 설정된 트랜잭션을 다른 노드들로 전파하면, 이를 정보변경장치를 포함하는 노드에서 수집한다.
트랜잭션을 수집한 정보변경장치는 해당 트랜잭션이 이전에 이미 전달받아 처리한 트랜잭션에 해당하는 것인지를 확인하고, 수집된 해당 트랜잭션의 전자서명을 검증하여 트랜잭션의 유효여부를 판단한다. 정보변경장치는 수집된 트랜잭션이 유효하지 않다고 판단되면 해당 트랜잭션을 폐기하고, 수집된 트랜잭션이 유효하다고 판단되면 다른 노드들로 전파한다.
S200 단계 후에, 정보변경장치는 수집된 트랜잭션의 데이터를 상기 블록체인의 블록 해시값 산출에 사용되는 변경 불가 데이터와 상기 블록 해시값 산출에 사용되지 않는 변경 가능 데이터로 구분하여 인식한다(S202 단계). 정보변경장치는 전달받은 트랜잭션에 포함된 변경 불가 데이터 및 변경 가능 데이터의 식별을 위한 코드 정보를 확인함으로써, 데이터의 변경 가능 여부를 인식할 수 있다.
S202 단계 후에, 정보변경장치는 수집된 트랜잭션이 상기 블록체인 중 일정 블록(즉, 변경대상 블록)에 포함된 변경대상 트랜잭션에 대한 정보의 변경을 요청하는 변경요청 트랜잭션인가를 판단한다(S204 단계). 정보변경장치는 트랜잭션이 수집될 경우에, 전자서명에서 트랜잭션 생성자를 확인하여 정보 변경을 위한 유효한 권한이 있는지를 확인한다.
블록체인을 구성하기 위해 생성된 트랜잭션 데이터는 변경 불가 데이터와 변경 가능 데이터로 구분될 수 있으며, 변경 불가 데이터 내에는 트랜잭션 타입정보, 변경대상이 되는 트랜잭션을 포함하는 변경대상 블록에 대한 블록 포인터 정보 및 변경대상 블록 내에 포함된 변경대상 트랜잭션에 대한 트랜잭션 포인터 정보를 포함할 수 있다. 여기서, 트랜잭션 타입정보(Tx Type)는 생성된 트랜잭션(Tx)이 신규 거래에 따른 신규 트랜잭션에 해당하는 것인지, 블록체인에 이미 포함된 이전 트랜잭션의 변경 요청을 위한 트랜잭션에 해당하는 것인지를 판단하기 위한 정보이다. 정보변경장치는 블록체인에 이미 포함된 이전 트랜잭션의 변경 요청을 위한 트랜잭션 타입정보를 확인하여 생성 트랜잭션이 변경요청 트랜잭션인가를 판단한다.
S204 단계에서 수집된 트랜잭션이 변경요청 트랜잭션이라고 판단되면, 정보변경장치는 변경요청 트랜잭션에 대응하는 변경대상 트랜잭션의 변경 가능 데이터를 변경한다(S206 단계). S206 단계에 대한 상세한 내용은 첨부된 도 10을 참조하여 후술한다. 또한, 전술한 제204 단계 및 제206 단계는 반드시 요구되는 단계는 아니며, 필요에 따라 생략 가능한 단계들이라는 점에서, S202 단계 후에, 다음의 S208 단계를 수행할 수도 있다.
정보변경장치는 변경요청 트랜잭션 중 변경 불가 데이터에 대한 트랜잭션 해시값을 산출하고, 상기 산출된 트랜잭션 해시값과 다른 트랜잭션에 대응하는 트랜잭션 해시값을 이용하여 머클루트 해시값을 산출한다(S208 단계). 정보변경장치는 변경요청 트랜잭션에 포함된 변경 불가 데이터를 해시 알고리즘을 이용해 트랜잭션 해시값으로 변환하고, 이와 아울러 해당 변경요청 트랜잭션과 가장 근접한 거래 내역에 해당하는 트랜잭션의 해시값을 산출한다. 그 후, 정보변경장치는 변경요청 트랜잭션의 트랜잭션 해시값과 이와 이웃하는 트랜잭션의 해시값을 묶어서 하나의 해시값을 산출한다. 정보변경장치는 단 하나의 해시값이 산출될 때까지 산출과정을 반복하며, 최종 해시값을 머클루트 해시값으로 산출한다.
S208 단계 후에, 정보변경장치는 검사용 블록에 포함된 변경 가능 데이터들의 훼손 여부를 확인하기 위한 검사용 해시값을 산출하고, 상기 산출된 검사용 해시값을 신규 블록의 헤더에 저장한다(S210 단계). 이를 위해, 정보변경장치는 블록체인에 속하는 블록들 중에서 임의의 검사용 블록을 지정하기 위한 블록 지정정보(예를 들어, 랜덤함수값)를 다른 노드들과 함께 미리 공유하고 있다.
정보변경장치는 블록 생성시에만 해당 검사용 블록을 지정하며, 지정된 검사용 블록에 포함된 변경 가능 데이터들의 해시값을 산출하고, 산출된 검사용 블록에 대한 해시값을 신규 블록의 헤더에 저장한다. 한편, 전술한 S210 단계는 반드시 필요한 단계는 아니며 필요에 따라 생략 가능하므로, S208 단계 후에 다음의 S212 단계를 수행할 수도 있다.
S208 단계 또는 S210 단계 후에, 정보변경장치는 다른 노드에서 생성된 신규 블록이 수신되었는가를 판단한다(S212 단계). 만일, 다른 노드로부터 생성되어 전파된 신규 블록이 수신되었다면, 후술하는 S214 단계를 수행한다.
그러나, S212 단계에서, 다른 노드에서 생성된 신규 블록이 수신되지 않는다면, 정보변경장치는 상기 산출된 머클루트 해시값을 이용해 상기 블록체인에 연결되기 위한 조건을 만족하는 블록 해시값을 산출하고, 상기 산출된 블록 해시값 및/또는 검사용 해시값을 포함하는 신규 블록을 생성한다(S214 단계). 정보변경장치는 블록 헤더에 포함된 버전정보, 이전 블록의 블록 해시값, 시간정보, 난이도정보, 논스값과 함께 머클루트 해시값을 조합하여 블록해시값을 산출할 수 있다. 정보변경장치는 블록체인에 연결되기 위한 조건을 만족하는 논스값을 산출하고, 산출된 논스값을 이용하여 블록 해시값을 산출한다. 정보변경장치는 작업 증명 합의 알고리즘을 이용하여 블록 해시값을 산출할 수도 있고, 지분 증명 합의 알고리즘을 이용하여 블록 해시값을 산출할 수도 있다. 정보변경장치는 산출된 블록 해시값을 블록 정보로 저장한다. 이때, 정보변경장치는 S210 단계에서 저장된 검사용 해시값과 저장된 블록 해시값을 포함하는 신규 블록을 생성할 수 있다.
S214 단계 후에, 정보변경장치는 자신이 생성하였거나 다른 노드에서 생성된 신규 블록을 생성 순서에 따라 순차적으로 블록의 유효성을 검사한다(S216 단계). 정보변경장치는 유효성 검사 결과 유효할 경우 해당 블록을 블록체인을 구성하는 블록으로 결정한다. 다만, 유효성 검사 시에 검사용 해시값을 사용하는 것은 주기적 또는 무작위적으로 이루어질 수 있다.
검사용 해시값의 유효성을 검사하기 위해, 정보변경장치는 다른 노드에서 생성된 블록의 검사용 해시값과 자신이 계산한 검사용 해시값을 비교한다. 만일, 전파된 블록의 검사용 해시값과 자신이 계산한 검사용 해시값이 일치된다면, 정보변경장치는 해당 블록이 유효 블록이라고 결정한다. 그러나, 전파된 블록의 검사용 해시값과 자신이 계산한 검사용 해시값이 일치하지 않는다면, 정보변경장치는 해당 블록이 유효하지 않다고 판단한다.
S216 단계 후에, 정보변경장치는 상기 블록의 유효성 검사에 따라 결정된 유효 블록이 상기 블록체인의 구성 블록으로 확정되는지를 확인하고, 해당 유효 블록에 대한 변경 가능 데이터의 복구 동작을 수행한다(S216). 예를 들어, 정보변경장치는 블록체인을 구성하는 블록들 중에서 유효 블록을 포함하여 6개의 컨펌 블록이 블록체인을 구성하는 경우에 해당 유효 블록이 비가역적 블록으로 확정된 것으로 판단하며, 이에 따라, 정보변경장치는 해당 유효 블록에 대한 변경 가능 데이터가 유효한 데이터라고 판단한다. 그러나, 유효 블록이 다른 6개의 컨펌 블록과 함께 블록체인을 구성하지 않거나 유효하지 않는 블록에 해당하는 경우에, 정보변경장치는 해당 유효 블록 또는 유효하지 않은 블록에 대한 변경 가능 데이터의 복구 동작을 수행한다. 정보변경장치는 다른 노드들로부터 유효한 블록의 변경가능 데이터를 수집하여 업데이터하거나, 변경 가능 데이터의 포인터 정보를 추적하여 해당 정보를 업데이트한다.
도 10은 도 9에 도시된 변경대상 트랜잭션에 포함된 변경 가능 데이터의 변경 과정을 상세히 설명하기 위한 일 실시예의 플로차트이다.
정보변경장치는 상기 수집된 트랜잭션에 포함된 데이터 중에서 상기 일정 블록에 대한 블록 포인터 정보 및 상기 일정 블록 내에 포함된 상기 변경대상 트랜잭션에 대한 트랜잭션 포인터 정보를 이용하여 상기 변경대상 트랜잭션을 추적한다(S300 단계).
이때, 정보변경장치는 변경요청 트랜잭션에 포함된 변경대상 블록의 포인터 정보 및 변경대상 트랜잭션의 포인터 정보를 이용하여 블록체인에 연결(등록)된 가장 최초의 블록 및 트랜잭션을 추적할 수 있다. 또한, 트랜잭션에 포함된 변경가능 데이터가 연속적으로 포인터 정보를 지시하는 경우에 신속한 액세스를 위해, 정보변경장치는 마지막 변경 요청 트랜잭션에 대응하는 가장 최근의 변경대상 트랜잭션을 추적할 수도 있다.
S300 단계 후에, 정보변경장치는 상기 추적된 변경대상 트랜잭션의 변경가능 데이터에 대한 해시값을 산출한다(S302 단계).
S302 단계 후에, 정보변경장치는 상기 산출된 해시값이 상기 변경대상 트랜잭션의 생성시에 변경 불가 데이터에 미리 포함되어 저장된 해시값과 일치하는가를 비교한다(S304 단계).
S304 단계 후에, 상기 산출된 해시값이 상기 저장된 해시값과 일치하는 경우에, 정보변경장치는 상기 변경대상 트랜잭션에 포함된 상기 변경가능 데이터를 변경한다(S306 단계). 정보변경장치는 상기 변경대상 트랜잭션에 포함된 변경 가능 데이터에 대해 상기 변경요청 트랜잭션에 포함된 변경가능 데이터를 지시하는 포인터 정보로 변경한다.
한편, S304 단계 후에, 상기 산출된 해시값이 상기 저장된 해시값과 일치하지 않는 경우에, 정보변경장치는 상기 변경대상 트랜잭션에 포함된 변경가능 데이터가 상기 변경요청 트랜잭션의 포인터정보와 일치하는가를 판단한다(S308 단계).
S308 단계 후에, 상기 변경대상 트랜잭션에 포함된 변경가능 데이터가 상기 변경요청 트랜잭션의 포인터정보와 일치한다면, 정보변경장치는 상기 변경 대상 트랜잭션에 포함된 변경 가능 데이터가 유효함을 확인한다(S310 단계). 이에 따라, 정보변경장치는 변경대상 트랜잭션의 변경가능 데이터가 이전에 이미 변경되어 포인터 정보가 이미 저장되어 있는 경우에는, 변경 가능 데이터의 해시값이 일치하는 트랜잭션을 찾을 때까지 추적을 계속한다.
또한, S308 단계 후에, 상기 변경대상 트랜잭션에 포함된 변경가능 데이터가 상기 변경요청 트랜잭션의 포인터정보와 일치하지 않는다면, 정보변경장치는 상기 변경 대상 트랜잭션에 포함된 변경 가능 데이터가 무단 훼손되었다고 판단하여 데이터 복구를 위한 절차를 수행한다(S312 단계). 변경대상 트랜잭션에 포함된 변경가능 데이터가 어떠한 변경요청 트랜잭션의 포인터 정보와도 일치하지 않는다면, 정보변경장치는 변경대상 트랜잭션에 포함된 변경 가능 데이터가 훼손되어 유효하지 않다고 판단하여, 다른 노드의 조회 또는 트랜잭션의 추적을 통해 유효한 데이터로 복구하는 과정을 수행한다.
이제까지 본 발명에 대하여 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 따라서 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허청구범위에 기재된 내용 및 그와 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
100: 정보변경장치
110: 정보 수집부
120: 정보 전파부
130: 정보 인식부
140: 머클루트 처리부
150: 블록 생성부
160: 변경요청 판단부
170: 정보 변경부
180: 정보 훼손 검사부

Claims (19)

  1. 블록체인을 생성 및 배포하는 노드들 각각에 구비되는 블록체인의 정보변경장치에 있어서,
    상기 블록체인을 구성하는 블록들에 포함되는 트랜잭션이 다른 노드로부터 전파되면, 상기 전파된 트랜잭션을 수집하는 정보 수집부;
    상기 수집된 트랜잭션의 데이터를 상기 블록체인의 블록 해시값 산출에 사용되는 변경 불가 데이터와 상기 블록 해시값 산출에 사용되지 않는 변경 가능 데이터로 구분하여 인식하는 정보 인식부;
    상기 트랜잭션의 데이터 중 상기 변경 불가 데이터에 대한 트랜잭션 해시값을 산출하고, 상기 산출된 트랜잭션 해시값과 다른 트랜잭션에 대응하는 트랜잭션 해시값을 이용하여 머클루트 해시값을 산출하는 머클루트 처리부; 및
    상기 산출된 머클루트 해시값을 이용해 상기 블록체인의 조건을 만족하는 블록 해시값을 산출하고, 상기 산출된 블록 해시값을 포함하는 신규 블록을 생성하는 블록 생성부를 포함하고,
    상기 변경 불가 데이터는 상기 트랜잭션의 데이터 중 상기 변경 가능 데이터의 해시값을 포함하는 것을 특징으로 하는 블록체인의 정보변경장치.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 수집된 트랜잭션이 상기 블록체인 중 일정 블록에 포함된 변경대상 트랜잭션에 대한 데이터의 변경을 요청하는 변경요청 트랜잭션인가를 판단하는 변경요청 판단부; 및
    상기 변경요청 트랜잭션이라고 판단되면, 상기 변경대상 트랜잭션에 포함된 변경 가능 데이터를 변경하는 정보 변경부를 더 포함하는 것을 특징으로 하는 블록체인의 정보변경장치.
  4. 청구항 3에 있어서,
    상기 변경요청 판단부는,
    상기 수집된 트랜잭션에 포함된 트랜잭션 타입정보에 따라 상기 수집된 트랜잭션이 상기 변경요청 트랜잭션인가를 판단하는 것을 특징으로 하는 블록체인의 정보변경장치.
  5. 청구항 3에 있어서,
    상기 정보 변경부는,
    상기 수집된 트랜잭션에 포함된 데이터 중에서 상기 일정 블록에 대한 블록 포인터 정보 및 상기 일정 블록 내에 포함된 상기 변경대상 트랜잭션에 대한 트랜잭션 포인터 정보를 이용하여 상기 변경대상 트랜잭션을 추적하는 것을 특징으로 하는 블록체인의 정보변경장치.
  6. 청구항 3에 있어서,
    상기 정보 변경부는,
    상기 변경대상 트랜잭션의 변경 가능 데이터에 대한 해시값을 산출하고, 상기 산출된 해시값이 상기 변경대상 트랜잭션의 생성시에 변경 불가 데이터에 미리 포함되어 저장된 해시값과 일치하는가를 비교하고,
    상기 산출된 해시값이 상기 저장된 해시값과 일치하는 경우에 상기 변경대상 트랜잭션에 포함된 상기 변경 가능 데이터를 변경하는 것을 특징으로 하는 블록체인의 정보변경장치.
  7. 청구항 3에 있어서,
    상기 정보 변경부는,
    상기 변경대상 트랜잭션에 포함된 변경 가능 데이터에 대해 상기 변경요청 트랜잭션에 포함된 변경 가능 데이터를 지시하는 포인터 정보로 변경하는 것을 특징으로 하는 블록체인의 정보변경장치.
  8. 청구항 1에 있어서,
    상기 블록체인에 속하는 블록들 중에서 랜덤하게 지정되는 검사용 블록에 대한 블록 지정정보를 다른 노드들과 함께 미리 공유하고 있으며, 상기 블록 지정정보를 이용해 상기 검사용 블록을 지정하고, 상기 지정된 검사용 블록에 포함된 변경 가능 데이터들의 훼손 여부를 확인하기 위한 검사용 해시값을 산출하고, 상기 산출된 검사용 해시값을 상기 블록 생성부로 전달하는 정보 훼손 검사부를 더 포함하는 것을 특징으로 하는 블록체인의 정보변경장치.
  9. 청구항 8에 있어서,
    상기 정보 훼손 검사부는,
    상기 신규 블록 또는 상기 다른 노드로부터 생성되어 수신된 블록 중 생성 순서에 따라 순차적으로 상기 검사용 해시값을 비교하여 블록의 유효성을 검사하는 것을 특징으로 하는 블록체인의 정보변경장치.
  10. 청구항 9에 있어서,
    상기 정보 훼손 검사부는,
    블록의 유효성 검사에 따라 결정된 유효 블록이 상기 블록체인의 구성 블록으로 확정되는지를 확인하고, 상기 유효 블록에 대한 변경 가능 데이터의 복구 동작을 수행하는 것을 특징으로 하는 블록체인의 정보변경장치.
  11. 블록체인을 생성 및 배포하는 노드들 각각에서 수행되는 블록체인의 정보변경방법에 있어서,
    상기 블록체인을 구성하는 블록들에 포함되는 트랜잭션이 다른 노드로부터 전파되면, 상기 전파된 트랜잭션을 수집하는 단계;
    상기 수집된 트랜잭션의 데이터를 상기 블록체인의 블록 해시값 산출에 사용되는 변경 불가 데이터와 상기 블록 해시값 산출에 사용되지 않는 변경 가능 데이터로 구분하여 인식하는 단계;
    상기 수집된 트랜잭션이 상기 블록체인 중 일정 블록에 포함된 변경대상 트랜잭션에 대한 데이터의 변경을 요청하는 변경요청 트랜잭션인가를 판단하는 단계;
    상기 변경요청 트랜잭션이라고 판단되면, 상기 변경대상 트랜잭션에 포함된 변경 가능 데이터를 변경하는 단계;
    상기 트랜잭션의 데이터 중 상기 변경 불가 데이터에 대한 트랜잭션 해시값을 산출하고, 상기 산출된 트랜잭션 해시값과 다른 트랜잭션에 대응하는 트랜잭션 해시값을 이용하여 머클루트 해시값을 산출하는 단계; 및
    상기 산출된 머클루트 해시값을 이용해 상기 블록체인의 조건을 만족하는 블록 해시값을 산출하고, 상기 산출된 블록 해시값을 포함하는 신규 블록을 생성하는 단계를 포함하는 것을 특징으로 하는 블록체인의 정보변경방법.
  12. 삭제
  13. 청구항 11에 있어서,
    상기 변경요청 트랜잭션인가를 판단하는 단계는,
    상기 수집된 트랜잭션에 포함된 트랜잭션 타입정보에 따라 상기 수집된 트랜잭션이 상기 변경요청 트랜잭션인가를 판단하는 것을 특징으로 하는 블록체인의 정보변경방법.
  14. 청구항 11에 있어서,
    상기 변경대상 트랜잭션에 포함된 변경 가능 데이터를 변경하는 단계는,
    상기 수집된 트랜잭션에 포함된 데이터 중에서 상기 일정 블록에 대한 블록 포인터 정보 및 상기 일정 블록 내에 포함된 상기 변경대상 트랜잭션에 대한 트랜잭션 포인터 정보를 이용하여 상기 변경대상 트랜잭션을 추적하는 단계;
    상기 추적된 변경대상 트랜잭션의 변경가능 데이터에 대한 해시값을 산출하는 단계;
    상기 산출된 해시값이 상기 변경대상 트랜잭션의 생성시에 변경 불가 데이터에 미리 포함되어 저장된 해시값과 일치하는가를 비교하는 단계; 및
    상기 산출된 해시값이 상기 저장된 해시값과 일치하는 경우에 상기 변경대상 트랜잭션에 포함된 상기 변경가능 데이터를 변경하는 단계를 포함하는 것을 특징으로 하는 블록체인의 정보변경방법.
  15. 청구항 14에 있어서,
    상기 변경대상 트랜잭션에 포함된 변경 가능 데이터를 변경하는 단계는,
    상기 변경대상 트랜잭션에 포함된 변경 가능 데이터에 대해 상기 변경요청 트랜잭션에 포함된 변경가능 데이터를 지시하는 포인터 정보로 변경하는 것을 특징으로 하는 블록체인의 정보변경방법.
  16. 청구항 14에 있어서,
    상기 변경대상 트랜잭션에 포함된 변경 가능 데이터를 변경하는 단계는,
    상기 산출된 해시값이 상기 저장된 해시값과 일치하지 않는다면, 상기 변경 대상 트랜잭션에 포함된 변경 가능 데이터가 상기 변경요청 트랜잭션의 포인터정보와 일치하는가를 판단하는 단계; 및
    상기 일치 여부에 따라, 상기 변경 대상 트랜잭션에 포함된 변경 가능 데이터의 유효 확인 또는 데이터 훼손에 따른 복구를 수행하는 단계를 더 포함하는 것을 특징으로 하는 블록체인의 정보변경방법.
  17. 청구항 11에 있어서,
    상기 블록체인에 속하는 블록들 중에서 랜덤하게 지정되는 검사용 블록에 대한 블록 지정정보를 다른 노드들과 함께 미리 공유하고 있으며, 상기 블록 지정정보를 이용해 상기 검사용 블록을 지정하고, 상기 지정된 검사용 블록에 포함된 변경 가능 데이터들의 훼손 여부를 확인하기 위한 검사용 해시값을 산출하고, 상기 산출된 검사용 해시값을 상기 신규 블록의 헤더에 저장하는 단계를 더 포함하는 것을 특징으로 하는 블록체인의 정보변경방법.
  18. 청구항 17에 있어서,
    상기 신규 블록 또는 상기 다른 노드로부터 생성되어 수신된 블록 중 생성 순서에 따라 순차적으로 상기 검사용 해시값을 비교하여 블록의 유효성을 검사하는 단계를 더 포함하는 것을 특징으로 하는 블록체인의 정보변경방법.
  19. 청구항 18에 있어서,
    블록의 유효성 검사에 따라 결정된 유효 블록이 상기 블록체인의 구성 블록으로 확정되는지를 확인하고, 상기 유효 블록에 대한 변경 가능 데이터의 복구 동작을 수행하는 단계를 더 포함하는 것을 특징으로 하는 블록체인의 정보변경방법.
KR1020190031606A 2019-03-20 2019-03-20 블록체인의 정보변경장치 및 방법 KR102046059B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190031606A KR102046059B1 (ko) 2019-03-20 2019-03-20 블록체인의 정보변경장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190031606A KR102046059B1 (ko) 2019-03-20 2019-03-20 블록체인의 정보변경장치 및 방법

Publications (1)

Publication Number Publication Date
KR102046059B1 true KR102046059B1 (ko) 2019-11-18

Family

ID=68727786

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190031606A KR102046059B1 (ko) 2019-03-20 2019-03-20 블록체인의 정보변경장치 및 방법

Country Status (1)

Country Link
KR (1) KR102046059B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563277A (zh) * 2020-04-03 2020-08-21 上海坤振集成电路有限公司 一种区块链网络中的工作量证明方法以及一种区块链
KR102217052B1 (ko) 2020-02-26 2021-02-18 (주)소셜인프라테크 블록체인 기반 합의를 통한 전자문서 통합 관리 시스템
WO2021108258A1 (en) * 2019-11-25 2021-06-03 Visa International Service Association Optimizations for verification of interactions system and method using probability density functions
CN113515535A (zh) * 2021-05-31 2021-10-19 深圳市朝明科技信息有限公司 区块链的电子商务信息变更方法及***
US11177962B2 (en) 2019-02-05 2021-11-16 Visa International Service Association Optimizations for verification of interactions system and method
WO2022262446A1 (zh) * 2021-06-18 2022-12-22 中国科学技术大学 分层裁剪区块链交易内数据的方法、装置、设备及介质
KR20230132318A (ko) 2022-03-08 2023-09-15 주식회사 네츠로 가상 화폐 지불을 통한 전자 문서 관리 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101628007B1 (ko) 2015-04-07 2016-06-13 주식회사 코인플러그 당사자간 블록체인을 갖는 디지털 가상화폐의 거래시스템
KR101887894B1 (ko) * 2018-02-23 2018-08-14 (주)케이사인 메쉬 타입 블록체인 기반의 사물 인터넷 기기 관리 시스템
KR101934444B1 (ko) * 2018-04-04 2019-01-02 대한민국 문서 및 유가증권의 무결성 데이터 관리 방법
KR101954739B1 (ko) * 2018-06-15 2019-03-07 (주)블록체인연구소 블록체인 기반의 동물 비문 저장 및 비문 이용 방법
KR20190028517A (ko) * 2016-07-15 2019-03-18 비자 인터네셔널 서비스 어소시에이션 트랜잭션 장치에 의한 디지털 자산 분산

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101628007B1 (ko) 2015-04-07 2016-06-13 주식회사 코인플러그 당사자간 블록체인을 갖는 디지털 가상화폐의 거래시스템
KR20190028517A (ko) * 2016-07-15 2019-03-18 비자 인터네셔널 서비스 어소시에이션 트랜잭션 장치에 의한 디지털 자산 분산
KR101887894B1 (ko) * 2018-02-23 2018-08-14 (주)케이사인 메쉬 타입 블록체인 기반의 사물 인터넷 기기 관리 시스템
KR101934444B1 (ko) * 2018-04-04 2019-01-02 대한민국 문서 및 유가증권의 무결성 데이터 관리 방법
KR101954739B1 (ko) * 2018-06-15 2019-03-07 (주)블록체인연구소 블록체인 기반의 동물 비문 저장 및 비문 이용 방법

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11177962B2 (en) 2019-02-05 2021-11-16 Visa International Service Association Optimizations for verification of interactions system and method
US11799660B2 (en) 2019-02-05 2023-10-24 Visa International Service Association Optimizations for verification of interactions system and method
WO2021108258A1 (en) * 2019-11-25 2021-06-03 Visa International Service Association Optimizations for verification of interactions system and method using probability density functions
US11468044B2 (en) 2019-11-25 2022-10-11 Visa International Service Association Optimizations for verification of interactions system and method using probability density functions
KR102217052B1 (ko) 2020-02-26 2021-02-18 (주)소셜인프라테크 블록체인 기반 합의를 통한 전자문서 통합 관리 시스템
CN111563277A (zh) * 2020-04-03 2020-08-21 上海坤振集成电路有限公司 一种区块链网络中的工作量证明方法以及一种区块链
CN113515535A (zh) * 2021-05-31 2021-10-19 深圳市朝明科技信息有限公司 区块链的电子商务信息变更方法及***
WO2022262446A1 (zh) * 2021-06-18 2022-12-22 中国科学技术大学 分层裁剪区块链交易内数据的方法、装置、设备及介质
GB2622343A (en) * 2021-06-18 2024-03-13 Univ Science & Technology China Method and apparatus for hierarchically clipping data in blockchain transaction, and device medium
KR20230132318A (ko) 2022-03-08 2023-09-15 주식회사 네츠로 가상 화폐 지불을 통한 전자 문서 관리 장치 및 방법

Similar Documents

Publication Publication Date Title
KR102046059B1 (ko) 블록체인의 정보변경장치 및 방법
KR102088346B1 (ko) 외부 스토리지와 연계된 블록체인의 정보변경장치 및 방법
US20210336785A1 (en) Blockchain Generation Apparatus, Blockchain Verification Apparatus, and Program
US10790963B2 (en) Blockchain generation apparatus, blockchain generation method, blockchain verification apparatus, blockchain verification method, and program
US11943237B2 (en) Malicious peer identification for database block sequence
CN110797099B (zh) 一种基于区块链的医疗数据共享方法及***
CN110910138A (zh) 一种区块链数据监管方法、装置
US11729175B2 (en) Blockchain folding
CN101251881A (zh) 一种内容识别的方法、***和装置
Cheng et al. Polynomial-based modifiable blockchain structure for removing fraud transactions
KR102227578B1 (ko) 블록체인 네트워크를 이용한 영지식 증명 기반의 인증서 서비스 방법, 이를 이용한 인증 지원 서버 및 사용자 단말
Cai et al. Hardening distributed and encrypted keyword search via blockchain
CN110581839B (zh) 内容保护方法及装置
KR102162044B1 (ko) 블록체인 기반의 사용자 인증 방법 및 그 시스템
US11303446B2 (en) Prevention of majority attacks
CN111066019A (zh) 处理存储在区块链网络中的数据元素
CN112671881B (zh) 节点组织管理方法、装置、电子设备及可读存储介质
JP2023513420A (ja) ブロックチェーン台帳のためのインデックス構造
JP2023524715A (ja) ネットワーク間の識別情報プロビジョニング
CN113037492B (zh) 传感器数据处理方法及装置
Liu et al. A data preservation method based on blockchain and multidimensional hash for digital forensics
CN113765675A (zh) 一种交易数据处理方法、装置、设备以及介质
JP2023551458A (ja) Oprfを介したブロックチェーンネットワークにおける鍵再生
CN116151826A (zh) 一种高效可靠的基于区块链的电力交易终端信任管理方法
Thakur et al. Data integrity techniques in cloud computing: an analysis

Legal Events

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