6 분 소요

트릴레마 솔루션


알트 코인

알트 코인은 대안(Alternative)과 화폐(Coin)의 합성어로 비트코인을 개량한 암호화폐 전체를 의미한다.

비트코인 캐시


img1

비트코인 캐시는 비트코인의 트랜잭션 속도를 개선하기 위해 블록의 크기를 2~8배 확장하였다. 이는 기존의 비트코인 탈중앙화 구조를 유지하고, 10분이라는 블록 생성 주기를 조정하지 않은 상태에서 트랜잭션 속도를 올릴 수 있는 효율적인 방법이다.

하지만, 기존 구조를 변경하지 않아 여전히 노드의 수가 증가하고 더 많은 트랜잭션이 나타나면 확장성 효과는 제한적이다. 또한, PoW 특성상, 컴퓨팅 자원을 많이 확보하면 자원의 중앙화가 이루어지면서, 이것이 전체 블록체인 채굴 컴퓨팅 파워의 51%이상 가지게 되면, 모든 정보 소유권을 가지고 악의적인 공격행위와 해킹을 시도하면 모든 정보를 임의로 변경할 수 있게 된다.(실제 컴퓨팅 자원의 농장화, Mining Farm이 결성되었으며, 이는 블록체인의 탈중앙화 요소를 저해한다.)

오프체인

라이트닝 네트워크


라이트닝 네트워크는 양방향 채널이라는 아이디어를 기반으로 매우 저렴한 비용으로 거의 즉각적인 거래가 가능한 비트코인 레이어 2 솔루션이다. 라이트닝 네트워크는 비트코인의 트랜잭션 속도를 해결하기 위해, 개별 거래를 별도의 채널(Off-Chain)에서 처리한 후, 그 결과만 블록체인에 기록하는 방식으로 작동하는 알고리즘이다.

그러나 블록체인 기술이 아니며 채널의 중앙화로 검증에 대한 탈중앙화 문제가 여전히 존재한다. 이를 해결하기 위해 비트코인뿐만 아니라 퀀덤 등 라이트닝 네트워크에 참여하고 있다.

플랫폼

카르다노


카르다노는 3세대 블록체인으로 지분 증명 메인넷 중 가장 탈중앙화가 잘 이루어진 메인넷으로, 블록체인 트릴레마의 해결을 위해 거래와 연산을 구분하는 2개의 레이어를 사용해 스마트 컨트랙트 사용에 따른 트랜잭션 체증을 방지하였다. 또한, 우로보로스 지분증명(OPoS)이라는 합의 알고리즘을 사용해 지분 증명의 예상되는 공격들을 사전에 방지하여 안정성을 높였다.

하지만, 카르다노의 UTXO기반 eUTXO모델에서 자금을 주고받을 때 미사용 거래 금액으로 저장되고, 수행 시 각각 한 번만 사용할 수 있기 때문에 한 블록당 한 사람만 상호작용이 가능하여, 이와 같은 동시성 이슈로 인햇 스마트 컨트랙트 도입 시의 확장성 문제가 대두되고 있다.

알고랜드


알고랜드는 블록체인의 트릴레마를 해결하기 위한 플랫폼을 위한 암호화폐로, 순수지분증명(PPoS) 합의 알고리즘을 통해 블록체인 트릴레마를 해결하고자했다. 순수지분증명(PPoS)는 두 단계로 진행되는 데, 다음과 같다.

  1. 알고랜드 네트워크의 블록 생성자가 토큰 보유자 중에서 무작위로 한 명을 선정
  2. 다시 무작위로 뽑힌 1천명이 1단계에서 선정된 위원이 생성한 블록 검증

위와 같이 알고랜드는 임의성을 통해 탈중앙화 수준을 유지하면서 확장성을 달성하고자 하였고 거래의 유용성과 효율성을 위해 다음과 같은 블록 생성 솔루션을 제안했다.

  • 순수지분증명(Pure Proof of Stake) : 모든 토큰에 할당된 권리는 같으며, 누구나 블록 생성에 참여할 수 있다.
  • 즉각적인 제시와 합의(Immediate Propose & Agree) : 한 명의 사용자만이 블록을 생성하는 것이 아닌 전체가 블록을 선택하고 생성한다. 이 과정은 빠르고 정교하게 발생한다.
  • 진화하는 합의(Consensual Evolvability) : 알고랜드의 합의는 99.9% 바로 이루어지며, 시스템을 개선해야 할 때도 공정한 과정을 통해 진행되며, 토큰 알고리즘과 통화 정책 또한 마찬가지이다.

이러한 방식은 임의성이 중점이며, 임의성은 다음 검증자에 대한 정보가 정해지지 않기 때문에 보안성을 보장한다.

