티스토리 뷰
블록체인은 대표적으로 3가지 기술을 알아야 한다.
⊙ P2P 네트워크
⊙ 합의 알고리즘
⊙ 전자 서명과 해시
오늘은 합의 알고리즘에 대해 기술할 것이다.
합의 알고리즘이 무엇일까?
우리는 무엇을 할 때 일정한 규칙, 방법에 따라 움직인다.
티비를 보고 싶으면 티비 수신료를 낼 것이고 콘센트에 코드를 꽃고 전원을 키는 등등 할 것이다.
규칙, 방법 등이 생겨나기 까지 수많은 대화 즉, 합의에 도달했을 것이다.
국가 대 국가, 개인 대 개인, 기업 대 기업 등등 서로간의 합의를 통해 일을 진행해간다.
블록체인 시스템도 마찬가지로 P2P 네트워크에서 여러 문제점을 풀기 위한 방법으로 참가자들이 하나의 결과에 대한 합의를 얻기 위해 이 알고리즘을 적용하게 되었다.
그런데 블록체인이 왜 최근에서야 화두가 되었는가?
블록체인이 세상에 본격적으로 알려지는 건 2009년 전, 후 로 나눌 수 있다.
현재의 블록체인이 화두가 되기 전까지 블록체인은 고질적인 문제를 가지고 있었다.
바로 '비잔티움 장군의 문제'
(간략하게 설명하자면, 비잔티움제국의 장군들 여러명이 동서남북 각 위치에서 적군의 중심을 침략하기로 계획하는 과정에 누군가는 스파이가 있을 수 있어서 계획을 망치게 되는 것들)
블록체인은 P2P 네트워크라는 시스템 상에서 누군가의 중개자 없이 '정당성' 을 어떻게 이끌어 낼 수 있는가가 큰 관심이었다.
이 문제를 해결할 수 있게된 배경은 비트코인 창시자인 사토시 나카모토가 개발자포럼에 쓴 몇 페이지 안되는 논문에서 비잔티움 장군 문제 해결을 제시하는 방법으로 지금의 블록체인이 활성화 되었다.
(사토시는 네트워크에서 블록의 정당성에 대한 승인자간의 합의 형성을 얻어내기 위한 구조인 합의 알고리즘에 대해 소개하였다.)
블록체인의 비잔티움 문제 속에는 또한 P2P 네트워크에서 빈번한 정보의 지연과 미도달이라는 사태를 피할 수 없었다.
따라서 데이터를 변조할 의도가 없다 해도 이중 송신에 따른 처리 중복이나 잘못된 정보에 의한 오작동 등의 위험이 있기 때문에 정확한 정보를 공유하기 어렵다.
이러한 문제점들을 해결하는 것이 합의 알고리즘의 목표였다.
사토시가 비트코인을 세상에 선보이면서 초기에는 블록체인이 PoW 라는 합의 알고리즘을 적용하여 처음으로 P2P 네트워크를 통해 누구나 참여 가능한 전자 화폐 시스템을 실현하였다.
하지만 현재로서는 지금까지도 비트코인 기술적으로 연구해야 할 부분이 많고 PoW 이외의 합의 알고리즘을 채택하고 있는 블록체인 기반 기술들이 많이 개발되어 사용 목적에 따라 개발되고 있는게 현재 상황이다.
합의 알고리즘의 종류에 대한 구체적인 설명은 코인 공부 시, 그 코인이 채택한 합의 알고리즘에 대한 적용상태, 문제점, 보완할 점 등등 자세히 공부하고 기술해 보려고 한다.
아래는 책에서 본 표를 참고하였다.
|
PoW (Proof of Work) |
PoS (Proof of Stake) |
PBFT (Practical Byzantine Fault Tolerance) |
대응하는 장애 모델 |
Byzantine Fault 대응 |
Byzantine Fault 대응 |
Byzantine Fault 대응 |
통신 비용 |
참가 서버 전체가 아닌 로컬 통신만으로 문제 없음 (로컬 통신은 비용이 낮음) |
참가 서버 전체가 아닌 로컬 통신만으로 문제 없음 (로컬 통신은 비용이 낮음) |
각 서버간 통신을 수행하기 때문에 비용은 높음 |
결함 허용 대수 |
1대라도 남아있다면 문제 없음 |
1대라도 남아있다면 문제 없음 |
1/3 미만까지 보증 (정확히 1/3인 경우 대응 불가) |
다수결 대신이 되는 것 |
CPU 계산량 |
보유한 자산 크기 |
다수결 |
CPU 연산 비용 |
높음 |
중간 정도 PoW보다 낮지만 나름대로의 해시 계산 수행 |
낮음 |
권한의 분산 |
전기세가 낮은 지역에 집중될 가능성이 있음 |
일반적으로 화폐 보유는 집중될 가능성이 높음 |
참가 서버 모두가 평등 |
참가 서버의 조건 |
어떤 서버도 참가 가능 |
어떤 서버도 참가 가능 |
신뢰된 서버만 참가 |
비밀 보호를 위한 인증 |
참가시 준비한 공개 암호화 키를 사용 |
참가시 준비한 공개 암호화 키를 사용 |
사전에 서로 신뢰한 공개 암호화 키를 사용 |
※ 블록체인 구조와 이론 예제로 배우는 핀테크 핵심 기술 / 아카하네 요시하루, 아이케이 마나부 지음 양현 옮김 참조