1 |
1
하나 이상의 프로세서; 및상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리;를 포함하고,상기 적어도 하나 이상의 프로그램은블록체인의 합의체 후보 노드들로부터 클라이언트에 의해 제안된 분산 합의를 요청하는 제1 트랜잭션을 포함하는 합의체 후보 요청(DELEGATE REQUEST) 메시지들을 수신하고, 상기 합의체 후보 요청 메시지들에 기초하여 상기 합의체 후보 노드들 중 합의 정족수에 상응하는 합의체 후보 노드들을 합의 노드들로 결정하고,상기 합의 노드들에게 상기 합의 노드들을 결정한 결과에 대한 동의를 얻기 위한 제2 트랜잭션을 포함하는 준비(PREPARE) 메시지를 생성하고, 상기 합의 노드들에게 상기 준비 메시지를 송신하고,상기 합의 노드들로부터 상기 준비 메시지에 대한 응답으로 상기 합의 노드들 각각의 전자 서명이 포함된 동의(COMMIT) 메시지들을 수신하고, 상기 동의 메시지들에 포함된 전자 서명들을 검증한 결과인 응답(REPLY) 메시지를 상기 합의체 후보 노드들에게 브로드캐스팅하여 분산 합의를 완료하고,상기 합의 정족수는 2f+1(f는 1 이상의 정수)이고,상기 f는 제1 조건 및 제2 조건을 모두 만족하고,상기 제1 조건은, 상기 블록체인의 전체 노드들 중 상기 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에, 상기 합의체 후보 노드들로 선택될 비잔틴(Byzantine) 노드들이 f개를 초과할 제1 확률이 기설정된 제1 기준 확률 이하인 경우에 만족되는 조건이고,상기 제2 조건은 상기 합의체 후보 노드들이 3f개 이하일 제2 확률이 기설정된 제2 기준 확률 이하인 경우에 만족되는 조건인 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치
|
2 |
2
청구항 1에 있어서,상기 적어도 하나 이상의 프로그램은상기 전체 노드들로부터 상기 전체 노드들 각각이 상기 합의체 후보 노드로 선택되었는지 여부를 지시하는 정보가 포함된 상기 합의체 후보 요청 메시지를 수신하고,상기 합의체 후보 요청 메시지를 송신한 노드가 3f+1개 이상인 경우, 3f+1개의 노드들을 선택하여 다음 분산 합의를 위한 상기 합의체 후보 노드들로 결정하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f개 이하인 경우, 상기 합의체 후보 노드들을 업데이트 하지 않는 것을 특징으로 하는 탈 중앙화 비잔틴 오류 감내 분산 합의 장치
|
3 |
3
청구항 2에 있어서,상기 적어도 하나 이상의 프로그램은상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들을 수신한 경우, 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들에 포함된 서로 동일한 f+1개의 제1 트랜잭션을 기초로 상기 제2 트랜잭션을 결정하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치
|
4 |
4
청구항 2에 있어서,상기 적어도 하나 이상의 프로그램은상기 합의체 후보 노드들의 상기 제1 트랜잭션에 상응하는 제1 비트맵 정보 및 상기 합의 노드들을 결정한 결과를 포함하는 제2 비트맵 정보를 생성하고, 상기 제1 비트맵 정보, 상기 제2 비트맵 정보 및 상기 제2 트랜잭션을 포함하는 상기 준비 메시지를 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치
|
5 |
5
청구항 4에 있어서,상기 합의 노드들은상기 제1 비트맵 정보와 상기 제2 트랜잭션의 대응 여부로부터 상기 준비 메시지의 유효성을 검사하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치
|
6 |
6
청구항 5에 있어서,상기 적어도 하나 이상의 프로그램은상기 합의체 후보 요청 메시지들에 포함된 공개키들 및 정족수 값들을 각각 통합하여 제1 통합 공개키 및 제1 통합 정족수 값을 생성하고, 상기 제1 통합 공개키 및 상기 제1 통합 정족수 값을 해시한 제1 해시 값을 더 포함하는 상기 준비 메시지를 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치
|
7 |
7
청구항 6에 있어서,상기 합의 노드들은상기 기등록된 공개키들 및 상기 기등록된 정족수 값들을 각각 통합하여 제2 통합 공개키 및 제2 통합 정족수 값을 생성하고, 상기 제2 통합 공개키 및 상기 제2 통합 정족수 값을 해시한 제2 해시 값과 상기 제1 해시 값의 동일 여부를 비교하여 상기 준비 메시지의 유효성을 검사하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치
|
8 |
8
청구항 7에 있어서,상기 합의 노드들은상기 제2 해시 값과 상기 제1 해시 값이 동일한 경우, 상기 제1 해시 값과 상기 합의 노드들에 기저장된 비밀 값들을 포함하는 서명 값들을 생성하고, 상기 준비 메시지에 상기 서명 값들을 포함시키고, 상기 서명 값들에 기초한 상기 전자 서명들을 추가하여 상기 동의 메시지들을 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치
|
9 |
9
청구항 8에 있어서,상기 적어도 하나 이상의 프로그램은상기 동의 메시지들에 포함된 상기 서명 값들, 상기 제1 통합 공개키의 공개키들 및 상기 제1 통합 정족수 값의 정족수 값들을 각각 트리 형태의 다중 서명의 서명 값, 상기 다중 서명의 공개키 및 상기 다중 서명의 정족수 값으로 통합하여 상기 전자 서명들로부터 상기 다중 서명을 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치
|
10 |
10
청구항 9에 있어서,상기 적어도 하나 이상의 프로그램은상기 다중 서명의 검증 결과가 참인 경우, 상기 제2 트랜잭션 및 상기 다중 서명을 포함하는 상기 응답 메시지를 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치
|
11 |
11
탈 중앙화된 비잔틴 오류 감내 분산 합의 장치의 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법에 있어서,블록체인의 합의체 후보 노드들로부터 클라이언트에 의해 제안된 분산 합의를 요청하는 제1 트랜잭션을 포함하는 합의체 후보 요청(DELEGATE REQUEST) 메시지들을 수신하고, 상기 합의체 후보 요청 메시지들에 기초하여 상기 합의체 후보 노드들 중 합의 정족수에 상응하는 합의체 후보 노드들을 합의 노드들로 결정하는 단계;상기 합의 노드들에게 상기 합의 노드들을 결정한 결과에 대한 동의를 얻기 위한 제2 트랜잭션을 포함하는 준비(PREPARE) 메시지를 생성하고, 상기 합의 노드들에게 상기 준비 메시지를 송신하는 단계; 및 상기 합의 노드들로부터 상기 준비 메시지에 대한 응답으로 상기 합의 노드들 각각의 전자 서명이 포함된 동의(COMMIT) 메시지들을 수신하고, 상기 동의 메시지들에 포함된 전자 서명들을 검증한 결과인 응답(REPLY) 메시지를 상기 합의체 후보 노드들에게 브로드캐스팅하여 분산 합의를 완료하는 단계;를 포함하고,상기 합의 정족수는 2f+1(f는 1 이상의 정수)이고,상기 f는 제1 조건 및 제2 조건을 모두 만족하고,상기 제1 조건은, 상기 블록체인의 전체 노드들 중 상기 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에, 상기 합의체 후보 노드들로 선택될 비잔틴(Byzantine) 노드들이 f개를 초과할 제1 확률이 기설정된 제1 기준 확률 이하인 경우에 만족되는 조건이고,상기 제2 조건은 상기 합의체 후보 노드들이 3f개 이하일 제2 확률이 기설정된 제2 기준 확률 이하인 경우에 만족되는 조건인 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법
|
12 |
12
청구항 11에 있어서,상기 합의 노드들로 결정하는 단계는상기 전체 노드들로부터 상기 전체 노드들 각각이 상기 합의체 후보 노드로 선택되었는지 여부를 지시하는 정보가 포함된 상기 합의체 후보 요청 메시지를 수신하고,상기 합의체 후보 요청 메시지를 송신한 노드가 3f+1개 이상인 경우, 3f+1개의 노드들을 선택하여 다음 분산 합의를 위한 상기 합의체 후보 노드들로 결정하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f개 이하인 경우, 상기 합의체 후보 노드들을 업데이트 하지 않는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법
|
13 |
13
청구항 12에 있어서,상기 합의 노드들로 결정하는 단계는상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들을 수신한 경우, 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들에 포함된 서로 동일한 f+1개의 제1 트랜잭션을 기초로 상기 제2 트랜잭션을 결정하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법
|
14 |
14
청구항 12에 있어서,상기 준비 메시지를 송신하는 단계는상기 합의체 후보 노드들의 상기 제1 트랜잭션에 상응하는 제1 비트맵 정보 및 상기 합의 노드들을 결정한 결과를 포함하는 제2 비트맵 정보를 생성하고, 상기 제1 비트맵 정보, 상기 제2 비트맵 정보 및 상기 제2 트랜잭션을 포함하는 상기 준비 메시지를 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법
|
15 |
15
청구항 14에 있어서,상기 준비 메시지를 송신하는 단계는상기 합의 노드들이, 상기 제1 비트맵 정보와 상기 제2 트랜잭션의 대응 여부로부터 상기 준비 메시지의 유효성을 검사하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법
|
16 |
16
청구항 15에 있어서,상기 준비 메시지를 송신하는 단계는상기 합의체 후보 요청 메시지들에 포함된 공개키들 및 정족수 값들을 각각 통합하여 제1 통합 공개키 및 제1 통합 정족수 값을 생성하고, 상기 제1 통합 공개키 및 상기 제1 통합 정족수 값을 해시한 제1 해시 값을 더 포함하는 상기 준비 메시지를 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법
|
17 |
17
청구항 16에 있어서,상기 준비 메시지를 송신하는 단계는상기 합의 노드들이, 상기 기등록된 공개키들 및 상기 기등록된 정족수 값들을 각각 통합하여 제2 통합 공개키 및 제2 통합 정족수 값을 생성하고, 상기 제2 통합 공개키 및 상기 제2 통합 정족수 값을 해시한 제2 해시 값과 상기 제1 해시 값의 동일 여부를 비교하여 상기 준비 메시지의 유효성을 검사하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법
|
18 |
18
청구항 17에 있어서,상기 분산 합의를 완료하는 단계는상기 합의 노드들이 상기 제2 해시 값과 상기 제1 해시 값이 동일한 경우, 상기 제1 해시 값과 상기 합의 노드들에 기저장된 비밀 값들을 포함하는 서명 값들을 생성하고, 상기 준비 메시지에 상기 서명 값들을 포함시키고, 상기 서명 값들에 기초한 상기 전자 서명들을 추가하여 상기 동의 메시지들을 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법
|
19 |
19
청구항 18에 있어서,상기 분산 합의를 완료하는 단계는상기 동의 메시지들에 포함된 상기 서명 값들, 상기 제1 통합 공개키의 공개키들 및 상기 제1 통합 정족수 값의 정족수 값들을 각각 트리 형태의 다중 서명의 서명 값, 상기 다중 서명의 공개키 및 상기 다중 서명의 정족수 값으로 통합하여 상기 전자 서명들로부터 상기 다중 서명을 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법
|
20 |
20
청구항 19에 있어서,상기 분산 합의를 완료하는 단계는상기 다중 서명의 검증 결과가 참인 경우, 상기 제2 트랜잭션 및 상기 다중 서명을 포함하는 상기 응답 메시지를 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법
|