그러나 임의성, 즉 무작위 선택을 보장하기 위해 신뢰할 수 있는 시스템이나 주체가 있는지에 대한 여부가 유일하게 문제가 된다.

트릴레마 고려사항(합의 알고리즘)


Safety와 Liveness

  • Safety : 노드 간 합의가 발생했다면, 어느 노드가 접근하든 그 값은 동일해야 함, 즉 잘못된 합의가 발생하면 안됨 : 문제없는 노드 사이에서는 잘못된 합의가 이루어지지 않는다.
  • Liveness : 노드는 네트워크 내에서 반드시 합의를 이루어내야 함 : 문제 없는 노드들은 반드시 합의한다.

-> Fail-Stop Failure가 하나만 있어도 둘 다 만족하는 알고리즘이 존재할 수 없다. 이를 FLP Impossibility 혹은 FLP Theorem이라고 하며, 따라서 합의 알고리즘은 Safety와 Liveness 중 무엇을 선택할 지 문제이다.

Liveness over Safety


  • 잘못된 합의가 이루어질 수 있지만 어떻게든 합의는 한다.
    • Ex. 블록체인 PoW: 51% 발생 가능성. Safety는 보장하지 않음
      • 지금 있는 체인보다 더 긴 체인을 만들 해시 파워만 있으면 언제든지 현재 합의된 블록을 다른 블록을 대체 가능 -> Finality(완결성) 보장 X

Safety over Liveness


  • 잘못된 가능성이 있다면 블록을 만들지 않는다.
    • Ex. 코스모스 텐더민트 : 메시지가 시간 안에 도착하지 않으면 블록 생성 안 함
      • BFT의 경우, 언젠가 합의 될 것을 보장하지만, 최악의 경우 몇 번의 라운드 동안 새 블록이 생성되지 않는 경우도 발생

BFT

BFT란 비잔티운 장애 허용으로, 분산 네트워크 환경에서 악의적인 노드가 존재할 때 이를 어떻게 극복하는가에 대한 해결 방안이다.

처리 절차


img2

  1. 클라이언트가 모든 노드에 요청을 브로드캐스트한다.
  2. 리더가 처음 순차적으로 명령을 다른 노드에 전달한다.
  3. 각 노드는 브로드캐스트된 명령을 받게 되면 리더를 포함한 모든 노드에 회신한다.
  4. 각 노드는 전달된 명령을 일정 수 이상(2n)이 수신하면 리더를 포함한 모든 노드에 수신한 신호를 재전송한다.
  5. 각 노드는 수신된 명령을 일정 수 이상(2n) 수신하면 명령을 실행하고 블록을 등록해 Client에 Replay된 메시지를 반환한다.

이러한 처리 절차는 다수결로 의사 결정한 뒤 블록을 만들기 때문에 분기가 발생하지 않으며, 한 번 확정된 블록은 변경되지 않기 때문에 완결성을 확보한다. 또한 PoW와 같이 조건을 만족시킬 때까지 계산을 반복하지 않아도 되기 때문에 빠르고 부정 사용을 하고자 해도 과반수를 얻어야 하며 만약 리더가 거짓말을 한다해도 모든 참가자가 리더의 움직임을 감시해 거짓말이라고 판단한다면 다수결로 리더 교체를 신청할 수 있기에 장애에 매우 안전하다.

하지만 언제나 참가자 전원과 의사소통해야 하므로 참가자가 증가하면 통신량이 증가하고 처리량이 저하된다.

PBFT

PBFT는 분산시스템이 약속된 행동을 하지 않는 비잔틴 노드가 존재할 수 잇는 비동기 시스템일 때, 해당 분산시스템에 참여한 모든 노드가 성공적으로 합의를 이룰 수 있도록 개발된 합의 알고리즘이다.

처리 절차


img3

  1. 리더가 클라이언트의 요청을 수집하여 정렬하고 실행 결과와 함께 다른 노드들에 전파한다.
  2. 리더의 메시지를 받은 노드들은 받은 메시지를 다시 한 번 나머지 노드에게 전파한다.
  3. 모든 노드는 자신이 다른 노드에서 가장 많이 받은 같은 메시지(정족수 이상의)가 무엇인지 다른 노드들에게 전파한다.
  4. 모든 노드는 정족수 이상이 동의한 합의를 이룬 같은 데이터를 가진다.

이러한 처리 절차는 다음 블록 합의가 이루어진다면 제안된 합의 내용이 확정되어서 한 번 확인으로 거래가 완결되므로, 트랜잭션 완결성과 빠른 거래 확정이 가능하고, PoW가 아닌 PoS를 기본으로 하기 때문에 에너지 사용량 및 거래 비용이 적다.

