[BEB] Section3 : 트릴레마 / 합의 알고리즘 속성 Safety와 Liveness / Finality 개념 / BFT: 비잔틴 장군 문제

jsg_ko·2022년 1월 5일
0
post-custom-banner

트릴레마

트릴레마(Trilemma)는 3가지의 문제가 각각 서로 영향을 주어, 3가지 중 어느 것을 선택하면 다른 부분이 악화된다 는 의미를 가지고 있다. 블록체인 트릴레마(Blockchain Trilemma)는 확장성, 탈중앙화, 보안이라는 세 가지 요소를 모두 만족하는 일이 얼마나 어려운지를 말한다.

  • 확장성(scalability)
    확장성이란 사용자 수가 늘어나더라도, 유연하게 대응할 수 있는 정도를 나타냄. 확장성이 높으면 사용자수의 증가에 따라 거래건수가 늘어나더라도, 무리없이 전송 처리용량을 증가시킬 수 있다. TPS가 높다고도 표현한다.
    확장성을 쉽게 이해하자면, 블록체인 네트워크가 트랜잭션을 얼마나 빠르게 처리를 할 수 있는지를 나타낸다. TPS(Transaction Per Second)는 초당 트랜잭션 처리 속도이다. 비트코인과 이더리움은 확장성의 문제로 인해 TPS가 낮다. 트랜잭션 처리에 드는 수수료가 비싸지는 이유이기도 하다. 높은 TPS를 가진 네트워크는 사용자가 많아지더라도, 네트워크를 안정적으로 운용할 수 있다.

    💡 TPS만으로 확장성을 설명하기에는 부족함. 확장성이라는 개념을 TPS와 같다고 이해하기에는 무리가 있다.

    비트코인의 경우 확장성이 제한적이어서 비트코인 캐시로 하드포크 하였고, 이더리움 또한 확장성 문제로 이오스, 트론, 에이다 와 같은 3세대 알트코인들이 등장함.
    여러 Dapp이나 토큰이 해당 블록체인 프로토콜을 채택하는 일이 증가할수록 성능이 저조해지는 블록체인은, 확장성이 부족하다고 한다. 더 큰 확장성을 실현 할 수 있지만 탈중앙화나 보안에 대해 어려움을 겪을 수 있다. 많은 블록체인 플랫폼이 탈중앙화와 보안을 확립했지만, 동시에 확장성을 달성하는 것은 오늘날 탈중앙화 네트워크의 주요 과제로 남아 있다.

  • 탈중앙화(decentralization)
    탈중앙화된 블록체인은 는 기존의 서버-클라이언트 관계가 아니라, 개별 노드들의 자발적이고 자율적인 연결에 의해 P2P(Peer-to-Peer) 방식으로 동작한다.

    최적의 탈중앙화를 달성하면, 네트워크 처리량이 감소하는 경향이 있다. 더 많은 채굴 노드의 합의를 통해 네트워크를 보호하면, 트랜잭션 속도(TPS)가 떨어진다. 이런 문제점은 다양한 서비스에서 블록체인 네트워크를 채택하는 장애물이다.

  • 보안(security)
    블록체인 내의 데이터나 프로그램을 권한이 없는 이용자가 사용할 수 없도록 하는 제한하여, 외부의 공격으로부터 프로그램을 보호한다.

    비트코인과 이더리움에 대한 엄청난 관심은 바로, PoW와 PoS로 이어지는 해킹 불가능 영역이라는 점이다. 암호화폐의 합의 알고리즘은 비트코인, 이더리움과 같이 충분한 노드 수만 확보된다면 사실상 해킹이 불가능하다. (퍼블릭 블록체인의 보안은 네트워크 참여자로부터 나옴)

    이더리움 클래식, 비트코인 골드와 같은 코인이 해킹당한 이유는 알고리즘의 허점이라고 보기는 어렵고, 우후죽순 생겨나는 수많은 코인들로 인해, 노드 수가 부족하고 해시율이 낮아져서 생긴 해킹일 뿐이다.

세 요소의 상호작용과 한계

확장성은 유사한 보안 매개변수가 주어진다면 탈중앙화에 반비례한다.

  • 노드들은 거래를 결제하기 위해 거래의 유효성에 동의해야 한다. 시스템에 많은 수의 참가자가 있는 경우(트랜잭션이 많을수록) 계약에 시간이 걸릴 수 있고 네트워크 지연을 초래한다. 따라서 확장성을 높이기 위해서는 불가피하게 탈중앙화를 어느정도 낮춰야한다.

두 개의 작업 증명 블록체인이 동일한 수준의 탈중앙화를 가지고 있다고 가정하면, 보안 측면을 블록체인의 해시율(해시 레이트)라고 생각할 수 있다.

