3개/크립토(분류포기)

거래소중심 시스템이 문제다의 백업

무말랭이 2022. 5. 18. 20:08

블록체인은 효율적인 기술일까?

어제 밤늦게 한 심사역님이 블록체인은 중개자를 없애기 위해 만들어졌는데 거래소 중심으로 간게 안타깝다고 말씀하셨다. 결론부터 말하자면 메인넷이건 거래소건 블록체인 규모가 커질 수록 결국 다시 중앙화 되는 것은 사람들의 의지와 선택이 문제가 아니라 블록체인이 내재하고 있는 본질적이고 물리적인 문제다. 블록체인의 효율을 알아보자.
블록체인 시스템이 하는 가장 중요한 일은 거래를 기록 하는 것이다. 그래서 블록체인 시스템이 얼마나 효율적인지 알아보려면, 어떤 블록체인 사용자 수가 늘면 그에 따라 블록체인에 발생하는 기록 횟수가 얼마나 더 늘어나는가를 보면 된다.
블록체인 시스템의 가장 특징적인 부분은 기록을 여러 곳에 하기 때문에 (distributed ledger라 부른다) 한 가지의 거래에 대해 장부의 수만큼 기록 횟수가 일어난다는 것이다. 즉
[기록 횟수] = [거래 수] x [기록해야하는 장부 수]로 볼 수 있다. 그런데 거래 수는 사용자 수에 비례하므로 대충 아래와 같이 식을 잡아보자.
[기록 횟수] = [사용자 수] x [기록해야하는 장부 수]
블록체인의 초기 구상대로 중개자가 아예 없이 거래를 할 수 있으려면 모든 사용자가 장부를 하나씩 들고 기록을 해야한다. 그래서 이 경우에는 기록해야하는 장부 수는 사용자 수와 동일하다. 그러면 위에 만들어 둔 식에 따라 기록 횟수는 사용자 수의 제곱에 비례하게 된다. 즉 완전히 분산된 블록체인은 ** 사용자가 늘면 그 제곱에 비례하게 기록 횟수가 늘어나는 구조를 가지고 있다.

이게 뭐가 문제일까? 이미지를 하나 퍼왔다. 컴퓨터 공학에서는 사용자수의 제곱에 비례한다는 표현을 멋있게 O(n^2) 이라고 표기한다. 그리고 컴퓨터 공학 교과서에 보면 이런 종류의 기술은 컴퓨터가 계산해야할 양이 너무 빨리 늘어서 현실세계에서 못쓴다 못박아 두었다. 퍼온 이미지를 보면 아예 빨간색으로 표시해두었다! 실제 이런 코드를 짜면 사용자가 1000명쯤 도달하면 곳곳에서 다터진다. 슬픈 경험담.
결국 모두가 장부를 들고 있을 수 없으니 장부를 들고 있는 중개자와 그렇지 않은 사람이 나누어지게 되는 것이다. 모든 사람이 가질 수 없다면 장부 수는 어느정도가 적당할까? 세 명 당 한 명이 장부를 들고 있으면 해결될까? 그렇지 않다. 세 명 당 한 명이라도 기록 횟수가 사용자 수의 제곱에 비례하는 사실은 변하지 않기 때문이다. 그러면 기록 비용(채굴비용)을 낮춘 블록체인은 괜찮을까? 그렇지 않다. 한 번 기록하는 비용이 줄어도 여전히 기록 횟수는 사용자 수의 제곱에 비례하기 때문이다. 제곱 구조 자체를 없애지 않으면 어차피 충분히 큰 수에서는 못 쓰는 것은 마찬가지다. 그래서 그래프에 빨갛게 되어있는 것.
이런 방법은 어떨까? 사용자가 2배가 될 때마다 장부를 가진 사람 수를 한 명 늘리는 것이다. 즉 사용자가 2명일 때는 장부 보유자 1명, 4명일 때는 2명, 8명일 때 3명 이런식으로 말이다. 2일 때 1, 4일 때 2, 8일 때 3이 나오는 수학적 표현을 log라 쓴다. 즉 log2 = 1 , log4 = 2, log8 = 3,.. 이다.
이 경우 [기록해야할 장부 수] = log [사용자 수] 가 되고
[기록 횟수] = [사용자 수] x log [사용자 수] 가 된다. 컴퓨터공학에서는 이를 O(n logn)이라 한다. 그리고 O(nlogn)은 보통 현실세계에서 쓸 수 있는 마지막 효율구조라 본다. 엄연하진 않지만 사용자 수가 2배 될 때마다 장부를 보유한 사람을 1명 늘리는 것은 현실 세계에서 가장 많은 장부를 보유한 사람을 둘 수 있는 구조이고 그보다 더 늘릴 수는 없다는 것이다.
자 주목할 것은 여기에있다. 사용자가 4명일 때 2명이 장부를 가지고 있으니 2명당 1개 꼴이다. 하지만 log1024 = 10 이라서 사용자가 1024명이 되면 장부를 보유한 사람은 100명당 1 개 꼴이 된다. 이게 거래소, 메인넷, 블록체인 중앙화의 본질이다.

[요약] 별도의 중개자가 없는 블록체인은 O(n^2) 구조로 비용 때문에 현실세계에 구현이 불가능하다. 가장 비효율적이지만 현실 세계에 구현이 가능한 구조는 O(nlogn)인데 이를 따르려면 블록체인의 사용자가 많아질수록 기하급수적으로 중앙화 될 수 밖에 없다. 이는 채굴 비용이나 거래 처리 방식과는 무관하다.

[전공자를 위한 요약] 이상적 블록체인은 n명의 거래를 n명이 기록함. O(n^2) 그래서 기록 단을 log n 명만 하게 됨. n이 커질수록 기록은 중앙화.


'3개 > 크립토(분류포기)' 카테고리의 다른 글

한동훈 -> 도권  (0) 2022.05.18
usdt, usdc  (0) 2022.05.18
양자역학의 도래  (0) 2022.05.18
차이, amp, 비둘기지갑, 번개  (0) 2022.05.18
극단적 공포의 지속  (0) 2022.05.16