KR102182142B1 - 신뢰성 향상을 위한 가중치 기반의 블록체인 네트워크 구성 방법 및 장치 - Google Patents

신뢰성 향상을 위한 가중치 기반의 블록체인 네트워크 구성 방법 및 장치 Download PDF

Info

Publication number
KR102182142B1
KR102182142B1 KR1020190175118A KR20190175118A KR102182142B1 KR 102182142 B1 KR102182142 B1 KR 102182142B1 KR 1020190175118 A KR1020190175118 A KR 1020190175118A KR 20190175118 A KR20190175118 A KR 20190175118A KR 102182142 B1 KR102182142 B1 KR 102182142B1
Authority
KR
South Korea
Prior art keywords
value
node
blockchain
blockchain network
network
Prior art date
Application number
KR1020190175118A
Other languages
English (en)
Inventor
오병엽
강전일
신동오
정현철
문성광
Original Assignee
주식회사 록스307
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 주식회사 록스307 filed Critical 주식회사 록스307
Priority to KR1020190175118A priority Critical patent/KR102182142B1/ko
Application granted granted Critical
Publication of KR102182142B1 publication Critical patent/KR102182142B1/ko

Links

Images

Classifications

    • 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/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1057Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers involving pre-assessment of levels of reputation of peers
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

본 발명은 P2P 네트워크(peer to peer network) 상의 컴퓨팅 디바이스(computing device)의 블록 체인 구성 방법 및 장치에 관한 것이다. 구체적으로, 노드 식별 정보 및 트랜젝션(transaction) 정보를 획득하여, 블록체인 네트워크에 참여하는 단계, 및 블록체인 네트워크를 구성하는 노드 그룹의 가치에 기반하여 선택된 체인(chain) 상에, 트랜젝션 정보에 기반한 블록을 생성하는 단계를 포함하며, 상기 노드 그룹의 가치는, 상기 노드 그룹을 구성하는 개별 노드의 가치의 합에 따라 결정되며, 상기 개별 노드의 가치는, 상기 개별 노드의 랜덤시드와 상기 블록체인 네트워크의 현재 블록 높이(current block height)에 기반한 해시값(hashvalue)을 상기 개별 노드의 참여 빈도 가중치를 곱 연산한 가치 측정 값과, 상기 블록체인 네트워크의 현재 블록 높이에 기반한 상기 개별 노드의 위험도 평판값 중 최소 값으로 결정되는 것을 특징으로 한다.

Description