해시 레이트가 높을수록 확인시간이 짧아지고, 보안과 함께 확장성이 높아진다. 따라서 지속적인 탈중앙화에서는 확장성과 보안이 비례한다.

  • 이더리움의 트릴레마 고민
    최근 이더리움기반 De-Fi(탈중앙화 금융), NFT 애플리케이션이 떠오르면서, 이더리움 플랫폼 사용량이 급증했다. 이더리움 네트워크에서 트랜잭션을 처리하는 속도는 한계가 있는데, 수요 증가로 인해 트랜잭션이 몰리면서 일부 블록체인과의 상호 작용이 금지될 정도로 거래 수수료가 상승했다.
    이더리움에 대한 수수료 인상은 트릴레마의 한 예로서 이더리움이 보안이나 탈중앙화를 포기하지 않고는 확장되지 않았다고 볼 수 있다. 이더리움의 경우 탈중앙화와 보안에 중점을 두어 초당 트랜잭션 수(확장성)를 제한했고 결국 사용자는, 채굴자가 거래의 우선 순위를 사용자에게 할당하도록 하기 위해 더 높은 수수료를 지불하게 되었다.
    • 가스비를 많이 낼 수록 트랜잭션 처리의 우선순위가 높아짐.

이더리움 비트코인은 확장성보다 탈중앙 (TPS가 낮으니 수수료가 비쌈)
리플은 탈중앙화보다 보안과 확장성
EOS 탈중앙화와 보안을 희생하면서 확장성 선호

트릴레마 사례

확장성을 타협한 암호화폐

비트코인

비트코인은 높은 탈중앙화와 보안을 갖추고 있다 그러나 확장성의 한계로 인해 트릴레마를 극복하지 못했다.
비트코인은 암호화된 기술을 바탕으로 서버 역할을 하는 노드들이 네트워킹 되어 블록체인을 검증하기 때문에 쉽게 위변조가 (거의) 불가능하다. 하지만 시간이 흐름에 따라 비트코인은 점점 더 많은 사용자들을 확보하게 됐고, 자연스럽게 네트워크가 확장됨에 따라 트랜잭션 속도가 느려지는 확장성 문제가 확인됐다.

비트코인은 7 TPS 정도의 처리 속도를 가지고 있다. 3세대 블록체인이라고 불리는 이오스의 3,000 TPS에 비하면 현저히 낮은 수치이다. 이에 비트코인 개발자들은 확장성 문제를 해결하기 위해 라이트닝 네트워크(lightning network)와 같은 방법을 활용하여 속도를 높이고자 했다. 그러나 속도를 높이려고 노드의 수를 섣불리 줄이거나, 노드의 일부만 검증하는 방식을 적용하게 되면, 네트워크 전체의 보안이 떨어지는 문제에 봉착하게 되었다. 비트코인은 보안을 위해 과감히 트랜잭션 속도를 포기했으며, 아직까지도 확장성은 비트코인의 최대 단점으로 꼽히고 있다.

이더리움

이더리움 또한 확장성 문제에 부딪혔다. 현재 이더리움은 이더리움 플랫폼 위의 디앱상에서 이루어지는 거래를 1초에 약 20건밖에 처리할 수 없는 속도를 가지고 있었다. 따라서 이더리움의 창시자인 비탈릭 부테린은 확장성 문제의 해결을 추구하는 이더리움 2.0을 발표했다. 지분증명(PoS) 방식과 샤딩(Sharding) 기술을 바탕으로 실생활에서 이더리움을 사용 가능한 수준까지 끌어올릴 수 있다고 한다.

작업증명 방식은 불필요한 전력을 낭비하고, 컴퓨팅 파워를 소모해 비용이 많이 발생하는 단점이 있다. 이더리움은 지분증명 방식을 취해, 작업증명 방식의 단점을 극복하고, 빠른 블록 검증과 합의가 가능하도록 개선하려고 한다. 지분증명 방식은 해당 암호화폐를 보유하고 있으면, 그 지분에 따라 채굴 가능성이 올라갑니다. 따라서, 채굴과정에서 큰 비용이 필요하지 않고, 블록체인 네트워크 수수료가 낮아지는 효과를 기대할 수 있다.

이더리움 2.0의 또 다른 핵심기술은 샤딩이다. 샤딩은 이더리움의 트랜잭션 처리 속도를 높이기 위한 기술로, 지분증명의 검증자를 소규모 그룹(샤드)로 분리해 각 그룹이 서로 다른 이더리움 트랜잭션을 동시다발적으로 처리하는 방식이다. 비탈릭 부테린은 "이더리움 2.0은 지분증명 방식과 샤딩 등 블록체인 아키텍처를 새롭게 구성한 만큼 실시간으로 거래 처리를 할 수 있다."고 말했다. 이에 이더리움 2.0으로 블록체인 트릴레마를 해결할 수 있을지에 대한 사람들의 관심이 쏠리고 있다.

샤딩(Sharding)은 '조각내다' 라는 뜻을 가지고 있으며, 데이터베이스 저장기법 중 하나임. 하나의 데이터를 조각내고, 네트워크를 통해 분산하여 저장한다

탈중앙화를 타협한 암호화폐

이오스(EOS)

이오스는 우선 불특정 다수의 합의노드 참여를 제한한다. 위임지분증명(DPoS) 합의 알고리즘을 채택하여 확장성 문제를 해결하려고 했다.

위임지분증명방식은 전체 코인 보유자들이 21명의 블록 생성자(BP)를 선출한 후 그들에게 블록체인의 운영을 맡기는 방식이다. 이렇게 선출된 21개의 노드에서만 거래를 검증하면 더욱 빠른 연산이 가능하다. 전체 네트워크로부터 합의를 도출하는 방식이 아니라, 선출된 21명의 대표노드만 합의 과정에 참여시킴으로써 트랜잭션 속도, 즉 확장성 문제의 해결을 추구한다. EOS는 확장성 확보를 위해, 탈중앙화와 타협이라는 극약 처방을 내렸다.

