[INBEX(인벡스) BLOCKBUSTERS][중앙대 C-Link : 박민서] 합의 알고리즘이 왜 필요한가?

cqinbex(53)
Published in
#kr
Words
895
Reading
4 min
Listen
Play
8y

모든 블록체인 프로젝트에는 합의 알고리즘이 존재한다. 이번 글에서는 왜 합의 알고리즘이 존재하는지 파악해보려고 한다.

블록체인은 ‘탈중앙화된 네트워크에서 작동하는 분산원장기술’ 이다. 여기서 2가지 키워드가 중요하다. 탈중앙화, 분산원장.

분산원장은 정보를 모은 원장이 물리적으로 다른 곳에 분산되어 저장되어 있고 그 원장의 변화가 지속해서 공유되는 데이터베이스다. 그래서 모든 (full) node 들이 원장을 각자의 local memory에 보관하고 있고 변화가 있을 때마다 ‘블록을 전파하다’라는 방법으로 변화 내용을 공유한다.

탈중앙화는 권력이나 의사결정권이 다수에게 퍼져있는 것이다. 의사결정을 독단적으로 하는 세력이나 모두가 신뢰하는 중앙화되어 있는 세력이 없고 불특정 다수에게 의사 결정권이 퍼져있다.

그림1. 중앙화, 탈중앙화, 분산의 차이를 표현한 그림

출처 : “On Distributed Communications Networks” P. Baran

용어의 정의를 합쳐보면, 블록체인은 탈중앙화된 네트워크에서 작동하는 분산원장기술로, 각 full node는 local에 원장을 보유하고 있고 정보의 변화가 있을 때마다 공유하며 의사결정이나 신뢰받는 세력은 존재하지 않는다.

이런 상황에서 야기되는 문제점들이 있다. 가장 치명적인 것은 정보의 유효성을 검증할 수 없다는 것이다. 의사결정을 진행하거나 신뢰받는 중앙화된 기관이 없다 보니, 블록에 담긴 정보가 정말 옳은 것인지, 체인이 여러 개로 분기되면 어떤 체인을 선택할 것인지 알 수가 없는 것이다. 그래서 네트워크 내 구성원들이 모여서 다 같이 ‘합의'하여 결정하자는 자연스러운 문맥에 따라서 합의 알고리즘이 나오게 되었다.

합의 알고리즘의 역할

합의 알고리즘은 모든 분산 원장에서 특정 데이터에 대한 값을 일치시키는 것이다. 즉, 어떤 정보가 옳은 것인지를 정하는 규칙이 있어야 하고 그래서 채굴자가 채굴한 정보가 옳은 정보라고 합의한다. 다음 질문은 ‘누가 블록을 채굴할 것인가?’이다.

permissionless 블록체인에서는 이름 그대로 ‘허가 없이' 누구나 블록을 만들(채굴할) 수 있다. 하지만, 아무나 쉽게 생성하면 단기간에 많은 블록이 생성되어 많은 분기와 정제되지 않은 정보들의 전파를 야기하고 결국 생태계에 혼란을 가져온다.

여기서 채굴의 의미를 한 번 더 짚어보겠다. 채굴은 채굴자에게는 보상을, 사용자에게는 거래의 유효성을, 시스템에는 성장의 동력을 제공한다. 블록을 채굴하지 않으면 사용자의 거래는 유효성을 보장받지 못하고 시스템은 성장을 멈춘다. 채굴이 멈추면 시스템도 멈춘다.

시스템의 성장과 거래의 유효성 검증을 위해 누군가는 지속해서 채굴해야 한다. 그런데 채굴자 입장에서는 굳이 컴퓨팅 파워를 들여가면서 (문제를 풀어가면서, 전기료를 내가면서) 채굴할 필요성을 못 느끼게 된다. 이 맥락에서 채굴 보상이 나오게 된다. 컴퓨팅 파워 소비를 하고 채굴에 성공했을 때, 보상이 주어진다면 사람들은 채굴할 것이다.

더 많은 컴퓨팅 파워를 소비하면 채굴할 확률도 높아진다. 경쟁적으로 채굴하면서 그래픽 카드 대량 구매, 채굴장 설립 그리고 개인들이 힘을 모아서 채굴 풀을 형성하는 것으로 이어진다. 이 과정에서 특정 집단에 과도하게 모여서 그 집단의 컴퓨팅 파워가 전체의 절반 이상을 차지하게 되면 그것이 51% 공격으로 이어지는 것이다. 문맥을 다시 짚어보겠다.

1.의사결정 기관이 없다. (탈중앙화되어 있기 때문에) 구성원들이 다 같이 합의하자.

2.블록을 누가 생성할지 정하자. 누구나 할 수 있다. (permissionless)

3.여러 문제점이 생길 수 있으니 최소한의 조건을 걸자. 문제를 풀면 블록이 채굴된다.

4.문제를 풀 거면 컴퓨팅 파워를 써야 한다. 전기료가 많이 나가서 아무도 안 할 것이다.

5.채굴에 성공하면 그에 대한 보상을 주겠다.

이런 문맥을 거쳐서 나온 합의 알고리즘이 바로 작업 증명 ‘POW(proof-of-work)’이다.

