1 |
1
블록 체인 네트워크의 노드에서 수행되는 블록 체인 생성 방법으로,제1 노드로부터 제1 블록을 수신하는 단계;수신된 제1 블록의 유효성을 검증하는 단계;유효성이 검증된 상기 제1 블록을 블록 체인에 연결하는 단계를 포함하고,상기 제1 블록의 유효성을 검증하는 단계는,상기 제1 블록의 헤더를 참조하여 상기 제1 노드가 상기 제1 블록을 생성할 자격이 있는지 검증하는 단계를 포함하는, 블록 체인 생성 방법
|
2 |
2
청구항 1에서,상기 제1 블록의 헤더는 프로토콜의 버전, 부모 블록의 헤더에 대한 해시값, 머클 루트, 블록을 생성한 시각, 난이도, 논스 값, 블록을 생성한 노드에 대한 노드 식별자(Node Identifier), 상기 노드 식별자에 대한 증명, 그룹의 수 중 적어도 하나를 지시하는 필드를 포함하는, 블록 체인 생성 방법
|
3 |
3
청구항 2에서,상기 제1 블록의 유효성을 검증하는 단계는,상기 제1 블록의 헤더에 포함된 각 필드 값들의 유효성을 검증하는 단계를 포함하는, 블록 체인 생성 방법
|
4 |
4
청구항 2에서,상기 제1 노드가 상기 제1 블록을 생성할 자격이 있는지 검증하는 단계는,블록 체인의 높이에 따라 결정되는 블록의 턴 값과 상기 노드 식별자를 이용하여 결정되는 노드의 턴 값을 비교하는 단계를 포함하는, 블록 체인 생성 방법
|
5 |
5
청구항 4에서,상기 블록의 턴 값은,상기 블록 체인의 높이를 상기 그룹의 수로 나눈 나머지 값을 의미하는, 블록 체인 생성 방법
|
6 |
6
청구항 4에서,상기 노드의 턴 값은,상기 부모 블록의 헤더에 대한 해시값과 상기 노드 식별자를 더한 값에 대하여 해시 함수를 수행하고, 상기 해시 함수를 수행한 결과 값을 상기 그룹의 수로 나눈 나머지 값을 의미하는, 블록 체인 생성 방법
|
7 |
7
청구항 3에서,상기 제1 블록의 유효성을 검증하는 단계는,상기 그룹의 수의 유효성을 검증하는 단계를 포함하는, 블록 체인 생성 방법
|
8 |
8
청구항 7에서,상기 그룹의 수의 유효성을 검증하는 단계는,전체 노드의 수를 파악하기 위한 통신 프로토콜에 따라 개별 노드의 정보를 수신하는 단계;수신된 상기 개별 노드의 정보를 축적하여 전체 노드의 수를 결정하는 단계; 및상기 전체 노드의 수를 이용하여 그룹의 수를 결정하고, 결정된 그룹의 수와 상기 제1 블록의 헤더에 포함된 그룹의 수와 비교하는 단계를 포함하는, 블록 체인 생성 방법
|
9 |
9
청구항 2에서,상기 노드 식별자에 대한 증명은 상기 노드 식별자에 대한 전자 서명을 의미하는, 블록 체인 생성 방법
|
10 |
10
청구항 2에서,상기 제1 블록의 유효성을 검증하는 단계는,상기 노드 식별자에 대한 증명을 이용하여 상기 노드 식별자의 유효성을 검증하는 단계를 포함하는, 블록 체인 생성 방법
|
11 |
11
청구항 2에서,상기 제1 블록의 유효성을 검증하는 단계는,인텔 SGX(Software Guard Extensons)를 이용하여 상기 제1 블록의 유효성을 검증하는 단계를 포함하는, 블록 체인 생성 방법
|
12 |
12
블록 체인 네트워크의 노드에서 수행되는 블록 생성 방법으로,제1 노드로부터 제1 블록을 수신하는 단계;수신된 제1 블록을 블록 체인에 연결하는 단계;블록 체인에 연결된 상기 제1 블록을 부모 블록으로 갖는 제2 블록을 생성할 자격이 현재 노드에게 있는지 결정하는 단계;상기 현재 노드에게 상기 제2 블록을 생성할 자격이 있으면, 상기 제2 블록을 생성하는 단계; 및생성된 상기 제2 블록을 상기 현재 노드 이외의 다른 노드로 전송하는 단계를 포함하는, 블록 생성 방법
|
13 |
13
청구항 12에서,상기 제2 블록을 생성할 자격이 현재 노드에게 있는지 결정하는 단계는,블록 체인의 높이에 따라 결정되는 블록의 턴 값과 상기 현재 노드의 식별자를 이용하여 결정되는 노드의 턴 값을 비교하는 단계를 포함하는, 블록 생성 방법
|
14 |
14
청구항 13에서,상기 블록의 턴 값은,상기 블록 체인의 높이를 그룹의 수로 나눈 나머지 값을 의미하는, 블록 생성 방법
|
15 |
15
청구항 13에서,상기 노드의 턴 값은,상기 제1 블록의 헤더에 대한 해시값과 상기 현재 노드의 식별자를 더한 값에 대하여 해시 함수를 수행하고, 상기 해시 함수를 수행한 결과 값을 그룹의 수로 나눈 나머지 값을 의미하는, 블록 생성 방법
|
16 |
16
청구항 14에서,상기 그룹의 수는,상기 블록 체인 네트워크에 속한 전체 노드의 수를 결정하고, 결정된 전체 노드의 수를 미리 설정된 그룹 크기로 나눔으로써 획득되는, 블록 생성 방법
|
17 |
17
청구항 16에서,상기 전체 노드의 수는,상기 전체 노드의 수를 파악하기 위한 통신 프로토콜에 따라 개별 노드의 정보를 수신하고, 수신된 상기 개별 노드의 정보를 축적하여 결정되는, 블록 생성 방법
|
18 |
18
청구항 13에서,상기 제2 블록을 생성하는 단계는,상기 현재 노드의 식별자, 상기 그룹의 수 및 상기 현재 노드의 식별자에 대한 증명 중 적어도 하나를 지시하는 필드를 포함하여 상기 제2 블록의 헤더를 생성하는 단계를 포함하는, 블록 생성 방법
|
19 |
19
청구항 13에서,상기 현재 노드의 식별자는,공인 인증 서버를 통해 발급받은 공용 키(Public key)인, 블록 생성 방법
|
20 |
20
적어도 하나의 프로세서(processor); 및상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함하는 블록 체인 네트워크 상의 블록 생성 장치로,상기 적어도 하나의 단계는,제1 노드로부터 제1 블록을 수신하는 단계;수신된 제1 블록을 블록 체인에 연결하는 단계;블록 체인에 연결된 상기 제1 블록을 부모 블록으로 갖는 제2 블록을 생성할 자격이 현재 노드에게 있는지 결정하는 단계;상기 현재 노드에게 상기 제2 블록을 생성할 자격이 있으면, 상기 제2 블록을 생성하는 단계; 및생성된 상기 제2 블록을 상기 현재 노드 이외의 다른 노드로 전송하는 단계를 포함하는, 블록 생성 장치
|