EOS는 나름대로의 탈중앙화를 위한 방법을 EOS S/W에 반영하였지만 트릴레마 문제를 극복할 수 없었다.
노드의 개수가 소수(21개)라는 것은 블록 생성 시간을 단축하고, 트랜잭션 속도를 높이지만, 이는 탈중앙화라는 가치를 벗어날 수 있다. 그리고 보안 또한 문제가 될 수 있는데, 비트코인과 이더리움의 경우 다수의 노드를 공격하는 것이 어려워 높은 보안성을 가지고 있다. 그러나 이오스의 경우 소수의 노드가 블록을 생성하기 때문에 노드에 대한 공격이 쉬워져 보안이 떨어진다.

하이퍼레저

하이퍼레저의 합의 과정에 참여하려면, 사전 승인이 필요하다. 그 과정에서 신원이 모두 밝혀져서 익명성도 없고, 시스템 전체를 관리하는 중앙 관리 주체가 존재하며, 이 주체가 참가자의 범위를 결정한다. 특정 그룹 내에서 사전 합의에 따라, 쓰기(write) 권한을 가지는 컨소시엄 블록체인도 비슷한 형태이다. 프라이빗 블록체인과 컨소시엄 블록체인을 합쳐서, 퍼미션드(permissioned) 블록체인 혹은 허가형(폐쇄형) 블록체인이라고도 부른다.

프라이빗 블록체인은 미리 참가자를 제한하고, 신뢰할 수 있는 참가자끼리 거래를 승인한다. 합의 알고리즘이 퍼블릭 블록체인에 비해 간단하고, 네트워크 운영에 참여한 보상이 필요 없다. 정보의 외부 유출을 원치 않고 처리 속도를 중요시하는 기업을 중심으로 개발되고 있으며, 고도의 보안을 필요로 하는 정부에서도 주로 이러한 형태로 블록체인 도입을 고려 중이라고 한다.

컨소시엄 블록체인

그룹은 컨소시엄 블록체인을 관리한다. 그룹은 블록체인이 어떻게 작동할지 결정 한다. 또한 접근이 제한되어 있어 누가 먼저 접근할 것인지를 그룹이 결정한다. 이러한 제한된 액세스는 더 빠른 트랜잭션, 높은 확장성 을 의미한다. 대표적인 컨소시엄 블록체인은 클레이튼이다.

트릴레마 해소 방안 연구

유망한 솔루션

블록체인 데이터의 처리과정에서 노드의 역할을 나눌 수 있는데, 일부 노드에게 블록생성을 맡기고 다른 노드들은 데이터 생성(트랜잭션)에만 참여를 하게 만드는 방법이 확장성 면에서 가장 효율적인 방법이다.

실제로 비트코인의 채굴노드를 보면 소수 노드에 채굴파워(해쉬 파워)가 집중화 되는 경향을 보이고 있으며, POS(Proof of Stake)를 채택하고 있는 블록체인(NEO 등)들도 자본의 집중화를 통해 만들어지는 합의권력의 집중화를 완전히 해결하지 못하고 있다.

또한 on-chain 과 off-chain의 결합을 통해 탈중앙화를 유지하며 확장성을 해결을 하고자 하여도 off-chain의 소수 노드들이 관리하는 데이터의 속성을 고려해 볼때 보안 관점에서의 보안 취약, 즉 off-chain노드들에게 해킹공격 등이 가능하게 된다.

온 체인 vs 오프 체인

  • 온 체인
    말 그대로 체인 위에서 발생한 트랜잭션을 말한다. 비트코인, 이더리움 등 자체 네트워크를 구성하고 있는 블록체인 내에서 발생하여 블록에 기록이 되는 트랜잭션들
  • 오프 체인
    블록체인에 기록을 하지 않는 체인을 말한다. 즉 블록체인이 아니다.
    오프 체인을 사용 하는 이유
    빠르게 서비스를 처리해야 하는 시스템에서는 오프체인에서 처리할 수 있다.
    모든 내역은 공개가 가능하지만 개인정보 같등이 담긴 정보는 공개를 원치 않기 떄문에 오프체인에서 처리를 할 수 있다.
    트랜잭션 검증시 채굴자에게 보상이 주어지게 되는데 TPS가 너무 낮기 때문에 오프체인에서 트랜잭션을 처리할 수 있다
    단점
    온체인의 경우 검증을 통해 신뢰를 확보하지만 오프체인은 별다른 신뢰방법이 없기 떄문에 데이터의 적합성을 믿을수가 없다.
    off-chain노드들에게 해킹공격 등이 가능하게 된다.

트릴레마는 탈중앙화로부터 얻는 이익과 중앙화로부터 얻는 이익이 서로 반대되기 때문에 발생을 한다.

현재 시중에 나와 있는 암호화폐들은 탈중앙화, 보안성, 확장성의 블록체인 트릴레마를 하나 또는 최대 두 개까지만 해결할 수 있고, 세 가지를 동시에 만족시키는 것은 현재로서는 물리적으로 (거의) 불가능 하다.

비트코인 캐시