신뢰성 향상을 위한 가중치 기반의 블록체인 네트워크 구성 방법 및 장치{METHOD FOR CONFIGURING A BLOCKCHAIN NETWORK BASED ON WEIGHT VALUE FOR IMPROVING RELIABILITY AND A DEVICE THEREFOR}
본 발명은 블록체인 네트워크를 구성하는 방법 및 장치에 관한 것으로서, 보다 상세하게는 신뢰성 향상을 위한 가중치 기반의 블록체인 네트워크 구성 방법 및 장치에 관한 것이다.
블록체인에서 합의 알고리즘은 트랜잭션의 처리 순서를 합의하고, 이후에 이 순서를 바꾸지 못하도록 하는 가장 핵심적인 역할을 한다. 자율 경쟁이고 단일 체인을 연결하는 초기 형태의 블록체인은 블록체인으로서의 기본적인 구성을 잘 담아내고 있지만, 현실 세계에서 요구하는 성능에는 도달하지 못하는 문제가 있었다. 따라서, 많은 블록체인 합의 알고리즘이 이를 해결하기 위하여 제안되었고 시도되었지만, 지속 가능한 블록체인 시스템을 위해서 필요한 요소들을 충분히 담아내지 못하고 있는 상황이다.
수많은 노드들이 실제 블록체인 네트워크에 참여하기 위해서는, 네트워크로의 진입 장벽이 충분히 낮아야 하고 소수의 구성원들이 이득을 취하지 못하도록 해야하며, 로컬체인의 규모가 서로 다를 수는 있지만, 이 로컬체인들 사이에서 자유롭게 자산이 이동하기 위해서는 로컬체인의 규모에 따른 손익이 없거나 무시할 수 있는 수준이어야 한다. 즉, 블록체인의 경제적 불균형을 낳는 가장 큰 원인은 블록체인 외부의 자원이 블록체인 내부 경제에 영향을 주는 것이므로, 합의 알고리즘은 외부 자원을 기반으로 해서는 안 되며, 자원의 불균형은 규모가 작은 로컬체인의 보안성을 악화시킬 수도 있다는 문제점이 있다.
상술한 바와 같은 논의를 바탕으로 이하에서는 블록체인 네트워크를 구성하는 방법 및 그 장치를 제공하고자 한다.
본 발명에서 이루고자 하는 기술적 과제들은 상기 기술적 과제로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상술한 문제점을 해결하기 위한 본 발명의 일 양상은, P2P 네트워크(peer to peer network) 상의 컴퓨팅 디바이스(computing device)의 블록 체인 구성 방법은, 노드 식별 정보 및 트랜젝션(transaction) 정보를 획득하여, 상기 블록체인 네트워크에 참여하는 단계; 및 상기 블록체인 네트워크를 구성하는 노드 그룹의 가치에 기반하여 선택된 체인(chain) 상에, 상기 트랜젝션 정보에 기반한 블록을 생성하는 단계를 포함하며, 상기 노드 그룹의 가치는, 상기 노드 그룹을 구성하는 개별 노드의 가치의 합에 따라 결정되며, 상기 개별 노드의 가치는, 상기 개별 노드의 랜덤시드와 상기 블록체인 네트워크의 현재 블록 높이(current block height)에 기반한 해시값(hashvalue)을 상기 개별 노드의 참여 빈도 가중치에 곱 연산한 가치 측정 값과, 상기 블록체인 네트워크의 현재 블록 높이에 기반한 상기 개별 노드의 위험도 평판값 중 최소 값으로 결정되는 것을 특징으로 한다.
나아가, 상기 가치 측정값은, 상기 랜덤시드와 상기 현재 블록 높이를 이용하여 소정의 비트 영역에 대응하도록 생성된 암호학적 해시값과, 상기 개별 노드의 노드 식별 정보 상에서 상기 소정의 비트 영역에 대응하여 추출된 식별값의, 기하학적 거리값을 계산하여 결정되는 것을 특징으로 할 수 있다. 바람직하게는 상기 암호학적 해시값은, SHA-256(secure hash algorithm - 256bit) 함수를 통하여 획득되며, 상기 기하학적 거리값은, 상기 암호학적 해시값과 상기 식별값 간의, 해밍 거리(hamming distance) 혹은 유클리드 거리(Euclidean distance)에 의하여 계산되는 것을 특징으로 할 수 있다.
나아가, 상기 참여 빈도 가중치는, 상기 블록체인 네트워크의 탈중앙화를 위하여, 상기 개별 노드의 상기 블록체인 네트워크에 대한 참여 빈도가 많을수록 낮아지도록 설정되며, 최소 1 에서 최대 2 까지의 값을 가지도록 설정되는 것을 특징으로 할 수 있다.
나아가, 상기 위험도 평판값은, 상기 현재 블록 높이에 기반한 노드 리스트 상에 상기 개별 노드의 식별 정보가 포함되면 0으로 결정되며, 상기 현재 블록 높이에 기반한 노드 리스트 상에 상기 개별 노드의 식별 정보가 포함되지 않으면 상기 가치 측정 값보다 항상 크도록 설정된 소정의 값으로 결정되는 것을 특징으로 할 수 있다.
나아가, 상기 랜덤시드는, 상기 트랜젝션 정보를 통하여 획득되는 외부 노드의 서명키에 기반하여 산출되는 것을 특징으로 할 수 있다.
상술한 문제점을 해결하기 위한 본 발명의 다른 양상인 P2P 네트워크(peer to peer network) 상의 블록 체인을 구성하는 컴퓨팅 디바이스(computing device)는, 메모리; 및 상기 메모리와 연결된 프로세서(processor)를 포함하며, 상기 프로세서는, 노드 식별 정보 및 트랜젝션(transaction) 정보를 획득하고, 상기 블록체인 네트워크에 참여하도록 제어하며, 상기 블록체인 네트워크를 구성하는 노드 그룹의 가치에 기반하여 선택된 체인(chain) 상에, 상기 트랜젝션 정보에 기반한 블록을 생성하도록 구성되며, 상기 노드 그룹의 가치는, 상기 노드 그룹을 구성하는 개별 노드의 가치의 합에 따라 결정되며, 상기 개별 노드의 가치는,
상기 개별 노드의 랜덤시드와 상기 블록체인 네트워크의 현재 블록 높이(current block height)에 기반한 해시값(hashvalue)을 상기 개별 노드의 참여 빈도 가중치와 곱 연산한 가치 측정 값과, 상기 블록체인 네트워크의 현재 블록 높이에 기반한 상기 개별 노드의 위험도 평판값 중 최소 값으로 결정되는 것을 특징으로 한다.
본 발명의 실시예에 따르면, 실명 인증한 노드에 높이에 따라 무작위로 가치를 부여하는 한편, 최선의 그룹 구성원 선택을 통하여, 네트워크의 상태를 간접적으로 측정할 수 있는 새로운 합의 알고리즘이 제안될 수 있다.
또한, 본 발명의 실시예에 따르면, 그룹 개념을 도입하여 최대한 많은 노드들에게 이익을 분배하여 블록체인의 스토리지 서비스가 원활히 일어날 수 있도록 유도할 뿐만 아니라, 다수의 노드가 참여하도록 하여, 블록의 신뢰성을 높임과 동시에 확장성을 높일 수 있다.
본 발명에서 얻은 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 관한 이해를 돕기 위한 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 본 발명에 따른 블록체인 네트워크가 적용될 수 있는 P2P 네트워크를 나타낸다.
도 2는 본 발명의 일 실시예에 따라 그룹에 속하는 노드들의 가치를 산출하는 경우를 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 체인(chain)의 경쟁 및 선택 전략을 설명하기 위한 참조도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다. 아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 일 실시예에 따른 블록체인 네트워크가 적용될 수 있는 P2P 네트워크를 나타낸다.
P2P 네트워크는 네트워크에 참여하는 노드가 서로간 동등한 자격을 가지고 통신을 수행한다. P2P 네트워크는 노드간 연결 상태에 따라 다양한 형태를 가질 수 있는데, 현실 세계에서 자율적으로 만들어지는 P2P 네트워크는 몇몇 허브들이 존재하고 이들을 중심으로 네트워크가 유지되는 탈중앙화된 형태가 일반적이다.
P2P 네트워크에 참여하기 위해서는 일반적으로 트래커(tracker)나 부트스트래핑 노드(bootstrapping node)의 도움이 필요하며, 이들은 다른 일반적인 노드들과 다르게, 네트워크를 떠나지 않으며 다른 노드들로의 연결 주소를 관리하는 역할을 수행한다.
많은 공개 블록체인에서 Kademlia를 사용하여 P2P 네트워크를 만들고 있으나, Kademlia는 그 훌륭한 성능에도 불구하고 일부 라우팅 정보를 숨기는 이클립스(eclipse) 공격, 혼자서 다수의 노드인 척하는 시빌(Sybil) 공격 등 특정 노드를 고립시킬 수 있는 몇몇 보안 이슈가 있다. 특히, 최근 블록체인들은 이를 개선한 S/Kademlia 등을 사용하려고 하고 있는데, S/Kademlia에서는 검증 가능한 노드 식별자를 만들기 위해서 신뢰할 수 있는 제삼자에 의해 검증된 공개키를 사용하거나 해시 퍼즐을 이용해 생성한 공개키를 사용한다.
초기 블록체인에서 노드는 사용자와 명확하게 분리되지 않았으며, 사용자가 자신의 자산을 검증받고 관리하기 위해서는 블록체인에 대한 상당한 정보가 필요했고 이는 사실상 노드의 일부 기능을 수행하기 때문이었다. 그러나 최근 블록체인에서는 노드와 사용자를 분리되고 있으며, 노드는 블록체인 네트워크를 유지하고 데이터를 보존하며 사용자들에게 블록체인 서비스를 제공하고, 사용자는 노드를 통하여 자신의 자산을 관리해야 한다.
노드와 사용자의 분리 정책은 사용자가 자신의 자산 관리를 노드에게 크게 의존하지 않으면 안되게 하지만, 사용자의 블록체인으로의 접근 편의성을 상당히 개선하는 효과가 있다. 사실상 현재 상당수의 사용자는 거래소의 계정을 빌리는 핫 월렛(hot wallet)을 사용하고 있으며, 직접 계정을 관리하는 콜드 월렛(cold wallet)을 이용하는 많은 사용자들 또한 노드로써 역할은 수행하지 않는다. 블록체인에서 노드와 사용자는 모두 동일한 형태의 식별자를 사용하지만, 현실세계에서 노드는 사실상 실명으로 운영되고 있으며, 사용자는 익명(가명)을 사용하고 있다.
많은 공개 블록체인 네트워크에서는 어느 한 노드가 블록을 만들면 블록에 포함된 트랜잭션 수수료 전부를 획득한다. 그래서 실질적으로 스토리지 서비스를 제공하는 노드는 무료로 서비스를 해주는 것과 같다. 만약, 어느 노드가 더 많은 블록을 생성하여 트랜잭션 수수료를 더 많이 가져간다면, 이들은 스토리지 서비스에 더 많은 비용을 들여야 하나, 현실은 어떠한 스토리지 서비스도 하지 않으면서, 블록만 만들고 트랜잭션 수수료를 가져가려고 하는 노드가 존재할 수 있다. 따라서, 이러한 수수료 체계는 결국 블록을 잘 생성할 수 있는 몇몇 노드만 블록체인 네트워크에 남는 결과를 야기할 수 있다.
블록체인 네트워크에서 노드의 수는 보안성과 직접적인 연관성이 있으므로, 이는 네트워크 유지에 부정적인 영향을 줄 수밖에 없다. 하지만 스토리지 서비스에 서비스 요금을 청구하는 경우는 거의 없으며, 대안적으로 스마트컨트랙트를 통하여 스토리지 서비스를 제공하는 노드와 사용자 간 계약을 할 수도 있다.
다른 접근 방법으로는 노드들이 사용자들에게 스토리지 서비스 요금을 굳이 받지 않아도 될 만큼 트랜잭션 수수료가 블록체인에 참여하는 노드들에게 공평하고도 풍족하게 분배되도록 하는 것을 생각해볼 수 있으며, 이상적으로는 모두가 협력하여 정해진 순서대로 블록을 생성하도록 하면 된다.
결론적으로 지속 가능한 블록체인 네트워크를 위해서는 노드가 서비스를 나태하게 제공하면 이득을 얻을 수 없게 해야 하고, 어느 정도의 경쟁이 있도록 설정할 필요가 있다.
대표적인 블록체인인 비트코인은 수많은 노드가 참여하는 P2P 네트워크로 설계가 되었다. 수많은 노드가 참여하였을 때 데이터의 생존성은 높아지지만, 네트워크는 자연적으로 파편화가 되고 데이터의 동기화에 어려움이 발생하는 문제점이 있다. 블록체인의 합의 알고리즘은 이렇게 파편화된 P2P 네트워크 위에서 트랜잭션의 처리 순서를 다수의 노드 간에 합의하고, 합의된 트랜잭션 순서를 이후에 바꾸지 못하게 하는데 그 목표가 있다.
트랜잭션의 처리 순서 합의는 그 방법에 따라 크게 세 가지로 분류될 수 있으며, 몇몇 블록체인에서는 각각의 단점을 보완하기 위하여, 혼용된 구조를 가지고 있다.
● 경쟁 순차 체인 구조: 비트코인과 이더리움과 같이 오래된 블록체인의 경우 블록들이 순차적으로 연결되는 체인 구조를 가지고 있다. 블록을 생성하려는 참여자 간에 게임을 통하여 블록을 생성할 권한을 획득한 뒤 이를 이전 블록에 연결하는 방식으로, 많은 노드가 참여할 수 있지만, 노드 간 블록 생성에 과열 경쟁이 벌어지는 경우 매우 느릴 수 있다.
● 소수 합의 구조: EOS, NEO 등은 소수의 구성원 간에 트랜잭션의 처리 순서를 합의합니다. 사전에 합의된 순서에 따라 블록을 생성하기 때문에 체인을 만들 이유가 없으며, 주로 PBFT(Practical Byzantine Fault Tolerant) 프로토콜을 사용하기 때문에, 노드의 수가 늘어날수록 지수적으로 합의가 느려져 노드의 수가 수십 개를 넘기 어렵다. 이러한 경우에는 체인 연결이 필요 없는 경우가 많다.
● DAG(Directed Acyclic Graph) 구조: IOTA나 Hedera Hashgraph, FANTOM 등에서는 복수의 이전 트랜잭션이나 블록, 이벤트에 연결된 해시 체인을 사용한다. 트랜잭션은 해시 체인의 연결 상태에 따라 처리 순서가 정해지는데, 정확한 순서 제어가 어렵기 때문에 스마트컨트랙트를 실행시킬 수 없거나, 오로지 소수의 노드만 참여하거나, 또는 이를 정리해줄 특별한 참여자가 필요하다.
특히, 몇몇 합의 알고리즘은 순차 체인 구조가 가진 단점(특히 성능 문제)을 보완하기 위해서 개발되었으나, 블록체인이 트랜잭션을 모아서 블록으로 만들고 연결하는 것뿐이라면 이러한 새로운 시도들이 아무 문제가 없겠지만, 블록체인은 다수의 참여로부터 신뢰성과 안전성이 확보되어야 하는 시스템이기때문에, 참여하는 노드의 수를 제한하거나 블록체인 네트워크 운영에 깊숙이 참여하는 특별한 참여자의 존재를 가정해서는 안 되는 문제점이 있다.
블록체인과 같이 익명으로 운영되는 대부분의 시스템에서는 시빌 공격(civil attack)의 위험성이 존재한다. 시빌 공격은 하나의 참여자가 가짜 식별자를 만들어 시스템을 공격하는 것으로, 블록체인에서는 기존의 합의된 블록을 철회하거나, 과도한 경쟁을 발생시켜 네트워크 성능을 떨어뜨리는데 이용될 수 있다. 따라서, 블록체인에서의 자격 증명은 시빌 공격을 통하여 얻을 수 없어야 하며, 블록에 포함되어야 한다. 즉, 각 블록의 자격 증명은 블록이 일정 수준이상의 자격이 갖춘 참여자에 의한 것임을 보이게 하여 블록 생성의 경쟁을 제한하고, 누적된 자격 증명은 블록의 철회를 불가능하게 만든다. 예를 들어, 작업 증명(Proof-of-Work, PoW)과 지분 증명(Proof-of-Stake, PoS)이 있다.
PoW은 전사적 검색(brute-force search)을 통해서만 얻을 수 있는 해시 퍼즐의 답을 포함시키도록 하며, 대표적으로 비트코인에서의 예처럼, 현실 세계에서 암호화폐의 가격이 올라가면 블록 생성 경쟁이 치열해지면서 해시 퍼즐의 난이도가 지나치게 높아져 거대 해시 파워를 소유한 몇몇 참여자들만 블록을 생성할 수 있는 문제가 발생할 수 있다.
PoS는 소유한 지분의 양에 따라 블록을 생성할 수 있는 기회를 차등 부여함으로써 시빌 공격을 무력화하며, 가짜 식별자에게 지분을 분할하면 분할한 만큼 블록 생성 기회가 줄어들어 이득이 없다. PoS는 거대 해시 파워가 필요 없기 때문에 PoW 기반의 블록체인보다 가벼운 운영이 가능하지만, 어떻게 지분대로 블록 생성 기회를 분배하고, 이 분배가 정당함을 모두에게 검증받을 수 있는지 여부가 고려되어야 한다. 또한 지분을 나누어 서로 다룬 체인에 나누어 투표하는 비위험(Nothing-at-Stake) 공격을 어떻게 막을 것인지에 대한 고려 또한 필요하다.
대부분의 블록체인에서 참여자는 익명성을 갖는다고 보기 때문에 복잡한 자격 증명이 필요하다고 여기나 현실세계에서 대부분의 블록 생성자(노드)들은 고정되고 알려진 연결 주소와 프로토콜 등을 갖기 때문에 익명성이 보장된다고 보기 어렵다. 이미 선출된 소수의 노두가 합의를 이루는 블록체인의 경우 노드에 대한 정보가 익히 알려져 있는 경우가 대부분이며, 블록 생성자에 대해 익명성을 유지할 이유가 없다.
노드의 수에 따라 어디까지를 탈중앙화 되었다고 볼 것인지에 대한 기준은 존재하지 않는다. 비트코인 노드의 수는 1만개(2019년 1월 기준)에 달한다고 알려져 있으며, EOS는 단지 21개의 노드만이 존재하고 Cardano의 경우 최대 50개 노드가 존재할 수 있다. SWIFT(the Society for Worldwide Interbank Financial Telecommunication)에 가입된 전 세계 은행이 약 9,000곳정도이고, 가입되지 은행들도 많다는 사실을 감안하면, 100개 이내의 노드가 존재하는 블록체인 네트워크는 작다. 따라서, 이를 바탕으로 현재의 은행 시스템이 중앙화 되었다고 이야기하기 위해서는 적어도 블록체인 네트워크에 참여하는 노드의 수가 적어도 수 만은 되어야 할 것이다.
한편, DPoS(Delegated Proof-of-Stake) 같은 작업 증명을 사용하는 합의 알고리즘은 지분 위임을 통하여 선출된 소수의 노드가 실질적으로 블록체인 네트워크를 운영하지만 이를 근거로 자신들은 탈중앙화 되어 있다고 주장하고 있으나, 선출된 소수의 노드의 변경이 실질적으로 일어나지 않는 경우에 이를 탈중앙화로 보기는 어려우며, 따라서 실질적으로 운영에 참여하는 노드의 수가 탈중앙화의 중요한 기준이 된다.
체인의 분기를 허용하는 합의 알고리즘을 사용하는 블록체인에서 실제 분기가 발생하였을 때, 블록 생성자는 하나의 체인을 선택해야 한다. 블록의 자격 증명만 올바르다면 어느 체인을 선택하든지 그것은 블록 생성자의 자유이나, 많은 블록체인에서는 직관적인 선택 전략으로 가장 긴 체인을 선택하는 LCR(Longest Chain Rule)를 사용한다. 몇몇 블록체인에서는 보안성이 가장 높은 체인을 선택하는 경우도 있으며, 그것이 전체 블록체인의 입장에서 보자면 가장 이득이 되는 선택이고 다른 블록 생성자들도 동일한 선택을 할 것이라고 판단하기 때문이다. 일반적으로 자격 증명에 소요된 비용 때문에 이러한 전략은 LCR과 일치할 가능성이 높다.
하지만, 모든 노드는 자신의 이득을 위해서 동작한다고 보아야 할 것이고 블록 생성자 또한 마찬가지이다. 또한, 네트워크의 속도가 지속적으로 빨라지는 상황에서 무엇이 가장 긴 체인인지 선택하라는 것은 해결책이 되기 어렵다. 따라서 블록 생성자에게 이득이 되는 선택의 기준이 명확하지 못한 경우, 블록 생성자들은 무작위로 체인을 선택하게 되면서 체인의 연결이 더 경쟁적이 되고 블록체인을 혼잡하게 만들어 버릴 것입니다.
블록 생성자의 입장에서 보자면 자신이 생성한 블록의 생존 가능성이 높은 체인을 선택해야만 한다. 자신이 생성한 블록이 버려지면 어떠한 이득도 만들어내지 못하기 때문이다. 따라서, 합의 알고리즘은 블록 생성자의 선택이 보안성에 영향을 미치지 않도록 설계되어야 할 필요가 있으며, 블록의 생존 가능성을 직간접적으로 보여줄 수 있어야 한다. 이는 경쟁 수준을 낮추고 네트워크 상황을 좀 더 원활하게 만들 수 있는 효과가 있다.
비트코인의 TPS(Transaction Per Second)는 3~5 정도이고, 이더리움의 경우 12~20정도로 알려져 있다. VISA 네트워크의 경우 전세계에서 4,600만 상점에서 최고 65,000건(2017년 8월 기준)을 처리할 수 있기 때문에, 이러한 블록체인으로는 현실 세계의 금융 시스템을 대체하는 것은 무리가 있다. 이렇게 블록체인이 성능상의 문제가 크게 대두되었을 때, 많은 블록체인들이 새로운 합의 알고리즘을 만드는 한편, 단일 체인으로는 실생활에 필요한 성능을 충족시키기 쉽지 않다는 판단 아래에 병렬로 체인을 운영하는 방법에 대하여 제안되고 있으며, 사이드 체인이나, 오프 체인, 로컬 체인 등이 그 예이다.
사이드 체인은 목적에 따라 여러 개의 블록체인을 병렬로 운영하여 성능 문제를 해결하고자 하는 방법이며, 대체적으로 독립적인 경제 구조를 가지고 있으며, 체인 들 간의 자산(assets)을 연결해줄 수 있는 메인 체인을 필요로 한다. 오프 체인은 원래 운영중인 메인 체인에서 참여자들의 자산을 동결시킨 뒤, 이들 사이에서 블록체인에 기록을 남기지 않고 거래하도록 하는 방식입니다. 라이트닝 네트워크나 라이덴 네트워크가 오프 체인 방식을 사용한다. 로컬체인은 사이드체인과 유사하지만 경제적으로 호환성 있는 블록체인들을 동시에 운영한다. 자산은 로컬체인들 사이에서 자유롭게 이동될 수 있다. 로컬체인을 만들기 위해서는 체인의 크기나 외부 자원에 따른 경제적 손익이 없어야 하기 때문에, PoW나 PoS와 같은 합의 알고리즘으로는 구현이 불가능하다.
비트코인에서 타임스탬프 값은 이전 11블록의 타임스탬프의 중간 값보다 크고 네트워크를 통하여 교정된 시간보다 2시간 더 많은 시각보다 작을 때 유효하다고 판단한다. 그러나, 이렇게 느슨한 시간 관리는 높은 처리량을 필요로 하는 시스템에서는 적합하지 않으며, 따라서 많은 블록체인에서는 노드들 사이에서 시간이 동기화되어 있다고 가정한다.
노드들 사이에서 시간을 동기화하기 위해서는 이들 사이에서 시계 동기화 알고리즘(clock synchronization algorithm)을 사용해야 할 것이다. 시계 동기화 알고리즘에는 다양한 방식이 있지만, 현실적으로는 OpenNTPD나 Chrony와 같은 NTP(Network Time Protocol) 서비스를 이용할 수 있다.
상술한 내용을 바탕으로 본 발명에서는 충분한 탈중앙화를 위해서 수많은 노드가 실제로 참여하여 블록체인을 구성하며, 로컬체인을 통하여 처리 성능을 극적으로 향상시킨 지속 가능한 블록체인 시스템을 제안한다.
본 발명에 따른 블록체인 시스템에서는 로컬체인을 만들기 위해서 우선 합의 알고리즘이 자원 기반이 아니어야 하며, 비자원 기반의 합의 알고리즘을 만드는 가장 우선 고려해야할 것은 시빌 공격을 어떻게 막을 것인지에 대한 방안에 대한 해답으로, 본 발명에서는 실명 인증을 거쳐 시빌 공격을 막는 것을 전제로 한다.
본 발명에 따른 블록체인 시스템은, 탈중앙화된 P2P 네트워크 위에서 동작하며, 이때, P2P 네트워크는 부분적으로 파편화가 진행될 수 있지만, 파편화된 지역 네트워크 간의 연결은 계속 유지된다고 가정한다. 또한 50% 이상의 노드가 특정한 악의적인 행위를 위해 공모하지 않으며, 50% 초과의 노드는 자신의 이득을 위해서 행동할 수 있지만, 정책을 위배하지 않는 준성실(semi-honest) 노드라고 가정한다. 모든 노드의 시간은 매우 작은 시간 차이로 동기화 되어 있다고 가정하고, 노드 사이의 모든 메시지는 위조나 수정, 재전송이 불가능하도록 현재 시간을 포함하여 디지털 서명으로 보호가 되어 있다고 가정한다. 또한 노드의 네트워크 아이디는 노드의 아이디로부터 검증받을 수 있는 구조를 가지고 있다고 가정한다.
도 2는 본 발명의 일 실시예에 따라 그룹에 속하는 노드들의 가치를 산출하는 경우를 설명하기 위한 순서도이다.
본 발명에 따르면, 컴퓨팅 디바이스는 블록체인 네트워크에 노드로 참여한다(S210). 본 발명에 따르면, 블록체인 네트워크에 참여하고 싶은 컴퓨팅 디바이스(이하, 노드)는 먼저 실명 인증 절차를 수생한다. 예를 들어, 공개 블록체인임에도 일정한 자격을 갖추어야하는 법인 등만 노드로 참여할 수 있거나, 특정 국가에서만 참여가 가능한 경우, 네트워크의 운영 목적 등에 따라 실명 인증 방법은 달라질 수 있다.
블록체인 네트워크에 참여하는 노드는 실명 인증이 수행된 경우, 노드의 식별 정보(예, 노드의 아이디) 및 트랜젝션 정보(예, 서명키, 공개키 등)를 얻을 수 있다.
노드의 식별 정보는, 예를 들어 노드의 아이디와 같이는 노드의 네트워크 아이디 등을 검증하기 위하여 사용될 수 있는 정보를 의미한다.
서명키는 블록체인 네트워크에서 노드가 트랜잭션(transaction)을 생성할 때 이용되는 노드 특정의 키(key)이다. 공개키는 트랜젝션의 유효성을 확인하기 위하여 누구에게나 공개된 키(key)로서, 인증서(certificate) 형태로 배포된다. 이때 랜덤시드가 같이 배포되며, 랜덤시드 또한 인증서처럼 검증 가능한 형태인 것이 바람직하다.
본 발명에 따른 일 예는, 검증 가능한 랜덤시드는 반드시 신뢰할 수 있는 제삼자의 개입이 필요하므로, 인증서처럼 랜덤시드에 신뢰할 수 있는 제삼자의 서명을 붙일 수 있다. 이를 위해서는 본 발명에 따르면, 랜덤시드는 인증서와 유사한 구조를 갖는 구조체를 가지며, 이는 다른 노드에게 전달하기 위해서는 이용될 수 있다.
본 발명에 따라 랜덤시드를 이용하는 다른 예로서, 신뢰할 수 있는 제삼자의 서명키에 대해서 VRF(verifiable random function)를 수학식 1과 같이 사용할 수 있다.
Figure 112019134119867-pat00001
수학식 1에서, Si는 노드의 랜덤시드이며, pi는 VRF의 증명값, skTTP는 신뢰할 수 있는 제삼자의 서명키이고, pki는 공개키이다.
그러나 VRF를 이용하는 경우에는 신뢰할 수 있는 제삼자가 노드에게 랜덤시드와 증명을 함께 만들어주어야 하고, 다른 노드에게는 인증서와 랜덤시드, 증명을 함께 전송해야 하는 부담이 있다.
본 발명에 따라 랜덤시드를 이용하는 또 다른 예는, 랜덤시드를 노드의 공개키를 담고 있는 인증서를 이용하여 수학식 2와 같이 계산하는 것이다.
Figure 112019134119867-pat00002
수학식 2에서, Si는 노드의 랜덤시드이며, pki는 공개키이다. PBKDF2(password-based key derivation function version 2)는 사용자 패스워드를 기반으로 키(key)유도를 하기 위한 대표적인 함수이다. 이는 인증서에 신뢰할 수 있는 제삼자의 서명이 담겨 있고, 그 서명이 안전하다는 가정아래, 제삼자의 서명은 예측할 수 없기 때문에 이를 이용하여 랜덤시드를 생성할 수 있다. 이는 인증서만 있으면 되기 때문에, 따로 랜덤시드를 다른 노드에게 전달하지 않아도 되는 장점이 있습니다.
따라서, 본 발명에서 이용되는 공개키 인증서는 보안성이 향상된 P2P 통신 프로토콜(예, S/Kademlia)을 사용할 수 있도록 도와줄 수 있다.
블록체인 네트워크에 참여하면, 블록을 생성하거나 관리하려는 경우 노드 그룹의 가치가 산정된다(S220)
블록체인의 노드의 가치는 블록의 높이와 블록체인을 구성하는 노드의 순서에 따라 결정될 수 있다. 블록 높이(block height)란 블록체인 네트워크의 시작을 상징하는 첫번째 블록으로부터 현재 블록까지의 블록이 만들어진 양을 나타내며, 이 수치를 블록 높이로 표현한다. 예를 들어, 0번 블록은 블록체인 네트워크가 최초에 시작될 때 만들어진 블록을 의미한다.
이에, 본 발명의 일 예에서는, 현재(current) 블록의 높이 h 에서 갖는 i 번째 노드의 가치 v(i,h) 는 수학식 3과 같이 계산될 수 있다.
Figure 112019134119867-pat00003
수학식 3에서, si는 노드의 랜덤시드, idi는 노드의 아이디를 의미하며,
Figure 112019134119867-pat00004
는 가치 측정 함수,
Figure 112019134119867-pat00005
는 참여 빈도 가중치,
Figure 112019134119867-pat00006
는 위험도 평판을 나타낸다.
가치 측정 함수
Figure 112019134119867-pat00007
는 노드가 갖는 시드 s 로부터 현재 높이 h 로부터 계산되는 무작위 값과 노드의 아이디를 비교하여 계산될 수 있다. 예를 들어, 수학식 4와 같이 계산될 수 있다.
Figure 112019134119867-pat00008
수학식 4에서,
Figure 112019134119867-pat00009
는 해밍 거리(Hamming distance)나 유클리드 거리(Euclidean distance)처럼 기하학적 거리를 계산하는 함수를 의미하며,
Figure 112019134119867-pat00010
는 SHA-256(secure hash algorithm - 256bit)과 같은 암호학적 해시 함수를 의미하는데, 이상적으로는 의사 난수 생성기(pseudo random number generator)를 의미한다. 세로줄( | ) 옆의 변수의 밑 첨자는 비트의 시작 위치, 위 첨자는 비트의 끝 위치를 의미한다. 즉, 랜덤시드와 현재 블록 높이를 의사 난수 생성기등을 통하여 비트의 시작 위치부터 비트의 끝 위치까지에 대응하는 암호학적 해시값을 생성한 후, 노드 식별 정보(예, 노드의 아이디)중 비트의 시작 위치부터 비트의 끝 위치까지에 대응하는 식별값을 추출하여, 기하학적 거리를 계산할 수 있다. 파라미터
Figure 112019134119867-pat00011
는 필요에 따라 적절하게 선택하여 사용하면 되는데, 예를 들어 (3, 64, 16)와 같은 값이 사용될 수 있다.
참여빈도 가중치
Figure 112019134119867-pat00012
는 블록체인 네트워크위 탈중앙화를 위하여 본 발명에서 이용되는 파라미터로, 노드가 최근에 참여하였던 빈도가 많을수록 낮은 값을 갖는 함수이며, 예를 들어, 수학식 5와 같이 계산될 수 있다. t 는 최근 블록의 길이이고
Figure 112019134119867-pat00013
는 h 번째 블록의 그룹 구성원의 집합이다.
Figure 112019134119867-pat00014
Figure 112019134119867-pat00015
Figure 112019134119867-pat00016
수학식 5에서
Figure 112019134119867-pat00017
는 최소 1에서 최대 2까지의 값을 갖게 되며, 최근 t 블록에서 지수적으로 증가하는 전체 가중치의 합 대비 최근 블록에 참여한 경우를 제외한 가중치의 합의 비율에 1을 더하여 결정된다. 수학식 5에서, α를 계산하기 위하여 밑을
Figure 112019134119867-pat00018
를 사용하였으나, 1 보다 큰 적합한 실수를 사용하면 되며, 밑이 1에 가까운 경우, 참여 빈도 가중치는 일정 범위에서 균등하게 되고, 크면 클수록 최근 블록에 더 많은 가중치를 두게 된다.
위험도 평판
Figure 112019134119867-pat00019
은 블록 높이를 키로 하는 노드 리스트
Figure 112019134119867-pat00020
로부터 획득할 수 있다. 만약 해당 노드 리스트에 노드의 아이디가 들어 있다면 0이 되고, 들어 있지 않다면 항상 가치 측정함수의 값보다 크도록 설정된 임의의 최대 가치와 동일하다. 즉, 노드의 가치
Figure 112019134119867-pat00021
는 가치와 가중치의 곱을 평판 중 더 작은 값을 가지므로 위험도 평판
Figure 112019134119867-pat00022
이 0이면 노드의 가치가 0이 되어, 블록 생성에 참여하기 어렵게 된다. 예를 들어,
Figure 112019134119867-pat00023
는 수학식 6과 같이 나타낼 수 있다.
Figure 112019134119867-pat00024
따라서, 다수의 노드들로 구성된 그룹의 가치는 그룹에 속한 노트들의 가치를 합하여 계산될 수 있으며, 수학식 7과 같이 나타낼 수 있다.
Figure 112019134119867-pat00025
따라서, 블록체인 네트워크를 구성하는 각 노드 그룹은 블록의 생성에 참여한 노드 리스트를 이용하여 그룹의 가치를 계산될 수 있다. 이 때, 한 그룹에 속하는 그룹 구성원의 수는 모두 동일해야 한다. 만약, 더 많은 노드로부터 그룹을 구성하기 위한 동의 서명을 얻은 경우라고 하더라도 오로지 정해진 수만 포함되어 그룹의 가치가 계산되는 것이 바람직하다.
블록 체인상에 트랜젝션을 통하여 블록을 생성하려는 노드는, 노드 그룹의 가치에 기반하여 선택된 체인에 블록을 생성한다(S230),
만약, 여러 그룹이 경쟁하여 블록 체인이 분기하였다면, 다음 블록을 생성하려고 하는 노드는 반드시 하나의 체인을 선택해야 한다. 이는 노드의 자율적인 선택으로 이루어지지만, 다른 노드들의 동의를 받기 위해서는 합리적인 선택을 해야만 할 것이다. 노드는 이전 체인에 포함된 블록들을 생성한 그룹들의 가치를 계산하여, 그 가치가 가장 큰 블록을 선택하는 것이 바람직하다.
그룹의 가치는 이전 그룹 대비 그룹 구성원의 다양성이 확보되었을 때 높아진다. 만약 비슷한 그룹 구성을 가진 그룹에 의해서 지속적으로 블록이 생성한다면 그룹의 가치는 지속적으로 낮아진다.(즉, 참여 빈도 가중치가 낮아짐). 그룹 구성원의 다양성은 해당 블록의 그룹 리더가 연결성이 높은 환경에 놓여 있음을 간접적으로 증명하게 되며, 이는 다시 자신이 처한 네트워크 환경이 나쁘지 않다면, 자신이 생성할 블록이 생존할 가능성이 높음을 의미한다.
도 3은 본 발명의 일 실시예에 따른 체인의 경쟁 및 선택 전략을 설명하기 위한 참조도이다.
도 3에서 체인의 분기 후 블록들의 그룹의 가치가 (200+170)인 체인과 (150+180)인 체인이 경쟁하고 있는 경우를 나타낸다. 그룹의 가치가 180인 그룹의 리더는 그룹의 가치가 200인 블록대신 가치가 150인 블록을 선택하여 연결하였기 때문에, 자신들이 경쟁하는 그룹(가치가 170인 블록)보다 가치가 더 높음에도 불구하고, 다음 블록에서 선택되지 못하게 된다. 따라서, 노드는 이러한 상황을 방지하기 위하여 상술한 노드 그룹의 가치에 기반한 체인상에 블록을 생성할 필요가 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 표시 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 중앙 처리 표시 장치(Central Processing Unit; CPU), 그래픽 프로세싱 유닛(Graphics Processing Unit; GPU), ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로 프로세서, 주문형 집적 회로(Application Specific Integrated Circuits; ASICS), 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 표시 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 표시 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 표시 장치는 실시예의 입력을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 비록 한정된 도면에 의해 실시예들이 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 표시 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
상술한 바와 같은 블록체인 네트워크 구성 방법 및 장치는 다양한 네트워크 산업 분야에 적용하는 것이 가능하다.

