요약: 동일한 버전의 트랜잭션 이력을 선택하기 위한 합의
'블록체인 작동원리 25단계'는 논리적 흐름에 따라 작성된 시리즈물이다. 기반 지식이 있다면 필요한 내용만 골라 보는 것도 가능하겠지만, 생소하다면 처음부터 순서대로 읽는 것을 추천한다.
- 처음 글 : #0. 누구나 이해할 수 있는 블록체인 작동원리 25단계
- 이전 글 : #18. 누구나 이해할 수 있는 블록체인 작동원리 25단계
※ 셋째 마당 (8~21단계) 키워드: 블록체인의 주요 개념과 기술
[19단계] 컴퓨터들도 라인을 잘 타야 살아남는다. 노드들이 갈림길에서 일관되게 선택하는 방법
■ 새 블록을 네트워크에 전송하는 데 걸린 시간의 지연으로 인해, 또는 거의 동시에 새 블록을 생성한 노드들로 인해 블록체인-데이터-구조는 트리나 선인장처럼 자란다. 공통 몸통으로부터 뻗어나간 줄기들은 트랜잭션 이력의 버전이 서로 충돌하는 것을 나타낸다.
■ 동일한 버전의 트랜잭션 이력을 선택하는 것은 집단적 의사결정 문제이다.
■ 분산 합의는 순수 P2P 시스템에서 집단적 의사결정 문제에 대한 구성원들의 동의이다.
■ 블록체인의 집단적 의사결정 문제는 다음과 같은 성질로 특징지어진다.
- 모든 노드는 네트워크, 블록체인-데이터-구조의 개별적 복사본을 유지하는 노드, 노드의 행동을 통제하는 블록체인-알고리즘으로 구성된 동일한 환경에서 작동한다.
- 의사결정 문제는 모든 노드가 동일한 트랜잭션 이력을 선택하는 것이다.
- 모든 노드는 블록체인-데이터-구조에 유효한 새 블록을 추가함으로써 보상을 얻어 개인적 수입을 최대화하려 노력한다.
- 목표 달성을 위해 각 노드는 새 블록을 피어들에게 전달해 검사받고 인정받으려 한다. 그 결과 각 노드는 환경에 개별적 흔적을 남기게 되고 이것이 모여 블록체인-데이터-구조를 유지한다.
■ 모든 노드는 트랜잭션 데이터 이력 선정을 위해 동일한 기준을 사용한다.
■ 가장-긴-체인-기준은 각 노드가 트리-모양 블록체인-데이터-구조 중 가장 많은 블록을 가진 경로를 개별적으로 선택하는 것이다.
■ 가장-무거운-체인-기준[i]은 각 노드가 트리-모양 블록체인-데이터-구조 중 난이도 합산이 가장 큰 경로를 개별적으로 선택하는 것이다.
■ 트리-모양 블록체인-데이터-구조의 특정 경로를 선정하면 다음과 같은 결과가 만들어진다.
- 고아 블록: 권위 체인이 선정되면, 트리-모양 데이터 구조 내 권위 체인 경로에 속하지 않은 블록은 모두 버려지게 되는데, 이를 고아 블록이라 부른다.
- 보상 회수: 고아 블록 생성 시 받았던 보상 회수
- 소유권 명확화: 권위 체인에 속한 트랜잭션들만 실제로 발생한 것으로 인정받아 소유권 명확화에 사용
- 트랜잭션 재처리: 고아 블록에 소속돼 버려진 트랜잭션 데이터는 다시 노드의 수신함에 넣어져 재처리된 후 블록체인-데이터-구조에 다시 추가되어 ‘선택된 트랜잭션 이력’의 일부가 될 기회를 한 번 더 부여받는다.
- 공통 몸통의 성장: 트랜잭션 이력의 상충되는 버전은 덜 모호한 공통 몸통으로부터 뻗어 나온 것이기 때문에 깊이 들여다볼수록 해당 블록이 가장 긴 체인의 일부인지 아닌지가 더 명확해진다.
- 궁극적 일관성: 시간이 지나 더 많은 블록이 추가될수록 권위 체인에 포함될 가능성이 높아지는 현상
- 조작에 대한 견고성: 새로운 권위 경로를 만들려면 대다수가 유지하고 있는 경로를 따라잡고 앞질러야 한다. 그러니 대다수의 계산 자원을 모두 합친 것보다 월등한 계산 자원을 가지고 있지 않는 한 불가능하다.
■ 블록이 권위 체인에 깊숙이 들어가 있을수록 다음과 같은 사실이 성립된다.
- 더 오래전에 추가되었다.
- 블록체인-데이터-구조에 포함된 후 더 많은 시간이 흘렀다.
- 후속 블록 추가에 더 많은 공통된 노력이 소모되었다.
- 가장 긴 체인에 속한 블록들의 변화에 덜 영향받는다.
- 버려질 가능성이 낮다.
- 시스템의 다른 노드에 의해 더 많이 인정되었다.
- 노드의 공통 이력에 남을 가능성이 더 높다.
■ 시간이 지나 더 많은 블록이 추가될수록 권위 체인에 포함될 가능성이 더 높아지는 현상을 ‘궁극적 일관성’이라 부른다.
■ 51% 공격[ii]은 대다수의 동의[iii]를 얻거나 통제하려는 시도를 통해 권위 체인의 블록 일부를 고아 블록으로 만들고, 트랜잭션 데이터의 새로운 권위 체인을 만들어 공격자에게 혜택이 돌아가도록 조작된 소유권 정보를 배부하려고 하는 것을 의미한다.
■ 51% 공격은 다음과 같은 특징을 가지고 있다.
- 경제적 측면: 집단적 트랜잭션 이력을 변경하여 소유권 할당을 바꿈
- 의사결정 측면: 원하는 결과를 얻기 위해 대다수의 표를 모음
- 기술적 측면: 시스템 무결성을 약화시킴
- 구조적 측면: 숨겨진 중앙 통제 요소를 일정 시간 이상 생성시켜 시스템의 상태를 변경
[i] 가장-무거운-체인-기준은 가장-긴-체인-기준을 포함하는 개념이다. 무게는 각 블록별로 가중치를 따로 계산하는 개념인데, 이 가중치를 전부 동일하게 설정한 특수 형태가 가장-긴-체인-기준이 되기 때문이다. 따라서 가장-무거운-체인-기준이 가장-긴-체인-기준을 비롯한 다른 모든 경우를 포함하는 것으로 정리할 수 있다.
[ii] 블록체인-데이터-구조에서 궁극적 합의는 다수결에 의해 이루어지는 것이 아니라, 가장 강력한 해시 파워를 가진 단 하나의 노드에 의해 결정된다. 51% 공격도 51%의 투표를 받았다는 것이 아니라 특정 노드가 51%의 힘을 가졌다는 의미이다.
※ 함께 읽으면 좋은 글
[독서 기록] 최고의 블록체인 입문서 (블록체인 무엇인가?)
'블록체인' 카테고리의 다른 글
#21. 누구나 이해할 수 있는 블록체인 작동원리 25단계 (1) | 2022.09.22 |
---|---|
#20. 누구나 이해할 수 있는 블록체인 작동원리 25단계 (3) | 2022.09.21 |
#18. 누구나 이해할 수 있는 블록체인 작동원리 25단계 (1) | 2022.09.15 |
#17. 누구나 이해할 수 있는 블록체인 작동원리 25단계 (0) | 2022.09.11 |
#16. 누구나 이해할 수 있는 블록체인 작동원리 25단계 (1) | 2022.09.10 |
댓글