비트코인의 트랜잭션 속도가 느려지는 이유중 하나는 시간에 흐름에 따라 일정한 간격으로 생성되는 블록의 크기(사이즈) 와 그 블록에 담을 수 있는 거래내역들이 한정되어 있기 때문이다. 비트코인에서 체인분기된 비트코인 캐시는 블록의 크기를 기존 것에 비해 2~8배까지 확장하는 방법으로 트랜잭션 속도를 올렸다. 기존에 비트코인이 가지고 있는 탈중앙화 구조를 유지하고 10분이라는 블록생성 주기를 조정하지 않은 상태에서 트랜잭션 속도를 올릴 수 있는 효율적인 방법이었다.

그러나, 기존 구조를 거의 변경하지 않았다는 점에서 그 확장성의 효과는 제한적일 수 밖에 없다. 블록체인에 참여하는 노드의 수가 증가하고 앞으로 더 많은 트랜잭션들이 나타나게 되면, 거래처리 속도는 지금의 지연상태와 같이 수시간 또는 수일동안 거래가 처리되지 않을 가능성이 높다.

POW 합의 알고리즘의 문제점으로 블록을 생성하는 채굴노드의 중앙화는 탈중앙요소를 위협하는 새로운 문제로 제기되고 있다.

비트코인의 채굴 알고리즘은 POW로 채굴에 성공하기 위해서는 누군가 더 많은 컴퓨팅 자원을 가져다가 해당문제에 대해 되풀이하여 풀어내면 10분보다 더 빨리 문제를 풀게되고 그 인센티브인 코인을 소유할 수 있게 된다.
따라서 컴퓨팅 자원을 누가 더 많이 확보하느냐에 따라, 확률적으로 인센티브를 가져갈 확률이 올라가게 된다. 더 많은 컴퓨팅 자원을 확보하기 위해 “컴퓨팅 자원의 농장화(farm)’가 나타났고, 이들이 연합하여 채굴하지 않겠다고 선언하면 블록체인 네트 워크는 심각한 손상을 초래할 수 있다.
만약 채굴농장 (mining farm)이 전체 블록체인 채굴 컴퓨팅 파워의 51%이상을 가지게 되면, 모든 정보의 소유권을 가지게 된다. 즉, 악의적인 공격행위와 해킹을 시도하면 모든 정보를 임의로 변경할 수 있게 된다.

채굴경쟁을 위해 나타난 채굴농장 (Mining Farm)은 사적으로 이익을 추구하는 것을 목적으로 결성되었기 때문에 공익적 관점에서의 행동을 요구할 수 없다. 채굴능력을 담보로 뭔가를 요구할 수 도 있고, 악의적으로 데이터를 변경 할 수도 있다.
일례로 비트코인에 채굴농장들의 수익지향적 채굴정책으로 말미암아, 건전하게 운영되어야 하는 비트코인 거버넌스에 균열이 생겼으며, 위에서 설명한 비트코인 캐시와 같은 체인 분기가 이루어 졌다.

라이트코인

라이트코인(Litecoin)은 비트코인을 기반으로 만들어진 가벼운 암호화폐이다.
기존 비트코인의 느린 처리 속도를 해결하고 빠른 속도를 구현하기 위해 라이트닝 네트워크(lightning network) 솔루션을 도입했다.

라이트닝 네트워크란?

오프체인(off-chain) 거래라고도 불리며, 양방향 채널이라는 아이디어를 기반으로 저렴한 비용으로 거의 즉각적인 거래가 가능한 비트코인 레이어2 솔루션이다.
탈중앙화와 보안은 기본으로 두고 확장성을 높이기 위한 작업으로, 잔액에 대한 “인증” 역할을 하는 첫 번째와 마지막을 제외한 모든 거래 내용을 오프체인(별도채널)에 등록한 뒤 거래 내역을 종합해 최종 결과만 온체인(on-chain)에 업로드하는 방식이다. 블록체인 상에서 거래가 이루어지지 않기 때문에 승인 대기 시간이 생략되며 거래가 즉시 완료된다. 또 오프체인 거래를 함으로써 채굴자에게 수수료를 주지 않아도 되기 때문에 거래 수수료는 제로에 가깝게 낮아진다.

라이트닝 네트워크 에서는 다중 키와 시간 잠금 계약을 활용해 신뢰를 확보하게 된다.

A와 B라는 두 사람이 공동 계좌를 만들고 다중 키로 설정을 한다.
블록체인에서는 이 장부를 변경하기 위해서는 두 사람 모두의 비밀 키가 필요하다.
오프체인에서는 둘의 합의만으로 갱신해 나가다가 장부를 청산할 떄 다중 키를 이용해 온체인 한다.
오프체인 내에서 둘 사이에 합의된 거래는 시간 잠금 계약을 걸기 떄문에 한쪽에서 장부를 마음대로 수정을 할 수가 없다.

라이트닝 네트워크에는 이미 비트코인 뿐만 아니라 라이트코인 역시 참여하고 있으며, 사실상 비트코인과 DNA가 같으면 라이트닝 네트워크를 사용하는데 큰 지장이 없기 때문에 라이트닝 네트워크가 활발해지면, 비트코인의 확장성이 많이 개선될 것이다.

이러한 방식으로 Bitcoin은 잠재적으로 확장성 요구 사항에 대한 솔루션을 찾았고 장기적으로 수천에 이르는 TPS에 도달할 가능성이 있다.

알고랜드