Claims (7)

  1. P2P 네트워크(peer to peer network) 상의 컴퓨팅 디바이스(computing device)의 블록 체인 구성 방법에 있어서,
    노드 식별 정보 및 트랜젝션(transaction) 정보를 획득하여, 상기 블록체인 네트워크에 참여하는 단계; 및
    상기 블록체인 네트워크를 구성하는 노드 그룹의 가치에 기반하여 선택된 체인(chain) 상에, 상기 트랜젝션 정보에 기반한 블록을 생성하는 단계를 포함하며,
    상기 노드 그룹의 가치는,
    상기 노드 그룹을 구성하는 개별 노드의 가치의 합에 따라 결정되며,
    상기 개별 노드의 가치는,
    상기 개별 노드의 랜덤시드와 상기 블록체인 네트워크의 현재 블록 높이(current block height)에 기반한 해시값(hashvalue)을 상기 개별 노드의 참여 빈도 가중치를 곱 연산한 가치 측정 값과, 상기 블록체인 네트워크의 현재 블록 높이에 기반한 상기 개별 노드의 위험도 평판값 중 최소 값으로 결정되는 것을 특징으로 하는,
    블록 체인 구성 방법.
  2. 제 1 항에 있어서,
    상기 가치 측정값은,
    상기 랜덤시드와 상기 현재 블록 높이를 이용하여 소정의 비트 영역에 대응하도록 생성된 암호학적 해시값과, 상기 개별 노드의 노드 식별 정보 상에서 상기 소정의 비트 영역에 대응하여 추출된 식별값의, 기하학적 거리값을 계산하여 결정되는 것을 특징으로 하는,
    블록 체인 구성 방법.
  3. 제 2 항에 있어서,
    상기 암호학적 해시값은,
    SHA-256(secure hash algorithm - 256bit) 함수를 통하여 획득되며,
    상기 기하학적 거리값은,
    상기 암호학적 해시값과 상기 식별값 간의, 해밍 거리(hamming distance) 혹은 유클리드 거리(Euclidean distance)에 의하여 계산되는 것을 특징으로 하는,
    블록 체인 구성 방법.
  4. 제 1 항에 있어서,
    상기 참여 빈도 가중치는,
    상기 블록체인 네트워크의 탈중앙화를 위하여, 상기 개별 노드의 상기 블록체인 네트워크에 대한 참여 빈도가 많을수록 낮아지도록 설정되며,
    최소 1 에서 최대 2 까지의 값을 가지도록 설정되는 것을 특징으로 하는,
    블록 체인 구성 방법.
  5. 제 1 항에 있어서,
    상기 위험도 평판값은
    상기 현재 블록 높이에 기반한 노드 리스트 상에 상기 개별 노드의 식별 정보가 포함되면 0으로 결정되며, 상기 현재 블록 높이에 기반한 노드 리스트 상에 상기 개별 노드의 식별 정보가 포함되지 않으면 상기 가치 측정 값보다 항상 크도록 설정된 소정의 값으로 결정되는 것을 특징으로 하는
    블록 체인 구성 방법.
  6. 제 1 항에 있어서,
    상기 랜덤시드는,
    상기 트랜젝션 정보를 통하여 획득되는 외부 노드의 서명키에 기반하여 산출되는 것을 특징으로 하는,
    블록 체인 구성 방법.
  7. P2P 네트워크(peer to peer network) 상의 블록 체인을 구성하는 컴퓨팅 디바이스(computing device) 에 있어서,
    메모리; 및
    상기 메모리와 연결된 프로세서(processor)를 포함하며,
    상기 프로세서는,
    노드 식별 정보 및 트랜젝션(transaction) 정보를 획득하고, 상기 블록체인 네트워크에 참여하도록 제어하며,
    상기 블록체인 네트워크를 구성하는 노드 그룹의 가치에 기반하여 선택된 체인(chain) 상에, 상기 트랜젝션 정보에 기반한 블록을 생성하도록 구성되며,
    상기 노드 그룹의 가치는,
    상기 노드 그룹을 구성하는 개별 노드의 가치의 합에 따라 결정되며,
    상기 개별 노드의 가치는,
    상기 개별 노드의 랜덤시드와 상기 블록체인 네트워크의 현재 블록 높이(current block height)에 기반한 해시값(hashvalue)을 상기 개별 노드의 참여 빈도 가중치와 곱 연산한 가치 측정 값과, 상기 블록체인 네트워크의 현재 블록 높이에 기반한 상기 개별 노드의 위험도 평판값 중 최소 값으로 결정되는 것을 특징으로 하는,
    컴퓨팅 디바이스.
