블록체인에서 수수료는 절대 없어지지 않는다

이더리움이란?
블록체인 네트워크는 세계 단위로 펼쳐진 컴퓨팅 자원을 연결해 하나의 거대한 컴퓨터로 동작하는 형태라고 할 수 있다. 이더리움은 이 형태의 대표적인 사례로 다양한 컴퓨터들이 연결되어 다양한 기능을 실행하도록 한다. 이 기능을 스마트 컨트랙트 또는 스마트 계약이라고 부르는데 컴퓨터의 프로그램 또는 애플리케이션과 비슷하다고 생각하는 게 쉽다. 이 하나의 거대한 컴퓨터에는 다양한 프로그램이나 애플리케이션들이 설치되어 있고 누구든지 설치가 가능하며 누구든지 사용이 가능하다. 현재 블록체인 또는 웹 3에 열광하는 소수의 사람들이 있는 이유는 이런 거대한 컴퓨터가 하나 만들어졌기 때문이다. 이 컴퓨터는 컴퓨팅 자원이 세계 단위로 펼쳐져 있기 때문에 보안상으로 안전하지만 누구든지 접근이 가능한 공용의 자원이다. 이점이 특이한데 '누구든지 접근이 가능한 공용의 자원'과 '보안상으로 안전한 것'은 양립할 수 없었다. 기존에는 누구든지 접근할 수 있는 자원은 보안상의 위험을 가지고 있으며 일반적으로 안전하지 않았기 때문이다. 하지만 보안상으로 안전하면서 누구든지 접근이 가능한 하나의 컴퓨터가 생겨남으로써 많은 사람들이 관심을 가지고 다양한 프로그램이나 애플리케이션들을 만들어내고 있다. 만들어내는 것은 좋지만 직면하고 있는 문제는 지금까지 존재하지 않았던 컴퓨터이기 때문에 이것을 어떻게 사용해야 될지 모른다는 점이다. 그래서 많은 개발자들은 프로그램이나 애플리케이션들을 굳이 이 거대한 컴퓨터들을 사용하지 않고 개인의 컴퓨터를 사용해도 되지만 굳이 이 거대한 컴퓨터를 사용해서 돌려보고 있다.
블록체인에 수수료가 필요한 이유
공용의 컴퓨터이기 때문에 이 거대한 컴퓨터에 쓸모없는 애플리케이션을 사용하는 게 무슨 문제인가 싶지만 이 컴퓨터는 하나의 특징이 있다. 프로그램이나 애플리케이션을 사용할 때 수수료가 필요하다는 것이다. 즉, 사용자가 수수료를 낸다. 남들이 이 프로그램을 어떻게 사용했는지 또는 이 애플리케이션을 사용해서 어떤 결과를 냈는지 '보는 것'은 무료이다. 하지만 내가 직접 이 프로그램이나 애플리케이션을 '실행'시키면 돈이 든다. 돈이 드는 이유는 2가지로 정리할 수 있다. 하나는 원하는 사람이 너무 많기 때문이며 그리고 또 다른 하나는 컴퓨팅 자원을 연결해 준 사람에게 보상이 주어져야 하기 때문이다. 컴퓨팅 자원을 제공하는 사람에게 보상을 주지 않으면 세계 단위로 펼쳐져 있는 망이 점점 줄어드는 문제가 발생하고, 원하는 사람마다 프로그램을 실행할 수 있으면 컴퓨터의 한계를 넘고 컴퓨터가 멈춰버릴 것이다. 그렇기 때문에 이더리움에서 도입한 것은 프로그램 실행에 따른 수수료이다. 수수료는 실행 횟수마다 달라질 수도 있지만 프로그램마다 달라진다. 프로그램마다 일정한 수수료를 지불한다면 컴퓨터의 리소스를 잡아먹는 악성 프로그램들을 만들 것이고 결국 컴퓨터를 멈추게 한다. 그래서 연료의 개념인 '가스'를 수수료의 개념으로 도입했다. 가스라는 말을 사용한 것은 컴퓨터의 리소스를 사용한 만큼 수수료로 지불한다는 뜻이다. 거기다가 각 블록당 최대 가스 양을 도입해 각 블록당 사용할 수 있는 컴퓨터 총리소스를 수치화했다. 그래서 이더리움이란 거대한 컴퓨터에서 프로그램을 사용할 때 사용할 수 있는 총 가스 양이 있고 가스를 프로그램을 실행할 때마다 지불한다. 지불한 가스는 컴퓨팅 자원을 지원하는 사람에게 보상으로 돌아가거나 '소각', 즉 없어진다. 이더리움의 가격의 기제는 보상을 받으려는 리소스 제공자와 컴퓨터의 프로그램을 실행하려는 사람으로 이루어진다.
수수료인 가스의 종류는 두 가지
최대 가스 양(리소스 양)을 정해놓았고 만약 사용하려는 가스 양이 최대 가스 양을 넘어간다면 나머지는 다음 블록으로 넘어간다. 이런 메커니즘에서 해커가 악의적으로 프로그램을 엄청나게 많이 실행시킨다면 필요에 의해 프로그램을 돌리려는 사람들은 계속해서 기다려야 한다. 만약 매우 중요한 프로그램이라 이 프로그램을 실행하면 수익을 얻을 수 있는 타이밍인데 이미 실행되어야 하는 프로그램이 많아 하루가 넘게 걸린다면 이 거대한 컴퓨터의 사용자는 떠날 것이다. 수수료가 낮아야 많은 사람들이 사용할 수 있지만 공격이 더 쉬워지고 수수료가 높으면 공격은 방어하기 쉬워지지만 일반 사용자가 사용하기에 점점 어려워진다. 여기서 나온 해결책은 이 수수료를 다이내믹하게 바꾸는 것이었다. 마치 경매처럼 프로그램을 실행하는 사람들은 중요도에 따라 돈을 더 낼 수 있고 빠르게 실행할 필요가 없는 사람들은 일반 수수료만 제공해도 된다. 이것도 수수료에 포함되기 때문에 가스라는 개념이 좀 복잡해졌다.
가스는 두 가지 요소로 구성되는데,
1. 가스 한도: 총 가스 양(총 리소스 양)에서 얼마큼 사용할 건지 나타내는 수치
2. 가스 가격: 얼마나 높은 가격에 구매할 건지 나타내는 수치
이렇게 구성된다. 하나 반가운 점은 이제는 더 이상 두 개를 직접 넣지 않아도 미리 계산되어서 나오기 때문에 이 두 개를 굳이 알 필요도 없어졌으며 미래에는 아예 언급도 안될 것이라고 생각한다. 그럼에도 이 글을 쓰는 이유는 아직도 가스를 접하고 있는 사람들의 이해를 돕는 이유가 하나이고 또 다른 이유는 블록체인에서 수수료는 절대로 없어질 수 없는 개념이라고 이야기하고 싶은 이유이다.
블록체인을 사용하는데 무료라면 성공할 수 없다.
블록체인이 발전하면 발전할수록 수수료는 낮아지겠지만 수수료가 0에 가까워진다면 점점 더 많은 사람들이 이 무료 컴퓨터를 남용하고 이 거대한 컴퓨터의 리소스는 동이 난다. 아무리 슈퍼 컴퓨터라 하더라도 사용자의 숫자가 늘어남에 버틸 수 없다. 따라서 프로그램을 실행하는데 들어가는 수수료로 이 문제는 잡아야 한다. 사용자 대신에 제3자가 수수료를 내주는 방법도 나오고 있지만 어쨌든 누군가는 수수료를 내야 한다. 그렇기 때문에 최근 드는 생각으로는 모든 데이터가 블록체인에 올라가야 한다고 생각하지 않고 있다. 사용자 또는 프로그램 오너의 입장으로 돈이 되는 데이터만 블록체인에 올라가야 한다. 이런 데이터들이 앞으로 무엇이 있을지는 잘 모르겠지만 지금까지는 NFT 또는 토큰들이다. 가치가 있는 NFT나 토큰들은 돈이 되는 데이터이기 때문에 블록체인에 올라가야 한다. 그리고 이 자산을 움직이려면 프로그램을 실행해야 하기 때문에 수수료가 들어간다. 그래서 A에서 B로 보내는 일반적인 전송 프로그램은 많이 사용되지 않을 것이다. 사용할 수수료보다 더 많은 이득을 보는 프로그램에 사용자는 지불할 것이다. 예를 들어 토큰을 누구에게 빌려주고 이자를 받는 프로그램은 많이 사용될 수 있다. 다만 이자가 수수료보다 많아야 많이 사용될 수 있다.
이렇듯이 블록체인은 거대한 컴퓨터이고 이 컴퓨터를 사용하는 리소스는 돈이 든다. 그리고 이 기제는 미래에도 변경되지 않는다. 이 구조를 이해하는 것이 블록체인을 이해하는 데에도 그리고 앱을 만드는데 우선적으로 필요하다.
이미지 출처: OpenAI의 DALL·E를 통해 생성됨