알고랜드(Algorand)는 블록체인의 트릴레마를 해결하기 위한 플랫폼을 위한 암호화폐이다.

영지식증명(ZKP)의 권위자인 실비오 미칼리(Silvio Micali)는 알고랜드가 무허가형 순수지분증명(PPoS) 합의 알고리즘을 통해 블록체인이 트릴레마를 해결할 수 있다고 밝혔다.

순수지분증명 방식은 두 단계로 진행된다. 첫 번째 단계에서는 알고랜드 네트워크의 블록 생성자가 토큰 보유자 중에서 무작위로 한 명을 선정한다. 두 번째 단계에서는 다시 무작위로 뽑힌 1천 명이 1단계에서 선정된 위원이 생성한 블록을 검증한다. 이 방식에서는 매번 새로운 사람이 블록을 채택하기 때문에 보안성을 갖출 수 있게 된다.

알고랜드의 트릴레마 대안

알고랜드는 새 트랜잭션(새 블록)을 추가하는 작업을 수행하는 검증자에 초점을 맞춘다. 블록체인의 주요 목표는 분산화 수준을 유지하고 확장성을 허용하는 방식으로는 검증자에게 블록 검증을 위탁하는 것이어야 한다.

알고리즘은 모든 토큰 보유자 중에서 검증자를 임의로 선택하여 검증 작업을 수행한다. 네트워크는 다음 노드 그룹을 자동으로 선정하는 알고리즘을 활용해 블록을 추가하도록 한다. 이 접근 방식을 통하면 모든 사용자가 시스템에서 선택을 받을 수 있으므로 분산성이 유지된다. 다음 검증자가 누구일지 아무도 모른다는 사실은 보안을 보장해준다. 임의성(Randomness)은 목표로 하는 분산화 수준을 달성하고 네트워크가 "51% 공격"에 당하지 않도록 예방해주는 강력한 도구이다.

알고랜드 네트워크를 손상하는 유일한 방법은 토큰 보유자 중 자기파괴적인 행동을 하는 보유자가 과반수를 차지하는 것뿐이다. 토큰의 가치를 잃고자 하는 보유자는 없으므로 실질적으로 불가능한 일이다.
유일한 문제는 무작위 선택을 보장하기 위해 신뢰할 수 있는 시스템이나 주체가 있는가 이다.

다양한 대안

블록체인 트릴레마 해결: 레이어 1

블록체인에서 레이어 1은 비트코인, 라이트 코인, 이더리움과 같은 블록체인 프로토콜을 의미한다. 블록체인 네트워크의 확장성을 직접적으로 개선하기 위해 현재 개발 중이거나 실행 중인 많은 방법이 있다.

  • 합의 프로토콜 개선
    작업 증명은 현재 비트코인과 같은 인기 있는 블록체인 네트워크에서 사용 중인 합의 프로토콜이다. PoW는 안전하지만 속도도 느립니다. 예를 들어 비트코인은 7개의 TPS만 달성합니다. 그렇기 때문에 많은 블록체인 네트워크가 지분 증명 (PoS) 합의 메커니즘을 선호한다 . 채굴자가 상당한 컴퓨팅 성능을 사용하여 암호화 알고리즘을 해결하도록 요구하는 대신 PoS 합의 프로토콜은 네트워크 지분을 기반으로 검증인 상태를 결정한다.
  • 샤딩
    샤딩은 분산 데이터베이스에서 채택되었으며 블록체인 부문 내에서 다소 실험적인 특성에도 불구하고 가장 인기 있는 Layer-1 확장 솔루션 중 하나가 되었다.
    꼭 모든 오퍼레이션을 모든 노드가 처리해야 하는가? 트랜잭션을 나눠 한 묶음을 A섹션노드가 처리하고 B섹션노드가 나머지 트랜잭션을 처리하면 처리속도는 두배 향상 될 것이다. 이 개념이 “샤딩”의 기본 개념이다.
    샤딩은 트랜잭션을 "샤드"라고 하는 더 작은 데이터 세트로 나눈다. 이러한 샤드는 네트워크에서 동시에 병렬로 처리되므로 동시에 수많은 트랜잭션에 대한 순차적 작업이 가능하다. 또한 각 네트워크 노드가 제네시스의 모든 블록 사본을 보유하도록 하는 대신, 이 정보는 서로 다른 노드에 의해 분할되고 유지될 수 있으며 각 노드는 그 자체로 일관성을 유지한다.

블록체인 트릴레마 해결: 레이어 2

