"합의"의 두 판 사이의 차이
22번째 줄: | 22번째 줄: | ||
===성능증명=== | ===성능증명=== | ||
− | 성능증명 합의 알고리즘은 [[탈중앙화]]와 네트워크 성능을 모두 보장하기 위해 설계되었다. 각 [[노드]]의 성능 기여도를 기반으로 하며, 이 과정에서 여러가지 변수들이 계산에 고려된다. 이 방식에서는 후보자 노드의 기존 풀에서 HP노드를 10분마다 새로 생성한다. 성능증명 방식은 아우터 레이어(Outer Layer)와 이너 레이어(Inner Layer) 두 가지 레이어를 포함하고 있는데, 아우터 레이어는 서버 성능, 네트워크 대역폭, HP노드의 수행 횟수, 지리적 위치 등 다양한 변수를 고려하여 약 10분 간격의 HP노드 로테이션을 통해 공정하고 안정적으로 HP노드를 선발한다. 이너레이어는 어떤 HP노드가 블록을 생성하는지 결정한다.<ref>"[https://www.hpb.io/static/file/whitepaper/HPB_whitepaper_kor_韩语_한국어.pdf High Performance Blockchain Whitepaper]", ''hpb.io''</ref> | + | 성능증명 합의 알고리즘은 [[탈중앙화]]와 네트워크 성능을 모두 보장하기 위해 설계되었다. 각 [[노드]]의 성능 기여도를 기반으로 하며, 이 과정에서 여러가지 변수들이 계산에 고려된다. 이 방식에서는 후보자 노드의 기존 풀에서 HP노드를 10분마다 새로 생성한다. 성능증명 방식은 아우터 레이어(Outer Layer)와 이너 레이어(Inner Layer) 두 가지 레이어를 포함하고 있는데, 아우터 레이어는 서버 성능, 네트워크 대역폭, HP노드의 수행 횟수, 지리적 위치 등 다양한 변수를 고려하여 약 10분 간격의 HP노드 로테이션을 통해 공정하고 안정적으로 HP노드를 선발한다. 이너레이어는 어떤 HP노드가 블록을 생성하는지 결정한다.<ref>"[https://www.hpb.io/static/file/whitepaper/HPB_whitepaper_kor_韩语_한국어.pdf High Performance Blockchain Whitepaper]", ''hpb.io''</ref>{{자세히|성능증명}} |
{{각주}} | {{각주}} |
2019년 9월 11일 (수) 16:02 판
합의(agreement, 合意)란 둘 이상의 인원이 특정 문제에 대해 서로 의견이 일치하는 것을 말한다.
개요
블록체인은 탈중앙화를 추구하며 전 세계의 다양한 참여자가 P2P(Peer To Peer) 네트워크 방식으로 생태계를 유지하고 있기 때문에 그 무엇보다 참여자의 의견 일치(합의)가 중요하다. 합의 알고리즘은 블록체인 생태계를 구성하는데 꼭 필요한 요소이며, 다양한 블록체인 프로젝트가 다양한 합의 알고리즘을 통해 운영되고 있다.[1] 합의 알고리즘은 블록체인 네트워크에 합의를 달성하는 매커니즘이라 정의할 수 있다. 탈중앙화된 블록체인은 분산화된 시스템으로 구성되어 있으며, 중앙 권위체에 의존하지 않기에, 분산화된 노드는 트랜잭션의 유효성에 합의가 필요하다. 이곳이 바로 합의 알고리즘이 시작되는 지점이다. 합의 알고리즘은 프로토콜 규칙이 준수되고 있는지 확인하며, 모든 트랜잭션이 신뢰할 수 있는 방식으로 진행되는 것을 보장해, 코인이 한번만 사용되도록 한다.[2]
합의 알고리즘
몇 가지 유형의 합의 알고리즘이 있다. 가장 일반적인 것은 작업증명(Proof of Work; PoW)과 지분증명(Proof of Stake; PoS)이다. 보안성과 기능성, 확장성의 균형을 고려할 때, 각기 장단점을 갖고 있다. 또한, 합의 알고리즘은 암호 화폐 네트워크의 무결성과 보안을 유지하기 위해 중요하다. 합의 알고리즘은 분산화된 노드들이 어떤 버전의 블록체인이 진짜 버전인지 합의할 수 있게 한다. 디지털 경제 시스템이 제대로 작동하기 위해서는, 현 상태의 블록체인에 합의하는 것이 필수적이다. 작업증명 합의 알고리즘은 비잔티움 장군 문제를 해결하는 최고의 해결책으로 간주되며, 이는 비트코인을 비잔티움 장애 허용 시스템으로 탄생시켰다. 이는 비트코인 블록체인이 51% 공격(또는 다수의 공격)과 같은 공격에 매우 강력함을 뜻한다. 네트워크가 탈중앙화되어 있을 뿐만 아니라, 작업증명 알고리즘을 사용하기 때문이다. 마이닝 과정에 드는 높은 비용은 마이너들이 네트워크를 방해하기 위해 자신들의 자원을 투자하는 것을 무척 어렵게 한다.[2] 합의 알고리즘에 대해 자세히 보기
작업증명
작업증명(Proof of Work; PoW)은 처음으로 만들어진 합의 알고리즘이다. 이는 비트코인과 많은 암호 화폐에 적용되었으며, 작업증명 알고리즘은 마이닝 과정에 필수적인 부분이다. 작업증명 마이닝은 수많은 해싱 시도를 포함하므로, 더 많은 연산 능력을 가질 수록 초당 더 많은 시도를 할 수 있다. 즉, 높은 해시 레이트를 가진 마이너일수록 다음 블록(블록 해시)에 대한 유효한 해결책을 찾을 가능성이 더 높다. 작업증명 합의 알고리즘은 분산화된 네트워크 노드가 합의를 달성할 경우에만 새로운 블록의 트랜잭션을 검증하고 이를 블록체인에 추가할 수 있도록 하며, 마이너에 의해 제공된 블록 해시가 유효한 작업 증명이라는 점에 동의하게 된다.[2] 작업증명에 대해 자세히 보기
지분증명
지분증명(Proof of Stake; PoS) 합의 알고리즘은 2011년, 작업증명의 대안으로 개발되었다. 지분증명은 작업증명과 유사한 목표를 공유하지만, 몇 가지 근본적인 차이와 특이점이 있다. 간단히 말해서 지분증명 합의 알고리즘은 작업증명의 마이닝 과정을 참여자의 스테이크에 따라 블록을 검증하는 것으로 대체한다. 각 블록의 유효성 검사자는 할당된 연산 능력이 아닌 암호 화폐에 대한 투자에 의해 결정된다. 각 지분증명 시스템은 서로 다른 방식으로 알고리즘을 구현할 수 있지만, 일반적으로 블록체인은 노드의 부유한 정도와 코인 나이(얼마나 오래 코인이 묶여 있었는지 혹은 스테이크 되었는지)를 고려하는 임의 선출 방식과 무작위 요소를 통해 보안을 확보한다. 이더리움 블록체인은 현재 작업증명 알고리즘에 기반하고 있지만, 네트워크 확장성을 높이기 위해 작업증명을 지분증명으로 교체하는 캐스터(Casper) 프로토콜이 출시될 것이다.[2] 지분증명에 대해 자세히 보기
위임지분증명
위임지분증명(Delegated Proof of Stake; DPoS)은 작업증명 방식의 대안으로 야심차게 등장한 지분증명 방식 또한 완전하지 못하다는 점이 드러나며, 이를 해결할 수 있는 대안으로서 EOS의 창시자 '댄 라리머'에 의해 제안 된 합의 방식이다. 이는 위임지분증명 방식으로, 지분증명과의 차이점은 권한을 소수의 대표자에게 이양한다는 것이다. 지분증명이 직접 민주주의라면 위임지분증명은 간접민주주의이다. 지분 보유자들은 지분에 비례한 투표권을 행사하여 자신들을 대신하여 블록 생성과 검증, 네트워크 유지, 합의에 대한 권한을 소수에게 위임한다. 현재 가장 성공적인 사례인 '스팀잇(Steemit)' 은 이러한 위임지분증명 방식을 채택해 21명의 증인(대표자)를 통해 위임지분증명 방식과 퍼블릭 블록체인의 가능성을 증명해주고 있다.
위임지분증명의 가장 큰 장점은 투표에 의해 선출 된 소수의 대표자들이 전체를 대신하여 블록을 생성한다는 점이다. 그 때문에 상대적으로 빠른 합의 속도와 비용이 적게 소요된다는 장점이 있다. 이와 동시에 전체 네트워크 관리와 프로젝트의 발전에 대해 아무런 관심이 없는 일반 이용자들은 오히려 편의성이 증가한다. 위임지분증명은 소수에 의한 효율성을 증명해냈지만, 위임지분증명을 비판하는 많은 사람들은 소수에 의해 관리되는 네트워크가 과연 탈중앙화가 맞는가에 대한 공통된 질문을 한다. 이 점에 대해서는 각자가 생각이 다르겠지만, 기술적으로만 따지자면 노드의 소수 집중적 구조는 기존 블록체인 기술이 가지고 있는 가장 큰 강점인 '탈중앙화로 인한 보안성'을 잃어버리는 단점이 있다. 모든 네트워크가 소수에 집중되면 그만큼 공격에 취약해 지는 것은 당연한 일인 뿐더러 자신의 정체를 투명하게 공개해야 하는 증인에 대한 공격은 더욱 그렇다.[3] 위임지분증명에 대해 자세히 보기
리스지분증명
리스지분증명(Leased Proof of Stake; LPoS)은 지분증명(PoS) 합의 알고리즘의 향상된 버전이다. 일반적으로 지분증명 알고리즘에서 일정량의 암호화폐을 보유한 노드는 다음 블록을 생성하여 블록체인에 추가할 수 있지만, 리스지분증명 방식에서는 사용자가 잔액을 다른 풀노드(full node)에 임대할 수 있다. 리스지분증명을 사용하면, 사용자는 자신이 소유한 암호화폐를 다른 풀노드 사용자에게 임대할 수 있다. 자신이 보유하고 있는 암호화폐를 풀마이닝 노드에게 임대(리스)해서 그들이 제공하는 추가 채굴에 대한 대가로 수입을 받는 것이다. 풀노드가 받는 금액이 클수록 해당 노드가 다음 블록의 생성자로 선택될 가능성이 높아진다. 풀노드가 다음 블록의 생성자로 선택되면, 임대자는 풀노드가 획득한 트랜잭션 수수료 총액 중 자신이 임대해준 코인 수량에 비례한 액수를 보상으로 받게 된다. 이를 위해서는 먼저 지갑을 생성하고 자신이 보유하고 있는 암호화폐를 라이트 클라이언트 지갑으로 송금하고, 그 상태에서 원하는 금액만큼 임대하면 된다.[4][5] 리스지분증명에 대해 자세히 보기
성능증명
성능증명 합의 알고리즘은 탈중앙화와 네트워크 성능을 모두 보장하기 위해 설계되었다. 각 노드의 성능 기여도를 기반으로 하며, 이 과정에서 여러가지 변수들이 계산에 고려된다. 이 방식에서는 후보자 노드의 기존 풀에서 HP노드를 10분마다 새로 생성한다. 성능증명 방식은 아우터 레이어(Outer Layer)와 이너 레이어(Inner Layer) 두 가지 레이어를 포함하고 있는데, 아우터 레이어는 서버 성능, 네트워크 대역폭, HP노드의 수행 횟수, 지리적 위치 등 다양한 변수를 고려하여 약 10분 간격의 HP노드 로테이션을 통해 공정하고 안정적으로 HP노드를 선발한다. 이너레이어는 어떤 HP노드가 블록을 생성하는지 결정한다.[6] 성능증명에 대해 자세히 보기
각주
- ↑ Seonho Shin, 〈블록체인 합의 알고리즘 이해하기〉, 《브런치》, 2019-04-09
- ↑ 2.0 2.1 2.2 2.3 〈블록체인 합의 알고리즘이란 무엇인가요?〉, 《바이낸스 아카데미》, 2019-11-09
- ↑ ROA Invention LAB, 〈합의 알고리즘의 발전과 진화방향〉, 《버티컬 플랫폼》, 2018-05-31
- ↑ "Leased Proof of Stake", Waves Platform
- ↑ Waves.docs, 〈Leased 지분 증명〉, 《GitBook》
- ↑ "High Performance Blockchain Whitepaper", hpb.io
참고자료
- Seonho Shin, 〈블록체인 합의 알고리즘 이해하기〉, 《브런치》, 2019-04-09
- 〈블록체인 합의 알고리즘이란 무엇인가요?〉, 《바이낸스 아카데미》, 2019-11-09
- ROA Invention LAB, 〈합의 알고리즘의 발전과 진화방향〉, 《버티컬 플랫폼》, 2018-05-31
- "Leased Proof of Stake", Waves Platform
- Waves.docs, 〈Leased 지분 증명〉, 《GitBook》
- "High Performance Blockchain Whitepaper", hpb.io
같이 보기