KR102229923B1 - 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기 - Google Patents

네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기 Download PDF

Info

Publication number
KR102229923B1
KR102229923B1 KR1020190071909A KR20190071909A KR102229923B1 KR 102229923 B1 KR102229923 B1 KR 102229923B1 KR 1020190071909 A KR1020190071909 A KR 1020190071909A KR 20190071909 A KR20190071909 A KR 20190071909A KR 102229923 B1 KR102229923 B1 KR 102229923B1
Authority
KR
South Korea
Prior art keywords
electronic devices
data
blocks
network
electronic device
Prior art date
Application number
KR1020190071909A
Other languages
English (en)
Other versions
KR20200144214A (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 KR1020190071909A priority Critical patent/KR102229923B1/ko
Priority to US16/904,208 priority patent/US11470150B2/en
Publication of KR20200144214A publication Critical patent/KR20200144214A/ko
Application granted granted Critical
Publication of KR102229923B1 publication Critical patent/KR102229923B1/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
    • 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/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • 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/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시예에 따른 네트워크 상에서 전자기기가 합의된 데이터를 전송하는 방법은, 상기 네트워크 상에 참여하는 상기 전자기기를 포함하는 복수의 전자기기의 개수와 상기 복수의 전자기기 사이에서 공유하기 위한 복수의 데이터 블록의 개수를 기초로 생성된 발생 행렬을 저장하는 단계 및 상기 발생 행렬을 기초로 상기 복수의 전자기기에 포함되는 타 전자기기와 공유하기로 합의한 합의된 데이터 블록을 상기 타 전자기기에 전송하는 단계를 포함할 수 있다.

Description

네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기{AGREED DATA TRANSMIT METHOD AND APPARATUS FOR TRANSMITTING THE AGREED DATA IN NETWORK}
네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기에 관한 것으로, 보다 구체적으로 블록 체인 기술을 기반으로 네트워크에 참여한 각 전자기기에 일부 선별된 데이터만을 전송하고, 각 전자기기는 해당 선별된 데이터와 동일한 데이터를 가지고 있는 다른 전자기기 사이에서만 합의 과정을 수행하도록 하여 확장성을 향상시키기 위한, 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기에 관한 것이다.
비트코인(Bitcoin)의 등장 이후 주목받고 있는 블록체인 기술은, 은행 등의 신뢰받는 제 3자의 중계 없이 네트워크 사용자(노드) 간의 안전한 거래를 가능하게 하는 프로토콜이다. 네트워크에 참여하는 사용자의 일부가 악의적인 행동(ex. 전자 화폐를 이중 지불하는 double spending attack 등)을 할 수 있음에도 불구하고, 수학적인 기술을 이용하여 안전한 거래를 가능하게 한다. 이를 가능하게 하는 핵심 아이디어는, 모든 사용자가 하나의 통일된 장부를 합의하여 공유하게 함으로써 각 사용자가 거래의 유효성을 장부 대조를 통해 검증할 수 있도록 하여 비정상적인 거래를 차단하는 것이다.
현재 주요 암호 화폐에 사용되고 있는 합의 알고리즘은 다음과 같다. 비트코인과 초기 이더리움(Ethereum)에 사용된 작업 증명(Proof of Work; PoW)은 비잔틴 적(Byzantine adversary)의 연산량에 한계가 있다는 점에 착안하여, 거래 내역을 장부에 등록 할 때 일정 이상의 연산량을 요구하고, 연산량 검증을 통과한 거래 내역을 사용자가 신뢰하는 방식이다. 최근 이더리움 등에 적용된 지분 증명(Proof of Stake; PoS)은 사용자가 보유하고 있는 자본에 비례하여 장부를 작성 할 권한을 주고, 사용자는 지분 증명이 된 장부를 신뢰하는 방식이다.
상기 합의 알고리즘들은 더 많은 사용자가 참여한다고 하더라도 거래 승인속도 및 시간당 처리 거래량이 증가하지 않는다는 문제가 있다. 그 이유는 거래 내역들이 담긴 블록의 생성 속도와 블록 크기가 제한되어 있고(PoW, PoS의 경우), 합의에 사용 가능한 통신량이 제한되어 있기 때문이다.
본 발명은 전술한 문제점을 해결하기 위해 도출된 것으로, 네트워크 부호화 방식을 이용하여 각 노드가 공유하고 처리해야할 데이터를 분배하여 확장성을 향상시키는 것을 목적으로 한다.
본 발명은 두 노드가 공유하고 있는 동일한 일부 데이터 조각들만을 상호간에 공유할 수 있도록 하여 노드 간 통신 부담이 적어지도록 함을 목적으로 한다.
본 발명은 같은 힘을 가진 비잔틴 적의 공격에도 불구하고 대부분의 데이터를 안전하게 복원할 수 있도록 함을 목적으로 한다.
본 발명의 실시예에 따른 네트워크 상에서 전자기기가 합의된 데이터를 전송하는 방법은, 상기 네트워크 상에 참여하는 상기 전자기기를 포함하는 복수의 전자기기의 개수와 상기 복수의 전자기기 사이에서 공유하기 위한 복수의 데이터 블록의 개수를 기초로 생성된 발생 행렬을 저장하는 단계 및 상기 발생 행렬을 기초로 상기 복수의 전자기기에 포함되는 타 전자기기와 공유하기로 합의한 합의된 데이터 블록을 상기 타 전자기기에 전송하는 단계를 포함할 수 있다.
상기 전자기기가 상기 타 전자기기에 상기 합의된 데이터 블록을 전송하기 위한 통신 대역폭은 상기 발생 행렬을 기초로 산출될 수 있다.
상기 통신 대역폭은 상기 발생 행렬을 이용하여 하기 수식을 기초로 산출될 수 있다.
Figure 112019061969083-pat00001
(
Figure 112019061969083-pat00002
: 통신 대역폭, G: 발생 행렬(m*n), a: 전자기기, b: 타 전자기기, n: 데이터 블록의 개수)
상기 복수의 전자기기에 포함되는 각 전자기기에 요구되는 저장 용량은 상기 발생 행렬을 기초로 산출될 수 있다.
상기 각 전자기기에 요구되는 저장 용량 비율은 상기 발생 행렬을 이용하여 하기 수식을 기초로 산출될 수 있다.
Figure 112019061969083-pat00003
(
Figure 112019061969083-pat00004
: 저장 용량 비율, G: 발생 행렬(m*n), i: i번째 전자기기, n: 데이터 블록의 개수)
상기 복수의 데이터 블록에 포함되는 소정의 데이터 블록을 저장하는 전자기기의 비율은 상기 발생 행렬을 기초로 산출될 수 있다.
상기 소정의 데이터 블록을 저장하는 전자기기의 비율은 상기 발생 행렬을 이용하여 하기 수식을 기초로 산출될 수 있다.
Figure 112019061969083-pat00005
(
Figure 112019061969083-pat00006
: 전자기기의 비율, G: 발생 행렬(m*n), j: j번째 소정의 데이터 블록, m: 복수의 전자기기의 개수)
상기 복수의 데이터 블록 각각의 크기는 모두 동일할 수 있다.
상기 복수의 전자기기 각각에 요구되는 각 저장 용량이 모두 동일하도록 설정될 수 있다.
상기 합의된 데이터 블록을 전송하기 위한 최대 통신 대역폭이 상기 복수의 전자기기 각각에 모두 동일하도록 설정될 수 있다.
상기 복수의 전자기기에 저장되는 일부 데이터 블록은 상기 복수의 데이터 블록 중 상기 발생 행렬이 참조됨으로써 선별되어 상기 복수의 전자기기 각각에 저장되는 것일 수 있다.
상기 합의된 데이터 블록 전송 단계는 PBFT(Practical Byzantine Fault Tolerance) 알고리즘을 기초로 수행될 수 있다.
상기 전자기기 및 상기 타 전자기기는 각각 적어도 하나의 데이터 블록을 포함하고, 상기 합의된 데이터 블록 전송 단계는, 상기 발생 행렬을 참조하여 상기 전자기기에 포함되는 적어도 하나의 데이터 블록 중 상기 타 전자기기에 포함되는 적어도 하나의 데이터 블록과 동일한 일부 데이터 블록만을 선별하여 상기 합의된 데이터 블록으로 설정하는 단계 및 상기 설정한 합의된 데이터 블록을 전송하는 단계를 포함할 수 있다.
본 발명의 실시예에 따른 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기는, 상기 네트워크 상에 참여하는 상기 전자기기를 포함하는 복수의 전자기기의 개수와 상기 복수의 전자기기 사이에서 공유하기 위한 복수의 데이터 블록의 개수를 기초로 생성된 발생 행렬을 저장하는 메모리 및 상기 발생 행렬을 기초로 상기 복수의 전자기기에 포함되는 타 전자기기와 공유하기로 합의한 합의된 데이터 블록을 상기 타 전자기기에 전송하는 프로세서를 포함할 수 있다.
본 발명의 실시예에 따른 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체는 전술한 방법을 기록할 수 있다.
본 발명에 따르면, 네트워크 부호화 방식을 이용하여 각 노드가 공유하고 처리해야할 데이터를 분배하여 확장성이 향상될 수 있다.
본 발명에 따르면, 두 노드가 공유하고 있는 동일한 일부 데이터 조각들만을 상호간에 공유할 수 있도록 하여 노드 간 통신 부담이 적어질 수 있다.
본 발명에 따르면, 같은 힘을 가진 비잔틴 적의 공격에도 불구하고 대부분의 데이터를 안전하게 복원할 수 있게 된다.
본 발명의 부호화 합의 알고리즘은 블록체인 시스템에 대한 보안 공격(double spending attack, finney attack 등)에 대처할 수 있는 가능성을 보유하고 있다. 다양한 어플리케이션에 블록체인이 활용될 가까운 미래에는 보안성이 더욱 중요한 쟁점이 될 것이며, 안전한 블록체인 구축에 근간이 될 것으로 기대된다.
본 발명에서 제안된 부호화 합의 알고리즘을 사용하면, 네트워크 사용자들이 많아질 때에도 네트워크 통신 및 사용자의 저장 공간 제약을 줄이며 합의를 할 수 있게 된다. 각 노드의 저장 용량, 요구되는 보안성, 노드 간 통신에 사용가능한 대역폭, 사용자의 수 등 시스템 설계에 필요한 변수가 주어졌을 때 해당 변수를 반영한 적응적인 합의 시스템 설계가 가능해진다.
도 1은 본 발명에 따른 네트워크 상의 복수의 전자기기 사이에서 합의된 데이터를 전송하는 시스템을 설명하기 위한 블록도이다.
도 2는 본 발명에 따른 전자기기의 구성을 설명하기 위한 블록도이다.
도 3은 본 발명에 따른 네트워크 상에서 전자기기가 합의된 데이터를 전송하는 방법을 설명하는 순서도이다.
도 4 및 도 5는, 본 발명의 발생 행렬(G) 저장 단계 및 네트워크 부호화 알고리즘의 성능 척도를 나타내는 변수에 대해서 설명하기 위해 참조되는 도면이다.
도 6은 본 발명의 합의된 데이터 블록 전송 단계를 설명하기 위해 참조되는 도면이다.
도 7 및 도 8은 본 발명의 네트워크 부호화 합의 알고리즘을 적용한 경우, 종래의 샤딩을 활용한 데이터 분배 방식과 비교하여 보다 효과적으로 최대 대역폭이 좁아진 것을 설명하기 위해 참조되는 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
도 1은 본 발명에 따른 네트워크 상의 복수의 전자기기 사이에서 합의된 데이터를 전송하는 시스템을 설명하기 위한 블록도이다.
도 1에 도시한 바와 같이, 본 발명에 따른 네트워크 상에서 복수의 전자기기 사이에서 합의된 데이터를 전송하는 시스템은 클라이언트(20) 및 복수의 전자기기(10)를 포함한다.
클라이언트(20)는 복수의 전자기기(10)로부터 서비스를 제공받고자 하는 고객 모듈로, 원하는 트랜잭션 처리 요구 메시지를 특정 전자기기로 전송할 수 있다.
클라이언트(20)는 복수의 전자기기(10)가 트랜잭션 처리를 완료한 경우, 복수의 전자기기(10)로부터 트랜잭션 처리 완료 응답 메시지를 수신할 수 있다.
복수의 전자기기(10)는 네트워크 상에서 클라이언트(20)로부터 트랜잭션 처리 요청을 수신하여, 복수의 전자기기(10) 상호 간에 트랜잭션을 처리할 수 있다.
본 발명에서 트랜잭션은, 블록체인(block chain) 트랜잭션을 의미할 수 있다. 구체적으로, 복수의 전자기기 각각은 저장할 내용을 블록체인 트랜잭션으로 생성하여 블록체인 네트워크에 참여한 다른 전자기기로 전송할 수 있다.
복수의 전자기기(10)는 각 저장공간에 저장된 데이터를 그룹화하고, 그룹화된 데이터의 요소들을 체인화하여 체인화된 데이터를 각 저장공간의 블록체인(block chain)에 저장할 수 있다. 예를 들어, 본 발명의 블록체인은 해시 알고리즘(hash algorithm)을 이용하여 위변조가 불가능하도록 장부(ledger) 데이터를 블록 단위로 저장하고, 블록을 링크된 리스트로 구성하여 이전 블록의 해시 값을 다음 블록에 포함시켜서 중간의 한 블록만 위조하는 것을 불가능하게 할 수 있다.
즉, 블록체인은 이전 블록에 다음 블록을 연이어 암호화하고 과반수가 넘는 사용자가 동의(consensus)한 데이터만 검증된 데이터로 인정한다. 따라서, 블록체인을 이용한 분산 데이터베이스에서는 거래에 기록된 내용에 대한 위조 및 변조가 불가능하게 된다.
도 1에 도시한 바와 같이, 본 발명에서 복수의 전자기기(10, 전자기기1, 전자기기2 ... 전자기기m) 중 일부 전자기기(10a, 전자기기1 내지 전자기기s)는 각 기기간에 데이터를 전송하는 기기로, 타 전자기기(10b, 전자기기, s+1 내지 전자기기m)는 상기 일부 전자기기(10a)를 제외한 나머지 전자기기로써 상기 일부 전자기기(10a)로부터 데이터를 수신하는 기기로 정의할 수 있다. 상기 일부 전자기기(10a) 및/또는 타 전자기기(10b)는 각각 하나 또는 복수의 전자기기를 포함할 수 있다.
다만, 도 1에서 데이터 전송 기기를 일부 전자기기(10a, 전자기기1 내지 전자기기s)로 구분하고, 데이터 수신 기기를 타 전자기기(10b, 전자기기s+1 내지 전자기기m)로 구분한 것은 설명상 편의를 위해 예시로 구분한 것이며, 실제로 본 발명에서 각 모든 전자기기(10, 전자기기1, 전자기기2 ... 전자기기m)는 데이터를 전송할 수도 있고, 수신할 수도 있다.
도 2에 도시한 바와 같이, 일부 전자기기(10a)는 타 전자기기(10b)에 데이터를 전송하는 기기로, 메모리(110a) 및 프로세서(120a)를 포함할 수 있다.
메모리(110a)는 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다.
메모리(110a)는 소프트웨어 및/또는 프로그램을 저장할 수 있다.
메모리(110a)는 데이터 및/또는 블록체인을 저장할 수 있다. 본 발명에서는 특히, 데이터가 분할된 데이터 블록과 발생 행렬(G)을 저장할 수 있다.
프로세서(120a)는 전자기기(10)의 적어도 하나의 다른 구성요소를 제어한다.
프로세서(120a)는 클라이언트(20)로부터 트랜잭션 처리 요구 메시지를 수신하여, 해당 트랜잭션을 완료한 후, 처리 완료 메시지를 클라이언트(20)에 전송할 수 있다.
프로세서(120a)는 클라이언트(20)로부터 발생 행렬(G)을 수신하여 메모리(110a)에 저장할 수 있다.
프로세서(120a)는 발생 행렬(G)을 참조하여 일부 데이터만을 타 전자기기로 전송하도록 제어할 수 있다.
본 발명에서 전자기기(10)는 무선 네트워크, 예를 들어, P2P 네트워크를 통해 각 기기간에 정보를 송수신할 수 있다. 또한, 실시예에 따라 클라이언트(20)와 전자기기(10)간에도 P2P 네트워크를 통한 데이터 송수신이 가능하다.
본 발명의 전자기기(10)는 스마트폰, 태블릿 PC, 컴퓨터 등의 전자장치를 포함할 수 있다. 또한, 이외에도 가전제품, 웨어러블 디바이스, 각종 의료기기 등을 포함할 수 있다.
본 발명의 네트워크는, 이외에도 다양한 방식의 유/무선 통신으로 연결되는 망을 포함한다. 예를 들어, WIFI, LAN, LTE, WIBRO, 블루투스 등의 장거리/근거리 무선 통신망을 포함할 수 있다.
도 3은 본 발명에 따른 네트워크 상에서 전자기기(10a)가 합의된 데이터를 전송하는 방법을 설명하는 순서도이다.
구체적으로 들어가기에 앞서, 본 발명에서 복수의 전자기기(10, 전자기기1, 전자기기2 ... 전자기기m) 중 일부 전자기기(10a)는 발생 행렬(G)을 기초로 합의된 데이터 블록을 전송하는 기기로, 타 전자기기(10b)는 상기 일부 전자기기(10a)를 제외한 나머지 전자기기로써 상기 일부 전자기기(10a)로부터 상기 합의된 데이터 블록을 수신하는 기기로 정의할 수 있다. 상기 일부 전자기기(10a) 및/또는 타 전자기기(10b)는 각각 하나 또는 복수의 전자기기를 포함할 수 있다.
도 1에서 합의된 데이터 블록 전송 기기를 일부 전자기기(10a, 전자기기1 내지 전자기기s)로 구분하고, 합의된 데이터 블록 수신 기기를 타 전자기기(10b, 전자기기s+1 내지 전자기기m)로 구분한 것은 설명상 편의를 위해 예시로 구분한 것이며, 실제로 본 발명에서 각 모든 전자기기(10, 전자기기1, 전자기기2 ... 전자기기m)는 합의된 데이터 블록을 전송할 수도 있고 수신할 수도 있다. 예를 들어, 도 5에 개시된 각 전자기기(전자기기 1 내지 전자기기3)는 합의된 데이터 블록을 전송할 수도 있고, 수신할 수도 있으며, 이 중 일부의 합의된 데이터 블록 전송 기기가 일부 전자기기(10a)로 구분되고, 합의된 데이터 블록 수신 기기가 타 전자기기(10b)로 구분되는 것이다. 또한, 이는 다른 도면에서도 동일/유사하게 적용될 수 있다.
그리고, 전술한 일부 전자기기(10a)를 지금부터는 단순히 전자기기(10a)로 명명한다.
도 2에 도시한 바와 같이, 임의의 전자기기(10a)는 네트워크 상에 참여하는 복수의 전자기기(10)의 개수와 상기 복수의 전자기기(10) 사이에서 공유하기 위한 복수의 데이터 블록의 개수를 기초로 생성된 발생 행렬(G)을 저장할 수 있다(s10).
발생 행렬(G)은 네트워크에 참여하는 복수의 전자기기(10)에 총 데이터를 어떻게 분배할 것인가를 결정하는 기준 척도로, PBFT(Practical Byzantine Fault Tolerance) 알고리즘에 네트워크 부호화 알고리즘을 적용하기 위해 본원 발명에서 새롭게 생성한 행렬이다. 네트워크 부호화 알고리즘 및 PBFT(Practical Byzantine Fault Tolerance) 알고리즘에 대해서는 뒤에서 자세하게 설명한다.
특히, 본 발명에서는 총 데이터를 모든 전자기기(10) 전부가 공유하는 것이 아니라 일부 데이터를 균등하게 분할하여 각 전자기기에서 일부 데이터만을 저장하고 관리하게 함으로서, 종래의 블록 체인 알고리즘과 비교하여 확장성이 개선될 수 있게 된다.
본 발명에서 데이터는 블록 체인 방식으로 공유될 수 있는 데이터로써, 이는 데이터 블록으로 구분되어 각 전자기기에 분배될 수 있다. 예를 들어, 도 5에 도시한 바와 같이, 발생 행렬(G)이 참조되어 각 데이터 블록은 각 전자기기에 균등하게 분배될 수 있고(각 전자기기에 두 개의 데이터 블록이 할당), 각 전자기기는 두 개의 데이터 블록과 함께 발생 행렬(G)을 저장할 수 있다.
실시예에 따라 전자기기(10a)는 도 6과 같이 클라이언트(20)로부터 직접 발생 행렬(G)을 수신할 수도 있고, 다른 실시예에 따라 클라이언트(20)로부터 다른 전자기기를 경유하여 다른 전자기기로부터 발생 행렬(G)을 수신하여 저장할 수도 있다.
전자기기(10a)는 상기 발생 행렬(G)을 기초로 타 전자기기(10b)와 공유하기로 합의한 합의된 데이터 블록만을 타 전자기기(10b)에 전송할 수 있다(s20).
이하, 도 4 및 도 5를 참조하여, 본원 발명의 발생 행렬(G) 저장 단계(s10) 및 네트워크 부호화 알고리즘의 성능 척도를 나타내는 변수에 대해서 설명한다.
본원 발명의 네트워크 부호화 알고리즘은 합의 대상이 되는 데이터를 균등한 데이터 블록으로 분할하여 각 전자기기(10)에 하나 또는 다수의 데이터 블록을 선별하여 저장되도록 하는 부호화 기법이다. 해당 부호화 기법에 따르면, 도 8과 같이 종래 샤딩 기술이 적용된 것에 비해 도 7과 같이 데이터 전송을 위한 최대 통신 대역폭이 상대적으로 줄어들어 비잔틴 적의 공격에도 데이터를 비교적 안전하게 저장할 수 있게 된다.
본원 발명은 복수의 전자기기(10)간의 통신을 통해 다수의 전자기기가 동의한 데이터 블록을 실제 데이터로 인정하여 합의를 이끌어내는 PBFT(Practical Byzantine Fault Tolerance) 기반의 알고리즘으로 구현하였으며, 본원 발명에 따른 네트워크 부호화 합의 알고리즘의 구체적인 설계 방식은 아래와 같다.
먼저, 부호화 합의 알고리즘 설계에 필요한 변수들을 표현하면 다음과 같다.
G: 발생 행렬 (
Figure 112019061969083-pat00007
)
S: 시스템에서 합의하기를 원하는 데이터의 총 크기
m: 시스템에 참여하는 전자기기의 수
z: 시스템에 참여하는 악의적인 전자기기의 수 (
Figure 112019061969083-pat00008
)
n: 데이터 블록의 개수
k: 완전한 장부를 얻기 위해 접근해야 하는 전자기기의 수
부호화 합의 알고리즘의 성능 척도를 나타낼 수 있는 변수들은 다음과 같다. 저장 공간 효율성을 나타내는 변수
Figure 112019061969083-pat00009
는 합의하기를 원하는 데이터의 총 크기를 1로 표준화 했을 때 i번째 전자기기에게 요구되는 저장 공간을 의미하고,
Figure 112019061969083-pat00010
는 j번째 데이터 블록을 저장하고 있는 전자기기의 비율을 의미한다. 전자기기 a와 전자기기 b사이 합의에 필요한 통신 대역폭을 나타내는 변수는
Figure 112019061969083-pat00011
이다.
Figure 112019061969083-pat00012
: i번째 전자기기에게 요구되는 저장 공간 (복제 방식 대비)
Figure 112019061969083-pat00013
: j번째 데이터 블록의 전자기기 분배 비율
Figure 112019061969083-pat00014
: 합의에 필요한 전자기기 a(전자기기)와 전자기기 b(타 전자기기)간의 통신 대역폭 (복제 방식 대비)
참고로, 여기서 복제 방식은 모든 전자기기들이 합의하기를 원하는 데이터 전체를 각각 저장하고 있는 완전 복제 방식을 의미한다.
즉, 전자기기(10a)가 타 전자기기(10b)에 상기 합의된 데이터 블록을 전송하기 위한 통신 대역폭, 상기 복수의 전자기기(10)에 포함되는 각 전자기기에 요구되는 저장 용량, 상기 복수의 데이터 블록에 포함되는 소정의 데이터 블록을 저장하는 전자기기의 비율 중 적어도 하나는 발생 행렬(G)을 기초로 산출될 수 있다.
본 발명은 데이터의 크기를 균등히 나누어 데이터 블록을 형성하고, 각 전자기기의 저장 용량과 노드 간의 합의에 사용할 수 있는 최대 통신 대역폭은 모두 같다고 가정하였다. 따라서 다음 식이 성립한다. (
Figure 112019061969083-pat00015
Figure 112019061969083-pat00016
를 의미한다.)
Figure 112019061969083-pat00017
(모든
Figure 112019061969083-pat00018
에 대하여)
Figure 112019061969083-pat00019
(모든
Figure 112019061969083-pat00020
에 대하여)
전자기기(10a)의 메모리(110a)는 발생 행렬(G)을 기초로 균등하게 선별되어 분할된 데이터 블록과 함께 발생 행렬(G)을 저장할 수 있다.
도 4 및 도 5는 본 발명에 따른 부호화 합의 알고리즘을 설명하기 위해 참조되는 도면이다. 데이터를 다수의 데이터 블록(block) 단위로 나눈 후 각 전자기기들에게 배포하는 과정에서 네트워크 부호화 기술이 적용되는 것이다. 데이터 블록 개수가
Figure 112019061969083-pat00021
개이고, 전자기기의 수가
Figure 112019061969083-pat00022
명일 때, 크기가
Figure 112019061969083-pat00023
인 발생 행렬
Figure 112019061969083-pat00024
는 전자기기 i가 데이터 블록 j를 저장하고 있을 때
Figure 112019061969083-pat00025
= 1 그렇지 않으면
Figure 112019061969083-pat00026
=0 의 값을 가진다.
Figure 112019061969083-pat00027
는 발생 행렬
Figure 112019061969083-pat00028
Figure 112019061969083-pat00029
항을 나타낸다.
도 5의 경우, 데이터를 총 세 개의 데이터 블록으로 나누고 세 개의 전자기기에게 두 개씩 데이터 블록을 분배하는 과정을 나타낸다. 또한, 각 데이터 블록은 두 개의 전자기기에만 분배된다.
구체적으로, 도 5에서는 전자기기 1에 전체 데이터 블록 중 데이터 블록 2와 데이터 블록 3이 선별되어 저장되고, 전자기기 2에 전체 데이터 블록 중 데이터 블록 1과 데이터 블록 3이 선별되어 저장되며, 전자기기 3에 전체 데이터 블록 중 데이터 블록 1과 데이터 블록 2가 선별되어 저장된 것을 예시한다.
즉, 복수의 전자기기(10)에 저장되는 일부 데이터 블록은 상기 복수의 데이터 블록 중 상기 발생 행렬(G)이 참조됨으로써 선별되어 상기 복수의 전자기기(10) 각각에 저장되는 것일 수 있고, 종래 기술과 같이 각 데이터 블록이 모든 전자기기에 배포되지 않아 확장성이 향상될 수 있다.
이하, 도 6을 참조하여 본원 발명의 합의된 데이터 블록 전송 단계(s20)에 대해서 설명한다.
프로세서(120a)는 메모리(110a)에 저장된 발생 행렬(G)을 기초로 PBFT(Practical Byzantine Fault Tolerance) 알고리즘을 적용하여 합의된 데이터 블록을 전송할 수 있다.
구체적으로, 전자기기(10a) 및 타 전자기기(10b)는 각각 적어도 하나의 데이터 블록을 포함하고, 프로세서(120a)는 상기 발생 행렬(G)을 참조하여 상기 전자기기(10a)에 포함되는 적어도 하나의 데이터 블록 중 상기 타 전자기기(10b)에 포함되는 적어도 하나의 데이터 블록과 동일한 일부 데이터 블록만을 선별하여 상기 합의된 데이터 블록으로 설정하고, 상기 설정한 합의된 데이터 블록을 전송할 수 있다.
발생 행렬(G)이 주어졌을 때 합의 과정은 도 6과 같이 묘사된다. 도 6은 도 5의 발생행렬
Figure 112019061969083-pat00030
을 기반으로 한 합의 알고리즘이다. 합의 과정은 총 다섯 단계 (request, pre-prepare, prepare, commit, reply)로 구성된다. 첫째로, client가 발생한 데이터에 대해 합의 요청을 하나의 전자기기1에 전달한다(request 단계). 전달 받은 노드를 primary 노드라고 한다. Primary 노드가 합의 요청을 받으면 다른 모든 노드들에게 해당 요청을 전송하는 pre-prepare 단계를 거친다. Primary 노드를 제외한 노드(전자기기2, 전자기기3)를 backup 노드라 하는데, backup 노드가 합의 요청이 정당하다고 판단할 경우 prepare 메시지를 생성해 네트워크의 나머지 노드에게 전송한다. (Backup 노드가 거래가 정당하다고 판단하는 기준은 client의 공개키 서명을 확인하는 방법 등이 있을 수 있다.) Prepare 메시지는 해당 데이터 블록을 가진 전자기기들에게만 전송이 되며, 이는 발생 행렬
Figure 112019061969083-pat00031
에 의존한다. 예를 들면, 도 5에서 전자기기 2는 데이터 블록 1과 3을 보유하고 있는데, 데이터 블록 1은 (전자기기 2를 제외하고) 전자기기 3만이 보유하고 있다. 따라서 전자기기 2는 prepare 메시지를 보낼 때, 데이터 블록 1에 대한 검증 메시지는 전자기기 1에게 전송하지 않고, 전자기기 3에게만 전송한다. 한편, 데이터 블록 3은 (전자기기 2를 제외하고) 전자기기 1만이 가지고 있기 때문에, 전자기기 1에게만 데이터 블록 3을 전송한다. 즉, 전자기기(10a)에 포함되는 적어도 하나의 데이터 블록 중 상기 타 전자기기(10b)에 포함되는 적어도 하나의 데이터 블록과 동일한 일부 데이터 블록만을 선별하여 합의된 데이터 블록을 전송하는 것이다.
따라서 prepare 과정에서 각 노드들에게 다른 정보를 전송하게 된다. Prepare 단계에서 전송 받은 메시지를 기반으로 전자기기는 각 메시지 블록의 검증을 진행하게 되는데, 악의적인 전자기기 수보다 많은
Figure 112019061969083-pat00032
명 이상의 전자기기가 해당 메시지 블록에 동의를 했을 경우, 해당 메시지 블록은 prepared certificate 상태가 된다. Prepared certificate 상태에 있는 메시지 블록을 가진 전자기기들은, 그 후 네트워크의 다른 전자기기들에게 commit 메시지를 전송하게 된다 (commit 단계). 이 commit 단계에서도 prepare 단계와 마찬가지로 해당 데이터 블록을 가진 전자기기들 사이에만 메시지 전송이 되며, 합의된 데이터 블록을 전송한다. 전자기기의 commit 메시지가
Figure 112019061969083-pat00033
개 모이면 해당 데이터 블록은 commit certificate 상태가 되는데, 전자기기가 보유하고 있는 모든 데이터 블록이 prepared certificate, commit certificate를 모두 만족할 경우 합의가 이루어졌다는 reply를 client에게 전송한다(reply 단계). 일정 수 이상의 reply가 client에게 전송될 경우 합의 과정이 종료된다.
즉, 본원 발명의 경우, 네트워크 부호화 합의 알고리즘을 PBFT(Practical Byzantine Fault Tolerance) 알고리즘에 적용하여 합의된 데이터 블록을 전송할 수 있다. 그리고, 발생 행렬(G)에 기초하여 일부 선별된 데이터 블록만을 각 전자기기(10)에 분할하여 배포하고, 일부 전자기기(10a)는 저장된 일부 데이터 블록 중 타 전자기기(10b)에도 동일하게 저장된 일부 데이터 블록만을 선별하여 합의 과정을 수행함으로서, 네트워크 사용자들이 많아질 때에도 네트워크 통신 및 사용자의 저장 공간 제약을 줄이며 합의를 할 수 있게 된다. 또한, 각 노드의 저장 용량, 요구되는 보안성, 노드 간 통신에 사용가능한 대역폭, 사용자의 수 등 시스템 설계에 필요한 변수가 주어졌을 때 해당 변수를 반영한 적응적인 합의 시스템 설계가 가능해진다.
이하, 도 7 및 도 8을 참조하여, 본원 발명의 네트워크 부호화 합의 알고리즘을 적용한 경우, 종래의 샤딩을 활용한 데이터 분배 방식과 비교하여 보다 효과적으로 최대 대역폭이 좁아진 것을 설명하고자 한다.
참고로, 도 8에 예시한 샤딩 방식에 그려진 G는 종래 샤딩 방식에서는 없는 개념이며, 본원 발명의 네트워크 부호화 합의 알고리즘으로 생성된 발생 행렬(G)을 설명하고 샤딩 방식과 비교하기 위해 생성한 행렬이다.
본원 발명에 따른 네트워크 부호화 합의 기법은 노드 간의 통신에 필요한 최대 대역폭이 줄어든다는 점과, 비잔틴 적의 공격에 데이터를 비교적 안전히 저장할 수 있다는 장점이 있다.
도 7과 도 8은 각각 네트워크 부호화 합의 알고리즘을 사용한 데이터 분배 방식과, 기존 샤딩을 활용한 데이터 분배 방식을 나타낸다. 공정한 비교를 위하여 두 경우 모두 데이터는 총 네 개의 데이터 블록으로 나누고, 각 전자기기의 저장 용량은
Figure 112019061969083-pat00034
로 일정하게 설정하였다.
부호화 기법이 적용된 도 7에서, 각 전자기기는 다른 전자기기들과 최대 1개의 데이터 블록을 공유하므로 합의에 필요한 임의의 두 노드 간 통신 대역폭의 최대치는
Figure 112019061969083-pat00035
이다. 반면 도 8의 종래 샤딩 기법에서는, 전자기기들은 자신이 보유하고 있는 데이터의 전체를 같은 샤드에 속한 전자기기에게 전송해야 하므로, 노드 간 통신 대역폭의 최대치는
Figure 112019061969083-pat00036
이다.
비잔틴 전자기기가 2개 존재할 경우를 고려하면, 네트워크 부호화 기법이 적용된 도 7은 최대 하나의 데이터 블록이 손상될 수 있다. 조금 더 구체적으로는, 각 데이터 블록은 서로 다른 세 명의 전자기기에게 나뉘어 저장되는데 해당 데이터 블록을 가진 세 명 중 두 명 이상이 동의하면 해당 블록을 승인하는 majority rule을 따른다. 도 7의 네트워크 부호화 기법을 적용하면, 어떠한 두 명의 전자기기가 악의적인 행동을 하더라도 데이터 블록 3개의 안전성은 확보할 수 있다. 이와는 대조적으로, 도 8과 같이 일반 샤딩 기법을 사용하면 최대 두 개의 데이터 블록이 손상될 위험이 있다.
시스템 설계 파라미터와 요구 성능 지표가 주어졌을 때 이를 달성하는 발생 행렬
Figure 112019061969083-pat00037
를 다음과 같이 설계할 수 있다. 각 전자기기의 저장 용량 제한이 B로 주어 졌을 때, 완전 복제(full replication) 방식 대비 B/S비율의 데이터 블록을 저장할 수 있다. 따라서 발생행렬
Figure 112019061969083-pat00038
는 다음 부등식을 만족해야 한다.
Figure 112019061969083-pat00039
노드 간 통신 대역폭의 제한이
Figure 112019061969083-pat00040
로 주어졌을 때, 발생 행렬
Figure 112019061969083-pat00041
는 다음 부등식을 만족해야 한다.
Figure 112019061969083-pat00042
Figure 112019061969083-pat00043
명의 전자기기 중 z명의 전자기기의 비잔틴 적이 존재할 때, 데이터의 완전 보안을 위해서 발생 행렬
Figure 112019061969083-pat00044
는 다음 부등식을 만족해야 한다. 구체적으로, 비잔틴 전자기기의 비율이 각 데이터 블록을 저장하고 있는 전자기기 비율의 절반보다 적을 때 모든 데이터 블록이 안전하게 관리된다.
Figure 112019061969083-pat00045
이상 설명된 실시 형태는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터로 판독가능한 기록매체에 기록될 수 있다. 상기 컴퓨터로 판독가능한 기록매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터로 판독가능한 기록매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 판독가능한 기록매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 실행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 실시예들에 설명된 특징, 구조, 효과 등은 본 발명의 하나의 실시예에 포함되며, 반드시 하나의 실시예에만 한정되는 것은 아니다. 나아가, 각 실시예에서 예시된 특징, 구조, 효과 등은 실시예들이 속하는 분야의 통상의 지식을 가지는 자에 의해 다른 실시예들에 대해서도 조합 또는 변형되어 실시 가능하다. 따라서 이러한 조합과 변형에 관계된 내용들은 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
또한, 이상에서 실시예를 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시예에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (27)

  1. 네트워크 상에서 전자기기가 타 전자기기로 합의된 데이터 블록을 전송하는 방법에 있어서,
    하나의 데이터가 복수로 분할된 복수의 데이터 블록 중 일부 데이터 블록을 저장하는, 데이터 블록 저장 단계;
    상기 네트워크 상에 참여하는 상기 전자기기와 상기 타 전자기기를 포함하는 복수의 전자기기의 개수(m)와 상기 복수의 전자기기 사이에서 공유하기 위한 상기 복수의 데이터 블록의 개수(n)를 기초로 크기가 m×n으로 생성된 발생 행렬을 저장하는, 발생 행렬 저장 단계; 및
    상기 발생 행렬을 기초로 상기 타 전자기기와 공유하기로 합의한 합의된 데이터 블록만을 상기 타 전자기기에 전송하는, 전송 단계;를 포함하고,
    상기 발생 행렬은 상기 복수의 데이터 블록 중, 상기 전자기기와 상기 타 전자기기 각각에 선별적으로 저장되는 적어도 하나의 데이터 블록을 참조하기 위한 것이고,
    상기 데이터 블록 저장 단계에서, 상기 일부 데이터 블록은 상기 발생 행렬에 기초하여 상기 복수의 데이터 블록 중 일부가 상기 전자기기에 저장된 것이고,
    상기 전송 단계에서, 상기 합의된 데이터 블록은 상기 일부 데이터 블록 중에서 상기 타 전자기기에 저장된 적어도 하나 이상의 데이터 블록과 동일한 것인,
    네트워크 상에서 전자기기가 합의된 데이터 블록을 전송하는 방법.
  2. 제 1항에 있어서,
    상기 전자기기가 상기 타 전자기기에 상기 합의된 데이터 블록을 전송하기 위한 통신 대역폭은 상기 발생 행렬을 기초로 산출되는,
    네트워크 상에서 전자기기가 합의된 데이터 블록을 전송하는 방법.
  3. 제 2항에 있어서,
    상기 통신 대역폭은 상기 발생 행렬을 이용하여 하기 수식을 기초로 산출되는,
    Figure 112020141039767-pat00046

    (
    Figure 112020141039767-pat00047
    : 통신 대역폭, G: 발생 행렬(m*n), a: 전자기기, b: 타 전자기기, n: 데이터 블록의 개수)
    네트워크 상에서 전자기기가 합의된 데이터 블록을 전송하는 방법.
  4. 제 1항에 있어서,
    상기 복수의 전자기기에 포함되는 각 전자기기에 요구되는 저장 용량은 상기 발생 행렬을 기초로 산출되는,
    네트워크 상에서 전자기기가 합의된 데이터 블록을 전송하는 방법.
  5. 제 4항에 있어서,
    상기 각 전자기기에 요구되는 저장 용량 비율은 상기 발생 행렬을 이용하여 하기 수식을 기초로 산출되는,
    Figure 112020141039767-pat00048

    (
    Figure 112020141039767-pat00049
    : 저장 용량 비율, G: 발생 행렬(m*n), i: i번째 전자기기, n: 데이터 블록의 개수)
    네트워크 상에서 전자기기가 합의된 데이터 블록을 전송하는 방법.
  6. 제 1항에 있어서,
    상기 복수의 데이터 블록에 포함되는 소정의 데이터 블록을 저장하는 전자기기의 비율은 상기 발생 행렬을 기초로 산출되는,
    네트워크 상에서 전자기기가 합의된 데이터 블록을 전송하는 방법.
  7. 제 6항에 있어서,
    상기 소정의 데이터 블록을 저장하는 전자기기의 비율은 상기 발생 행렬을 이용하여 하기 수식을 기초로 산출되는,
    Figure 112020141039767-pat00050

    (
    Figure 112020141039767-pat00051
    : 전자기기의 비율, G: 발생 행렬(m*n), j: j번째 소정의 데이터 블록, m: 복수의 전자기기의 개수)
    네트워크 상에서 전자기기가 합의된 데이터 블록을 전송하는 방법.
  8. 제 1항에 있어서,
    상기 복수의 데이터 블록 각각의 크기는 모두 동일한,
    네트워크 상에서 전자기기가 합의된 데이터 블록을 전송하는 방법.
  9. 제 1항에 있어서,
    상기 복수의 전자기기 각각에 요구되는 각 저장 용량이 모두 동일하도록 설정된,
    네트워크 상에서 전자기기가 합의된 데이터 블록을 전송하는 방법.
  10. 제 1항에 있어서,
    상기 합의된 데이터 블록을 전송하기 위한 최대 통신 대역폭이 상기 복수의 전자기기 각각에 모두 동일하도록 설정된,
    네트워크 상에서 전자기기가 합의된 데이터 블록을 전송하는 방법.
  11. 삭제
  12. 제 1항에 있어서,
    상기 전송 단계는, PBFT(Practical Byzantine Fault Tolerance) 알고리즘을 기초로 수행하는,
    네트워크 상에서 전자기기가 합의된 데이터 블록을 전송하는 방법.
  13. 삭제
  14. 네트워크 상에서 합의된 데이터를 타 전자기기로 전송하기 위한 전자기기에 있어서,
    하나의 데이터가 복수로 분할된 복수의 데이터 블록 중 일부 데이터 블록을 저장하고, 상기 네트워크 상에 참여하는 상기 전자기기와 상기 타 전자기기를 포함하는 복수의 전자기기의 개수(m)와 상기 복수의 전자기기 사이에서 공유하기 위한 복수의 데이터 블록의 개수(n)를 기초로 크기가 m×n으로 생성된 발생 행렬을 저장하는 메모리; 및
    상기 발생 행렬을 기초로 상기 타 전자기기와 공유하기로 합의한 합의된 데이터 블록만을 상기 타 전자기기에 전송하는 프로세서;를 포함하고,
    상기 발생 행렬은 상기 복수의 데이터 블록 중, 상기 전자기기와 상기 타 전자기기 각각에 선별적으로 저장되는 적어도 하나의 데이터 블록을 참조하기 위한 것이고,
    상기 일부 데이터 블록은 상기 발생 행렬에 기초하여 상기 복수의 데이터 블록 중 일부가 상기 전자기기에 저장된 것이고,
    상기 합의된 데이터 블록은 상기 일부 데이터 블록 중에서 상기 타 전자기기에 저장된 적어도 하나 이상의 데이터 블록과 동일한 것인,
    네트워크 상에서 합의된 데이터 블록을 전송하기 위한 전자기기.
  15. 제 14항에 있어서,
    상기 타 전자기기에 상기 합의된 데이터 블록을 전송하기 위한 통신 대역폭은 상기 발생 행렬을 기초로 산출되는,
    네트워크 상에서 합의된 데이터 블록을 전송하기 위한 전자기기.
  16. 제 15항에 있어서,
    상기 통신 대역폭은 상기 발생 행렬을 이용하여 하기 수식을 기초로 산출되는,
    Figure 112020141039767-pat00052

    (
    Figure 112020141039767-pat00053
    : 통신 대역폭, G: 발생 행렬(m*n), a: 전자기기, b: 타 전자기기, n: 데이터 블록의 개수)
    네트워크 상에서 합의된 데이터 블록을 전송하기 위한 전자기기.
  17. 제 14항에 있어서,
    상기 복수의 전자기기에 포함되는 각 전자기기에 요구되는 저장 용량은 상기 발생 행렬을 기초로 산출되는,
    네트워크 상에서 합의된 데이터 블록을 전송하기 위한 전자기기.
  18. 제 17항에 있어서,
    상기 각 전자기기에 요구되는 저장 용량 비율은 상기 발생 행렬을 이용하여 하기 수식을 기초로 산출되는,
    Figure 112020141039767-pat00054

    (
    Figure 112020141039767-pat00055
    : 저장 용량 비율, G: 발생 행렬(m*n), i: i번째 전자기기, n: 데이터 블록의 개수)
    네트워크 상에서 합의된 데이터 블록을 전송하기 위한 전자기기.
  19. 제 14항에 있어서,
    상기 복수의 데이터 블록에 포함되는 소정의 데이터 블록을 저장하는 전자기기의 비율은 상기 발생 행렬을 기초로 산출되는,
    네트워크 상에서 합의된 데이터 블록을 전송하기 위한 전자기기.
  20. 제 19항에 있어서,
    상기 소정의 데이터 블록을 저장하는 전자기기의 비율은 상기 발생 행렬을 이용하여 하기 수식을 기초로 산출되는,
    Figure 112020141039767-pat00056

    (
    Figure 112020141039767-pat00057
    : 전자기기의 비율, G: 발생 행렬(m*n), j: j번째 소정의 데이터 블록, m: 복수의 전자기기의 개수)
    네트워크 상에서 합의된 데이터 블록을 전송하기 위한 전자기기.
  21. 제 14항에 있어서,
    상기 복수의 데이터 블록 각각의 크기는 모두 동일한,
    네트워크 상에서 합의된 데이터 블록을 전송하기 위한 전자기기.
  22. 제 14항에 있어서,
    상기 복수의 전자기기 각각에 요구되는 각 저장 용량이 모두 동일하도록 설정된,
    네트워크 상에서 합의된 데이터 블록을 전송하기 위한 전자기기.
  23. 제 14항에 있어서,
    상기 합의된 데이터 블록을 전송하기 위한 최대 통신 대역폭이 상기 복수의 전자기기 각각에 모두 동일하도록 설정된,
    네트워크 상에서 합의된 데이터 블록을 전송하기 위한 전자기기.
  24. 삭제
  25. 제 14항에 있어서,
    상기 프로세서는,
    PBFT(Practical Byzantine Fault Tolerance) 알고리즘을 기초로 상기 합의된 데이터 블록 전송 단계를 수행하는,
    네트워크 상에서 합의된 데이터 블록을 전송하기 위한 전자기기.
  26. 삭제
  27. 제 1항 내지 제 10항 및 제 12항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체.
KR1020190071909A 2019-06-18 2019-06-18 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기 KR102229923B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190071909A KR102229923B1 (ko) 2019-06-18 2019-06-18 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기
US16/904,208 US11470150B2 (en) 2019-06-18 2020-06-17 Agreed data transmit method and electronic apparatus for transmitting agreed data in network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190071909A KR102229923B1 (ko) 2019-06-18 2019-06-18 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기

Publications (2)

Publication Number Publication Date
KR20200144214A KR20200144214A (ko) 2020-12-29
KR102229923B1 true KR102229923B1 (ko) 2021-03-22

Family

ID=74039492

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190071909A KR102229923B1 (ko) 2019-06-18 2019-06-18 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기

Country Status (2)

Country Link
US (1) US11470150B2 (ko)
KR (1) KR102229923B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102229923B1 (ko) * 2019-06-18 2021-03-22 한국과학기술원 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101882347B1 (ko) * 2018-03-20 2018-07-26 가온미디어 주식회사 Ip 네트워크를 위한 블록체인 기반의 분산형 콘텐츠 배포 시스템 및 방법

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8073565B2 (en) * 2000-06-07 2011-12-06 Apple Inc. System and method for alerting a first mobile data processing system nearby a second mobile data processing system
US8060389B2 (en) * 2000-06-07 2011-11-15 Apple Inc. System and method for anonymous location based services
US11367065B1 (en) * 2018-01-19 2022-06-21 Josiah Johnson Umezurike Distributed ledger system for electronic transactions
KR101497669B1 (ko) * 2013-04-29 2015-03-11 서울대학교산학협력단 일정 수 이상의 파일 조각으로 원본 파일을 복구하는 파일 관리 장치 및 방법
US20170228731A1 (en) * 2016-02-09 2017-08-10 Fmr Llc Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems
US11488147B2 (en) * 2015-07-14 2022-11-01 Fmr Llc Computationally efficient transfer processing and auditing apparatuses, methods and systems
US20170109735A1 (en) * 2015-07-14 2017-04-20 Fmr Llc Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems
US20180191503A1 (en) * 2015-07-14 2018-07-05 Fmr Llc Asynchronous Crypto Asset Transfer and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20170048235A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Captcha and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US10339523B2 (en) * 2015-07-14 2019-07-02 Fmr Llc Point-to-point transaction guidance apparatuses, methods and systems
WO2017192837A1 (en) * 2016-05-04 2017-11-09 Silvio Micali Distributed transaction propagation and verification system
US20190268466A1 (en) * 2016-07-28 2019-08-29 Nec Corporation Number portability information management system
WO2018170504A1 (en) * 2017-03-17 2018-09-20 Labyrinth Research Llc Unified control of privacy-impacting devices
US10945166B2 (en) * 2017-04-07 2021-03-09 Vapor IO Inc. Distributed processing for determining network paths
WO2018194368A1 (en) * 2017-04-18 2018-10-25 Samsung Electronics Co., Ltd. Method and apparatus for access control in distributed blockchain-based internet of things (iot) network
US10984134B2 (en) * 2017-07-14 2021-04-20 Microsoft Technology Licensing, Llc Blockchain system for leveraging member nodes to achieve consensus
US11321718B1 (en) * 2017-07-17 2022-05-03 Agasthya P. Narendranathan Systems and methods for blockchain based identity assurance and risk management
US10616324B1 (en) * 2017-07-20 2020-04-07 Architecture Technology Corporation Decentralized ledger system and method for enterprises
US20190026672A1 (en) * 2017-07-24 2019-01-24 One Network Enterprises, Inc. System and computer program for implementing an improved blockchain for use a value chain
US11568505B2 (en) * 2017-10-18 2023-01-31 Docusign, Inc. System and method for a computing environment for verifiable execution of data-driven contracts
KR102019211B1 (ko) * 2017-11-14 2019-11-04 주식회사 아이콘루프 비잔틴 장애를 극복 가능한 블록체인 생성 방법
US20200396059A1 (en) * 2017-12-19 2020-12-17 Algorand Inc. Fast and partition-resilient blockchains
US11184437B2 (en) * 2018-05-24 2021-11-23 Dapper Labs Inc. Decentralized computation system architecture based on node specialization
US11139956B2 (en) * 2018-05-24 2021-10-05 Dapper Labs Inc. Decentralized computation system architecture based on node specialization
US20200026699A1 (en) * 2018-07-20 2020-01-23 True Blockchain Technology Ltd. Highly Performant Decentralized Public Ledger with Hybrid Consensus
US11281660B1 (en) * 2018-08-31 2022-03-22 Vitalyx, Inc. Multi-parallel processing of n-dimensional orthogonal splits in transactions and data for a distributed transaction system
JP7051648B2 (ja) * 2018-09-05 2022-04-11 株式会社日立製作所 電子取引装置、電子取引検証装置、及び電子取引方法
KR102130062B1 (ko) * 2018-09-18 2020-07-03 엔에이치엔 주식회사 블록체인 네트워크의 노드들 간의 합의를 이루는 방법 및 블록체인 시스템
CN109685501B (zh) * 2018-12-04 2023-04-07 暨南大学 基于区块链激励机制下可审计的隐私保护深度学习平台建设方法
US20200394183A1 (en) * 2019-06-12 2020-12-17 Subramanya R. Jois System and method of executing, confirming and storing a transaction in a serverless decentralized node network
US11551229B2 (en) * 2019-02-05 2023-01-10 Adp, Inc. Payslip verification for blockchain transaction
WO2020203340A1 (ja) * 2019-04-02 2020-10-08 ソニー株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US10963786B1 (en) * 2019-05-07 2021-03-30 Ledgerdomain Inc. Establishing a trained machine learning classifier in a blockchain network
KR102229923B1 (ko) * 2019-06-18 2021-03-22 한국과학기술원 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기
US11102202B2 (en) * 2019-08-02 2021-08-24 Brand Media Technologies, Inc. Architecture for cloudchain driven ecosystem
KR102260093B1 (ko) * 2019-08-30 2021-06-02 연세대학교 산학협력단 내결함성 블록체인 네트워크의 신뢰도 기반 샤드 분배 장치 및 방법
US20210073286A1 (en) * 2019-09-06 2021-03-11 Digital Asset Capital, Inc. Multigraph verification
US11132403B2 (en) * 2019-09-06 2021-09-28 Digital Asset Capital, Inc. Graph-manipulation based domain-specific execution environment
US20200026289A1 (en) * 2019-09-28 2020-01-23 Ignacio J. Alvarez Distributed traffic safety consensus
US20210217001A1 (en) * 2020-01-10 2021-07-15 Salesforce.Com, Inc. Decentralized tokenization technologies
US11081219B1 (en) * 2020-01-15 2021-08-03 Ledgerdomain Inc. Secure messaging in a machine learning blockchain network
KR102337760B1 (ko) * 2020-08-27 2021-12-08 연세대학교 산학협력단 심층강화학습 기반 적응적 샤드 블록체인 네트워크 관리 장치 및 방법
US20220067669A1 (en) * 2020-09-01 2022-03-03 International Business Machines Corporation Predictive device maintenance
US11626988B2 (en) * 2020-09-23 2023-04-11 Genesys Cloud Services, Inc. Blockchain-based technologies for hyper-personalized interactions across enterprises
US20220198562A1 (en) * 2020-12-18 2022-06-23 Strong Force TX Portfolio 2018, LLC Market orchestration system for facilitating electronic marketplace transactions
US11874827B2 (en) * 2020-12-30 2024-01-16 Luther Systems Us Incorporated System and method for automatic, rapid, and auditable updates of digital contracts

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101882347B1 (ko) * 2018-03-20 2018-07-26 가온미디어 주식회사 Ip 네트워크를 위한 블록체인 기반의 분산형 콘텐츠 배포 시스템 및 방법

Also Published As

Publication number Publication date
US11470150B2 (en) 2022-10-11
US20200404049A1 (en) 2020-12-24
KR20200144214A (ko) 2020-12-29

Similar Documents

Publication Publication Date Title
KR101727525B1 (ko) 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
US11095432B2 (en) System for processing data based on blockchain and operating method thereof
KR102382127B1 (ko) 블록체인 기반의 데이터 처리 시스템 및 그 동작 방법
AU2019229435B2 (en) Methods and apparatus for a distributed database within a network
CN102170440B (zh) 适用于存储云间数据安全迁移的方法
KR101986081B1 (ko) 블록체인에서 특정 노드들간 블록을 공유 및 검증하는 방법
Cash et al. Two-tier permission-ed and permission-less blockchain for secure data sharing
Huang et al. Resource allocation and consensus on edge blockchain in pervasive edge computing environments
KR101827373B1 (ko) 채굴 제한을 위한 합의 알고리즘을 포함하는 블록윈도우 모듈 및 관리 서버 그리고 가상화폐 거래 시스템 및 방법
Huang et al. Resource allocation and consensus of blockchains in pervasive edge computing environments
Li et al. Blockchain-based security architecture for distributed cloud storage
KR102050087B1 (ko) 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법
US20200364212A1 (en) System and method of supporting reflection of transactions between blockchain networks
CN113407977B (zh) 基于聚合签名的跨链扩展方法及系统
Huang et al. EVA: Efficient versatile auditing scheme for IoT-based datamarket in jointcloud
KR101968424B1 (ko) 블록 체인 컨트롤러를 이용한 인증 시스템 및 방법
CN113626875A (zh) 一种区块链分片赋能的知识图谱文件存储方法
Sohan et al. Increasing throughput and reducing storage bloating problem using ipfs and dual-blockchain method
KR102229923B1 (ko) 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기
CN113994324B (zh) 具有高效世界状态数据结构的区块链系统
Ning et al. On the exploitation of blockchain for distributed file storage
Ge et al. A privacy protection method of lightweight nodes in blockchain
US20220200809A1 (en) Management system, management method, upper block chain calculation device, and program
KR20230019648A (ko) 트랜잭션 처리 속도 향상이 가능한 블록체인 합의 시스템 및 방법
da Costa et al. DLCP: A protocol for securing light client operation in blockchains

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant