블록체인 트릴레마 [TIL / 블록체인]

알락·2022년 11월 12일
0

블록체인

목록 보기
4/11
post-thumbnail

트릴레마

이미 눈치 챈 사람은 트릴레마가 어떤 단어에서 기원했는지 알고 있을 것이다. 트릴레마는 딜레마라는 단어와 연관이 깊다. 하지만 딜레마는 상존할 수 없는 두 가지 선택에서 하나를 고르는 것이지만 트릴레마는 선택지가 세 개나 있다.
하지만 블록체인의 같은 경우는 선택지 3 개 중에 하나를 선택하는 게 아닌, 하나를 포기하는 형식으로 트릴레마가 성립한다.

블록체인 트릴레마 3 요소(SDS)

블록체인은 위에서 설명한 트릴레마를 구성하는 요소 3 가지의 특성을 갖고 있다. 이 중 하나는 블록체인 운영에서 불가피하게 부족해지거나 심지어 거의 지키지 못하는 형태로 구현이 된다. 다음이 해당하는 3 요소이다.

1. Scalability(확장성)

확장성은 블록체인이 처리할 수 있는 트랜잭션 수량을 쉽게 늘릴 수 있냐는 문제다. 블록체인이 현재 일반적으로 제공되는 웹서비스의 마이크로 아키텍쳐처럼 가용한 서버를 늘린다고 해서 트래픽을 늘릴 수는 없다. 오히려 PoW 형식의 협의 알고리즘을 쓰는 경우에는 노드들이 늘어날수록 불리하다. 블록을 하나 생성하는 경우에도 널리 퍼져있는 네트워크 참여자들의 검증이 필요하기 때문이다. 이 같은 경우 검증하는 노드들이 늘어나 블록 생성에 대한 합의가 점점 늦어지게 된다. (애초에 서비스의 서버를 늘리는 것과 블록체인의 참여 노드를 늘리는 것은 결이 다른 문제이기도 하다.)

특히 합의 알고리즘으로 PoW를 선택한 블록체인은 확장성의 측면에서 많이 불리하다. 비트코인은 1초에 7개 씩 트랜잭션을 처리한다고 한다. 비자카드는 1초에 평균적으로 4,000개를 처리할 수 있다고 한다. 비트코인을 사용하는 사람들은 늘어가는데 택없이 부족한 거래 처리량은, 현실 거래에 사용되는 화폐처럼 이용되기는 힘든 점이 바로 이와 같은 맥락이다.

2. Decentalization(탈중앙화)

탈중앙화는 블록체인 네트워크 참여가 얼마나 자율적인지에 따른다. 특히 실질적인 블록체인의 목표인 블록을 생성하는 권한을 갖는 것이 자율적일수록 탈중앙화의 특징을 강력하게 띈다.
탈중앙화를 이해하기 위해서는 그 반대 개념인 중앙통제를 엿보는게 좋다. 중앙통제의 말에서부터 느껴지는 것처럼 블록, 즉 데이터를 쓰는 주체가 하나로 정해져있고, 그 주체에 의해서 데이터 쓰는 행위에 대한 권한이 부여되면 이는 중앙통제 시스템이라고 할 수 있다.

탈중앙화는 다음과 같이 블록체인을 나누는 기준으로 알 수도 있다.

  • Public Chain : 누구나 블록을 검증하고 생성하는 노드로 참여가 가능한 블록체인이다.
  • Private Chain : 누군가 블록 생성에 대한 권한을 부여할 수 있고, 참여를 원하는 노드는 이 운영자에게 권한을 받아야만 블록체인에 참여할 수 있다.
    • Constorium Chain : 블록 생성의 권한을 부여하는 하나의 회의 혹은 집단 노드가 있고, 이 집단에서 다수결로 합의가 되어야 새로운 노드가 블록체인에 참여할 수 있다.
  • Hybrid Chain : 특정 데이터에 대한 블록의 생성과 열람은 모든 노드들이 참여할 수 있으면서, 또 다른 특정 데이터에는 권한이 필요한 블록체인.

3. Security(보안성)

보안성은 블록체인 같은 분산시스템이 공격을 당할 경우 네트워크가 얼마나 견고하게 유지되는지에 대한 문제다. 공격은 외부로부터 있을수도 있고, 내부로부터 있을 수도 있다.

⌞ 외부로부터의 공격 - 51% 공격

외부의 공격 중 유명한 시나리오는 "51% 공격"이 있다. 블록체인을 잘 아는 사람들은 이미 익히 알고 있는 개념일 것이다. "51% 공격"은 블록체인 생성에 대한 모멘텀을 누군가가 장악하는 것이다. PoW의 경우 블록체인을 생성하고 합의를 해나갈 수 있는 원동력이 바로 해시레이트에 있다. 하지만 이 해시레이트의 과반을 어떤 한 주체가 가져갈 수 있다면 이 블록체인의 블록 생성은 모두 그에게 넘어가버린다. 이는 악의적인 트랜잭션이 제대로 된 검증 과정을 거치지 않은 채 승인되어 저장될 수도 있다는 말이다.

⌞ 내부로부터의 공격 - 비잔티움 장군 문제

내부 공격 중 유명한 시나리오는 "비잔티움 장군 문제"가 있다. 원래 이 문제가 간단하지 않지만 핵심만 짚고 넘어가보겠다. 결국 "비잔티움 장군 문제"는 내부의 배반자가 있더라도 어떻게 옳은 결정을 할 것인지에 대한 문제다. 배반자가 하나라도 존재하여 네트워크의 임의의 결정을 실패로 이끌 메시지를 전달하여도, 나머지는 이 메시지를 무시하고 옳은 결정을 해내야 한다.

선택의 순간

⌞ 1세대 비트코인

블록체인의 시초라할 수 있고, 많은 사람들이 블록체인 개념 입문으로 사용하는 비트코인은 확장성은 제쳐두고 탈중앙화와 보안성에 초점을 두고 개발이 되었다. 하지만 비트코인의 경우에도 보안성에서 지적된 51%의 공격의 여지에서 완전히 벗어난 것은 아니고, 비잔티움 장군 문제도 과반수가 정의롭게 행동하는 조건으로 허용을 하고 있는 실정이다.

⌞ 2세대 이더리움

특히 네트워크 규모에 비해 턱없이 적은 거래밖에 처리를 못하는 비트코인을 두고, 확장성을 개선하고자 이더리움이 나타났다. 교육 자료에서는 그래도 초 당 40건 정도로 올라왔으나 아직 현실의 결제시스템에 비하면 부족한 편이다. 여기까지가 PoW 합의 알고리즘의 한계였다고 판단이 된다. 여기서 확장성을 더 확보하고자 한다면 PoW 진영은 탈중앙화를 포기해야만 했다.

⌞ 3세대 이오스

이더리움도 미쳐 해내지 못한 확장성 확보를 탈중앙화의 희생으로 구현한 블록체인이 이오스이다. 이오스는 DPoS 합의 알고리즘을 사용하는데, 블록 생성 권한을 갖는 노드는 21 개로 정해져있고, 이 노드들은 이오스 네트워크의 지분을 갖고 있는 참여자들의 투표를 통해 선정이 된다. 이는 미국의 정치 시스템과 비슷하기도 하다. 결국 블록 생성을 하는 주체가 한정되어 있어서 탈중앙화 측면으로 지적을 받는다. 하지만 트랜잭션 처리량은 테스트넷을 통해서 확인된 바 초당 3,000 개 까지 처리할 수 있어 확장성은 우수하게 평가된다.

⌞ 번외 하이퍼렛저

아예 탈중앙화를 포기하고 확장성과 보안성에 초점을 맞춘 블록체인도 등장한다. IBM에서 이끄는 프로젝트 하이퍼렛져가 주인공이다. 기업의 비즈니스를 블록체인으로 구현하다는 것에 초점을 맞춘 프로젝트이다. 애초에 블록을 생성할 수 있는 주체가 하나 혹은 신뢰 가능한 집단으로 구성되어 검증만 다른 참여자들에게 맡기든 형식으로 구현이 된다. 이 같은 경우 노드 신뢰 가능한 집단으로 구성된다는 조건만 맞추면 블록체인은 견고하게 유지될 것이고, 특히 확장성 측면에서는 거의 현실에서 이루어지는 거래 서비스와 맞먹을 정도로 거래 처리 속도를 높일 수 있다.

힌트 얻기

트릴레마를 통해 현 블록체인이 어떤 문제를 해결해나가고 있는지에 대한 인사이트를 얻을 수 있다. 이를테면 이더리움은 이미 PoW에서 벗어나 PoS로 합의 알고리즘을 바꾸는 등 네트워크 거래 처리량, 즉 확장성을 높이는 측면으로 행동하고 있다.
반면 이더리움의 수장 부탈릭 부테린이 이오스의 수장 댄 라리머에게 진정한 탈중앙화가 아니다라고 비판을 했었던 부분을 보아, 진정한 블록체인이 무엇일지에 대해서 고민하게 된다.
사실 이더리움 자체도 PoS 로 옮겨오면서 네트워크의 지분이 중요해질텐데, 나는 결국 시장주의, 자본주의의 관점에 PoS도 진정한 탈중앙화인가에는 의문이다. 결국 부는 집중될텐데 말이다. 하긴 암호화폐는 추적이 되니까 노블레스 오블리주를 네트워크적으로 반강제할 수는 있겠다. 근데 그게 진정한 자유인가.

(수정) 이더리움은 PoS 과정에서도 탈중앙화를 하기 위해 노력을 다하였다. RANDAO 임의 난수 생성 알고리즘 등이 바로 그런 노력의 일환이다.

그러나 한 가지 확실한 것은, 모든 블록체인이 가지는 공통점은 보안성에 관해선 불가침 영역이라는 것이다. 어떤 네트워크도 신뢰가 무너져서는 유지가 될 수 없다. 그 신뢰의 바탕은 보안성이다. 보안성은 대신에, 확장성이냐 탈중앙화냐의 선택에 따라 구현되는 형태가 달라지는 부분이다.

profile
블록체인 개발 공부 중입니다, 프로그래밍 공부합시다!

0개의 댓글