블록체인에서 레이어 2는 기본 블록체인 프로토콜 위에서 작동하여 확장성과 효율성을 향상시키는 네트워크 또는 기술을 나타낸다. 예를 들어, 비트코인은 레이어 1 프로토콜이고 라이트닝 네트워크 는 비트코인 네트워크에서 트랜잭션 속도를 향상시키기 위해 구축된 레이어 2 솔루션이다. Layer-2 프로토콜은 최근 몇 년 동안 엄청난 성장을 이룩했으며 특히 PoW 네트워크의 확장성 문제를 극복하는 가장 효율적인 방법을 입증하고있다.

  • 중첩 블록체인
    메인 블록체인을 활용하여 더 넓은 네트워크에 대한 매개변수를 설정하고 실행은 보조 체인의 상호 연결된 웹에서 수행되는 분산형 네트워크 인프라이다. 여러 블록체인 레벨이 이 메인 체인에 구축되며 이러한 레벨은 부모-자식 연결을 사용한다. 부모 체인 대리자는 자식 체인의 작업 결과를 다시 부모에게 보내는 작업을 수행한다. 기본 블록체인은 분쟁 해결이 필요한 경우가 아니면 네트워크 기능에 참여하지 않는다. OMG Plasma 프로젝트는 더 빠르고 저렴한 거래를 촉진하기 위해 Layer-1 Ethereum 위에서 활용되는 Layer-2 중첩 블록체인 인프라의 예이다. 이 모델에 따른 작업 분배는 메인체인의 처리 부담을 줄여 확장성을 기하급수적으로 향상시킨다.
  • 상태 채널
    상태 채널은 전체 트랜잭션 용량과 속도를 개선하기 위해 다양한 메커니즘을 사용하여 블록체인과 오프체인 트랜잭션 채널 간의 양방향 통신을 용이하게 한다. 상태 채널은 트랜잭션을 검증하기 위해 즉각적인 채굴자 개입이 필요하지 않다. 대신 다중 서명 또는 스마트 계약 메커니즘을 사용하여 봉인된 네트워크 인접 리소스이다. 트랜잭션 또는 트랜잭션 배치가 상태 채널에서 완료되면 "채널"의 최종 "상태"와 모든 고유한 전환이 기본 블록체인에 기록된다. Liquid Network, Celer, Bitcoin Lightning 및 Ethereum의 Raiden 네트워크는 상태 채널의 예이다. 트릴레마 트레이드오프에서 상태 채널은 더 큰 확장성을 달성하기 위해 어느 정도의 탈중앙화를 희생한다.
  • 사이드체인
    사이드체인은 대규모 배치 트랜잭션에 사용되는 블록체인 인접 트랜잭션 체인이다. 사이드체인은 속도와 확장성을 위해 최적화할 수 있는 원래 체인에 대한 독립적인 합의 메커니즘을 사용하는 반면 유틸리티 토큰은 종종 사이드 체인과 메인 체인 간의 데이터 전송 메커니즘의 일부로 사용된다. 메인체인의 주요 역할은 전반적인 보안 및 분쟁 해결을 유지하는 것이다. 사이드체인은 여러 가지 통합 방식으로 상태 채널과 구별된다. 첫째, 사이드체인 트랜잭션은 참가자 간에 비공개가 아니며 공개적으로 원장에 기록됩니다. 또한 사이드체인 보안 침해는 메인체인이나 다른 사이드체인에 영향을 미치지 않는다. 사이드체인을 구축하려면 인프라가 처음부터 구축되기 때문에 상당한 노력이 필요하다.

Safety와 Liveness

합의 프로토콜은 다음의 두 속성을 만족시켜야 한다.

  • Safety
    모든 정상적인 참여자는 같은 상태에 동의하여야 한다. 즉 문제 없는 노드는 잘못된 합의를 하지 않고 문제 없는 두 노드가 서로 다른 값으로 합의하면 안된다
  • Liveness
    분산 시스템에서 합의는 노드 간의 메시지를 주고받으며 각 노드의 상태를 변경시키며 이루어진다.
    합의가 반드시 이루어져 시스템은 항상 살아 있어야 한다는 의미이며, 모든 노드가 동의된 상태에 도달해야 한다. 즉 문제 없는 노드는 반드시 합의를 한다는 의미이다.
  • FLP impossibility 쉽게 말해 Safety는 "문제없는 노드 사이에서는 잘못된 합의가 이루어지지 않는다"라는 것이고, Liveness는 "문제없는 노드들은 반드시 합의를 한다"라는 것이다. 문제는 Byzantine Failure가 아닌 Fail-Stop Failure가 하나만 있어도 Safety와 Liveness를 둘 다 만족하는 합의 알고리즘이 존재할 수 없다. 이를 FLP impossibility 혹은 FLP theorem이라고 한다. 따라서 합의 알고리즘을 선택한다는 것은 사실상 Safety와 Liveness 중 무엇을 선택하고 무엇을 버릴까 하는 문제이다.

Liveness over Safety

비트코인이 사용하는 합의 알고리즘은 사토시 나카모토가 처음 제안하였기 때문에 Nakamoto Consensus라고도 불린다. Nakamoto Consensus는 언제나 더 어려운 문제를 푼 체인이 있으면, 그 체인을 유효한 체인으로 판단한다. 즉 언제든지 현재 합의된 블록을 다른 블록으로 대체할 수 있다. 이런 방식을 블록체인에서는 Finality(완결성)가 보장되지 않는다고 말하고, FLP impossibility에서는 Liveness를 위해서 Safety를 포기했다고 말한다.

완결성(Finality)은 일단 블록체인에 커밋되면 모든 블록이 취소되지 않는다는 특성이다. 사용자는 거래할 때 거래가 완료되면 거래를 임의로 변경하거나 되돌릴 수 없다는 확신을 원한다. 따라서 블록체인 합의 프로토콜을 설계할 때 최종성이 중요하다.
현재 나카모토 합의 기반 시스템에서 51% 공격과 채굴의 중앙화 문제는 블록 취소 가능성을 허용하여 시스템의 건강을 위협한다(잘못된 합의가 이루어질 수 있지만 어떻게든 합의를 함) 이러한 프로토콜은 확률적 최종성을 제공하는 반면 다른 프로토콜은 절대적 최종성을 보장할 수 있다.