그러나 여전히 합의 그룹 크기가 커짐에 따라 합의 속도가 느려지는 문제가 있다.

Tendermint

Tendermint란 PBFT에 DPoS개념을 추가하여 블록체인에 적합한 알고리즘을 개발한 것으로, PBFT는 하나의 노드가 하나의 투표를 하지만, Tendermint는 지분을 기반으로 투표하게 된다. 이러한 방식은 이중 투표와 같은 악의적인 행위를 하면 지분을 빼앗는 방법으로 기존의 블록체인 네트워크 공격 노드에 처벌하지 않던 문제를 해결하고, 블록을 노드들에게 전파하는 방식을 단순화하고 노드 수를 늘릴 수 있게 되었으며, 블록제안자를 수시로 교체할 수 있게 하여 안정성을 높였다.

DBFT

DBFT는 지분을 기반으로 대표자를 선출하여 BFT를 도입한 것인데, 빠른 처리 속도와 포크가 일어나지 않고 완료성이 좋다는 장점을 가지지만, 특정 노드에 권력이 집중되고 노드들 간의 단합 위험이 있다는 단점이 있다.

합의 알고리즘에서 주요 고려사항

  • Finality Problem(완결성 문제)
  • 51% Attack/BFT (51% 공격과 비잔틴 결함)
  • Transaction Cost(트랜잭션 수수료)

합의 알고리즘 종류와 장단점


체인 공개유형 합의 방식 설명 장점 단점 사용 코인
퍼블릭
비허가형
공개형
작업 증명
PoW
각 노드의 연산 능력을 증명하여 블록 생성 높은 컴퓨팅 파워를 가진 노드가 블록을 생성할 확률이 높음, 오랫동안 사용되며, 안전성이 검증되었지만, 단점도 많이 도출 오랫동안 검증됨 51% Attack 완결성 문제
느린 트랜잭션
에너지 낭비
비트코인
  지분 증명
PoS
소유 지분 양에 비례하여 블록 생성 권한을 높은 확률로 부여받음, 많은 지분을 가진 노드가 블록을 생성할 확률이 높음, 이론적으로 우수하지만,실제 대규모 환경에서검증 사례 부족 51% Attack 내성
빠른 트랜잭션
에너지 낭비 적음
완결성 문제
검증 부족
퀀텀, 네오, 스트라디스
  위임 지분 증명
DPoS
일부 위임된 Validator끼리 PoS 수행, 트랜잭션 속도가 더 빠름, 신뢰도는 Validator의 신뢰도에 종속 빠른 트랜잭션
에너지 낭비 적음
완전성 문제
검증 부족
탈중앙성 부족
보안 취약
스팀, 이오스. 아크, 라이즈
  경과 시간 증명
PoET
경쟁적 연산으로 낭비되는 에너지를 줄이면서 작업 증명과 유사 효과, 인텔 SGX를 기반으로 블록을 생성하는 리더를 랜덤으로 선정 검증된 방법의 개선
에너지 낭비 적음
특정 HW 종속 쏘투스
프라이빗
허가형
컨소시엄
PBFT 참가자 1명이 프라이머리(리더)기 되어 모든 참가자에게 요청 송신, 그 요청에 대한 결과를 집계한 뒤 다수의 값을 사용해 블록을 확정, 각 노드는 브로드캐스트된 명령을 받게 되면 모든 노드에 회신 각 노드는 명령을 일정 수 이상 수신하면 명령을 실행하고 블록을 등록 완결성 문제 해결
빠른 트랜잭션
참여자 사전 파악 필요
참가자 증가시 성능 하락
페브릭
  권한 증명
PoA
트랜잭션 및 블록의 Validator라고 승인된 계정에 의해 유효성이검사, Vaildator의 권리를 얻으므로 그들이얻은 지위를 유지하고자함, 자신의 신원에 부정적 평판이 생기길원치 않도록 노력할거라 가정      
  PAXOS 트랜잭션 및 블록의 Validator라고 승인된 계정에 의해 유효성 검사, Validator가 될수 있는 권리를 얻으므로 그들이 얻은 지위를 유지하고자 함,자신의 신원에 부정적 평판이 생기길원치 않도록 노력할거라 가정      
  RAFT 리더를 선정한 후 시스템의 모든 변화는 리더를 통해 신뢰된 네트워크에서만 사용   리더의 조작 가능 BTF 보장하지 않음  
  Sieve IBM에서 고안한 PBFT 확장 알고리즘 실행 결과 전송과 집계 결과 전송으로 흐름이나뉜다.      

본 포스팅은 코드스테이츠 BEB 과정을 수강하며 작성한 글입니다.