KR1020190175118A 2019-12-26 2019-12-26 신뢰성 향상을 위한 가중치 기반의 블록체인 네트워크 구성 방법 및 장치 KR102182142B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190175118A KR102182142B1 (ko) 2019-12-26 2019-12-26 신뢰성 향상을 위한 가중치 기반의 블록체인 네트워크 구성 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190175118A KR102182142B1 (ko) 2019-12-26 2019-12-26 신뢰성 향상을 위한 가중치 기반의 블록체인 네트워크 구성 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102182142B1 true KR102182142B1 (ko) 2020-11-24

Family

ID=73679570

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190175118A KR102182142B1 (ko) 2019-12-26 2019-12-26 신뢰성 향상을 위한 가중치 기반의 블록체인 네트워크 구성 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102182142B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112926053A (zh) * 2021-01-26 2021-06-08 上海树图区块链研究院 无许可区块链系统中恶意区块的探测方法、系统及p2p网络
CN113505024A (zh) * 2021-07-08 2021-10-15 网易(杭州)网络有限公司 联盟链的数据处理方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101968424B1 (ko) * 2017-12-08 2019-04-11 인제대학교 산학협력단 블록 체인 컨트롤러를 이용한 인증 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101968424B1 (ko) * 2017-12-08 2019-04-11 인제대학교 산학협력단 블록 체인 컨트롤러를 이용한 인증 시스템 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112926053A (zh) * 2021-01-26 2021-06-08 上海树图区块链研究院 无许可区块链系统中恶意区块的探测方法、系统及p2p网络
CN112926053B (zh) * 2021-01-26 2023-11-28 上海树图区块链研究院 无许可区块链系统中恶意区块的探测方法、系统及p2p网络
CN113505024A (zh) * 2021-07-08 2021-10-15 网易(杭州)网络有限公司 联盟链的数据处理方法、装置、电子设备及存储介质
CN113505024B (zh) * 2021-07-08 2024-02-23 网易(杭州)网络有限公司 联盟链的数据处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
KR102230471B1 (ko) 블록체인 네트워크 상에서 효율적인 트랜젝션을 수행하기 위한 그룹 증명 생성 방법
Wang et al. Sok: Sharding on blockchain
US20230171098A1 (en) Computer-implemented system and method for time release encryption over a blockchain network
Eyal et al. Majority is not enough: Bitcoin mining is vulnerable
Conti et al. A survey on security and privacy issues of bitcoin
JP6358658B2 (ja) ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
WO2017082237A1 (ja) ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
Zhou et al. DLattice: A permission-less blockchain based on DPoS-BA-DAG consensus for data tokenization
KR20200032449A (ko) 블록체인 네트워크의 노드들 간의 합의를 이루는 방법 및 블록체인 시스템
Panda et al. Bitcoin and blockchain: History and current applications
Bou Abdo et al. Permissionless proof‐of‐reputation‐X: A hybrid reputation‐based consensus algorithm for permissionless blockchains
Han et al. A fair blockchain based on proof of credit
Zhidanov et al. Blockchain technology for smartphones and constrained IoT devices: A future perspective and implementation
KR102182142B1 (ko) 신뢰성 향상을 위한 가중치 기반의 블록체인 네트워크 구성 방법 및 장치
CN113452747B (zh) 可扩展和安全的共识方法、系统、存储介质、智能终端
Islam et al. A low-cost cross-border payment system based on auditable cryptocurrency with consortium blockchain: Joint digital currency
Li et al. Three-dimensional tradeoffs for consensus algorithms: A review
Yu et al. Low powered blockchain consensus protocols based on consistent hash
Tang et al. Hedera: a permissionless and scalable hybrid blockchain consensus algorithm in multi-access edge computing for iot
Drakatos et al. Adrestus: Secure, scalable blockchain technology in a decentralized ledger via zones
Sakho et al. Privacy protection issues in blockchain technology
Zhang et al. Making eclipse attacks computationally infeasible in large-scale DHTs
Himanshu An overview of blockchain technology: Architecture and consensus protocols
WO2021185905A1 (en) Apparatus and method to produce notarized append-only memory
Lajoie-Mazenc et al. Handling bitcoin conflicts through a glimpse of structure

Legal Events

Date Code Title Description
GRNT Written decision to grant