Liveness를 중시하는 Nakamoto Consensus에서 출발한 합의 알고리즘들은 한정적인 상황에서 Safety를 보장할 방법을 추가하는 방식으로 발전했다. 이더리움에서 구현되고있는 Casper는 기존의 PoW로 Liveness를 보장하며 블록을 생성하지만, 50블록마다 투표하여 Safety가 보장되는 지점을 만든다.

Safety over Liveness

Safety를 중시하는 합의 알고리즘이다. 전통적으로 분산 시스템에서 연구되던 PBFT에 기반한 BFT 계열 합의 알고리즘들이 이쪽에 속한다. Cosmos에서 사용하는 Tendermint가 대표적인 Safety를 보장하는 BFT 알고리즘이다.

PBFT를 간단히 요약하자면, 네트워크에 배신자 노드가 어느 정도 있다고 해도 네트워크 내에서 이루어지는 합의의 신뢰를 보장하는 알고리즘이다.비동기 네트워크에서 배신자 노드가 f개 있을 때, 총 노드 개수가 3f+1개 이상이면 해당 네트워크에서 이루어지는 합의는 신뢰할 수 있다는 것을 수학적으로 증명한 알고리즘이다.
합의에 2/3+1개 이상의 동의가 필요하기 때문에 어떤 상황에서도 서로 다른 두 블록이 동시에 생성되는 일은 없다. 하지만 전송한 메시지가 시간 안에 도달하는 것을 보장하지 못 하는 비동기 네트워크에서는 합의가 이루어지지 않거나 1/3 이상이 배신자 노드면 블록이 생성되지 않을 수 있다. 따라서 Liveness는 보장되지 않는다.

Types of Finality

  • Probabilistic Finality(확률적 완결성)은 체인 기반 프로토콜(예: 비트코인의 나카모토 합의 POW)이 제공하는 완결성 유형을 말하며, 트랜잭션이 포함된 블록이 체인 깊숙이 가라앉을수록 트랜잭션이 되돌리지 않을 확률이 높아진다. 이것이 트랜잭션이 되돌릴 가능성이 매우 낮은지 확인하기 위해 해당 트랜잭션을 수행하기 전에 약 1시간이 소요되는 비트코인 블록체인 깊이가 6블록이 될 때까지 기다리는 것이 좋다.
  • Absolute Finality(절대적 완결성)은 PBFT 기반 프로토콜(예: 텐더민트)에서 제공하는 완결성 유형을 말하며, 트랜잭션이 블록에 포함되고 블록체인에 추가되면 즉시 완료된 것으로 간주한다. 이 경우 리더가 블록을 제안하고 검증인 위원회의 충분한 비율이 블록을 승인해야 커밋된다.

BFT: 비잔틴 장군 문제

기존 확률적 합의 알고리즘의 문제점을 개선하고자 기존 분산시스템에서 상태 기계 복제(State Machine Replication)를 위해 활용한 BFT (Byzantine Fault Tolerance) 합의 알고리즘 방식을 활용한 블록체인 합의 알고리즘이다.

기존 합의 알고리즘의 문제

기존 알고리즘은 채굴자에 보상을 위해 가상화폐가 필요하다는 문제 외에도 부분 분기가 일어날 수 있다는 문제가 있다.

CFT(Crash Fault Tolerance) vs. BFT(Byzantine Fault Tolerance)

CFT는 분산시스템에서 노드가 비정상적인 충돌에 의해 문제가 생기더라도, 나머지 시스템에서 서비스를 할 수 있게 하는 작동방식을 말한다. 반면 BFT는 더 복잡하며 악의적인 행위자가 있을 수 있는 시스템을 처리한다.

블록체인 시스템에선 둘 모두 합의라는 방식을 거치게 되는데, 비트코인의 경우는 일반적인 CFT, BFT 보다 높은 수준의 신뢰작업이 필요하다. 이것이 바로 PoW이다.
컨소시엄형 블록체인 시스템(하이퍼레저 패브릭 등)에서는 보통 조직들이 이미 신원확인등에 의한 허가를 받은 상태에서 참여하기 때문에, 악의적인 행위를 안할거라고 믿고 서비스를 한다. 따라서, 특정 상황에 노드에 문제가 생기는 경우에 대해서만 염두에 둔 CFT 기반의 오더링 알고리즘이 우선되고 있다.

BFT(Byzantine Fault Tolerance)

비잔티움 장군 문제는 1982년 제시된 논문에서, 중앙 통제장치가 없는 분산 컴퓨터 시스템은 일부 노드의 장애와 해킹 공격이 있으면 시스템을 안정적으로 운영하기 어렵다는 원리를 설명할때 언급된 개념이다.

다음과 같은 예를 들어 보자.

  • 비잔틴 국가의 장군들은 A라는 나라를 침공하기 위해 각각의 성을 포위한 상태이다.
  • 각각의 장군들은 강, 산 등으로 분리되어 있어 메신저를 통해 서만 대화가 가능하다.
  • 장군 중 우두머리인 커맨더의 명령으로 동시에 공격 하거나 아니면 후퇴해야 한다.

만일 장군들 중에 배신자가 섞여 있다면, 어떻게 한날 한 시에 공격을 할 수 있을까?

