KR20220132266A - 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템 - Google Patents

신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템 Download PDF

Info

Publication number
KR20220132266A
KR20220132266A KR1020210037339A KR20210037339A KR20220132266A KR 20220132266 A KR20220132266 A KR 20220132266A KR 1020210037339 A KR1020210037339 A KR 1020210037339A KR 20210037339 A KR20210037339 A KR 20210037339A KR 20220132266 A KR20220132266 A KR 20220132266A
Authority
KR
South Korea
Prior art keywords
node
nodes
trusted
block
blockchain
Prior art date
Application number
KR1020210037339A
Other languages
English (en)
Other versions
KR102529809B1 (ko
Inventor
손인식
파쿨린 니콜라이
Original Assignee
주식회사 헤세그
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 헤세그 filed Critical 주식회사 헤세그
Priority to KR1020210037339A priority Critical patent/KR102529809B1/ko
Priority to PCT/KR2022/002225 priority patent/WO2022203203A1/ko
Publication of KR20220132266A publication Critical patent/KR20220132266A/ko
Application granted granted Critical
Publication of KR102529809B1 publication Critical patent/KR102529809B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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/604Tools and structures for managing or administering access control systems
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions
    • 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/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장한 컴퓨터로 판독 가능한 기록매체 및 그 시스템이 제공된다. 상기 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법은, 클라이언트가 블록 데이터에 포함된 신뢰할 수 있는 노드의 집합을 제공받는 단계, 상기 집합에 포함된 어느 하나의 노드를 선택하는 단계. 상기 선택된 노드와 연결하는 단계, 및 상기 연결된 노드를 통해 상기 블록체인에 액세스하는 단계를 포함한다.

Description

신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템{BLOCKCHAIN ACCESS METHOD THROUGH TRUSTED NODES, COMPUTER READABLE MEDIUM STORING AND SYSTEM FOR THE SAME}
본 발명은 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템에 관한 것으로, 더욱 구체적으로는 블록체인 내 신뢰할 수 있는 노드의 정보를 저장하여 블록체인에 액세스하고자 하는 클라이언트가 정보를 제공받은 노드와 연결할 수 있는 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템을 제공하는 것이다.
블록체인은 2008년 사토시 나카모토의 Bitcoin: A Peer-to-Peer Electronic Cash System에서 블록과 블록을 연결하는 방법에서 유래하였다. 블록체인은 다수의 네트워크 노드로 구성된 분산 네트워크 상에서 해쉬링크로 묶인 데이터를 공유하는 분산 데이터베이스를 총칭한다.
클라이언트가 블록체인에 저장된 데이터에 액세스하기 위해서, 블록체인을 구성하는 노드와 연결하여 액세스 권한을 부여받는 것이 필요하다. 그런데, 클라이언트와 연결된 노드가 실제 블록체인을 구성하고 있는 노드인지, 또는 피싱(phishing) 공격을 위한 가짜 노드인지 여부를 클라이언트가 쉽게 판단하기는 어렵다. 특히 가짜 노드와 연결될 경우 이중 지불(double spending) 문제를 일으켜 코인 전송 및 스마트 계약 발동에 있어서 금전적인 손해를 입을 수 있다.
블록체인의 도입 이전에도 가짜 DNS(Domain Name Service) 서버를 이용하여 도메인 이름을 가짜 IP 주소로 연결하거나, 악성 게이트웨이(gateway)를 이용하여 금액 이체의 오류를 이용하는 피싱 공격은 계속되고 있었다. 이러한 공격을 방지하기 위해 잘 알려진 구글 DNS 서버를 이용하거나 SSL(Secure Sockets Layer) 인증서에 의해 보호되는 게이트웨이 사용 등 신뢰할 수 있는 제3자 기관을 이용한 방법 등이 사용될 수 있다.
다만 블록체인의 경우 탈중앙화(decentralization)에 기반한 서비스를 제공하기 때문에 피슁 공격 방지를 위한 보안 또한 블록체인에 저장된 데이터를 이용하여 구현할 수 있다. 즉, 블록체인에 위변조가 불가능하도록 저장되는 데이터의 특성으로부터, 클라이언트가 신뢰하고 연결하여 블록체인 데이터에 액세스할 수 있는 노드의 정보를 블록체인에 저장하여 블록체인과 클라이언트 사이의 신뢰할 수 있는 연결을 설립하도록 하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는, 클라이언트가 블록체인 내 신뢰할 수 있는 노드의 정보를 저장하여 블록체인에 액세스하고자 하는 클라이언트가 정보를 제공받은 노드와 연결할 수 있는 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상술한 기술적 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법은, 클라이언트가 블록 데이터에 포함된 신뢰할 수 있는 노드의 집합을 제공받는 단계, 상기 집합에 포함된 어느 하나의 노드를 선택하는 단계, 상기 선택된 노드와 연결하는 단계; 및 상기 연결된 노드를 통해 블록체인에 액세스하는 단계를 포함한다.
본 발명의 몇몇 실시예에서, 상기 신뢰할 수 있는 노드의 집합을 제공받는 단계는, 제네시스 블록과, 생성된 모든 블록에 포함된 트랜잭션 데이터로부터 신뢰할 수 있는 노드의 집합을 생성하는 단계를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 신뢰할 수 있는 노드의 집합을 제공받는 단계는, 제네시스 블록에 포함된 최초 신뢰할 수 있는 노드 집합과 검증 노드 집합을 획득하는 단계, 상기 블록체인에 연결된 노드로부터 상기 모든 블록을 다운로드하는 단계, 및 상기 모든 블록에 포함된 신뢰 노드 변경 데이터와 검증 노드 변경 데이터를 이용하여 상기 최초 신뢰할 수 있는 노드 집합과 검증 노드 집합을 업데이트하는 단계를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 신뢰 노드 변경 데이터는, 상기 신뢰할 수 있는 노드의 집합 중 노드의 변경, 제거 및 교체 이력을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 검증 노드 변경 데이터는, 상기 검증 노드 집합 중의 노드의 변경, 제거 및 교체 이력을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 클라이언트가 상기 블록 데이터로부터 검증 노드의 집합을 제공받고, 상기 검증 노드의 집합을 통해 상기 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 판단하는 단계를 더 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 클라이언트가 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 판단하는 단계는, 상기 검증 노드의 집합에 포함된 모든 검증 노드로부터 현재 블록 높이를 제공받는 단계, 상기 모든 검증 노드로부터 제공된 현재 블록 높이의 최대값이 상기 블록 데이터에 저장된 블록 높이와 동일한지 여부를 판단하는 단계 및 판단 결과 동일하지 않은 경우, 상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계는, 상기 최대값을 제공한 검증 노드로부터 새로운 블록 데이터를 다운로드하고, 상기 새로운 블록 데이터의 트랜잭션 데이터에 기초하여 상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계를 포함할 수 있다.
또한 상술한 본 발명의 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법은 프로그램으로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다.
본 발명의 다른 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 시스템은, 복수의 컴퓨팅 장치를 포함하는 노드가 상호 연결된 블록체인 네트워크, 및 상기 블록체인 네트워크에 액세스하는 클라이언트를 포함하되, 상기 클라이언트는 상기 블록체인 네트워크에서 생성된 블록 데이터에 포함된 신뢰할 수 있는 노드의 집합을 제공받고, 상기 집합에 포함된 어느 하나의 노드를 선택하고, 상기 선택된 노드와 연결하고, 상기 연결된 노드를 통해 상기 블록체인 네트워크에 액세스한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 실시예에 따른 블록체인 액세스 방법에 의하면, 클라이언트는 블록체인 시스템에 속하는 노드 중 신뢰할 수 있는 노드의 집합을 획득하고, 집합에 속한 노드에 연결함으로써 안전하게 블록체인 시스템에 액세스할 수 있다. 신뢰할 수 있는 노드의 집합 및 검증 노드의 집합은 블록 데이터에 기록됨으로써 데이터의 무결성이 보증될 수 있다. 또한, 블록체인 시스템 내에서 생성되는 모든 블록은 검증 노드 집합에 속한 검증 노드의 50% + 1개의 검증 노드가 확인하여 따라 커밋(commit)이 진행되는 바, 공격자가 절반 이상의 검증 노드의 개인키를 확보하는 등의 상황이 발생하지 않는 이상 체인의 포크 및 데드락 문제를 방지할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 몇몇 실시예에 따른 클라이언트로부터 블록체인에 액세스 하기 위한 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 몇몇 실시예에 따른 블록체인 액세스 시스템에서 생성된 블록 데이터를 설명하기 위한 도면이다.
도 3은 본 발명의 몇몇 실시예에 따른 블록체인 액세스 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법에서 클라이언트가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계를 설명하기 위한 순서도이다.
도 5a 및 5b는 클라이언트가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계를 설명하기 위한 블록도이다.
도 6은 본 발명의 몇몇 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법에서 클라이언트가 제공받은 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 확인하는 방법을 설명하기 위한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 구성 요소가 다른 구성 요소와 "연결된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 구성 요소와 직접 연결 또는 커플링된 경우 또는 중간에 다른 구성 요소를 개재한 경우를 모두 포함한다. 반면, 하나의 구성 요소가 다른 구성 요소와 "직접 연결된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 구성 요소를 개재하지 않은 것을 나타낸다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 구성 요소들을 서술하기 위해서 사용되나, 이들 구성 요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성 요소를 다른 구성 요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성 요소는 본 발명의 기술적 사상 내에서 제2 구성 요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 몇몇 실시예에 따른 클라이언트로부터 블록체인에 액세스 하기 위한 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 몇몇 실시예에 따른 블록체인에 액세스하기 위한 시스템은 클라이언트(100)와 블록체인 네트워크(200)를 포함할 수 있다.
클라이언트(100)는 블록체인 네트워크(200)를 구성하는 어느 하나의 노드(201~205)와 연결됨으로써 블록체인 네트워크(200)가 제공하는 서비스를 제공받을 수 있다. 클라이언트(100)는 예를 들어, 블록체인 네트워크(200)를 이용하여 코인을 전송하거나 스마트 컨트랙트(smart contract)를 생성하는는 컴퓨팅 장치일 수 있다. 클라이언트(100)는 예를 들어 PC(Personal Computer), 이동 전화, 태블릿 컴퓨터, 스마트 폰, 퍼스널 디지털 어시스턴트(PDA), 태블릿 피시 등의 전자 장치를 포함할 수 있다.
또한, 클라이언트(100)는 블록체인 네트워크(200)에 액세스함으로써 코인의 트랜잭션하기 위한 개인키를 저장하는 하드웨어 지갑(wallet)일 수도 있다.
클라이언트(100)는 블록체인 네트워크(200)로부터 블록 데이터를 제공받고, 신뢰할 수 있는 노드의 집합과 검증 노드 집합을 유지 및 갱신하기 위한 내부 메모리를 포함할 수 있다.
블록체인 네트워크(200)는 복수의 노드(201~205)의 집합으로 구성된 네트워크로 구성될 수 있다. 복수의 노드(201~205) 각각은 컴퓨팅 장치이고, 널리 알려진 네트워크 프로토콜을 통해 복수의 노드(201~205)들 사이의 연결이 구성될 수 있다. 도 1에서 예시적으로 블록체인 네트워크(200)가 5개의 노드(201~205)를 포함하는 것으로 도시되었으나 이는 예시적인 것으로, 블록체인 네트워크(200)에 포함될 수 있는 노드의 개수는 제한되지 않는다.
블록체인 네트워크(200)는 클라이언트(100)로부터 블록체인 네트워크(200) 내에 저장된 데이터를 액세스하기 위한 요청을 수신하고, 클라이언트(100)와 복수의 노드(201~205) 중 어느 하나에 대한 연결을 설립할 수 있다.
이 때, 클라이언트(100)는 가짜의 노드에 연결됨으로써 발생할 수 있는 피싱 공격 등을 방지하기 위해 블록체인 네트워크(200)가 제시한 복수의 노드(201~205)들이 신뢰할만한 노드에 해당하는지 여부를 검증할 수 있다. 즉, 블록체인 네트워크(200)는 신뢰할 수 있는 노드의 집합의 기록인 멤버십 체인(Membership Chain)을 블록 데이터에 저장하고 관리할 수 있다.
또한, 복수의 노드들(201~205) 가운데에는 컨센서스 프로토콜(consensus protocol)을 사용하여 블록체인 네트워크(200) 내에서 생성된 블록을 검증하기 위한 복수의 검증 노드(validator)를 포함할 수 있다. 예를 들어 빌더(builder)에 의해 생성되고 서명된 블록에 대하여 50% + 1개의 검증 노드가 확인함에 따라 커밋(commit)이 진행되고 확인 결과가 블록과 함께 저장될 수 있다. 검증 노드에 의해 확인되지 않은 블록은 저장되지 않고 폐기될 수 있다.
복수의 검증 노드들은 블록에 포함된 트랜잭션이 유효한지 여부를 검증할 수 있다. 복수의 검증 노드들은 트랜잭션에 있어서 트랜잭션이 신뢰할 수 있는 노드로부터 생성된 것인지 여부와, 트랜잭션의 내용이 유효한 것인지 여부를 판단할 수 있다. 이와 관련된 자세한 설명은 후술한다.
블록체인 네트워크(200)에 저장되는 블록의 구조와 관련하여 도 2를 이용하여 설명한다.
도 2는 본 발명의 몇몇 실시예에 따른 블록체인 액세스 시스템에서 생성된 블록 데이터를 설명하기 위한 도면이다.
도 2를 참조하면, 블록 데이터(250)는 헤더(header)와 바디(body)를 포함할 수 있다.
헤더는 블록의 해시(hash)값, 블록의 높이(height), 부모 블록의 해시값, 해당 블록의 타임스탬프(timestamp) 등을 데이터를 포함할 수 있다.
바디는 블록체인 네트워크(200)에서 실행되는 트랜잭션에 관한 데이터를 포함할 수 있다. 더욱 구체적으로, 트랜잭션 데이터는 블록체인 네트워크(200)을 이용한 거래내용이 포함된 트랜잭션 데이터(260)과, 신뢰할 수 있는 노드 집합(270) 및 검증 노드 집합(280)에 관한 데이터를 포함할 수 있다.
트랜잭션 데이터(260)는 입력부와 출력부를 포함하는 트랜잭션(261), 신뢰할 수 있는 노드의 변경을 나타내는 신뢰 노드 변경 데이터(262) 및 검증 노드의 변경을 나타내는 검증자 변경 데이터(263)를 포함할 수 있다.
신뢰 노드 변경 데이터(262)는 신뢰할 수 있는 노드의 추가(AddNode), 제거(RemoveNode) 및 교체(ReplaceNode) 내역을 포함할 수 있다. 즉, 신뢰 노드 변경 데이터(262)는 부모 블록에 저장되었던 신뢰할 수 있는 노드 집합의 변경 사항을 포함할 수 있다.
검증 노드 변경 데이터(263)는 검증 노드의 추가(AddValidator), 제거(RemoveValidator) 및 교체(ReplaceValidator) 내역을 포함할 수 있다. 즉, 검증 노드 변경 데이터(263)는 부모 블록에 저장되었던 검증 노드 집합의 변경 사항을 포함할 수 있다.
이와 같이 신뢰할 수 있는 노드 집합의 멤버를 추가, 제거 또는 교체하는 동작은 오프-체인(off-chain) 거버넌스 또는 온 체인(on-chain) 거버넌스에 따른 합의에 의하여 결정될 수 있다.
신뢰할 수 있는 노드 집합(270)은 현재의 블록 높이를 갖는 블록에 저장된 신뢰할 수 있는 노드의 집합의 목록을 포함할 수 있다. 신뢰할 수 있는 노드 집합(270)은 각각의 신뢰할 수 있는 노드들과의 연결에 필요한 IP주소, 도메인 이름, 포트, 공개 키(public key)/인증서 및 기타 추가 데이터 등을 포함할 수 있다.
검증 노드 집합(280)은 현재의 블록 높이를 갖는 블록에 저장된 검증 노드의 집합의 목록을 포함할 수 있다. 검증 노드 집합(280)은 각각의 검증 노드들과의 연결에 필요한 IP주소, 도메인 이름, 포트, 공개 키(public key)/인증서 및 기타 추가 데이터 등을 포함할 수 있다.
클라이언트(100)는 특정 높이를 갖는 블록을 다운로드받고, 블록에 포함되어 있는 신뢰할 수 있는 노드 집합(270) 및 검증 노드 집합(280)의 정보를 얻을 수 있다. 이는 경량화된 클라이언트(100)에 있어 블록의 다운로드 및 연산에 대한 부하를 줄일 수 있도록 한다. 그러나 이는 특정 높이를 갖는 블록을 제공하는 노드를 신뢰한다는 것을 의미하므로, 보안 측면에서는 다소 위험하다고 볼 수 있다.
한편, 최초의 블록, 즉 제네시스 블록(genesis block)에는 최초 신뢰할 수 있는 노드의 집합과 최초 검증 노드의 집합의 목록이 포함된다. 최초 신뢰할 수 있는 노드의 집합과 최초 검증 노드의 집합은 메인넷(mainnet) 기동에 따른 블록 생성 이전에 미리 규정된 신뢰할 수 있는 노드와 검증 노드의 목록이다.
따라서 클라이언트(100)는 신뢰할 수 있는 노드의 집합에 관한 정보를 얻기 위해 제네시스 블록에 포함된 최초 신뢰할 수 있는 노드의 집합에 이후 블록들에서의 신뢰 노드 변경 데이터(262)에 포함된 신뢰 노드의 변경 사항을 적용함으로써 현재 블록 높이에서의 신뢰할 수 있는 노드의 집합을 얻을 수 있다.
또는 클라이언트(100)가 특정 높이의 블록에 관한 데이터를 이미 보유하고 있는 경우, 클라이언트(100)는 그 이후의 블록만을 다운로드받고 그 블록들에 포함된 신뢰 노드 변경 데이터(262)를 이용하여 현재 블록 높이에서의 신뢰할 수 있는 노드의 집합을 얻을 수 있다.
도 2에 도시된 블록 데이터(250)에 포함된 데이터 구조는 예시적인 것으로, 본 발명이 이에 제한되는 것은 아니다. 블록체인 네트워크(200)은 도 2에 도시된 블록 데이터(250)에 포함된 자료 구조 이외의 데이터를 블록에 포함시켜 저장할 수 있음은 물론이다.
또한, 본 발명의 몇몇 실시예에서, 블록체인 네트워크(200)은 블록 데이터(250)의 경량화를 위해 바디에 신뢰 노드 변경 데이터(262)와 검증 노드 변경 데이터(263)만을 저장할 수 있다.
다시 도 1을 참조하면, 복수의 노드들(201~205)은 블록 데이터의 저장 정도에 따라 풀 노드(full node) 또는 라이트 노드(light node) 등으로 분류될 수 있다. 풀 노드는 블록체인 네트워크(200)의 제네시스 블록부터 최신의 블록에 이르기까지 모든 블록체인 데이터를 포함하고 있는 블록이고, 라이트 노드는 블록체인 네트워크(200) 내에서 생성된 블록정보 중 일부만을 저장하는 블록이다. 뒤에서 설명되는 신뢰할 수 있는 노드의 검증을 위해 클라이언트(100)는 풀 노드로부터 전체 블록체인 데이터를 가져올 수 있고, 또는 라이트 노드로부터 일부 블록체인 데이터를 가져올 수도 있다.
이하에서 클라이언트(100)가 신뢰할 수 있는 노드에 연결하여 블록체인 네트워크(200)에 액세스하기 위한 방법을 상세히 설명한다.
도 3은 본 발명의 몇몇 실시예에 따른 블록체인 액세스 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, 본 발명의 몇몇 실시예에 따른 블록체인 액세스 방법은, 클라이언트가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계(S110), 클라이언트가 집합에 포함된 어느 하나의 노드를 선택하는 단계(S120), 클라이언트와 선택된 노드가 연결되는 단계(S130) 및 연결된 노드를 통해 클라이언트가 블록체인에 액세스하는 단계(S140)를 포함할 수 있다.
먼저 클라이언트(100)가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계(S110)가 수행된다. 상술한 것과 같이 블록체인 네트워크(200)에 속하는 노드 중 어느 하나로부터 특정한 블록 높이를 갖는 블록 데이터에서의 신뢰할 수 있는 노드 집합(270)의 목록을 제공받을 수 있으나 이는 연결된 노드가 신뢰할 수 있다는 보장이 없어 피싱 공격 등에 취약한 방법일 수 있다. 따라서 클라이언트(100)는 제네시스 블록과 신뢰 블록 변경 데이터(262)를 통하여 신뢰할 수 있는 노드 집합의 목록을 획득한다.
도 4는 본 발명의 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법에서 클라이언트가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계를 설명하기 위한 순서도이고, 도 5a 및 5b는 클라이언트가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계를 설명하기 위한 블록도이다.
먼저 도 4를 참조하면, 클라이언트(100)가 블록에 저장된 신뢰할 수 있는 노드의 집합을 제공받는 단계는, 제네시스 블록을 식별하는 단계(S210), 제네시스 블록에 포함된 신뢰할 수 있는 노드 집합 N 및 검증 노드 집합 V를 획득하는 단계(S220), 블록체인 시스템에 연결된 노드 n을 식별하는 단계(S230), 제네시스 블록으로부터 시작된 모든 블록을 다운로드하는 단계(S240), 제네시스 블록과 최초의 블록 B(0)의 일치 여부를 확인하는 단계(S250) 및 각각의 블록에 포함된 트랜잭션으로부터 신뢰 노드 집합 N의 변경을 확인하는 단계(S260)를 포함할 수 있다.
도 5a를 참조하면, 클라이언트(100)는 블록체인 네트워크(200)으로부터 블록 데이터를 제공받고, 신뢰할 수 있는 노드의 집합(120)과 검증 노드 집합(130)을 유지 및 갱신하기 위한 내부 메모리(110)를 포함할 수 있다.
클라이언트(100)는 제네시스 블록 G에 포함된 최초 신뢰할 수 있는 노드 집합 S와 최초 검증 노드 집합 V의 목록을 내부 메모리(110)에 저장할 수 있다. 제네시스 블록 G의 내용은 인터넷 또는 오프라인 채널 상에 공개되어 있을 수 있다. 클라이언트(100)는 제네시스 블록 G를 식별(S210)하면서 제네시스 블록 G 내에 포함된 블록의 해시값, 타임스탬프와 함께 최초 신뢰할 수 있는 노드 집합 S와 검증 노드 집합 V의 목록을 획득할 수 있다(S220). 즉, 클라이언트(100)는 최초 신뢰할 수 있는 노드 집합 S와 검증 노드 집합 V를 이용하여 내부 메모리(110)의 저장된 신뢰할 수 있는 노드 집합(120)과 검증 노드 집합(130)을 초기화할 수 있다.
이어서 클라이언트(100)는 블록체인 네트워크(200)에 연결된 노드 n을 식별할 수 있다(S230). 블로체인 시스템(200)에 연결된 노드 n은 인터넷 또는 오프라인 채널 상에 공개되어 있을 수 있다. 다만 이 시점에서 노드 n을 신뢰할 수 있는지 여부는 결정되지 않은 상태이다.
도 5b를 참조하면, 클라이언트(100)는 블록체인 네트워크(200)에 연결된 노드 n으로부터 제네시스 블록으로부터 시작되는 모든 블록 B(i)을 다운로드할 수 있다(S240). 노드 n이 제공한 현재 블록 높이가 h라 하면, 클라이언트(100)가 다운로드하는 블록은 B(0), B(1), ..., B(h)일 수 있다. 각각의 블록 B(i)는 도 2의 블록 데이터(250)와 같은 구조를 가지며, 각각 헤더, 바디를 포함하고 트랜잭션 데이터(260), 신뢰할 수 있는 노드 집합(270) 및 검증 노드 집합(280)을 포함할 수 있다.
클라이언트(100)는 다운로드한 블록들 B(0), B(1), ..., B(h) 가운데 가장 최초의 블록 B(0)과 제네시스 블록 G이 일치하는지 여부를 확인할 수 있다(S250). 즉, 앞서 인터넷이나 오프라인 채널을 통해 얻은 제네시스 블록 G의 내용과 노드 n으로부터 다운로드 한 블록 B(0)의 내용을 비교하는 것이다. 두 블록의 내용이 일치하지 않는 경우에는 "Invalid genesis block" 오류가 발생하며, 이는 제네시스 블록 G를 획득한 소스가 신뢰할 수 없는 경우이거나 연결된 노드 n이 가짜 노드인 경우에 해당한다.
이어서 클라이언트(100)는 다운로드한 블록들 B(0), B(1), ..., B(h)의 트랜잭션 데이터에 포함된 신뢰 노드 변경 데이터와 검증 노드 변경 데이터를 이용하여 업데이트된 신뢰할 수 있는 노드 집합 Sh와 검증 노드 집합 Vh를 얻을 수 있다(S260).
각각의 블록들은 트랜잭션 데이터에 신뢰 노드 변경 데이터와 검증 노드 변경 데이터를 포함할 수 있다. 신뢰 노드 변경 데이터는 신뢰할 수 있는 노드의 추가(AddNode), 제거(RemoveNode) 및 교체(ReplaceNode) 내역을 포함할 수 있다. 클라이언트(100)는 최초 신뢰할 수 있는 노드 집합 S로부터 각 블록의 트랜잭션 데이터에 포함된 신뢰 노드 변경 데이터를 이용하여 내부 메모리(110)에 저장된 신뢰할 수 있는 노드의 집합을 업데이트할 수 있다.
또한, 검증 노드 변경 데이터는 검증 노드의 추가(AddValidator), 제거(RemoveValidator) 및 교체(ReplaceValidator) 내역을 포함할 수 있다. 클라이언트(100)는 최초 검증 노드 집합 V로부터 각 블록의 트랜잭션 데이터에 포함된 검증 노드 변경 데이터를 이용하여 내부 메모리(110)에 저장된 검증 노드의 집합을 업데이트할 수 있다.
한편, 클라이언트(100)는 제공받은 블록들로부터 업데이트한 신뢰할 수 있는 노드의 집합 Sh이 최신의 상태인지 여부를 확인할 수 있다(S270). 이와 관련하여 이어지는 도 6을 이용하여 설명한다.
도 6은 본 발명의 몇몇 몇몇 실시예에 따른 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법에서 클라이언트가 제공받은 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 확인하는 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 클라이언트(100)가 제공받은 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 확인하는 방법은 검증 노드 집합에 현재 블록 높이를 질의하고 응답을 수신하는 단계(S310), 수신한 응답에 포함된 높이 중 최대값 hmax을 탐색하는 단계(S320), 현재 즐록 높이 h와 hmax를 비교하는 단계(S330), hmax를 제공하느 검증 노드로부터 블록 데이터를 다운로드하는 단계(S340), 다운로드된 블록 데이터를 확인하는 단계(S350) 및 다운로드된 블록 데이터에 포함된 트랜잭션 데이터로부터 신뢰할 수 있는 노드 집합을 업데이트하는 단계(S360)를 포함할 수 있다.
먼저 클라이언트(100)는 내부 메모리(110)에 저장된 검증 노드 집합 V에 속한 각 노드들에 현재 블록 높이를 질의하고 응답을 수신할 수 있다. 검증 노드 집합 V에 노드들 v1, v2, v3, ..., vn이 속해있는 경우, 검증 노드들로부터 수신한 블록 높이는 h1, h2, h3, ..., hn이 될 수 있다. 클라이언트(100)가 질의하고 응답을 수신하는 시점에 검증 노드 집합 V 중 몇몇 검증 노드가 검증 노드에서 제외될 수 있기 때문에, 검증 노드 집합 V 중 일부가 아닌 전체 검증 노드에 대하여 현재 블록 높이를 질의하고 응답을 수신할 수 있다.
이어서 클라이언트(100)는 수신한 응답에 포함된 높이 중 최대값 hmax을 탐색하고(S320), 앞서 노드 n이 제공한 현재 블록 높이 h와 비교한다(S330). 앞서 노드 n이 제공한 현재 블록 높이 h와 검증 노드 집합 V로부터 수신한 블록 높이 중 최대값 hmax가 동일한 경우 새로운 블록이 생성되지 않은 것이므로 업데이트 작업을 종료할 수 있다.
그렇지 않은 경우, 즉 노드 n이 제공한 블록 B(h)로부터 새로운 블록이 생성되어 hmax가 h보다 큰 경우, 클라이언트(100)는 hmax를 제공한 검증 노드 v로부터 블록 데이터를 다운로드할 수 있다(S340). 클라이언트(100)가 다운로드하는 블록 데이터는 B(h) 이후의 블록, 즉 B(h+1), B(h+2), ..., B(hmax)일 수 있다.
이어서 클라이언트(100)는 다운로드된 블록 데이터를 확인한다(S350). 상기 확인은 미리 보유하고 있던 블록 B(h)와 새롭게 다운로드받은 B(h+1) 사이에 연속성이 성립하는지 여부를 판단하는 것을 포함할 수 있다. 클라이언트(100)는 블록 B(h+1)의 헤더의 부모 블록 해시값이 B(h)를 가리키는지 여부를 확인할 수 있다. 이어서 클라이언트는 동일한 방식으로 다운로드된 각각의 블록 B(h+2), ..., B(hmax) 사이의 연속성을 확인할 수 있다. 만약 다운로드된 각각의 블록 B(h+2), ..., B(hmax) 사이의 연속성이 확인되지 않은 경우, 클라이언트(100)는 오류가 발생함을 감지하고 이후의 작업을 중단할 수 있다.
다운로드된 블록 데이터의 확인이 완료되면 클라이언트(100)는 다운로드한 블록 B(h+1), B(h+2), ..., B(hmax)의 트랜잭션 데이터로부터 신뢰할 수 있는 노드 집합을 업데이트할 수 있다(S360). 마찬가지로 업데이트하는 과정에서 오류가 발생하는 경우, 즉 블록 B(h+k1)에서 AddNode를 통해 추가된 노드 nk1이 블록 B(h+k2)에서 또다시 AddNode를 통해 추가되는 경우, 블록 B(h+l1)에서 RemoveNode를 통해 제거된 노드 nl1이 RemoveNode 또는 ReplaceNode의 대상이 되는 경우와 같이 모순이 발생하는 경우가 이에 해당할 수 있다. 이와 같은 오류가 발생하는 경우 클라이언트(100)는 이후의 작업을 중단할 수 있다.
다운로드한 블록 블록 B(h+1), B(h+2), ..., B(hmax)의 트랜잭션 데이터에는 신뢰 노드 변경 데이터와 검증 노드 변경 데이터가 포함된다. 클라이언트(100)는 노드 n으로부터 제공받은 블록(h)에 의해 내부 메모리(110)에 저장된 업데이트된 신뢰할 수 있는 노드 집합 Sh와 검증 노드 집합 Vh을 다운로드한 블록 블록 B(h+1), B(h+2), ..., B(hmax)의 트랜잭션 데이터를 이용하여 갱신할 수 있다. 갱신이 끝나면, 클라이언트(100)는 내부 메모리(110)에 블록 B(hmax)까지의 신뢰 노드 변경 데이터와 검증 노드 변경 데이터를 이용하여 갱신된 신뢰할 수 있는 노드 집합 Shmax와 검증 노드 집합 Vhmax를 저장할 수 있다.
이와 같은 일련의 과정이 종료되면, 클라이언트(100)는 블록체인 네트워크(200)에 의해 갱신되어 저장된 최신의 신뢰할 수 있는 노드 집합 Shmax의 목록을 얻을 수 있다.
다시 도 3을 참조하면, 클라이언트(100)는 노드 집합 Shmax에 포함된 어느 하나의 노드를 선택할 수 있다(S120). 노드 집합 Shmax에 포함된 노드들은 블록 데이터에 의해 보증될 수 있으므로 클라이언트(100)는 임의의 노드를 선택할 수 있다. 또는, 클라이언트(100)는 노드 집합 Shmax에 포함된 노드 중 응답 속도가 가장 빠른 노드를 선택할 수도 있다.
이어서 클라이언트(100)는 선택된 노드와 연결하고(S130), 연결된 노드를 통해 블록체인 네트워크(200)에 액세스할 수 있다(S140).
이와 같이 본 발명의 몇몇 실시예에 따른 블록체인 액세스 방법을 통해 클라이언트(100)는 블록체인 네트워크(200)에 속하는 노드 중 신뢰할 수 있는 노드의 집합을 획득하고, 집합에 속한 노드에 연결함으로써 안전하게 블록체인 네트워크(200)에 액세스할 수 있다. 신뢰할 수 있는 노드의 집합 및 검증 노드의 집합은 블록 데이터에 기록됨으로써 데이터의 무결성이 보증될 수 있다. 또한, 블록체인 네트워크(200) 내에서 생성되는 모든 블록은 검증 노드 집합에 속한 검증 노드의 50% + 1개의 검증 노드가 확인하여 따라 커밋이 진행되는 바, 공격자가 절반 이상의 검증 노드의 개인키를 확보하는 등의 상황이 발생하지 않는 이상 체인의 포크 및 데드락 문제를 방지할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 장치에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 하드디스크, ROM, RAM, CD-ROM, 하드 디스크, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 클라이언트 110: 내부 메모리
120: 신뢰할 수 있는 노드 집합 130: 검증 노드 집합
200: 블록체인 네트워크 250: 블록 데이터
260: 트랜잭션 데이터 270: 신뢰할 수 있는 노드 집합
280: 검증 노드 집합

Claims (10)

  1. 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법에 있어서,
    클라이언트가 블록 데이터에 포함된 신뢰할 수 있는 노드의 집합을 제공받는 단계;
    상기 집합에 포함된 어느 하나의 노드를 선택하는 단계;
    상기 선택된 노드와 연결하는 단계; 및
    상기 연결된 노드를 통해 블록체인에 액세스하는 단계를 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  2. 제 1항에 있어서,
    상기 신뢰할 수 있는 노드의 집합을 제공받는 단계는,
    제네시스 블록과, 생성된 모든 블록에 포함된 트랜잭션 데이터로부터 신뢰할 수 있는 노드의 집합을 생성하는 단계를 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  3. 제 2항에 있어서,
    상기 신뢰할 수 있는 노드의 집합을 제공받는 단계는,
    제네시스 블록에 포함된 최초 신뢰할 수 있는 노드 집합과 검증 노드 집합을 획득하는 단계;
    상기 블록체인에 연결된 노드로부터 상기 모든 블록을 다운로드하는 단계; 및
    상기 모든 블록에 포함된 신뢰 노드 변경 데이터와 검증 노드 변경 데이터를 이용하여 상기 최초 신뢰할 수 있는 노드 집합과 검증 노드 집합을 업데이트하는 단계를 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  4. 제 3항에 있어서,
    상기 신뢰 노드 변경 데이터는,
    상기 신뢰할 수 있는 노드의 집합 중 노드의 변경, 제거 및 교체 이력을 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  5. 제 3항에 있어서,
    상기 검증 노드 변경 데이터는,
    상기 검증 노드 집합 중의 노드의 변경, 제거 및 교체 이력을 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  6. 제 1항에 있어서,
    상기 클라이언트가 상기 블록 데이터로부터 검증 노드의 집합을 제공받고, 상기 검증 노드의 집합을 통해 상기 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 판단하는 단계를 더 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  7. 제 6항에 있어서,
    상기 클라이언트가 신뢰할 수 있는 노드의 집합이 최신의 상태인지 여부를 판단하는 단계는,
    상기 검증 노드의 집합에 포함된 모든 검증 노드로부터 현재 블록 높이를 제공받는 단계;
    상기 모든 검증 노드로부터 제공된 현재 블록 높이의 최대값이 상기 블록 데이터에 저장된 블록 높이와 동일한지 여부를 판단하는 단계; 및
    판단 결과 동일하지 않은 경우, 상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계를 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  8. 제 7항에 있어서,
    상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계는,
    상기 최대값을 제공한 검증 노드로부터 새로운 블록 데이터를 다운로드하고, 상기 새로운 블록 데이터의 트랜잭션 데이터에 기초하여 상기 신뢰할 수 있는 노드의 집합을 업데이트하는 단계를 포함하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 방법.
  9. 제 1항 내지 제8항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체.
  10. 신뢰할 수 있는 노드를 통한 블록체인 액세스 시스템에 있어서,
    복수의 컴퓨팅 장치를 포함하는 노드가 상호 연결된 블록체인 네트워크; 및
    상기 블록체인 네트워크에 액세스하는 클라이언트를 포함하되,
    상기 클라이언트는
    상기 블록체인 네트워크에서 생성된 블록 데이터에 포함된 신뢰할 수 있는 노드의 집합을 제공받고,
    상기 집합에 포함된 어느 하나의 노드를 선택하고,
    상기 선택된 노드와 연결하고,
    상기 연결된 노드를 통해 상기 블록체인 네트워크에 액세스하는,
    신뢰할 수 있는 노드를 통한 블록체인 액세스 시스템.
KR1020210037339A 2021-03-23 2021-03-23 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템 KR102529809B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210037339A KR102529809B1 (ko) 2021-03-23 2021-03-23 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템
PCT/KR2022/002225 WO2022203203A1 (ko) 2021-03-23 2022-02-15 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210037339A KR102529809B1 (ko) 2021-03-23 2021-03-23 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템

Publications (2)

Publication Number Publication Date
KR20220132266A true KR20220132266A (ko) 2022-09-30
KR102529809B1 KR102529809B1 (ko) 2023-05-08

Family

ID=83397562

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210037339A KR102529809B1 (ko) 2021-03-23 2021-03-23 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템

Country Status (2)

Country Link
KR (1) KR102529809B1 (ko)
WO (1) WO2022203203A1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190139043A (ko) * 2018-06-07 2019-12-17 에스케이브로드밴드주식회사 분산 데이터베이스 시스템 및 분산 데이터베이스 서비스 방법, 중앙 데이터베이스장치 및 중앙 데이터베이스장치의 동작 방법
JP2020519039A (ja) * 2017-07-26 2020-06-25 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンノード通信方法および装置
KR102220599B1 (ko) * 2018-10-11 2021-02-26 주식회사 디지털존 통합 인증을 위한 블록체인 시스템 및 그것의 제어 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018125989A2 (en) * 2016-12-30 2018-07-05 Intel Corporation The internet of things
KR102166233B1 (ko) * 2018-10-11 2020-10-15 주식회사 디지털존 블록체인 기술을 이용한 전자문서 발급 시스템 및 그것의 제어 방법
KR102179160B1 (ko) * 2020-06-23 2020-11-16 주식회사 아이콘루프 블록체인 간의 통신을 위해 메시지를 증명하는 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020519039A (ja) * 2017-07-26 2020-06-25 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンノード通信方法および装置
KR20190139043A (ko) * 2018-06-07 2019-12-17 에스케이브로드밴드주식회사 분산 데이터베이스 시스템 및 분산 데이터베이스 서비스 방법, 중앙 데이터베이스장치 및 중앙 데이터베이스장치의 동작 방법
KR102220599B1 (ko) * 2018-10-11 2021-02-26 주식회사 디지털존 통합 인증을 위한 블록체인 시스템 및 그것의 제어 방법

Also Published As

Publication number Publication date
KR102529809B1 (ko) 2023-05-08
WO2022203203A1 (ko) 2022-09-29

Similar Documents

Publication Publication Date Title
CN110910138B (zh) 一种区块链数据监管方法、装置
WO2021036545A1 (zh) 一种基于智能合约的数据处理方法、设备及存储介质
US10681083B2 (en) System and method for detecting replay attack
CN109493050B (zh) 基于区块链主链加并行多子链的转账方法
EP3545665B1 (en) System and method for detecting replay attack
CN109472572B (zh) 基于区块链主链加并行多子链的合约系统
JP7477576B2 (ja) ブロックチェーンネットワークにおける整合性のある分散型メモリプールのための方法及びシステム
CN109246211B (zh) 一种区块链中的资源上传和资源请求方法
US20230334036A1 (en) Computer-implemented system and method for managing a large distributed memory pool in a blockchain network
US20200304326A1 (en) System and method for detecting replay attack
US20200092085A1 (en) Blockchain system including a distributed network of a plurality of nodes and a method for achieving an agreement between the plurality of nodes executed by processors of the block chain system
US20190042620A1 (en) Optimizing queries and other retrieve operations in a blockchain
KR102237014B1 (ko) 블록체인-기반 인증을 위한 시스템 및 방법
CN113094396B (zh) 基于节点内存的数据处理方法、装置、设备以及介质
CN112287034B (zh) 一种数据同步方法、设备以及计算机可读存储介质
US20050240989A1 (en) Method of sharing state between stateful inspection firewalls on mep network
CN109493052B (zh) 一种基于主链加并行多子链的跨链合约系统
CN112287033B (zh) 一种数据同步方法、设备以及计算机可读存储介质
US20210304191A1 (en) System and method for integration and validation
CN111444204B (zh) 一种同步处理方法、装置、设备及介质
WO2020248656A1 (zh) 一种在区块链中解锁账户的方法和装置
KR102529809B1 (ko) 신뢰할 수 있는 노드를 통한 블록체인 액세스 방법, 이를 저장하는 컴퓨터로 판독 가능한 기록매체 및 그 시스템
WO2020248657A1 (zh) 一种在区块链中锁定账户的方法和装置
US20080126499A1 (en) Multi-master referential integrity
Joshi et al. Secure Firmware Update Architecture for IoT Devices using Blockchain and PUF

Legal Events

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