합의 알고리즘들의 공통점  ​

합의 알고리즘이라는 단어를 들으면 먼저 드는 생각이 바로 POW, POS이다.  앞서 말했듯이, POW는 제일 처음 등장한 합의 알고리즘이다. 문제를 풀면 블록을 만들 수 있다. 이 과정에서 주어지는 보상을 위해 채굴 경쟁이 심해지고 그 과정에서 소비되는 전력이 많아지게 되었다.

그림2. 비트코인 에너지 소비량을 국가 에너지 소비량과 비교한 그래프

출처 : bitcoinenerygyconsumption.com

이것이 낮은 처리속도와 비효율성이라는 단점을 부각했고 단점을 보완하려는 새로운 형태의 합의 알고리즘이 나오게 된다. 바로 POS이다.

지분 증명 (Proof of Stake) 은 POW에 비해서 합의를 이룰 때 소비되는 리소스를 줄이고 속도도 개선하였다. 블록 생성자는 해당 암호화폐 보유 지분에 비례해서 결정된다. 특정 화폐를 많이 홀딩 할수록 블록을 생성할 확률도 높아지는 것이다.

POW에서는 보유한 해시 파워가 블록 생성 확률을 결정했다면, POS에서는 보유한 토큰 혹은 코인의 양에 따라서 결정된다.

생태계마다 각기 다른 합의 알고리즘을 선택하는 것은 그 생태계가 원하는 지향점이나 추구하는 가치관이 다르기 때문이다. POW, POS 둘 다 블록을 만드는 사람(채굴자)을 선정하는 방법은 달라도 한 가지 공통점이 있다. 바로, 채굴 때 주어지는 incentive 구조와 악의적인 행동을 했을 때 penalty를 받는 구조가 있다는 것이다.

합의 알고리즘과 무 신뢰성 그리고 게임이론

합의 알고리즘은 (POW, POS 등) 모두 블록을 누가 생성할지에 대한 것을 정하지만, ‘어떤 행동은 하지 말아라’라는 규칙은 존재하지 않는다. 만약, POW에서 누군가가 의도적으로 reorg 하고 51% 공격, 이중 지불 문제 야기 등 이기적인 행동을 하거나 POS에서 많은 지분을 가진 사람이 이기적인 행동을 하면 어떻게 될까?

결과적으로 본인들만 더 큰 피해를 본다. 이기적인 행동을 하여, 기존의 블록이 탈락 등을 하고 비정상적인 정보의 변화가 생기면 그 행위는 바로 드러난다. 이 소식이 퍼지는 순간, 그 시스템에서 통용되던 화폐의 가치는 하락하여 POW에서는 보상으로 받은 코인의 가치가 내려가고, POS에서는 홀딩하고 있던 코인 및 토큰의 가치가 하락하여 결국엔 자신의 자산이 줄어들게 된다. 이처럼 이기적인 행동을 하여 얻는 이득보다 손실이 더 크게 설계해놓았다.

합의 알고리즘에 ‘특정 행동은 하지 마라’라는 규칙은 없다. incentive, penalty 구조와 같은 게임 이론 적용을 통해 악의적인 행동을 했을 때 피해 보는 양을 크게 함으로써 추가적인 금지 조항 없이 악의적인 행동을 억제하는 것이다.

결론

사람들이 거래할 때는 신뢰하는 상대방, 신뢰하는 제3기관(은행)을 통해서 했었다. 하지만, 블록체인 시스템에서는 필요하지 않다. 합의 알고리즘을 사용하여 모든 분산원장의 데이터를 일치시키고 게임이론 적용을 통해 악의적인 행동을 억제하고 궁극적인 목표인 ‘시스템 자체에 대한 신뢰’를 확보했기 때문이다.

생태계마다 서로 다른 목표와 이상향, 가치관을 중요시하고 그것이 각기 다른 합의 알고리즘 선택으로 이어지게 되었다. 어떠한 합의 알고리즘이더라도 참여자의 행동과 의사결정이 전체 생태계에 큰 영향을 끼친다. 혼자 이기적 행동을 하면 그것은 곧, 생태계와 시스템에 악영향을 끼치고 결국 나의 피해로 이어지게 된다. 내가 올바른 선택을 하면 시스템은 피해를 받지 않고 올바르게 성장한다.

블록체인은 특정 소수의 결정에 따르지 않고 다수가 각기 다른 의견을 내어 정해진 규칙에 따라 결정하고 상호 간의 신뢰 없이도 거래할 수 있으며 견제와 균형을 통해 발전해 나가는 모델이다.

블록체인 모델은 처리 속도나 효율성 측면에서 현재 구축된 시스템보다는 현저하게 낮은 것이 사실이다. 하지만, 그만큼 구조적인 안정성과 무결성이라는 장점이 있다. 장단점을 고려해보면 결국 블록체인이 효과적으로 사용될 수 있는 분야가 도출될 것이다. 무턱대고 사용례를 찾기보다는 블록체인 기술이 가진 구조적 장단점을 파악하는 것이 먼저이다.

  INBEX 바로가기

[INBEX(인벡스) BLOCKBUSTERS][중앙대 C-Link : 박민서] 합의 알고리즘이 왜 필요한가? | Ecency