위 그림같이 3명의 장군들중 1명의 배신자가 섞여있는 상황일때 장군은 2명의 다른 장군들에게 메세지를 보낸다. 그러나 배신자 장군은 후퇴 메시지를 다른 장군에게 보내게된다. 장군(정상)은 공격과 후퇴 메시지를 각각 1개씩 받았을 경우 무엇이 참인지 알 수가 없다.
따라서, 비잔틴 장군 장해는 최소 배신자가 전체 참가자의 1/3 이상이 되지 않았을 때 해결이 가능하다.

블록체인에서도 마찬가지로 악의적인 노드의 공격에 대처해야 한다. 가령, 1개의 나쁜 노드가 자신의 잔고를 증가시키는 내용이 포함된 가짜 블록을 생성해 그것이 진짜라고 할 경우, 다른 정상 노드들은 해당 노드를 배제 시킬 수 있어야 하는 거다.

비잔틴 장군 장해의 기본 원리를 봤을 때, 마찬가지로 1/3이상의 노드가 악의 적인 행동에 동의하면, 블록체인 네트워크는 정상적으로 동작할 수 없다. 하지만, POW(채굴) 방식은 기존 비잔틴 장군 장해 허용을 더 강화 한다. 그 이유는 POW는 채굴을 통해 새로운 블록을 만들어야 하기 때문에. 블록(비잔틴장해 에서의 메시지) 자체가 검증이 가능하기 때문이다.

POW는 신규 블록의 해쉬값이 반드시 채굴 난이도 값 보다 낮아야 합니다. 따라서, 블록자체가 정상인지 아닌지를 바로 확인 할 수 있습니다.따라서, 비트코인을 비롯한 POW방식을 채택한 블록체인은 허용 가능한 배신자의 수가 1/3가 아니라 1/2이가 된다. (아무리 검증이 가능하더라도, 나쁜 블록이과반수가 넘어 나쁜 블록을 채택해 버리면 답이 없음)

POW가 아닌 블록체인들은 1/3이상의 배신자가 없다는 가정하에 비잔틴 장해 문제 허용을 해결할 솔루션등을 가지고 있다.

PBFT(Practical Byzantine Fault Tolerance)

PBFT는 분산시스템이 약속된 행동을 하지 않는 비잔틴 노드가 존재할 수 있는 비동기 시스템일 때 해당 분산시스템에 참여한 모든 노드가 성공적으로 합의를 이룰 수 있도록 개발된 합의 알고리즘이다. PBFT는 기존의 BFT 합의 알고리즘이 동기식 네트워크에서만 합의가 가능했던 문제를 해결하여 비잔틴 노드가 있는 비동기 네트워크에서 합의를 이룰 수 있게 했다.

[ PBFT 알고리즘이 동작하는 방식 ]

기존 분산 시스템에서 사용하던 합의 알고리즘은 Primary 혹은 Leader라 불리는 특별한 노드가 존재한다. 이 노드는 클라이언트의 요청 순서를 정렬하고, 요청에 대한 결과를 기입하여 다른 노드들에게 뿌려주는 역할을 한다.

동작 방식
[1] 리더=Primary가 정보를 수집하고 정렬한뒤 다른 노드들에 전파

[2] 메시지를 받은 노드들은 받은 메시지를 다른 노드들에게 다시 전파

[3] 모든 노드는 자신이 받은 메시지중 가장많이 받은 메시지를 다른 노드들에게 전파

[4] 합의를 이룬 데이터를 가지게 된다.

장점
[1] 트랜잭션 완결성과 빠른 거래 확정

한번 합의가 이루어 지면 내용이 확정 되기 떄문에 거래 확정시간이 짧다.

[2] 저에너지로 비용 감소

Pos를 기본으로 하기 떄문에 에너지 사용량이 적고 거래비용이 작다.

한계
PBFT는 합의 그룹 크기가 커짐에 따라 합의 속도가 느려지는 문제가 있다. 100개 이상의 노드를 운영하기는 쉽지 않다. 예를 들면 Cosmos는 100개 노드로 운영하면 거래 확정에 약 6초 걸린다. 합의 그룹의 각 노드는 모든 다른 노드들과 두번씩 메시지를 주고받아야 하므로 전체 노드 N의 제곱 수준의 커뮤니케이션 교환이 필요하다.

Tendermint

Tendermint는 Cosmos에서 사용하는 합의 알고리즘으로 PBFT 알고리즘에 DPoS개념을 추가하여 공개 및 비공개 블록체인에 맞도록 개량한 합의 알고리즘이다.

Tendermint는 지분(Stake)을 기반으로 투표를 한다. 투표하는 노드의 수 보다는 지분이 중요함.

투표를 할때 Locking 메커니즘을 통해 투표에 참여한 지분을 네트워크에 동결시키고 이를 해제하는 메커니즘을 통해 이중 투표 문제를 막고 지분으로 네트워크를 유지하게 한다. 또한 이중 투표 시도와 같은 블록체인을 공격하려는 악의적인 행위를 하면 지분을 빼앗는 방법으로 기존의 블록체인이 네트워크 공격 노드에 아무런 처벌을 하지 않던 문제 문제를 해결하였다.

profile
디버깅에서 재미를 추구하면 안되는 걸까
post-custom-banner

0개의 댓글