[Blockchain 입문] 개발자를 위한 Why Blockchain

[Blockchain 입문] 개발자를 위한 Why Blockchain
Photo by Nenad Novaković / Unsplash

[요약]

  • 비트코인은 인터넷 결제 시스템에서 처음으로 중앙 주체를 성공적으로 없앤 시스템이다.
  • 비트코인은 분산 DB의 일종으로 볼 수 있다. 일반적인 분산 DB와 다른 점은 Permissionless 하여 어느 노드든 이 시스템에 참여할 수 있다는 점이다.
  • 이더리움은 월드 컴퓨터를 표방한다. 화폐 결제 시스템이 목표인 비트코인과 다르다.
  • 이더리움의 등장으로 web3가 본격적으로 논의되기 시작했다. Web3는 사용자에게 데이터 소유권을 가지게 하는 개념이다.
  • Web3는 소유권을 유저에게 넘김으로써 데이터를 퍼블릭하게 공개한다. 이를 토대로 돈을 만들어내는 BM은 아직까지 없다.
  • 블록체인은 만병통치약이 아니다. 하지만 특정 문제를 풀 때 적합한 솔루션이 될 수 있다.
  • World Coin Project는 오픈 AI의 샘 알트먼이 리딩하는 블록체인 프로젝트로 AI 기술의 급격한 발전으로 인한 소득 재분배 문제를 해결하는 프로젝트다. 블록체인을 문제 해결의 도구로 사용한 프로젝트의 예시 중 하나다.

[목차]

  1. 비트코인의 등장 배경
  2. 분산 DB 관점에서 보는 비트코인
  3. 이더리움의 등장
  4. Web3
  5. 개발자는 블록체인을 어떻게 사용해야 할까
  6. 참고: World Coin Project
  7. 마무리

이 글은 블록체인에 대해 잘 모르는 개발자들을 위해 쓰여진 글이다. 블록체인이 무슨 특징이 있고 어떠한 문제를 풀기 위해 사용하면 좋은지 다룰 것이다. 개발자의 블록체인에 대한 이해를 높여 서비스를 만들 때 자신의 옵션으로 둘 수 있도록 하는 것이 목적이다.  

Web3 생태계나 블록체인의 원리에 대한 설명을 다루지 않는다.

1. 비트코인의 등장 배경

2008년, 사토시 나카모토는 암호학에 관심이 있는 사람들을 위한 포럼인 크립토그래피 메일링 리스트에 글을 올린다.

I've been working on a new electronic cash system that's fully
peer-to-peer, with no trusted third party.

The paper is available at:
http://www.bitcoin.org/bitcoin.pdf

...
https://www.bitcoin.com/satoshi-archive/emails/cryptography/1/#selection-29.0-29.168

"신뢰하는 제 3자 없이 개인과 개인 사이에서 동작하는 새로운 전자화폐 시스템을 만들었다"

신뢰하는 제 3자가 없다는 것이 무슨 뜻일까? 그리고 이것이 왜 중요한 것일까? 현재 인터넷의 결제 시스템을 먼저 보면 이해가 쉽다.

달러던, 원이던 인터넷에서 결제를 하려면 정부가 인가한 소수의 은행 및 기업들을 통해야 한다. 인터넷에서 데이터를 위조하는 것은 너무 쉽기 때문에 정부에 의해 관리되야하는 "돈"은 소수에게 제한된 기능으로만 사용되고 있다. 한국만 해도 핀테크 어플리케이션을 만드려면 정부가 허용한 오픈뱅킹 API를 사용할 수밖에 없다.

이러한 중앙화 시스템은 여러 문제가 있다. 먼저 중개인이 마비가 되었을 때 시스템 전체가 마비가 되는 Signle Point of Failure 문제가 있다. 또 다른 문제로는 중개인의 힘이 너무 강하다는거다. 중개인이 자신의 마음대로 한 사용자를 무력화할 수 있는 것이다. 최근 일어난 사례로는 EU가 국제은행간통신협회(SWIFT) 결제망에서 러시아 은행을 제외한 것이 있다. 러시아 전쟁의 옳고 그름을 떠나 특정 국가가 자신의 정치적 이익 등을 고려해 특정 구성원을 언제든 시스템에서 제외할 수 있는 것을 보여준 사례이다. 그 외로 중개인의 내부자가 나쁜 짓을 하지 않을 것이고 해커에게 뚫리지 않을 것이라는 믿음이 필요하다는 문제도 있다.

비트코인은 인터넷 결제 시스템에서 처음으로 중앙 주체를 성공적으로 없앤 시스템이다. 비트코인 시스템을 구성하는 노드는 중앙 주체로부터 선택 받은 일부가 아니라 그 누구나가 될 수 있다. 전 세계에서 서로 모르는 이들이 자신의 비트코인 노드들을 돌리고 있다.

중앙 주체를 없앴음에도 결제 데이터 위조를 잘 막아내고 있다. 비트코인을 구성하는 전체 노드 해시 파워의 51%를 차지하지 않는 이상 결제 데이터를 위조할 수 없다. 그리고 전체 노드 해시 파워의 51%을 차지하는 것은 물리적으로 불가능하고(GPU 부족) 경제적으로도 손해다. (이번 글에서는 비트코인의 원리를 다루지 않으니 궁금하신 분들은 PoW, 51% 공격 등을 키워드로 검색해보면 도움이 될 것이다).

https://news.bitcoin.com/14th-anniversary-of-bitcoins-genesis-block-a-look-back-at-the-birth-of-cryptocurrency/

비트코인은 인터넷 결제뿐 아니라 화폐 시스템 자체에도 문제를 제기했다. 비트코인의 첫번째 블록에 담긴 메시지에는 The Times의 2009년 1월 3일 헤드라인 기사가 담겨있다. 해당 기사는 영국 재무장관이 부실 은행을 위해 구제 금융을 결정한 내용이었다. 이 메시지에 대한 해석은 다양할 수 있으나 2008 금융 위기에 대한 비판이라는 것이 중론이다.

https://goldalliance.com/blog/market-insights/is-the-us-dollar-truly-strong-the-facts-may-surprise-you/

정부가 금융 위기를 극복하기 위해 통화량을 늘리면 그 부담은 자산을 화폐로 가지고 있는 국민이 부담을 한다. 정부는 화폐 시스템을 통제하기 때문에 국민의 동의 없이도 화폐의 통화량을 조절할 수 있다. 이 때문에 달러는 100년 동안 대다수의 가치를 잃었고 부동산 및 증권 등 화폐 외 자산을 가진 자와 그렇지 못한 자의 빈부격차도 커졌다. 비트코인은 통화 정책이 이미 결정이 되어 있고 중앙 주체에 의해 변경되지 않기 때문에 비트코인 맥시멀리스트들은 이 점을 들어 법정 화폐를 비판하고 비트코인에 열광하기도 한다.

2. 분산 DB 관점에서 보는 비트코인

비트코인은 개발자의 관점에서 봤을 때 분산 DB라고 볼 수 있다.

분산 DB를 이루는 모든 노드는 시간 차가 있을 수 있어도 어느 시점에는 데이터가 일치해야 한다(최종적 일관성). 분산 DB마다 사용하는 알고리즘이 조금씩 다르지만 보통 단일 리더(single-leader), 다중 리더(multi-leader), Leaderless 이 3가지 알고리즘 중 하나를 사용하여 DB의 기능을 지원하면서도 최종적 일관성을 만족하고 있다.

복제 DB에서 리더는 쓰기를 처리하는 순서를 정하고 팔로워는 동일한 순서로 리더의 쓰기를 적용한다. 따라서 리더가 존재하는 단일 리더 및 다중 리더 알고리즘은 중앙화가 되는 알고리즘이라고 할 수 있다. 다만 리더가 셧다운되면 새로운 리더를 선출하기 때문에 앞서 다뤘던 중앙화 시스템이랑 같다고 할 수는 없다.

Leaderless 알고리즘을 사용하는 DB는 모든 노드가 쓰기 요청을 받고 이를 다른 노드에게 전파한다. 이 과정에서 쓰기 순서를 따로 정하지 않기 때문에 같은 키에 쓰는 요청이 여러 개가 들어오는 경우 이를 해결하는 로직이 따로 존재한다. 또한 클라이언트가 모든 노드에게 읽기, 쓰기 요청을 보내야 하는 특징도 있다.

비트코인도 분산 DB이고 최종적 일관성을 만족해야하기 때문에 위 3가지 알고리즘 중 하나를 적용해야 한다고 생각할 수 있다. 하지만 비트코인의 합의 알고리즘은 다른 DB에서 사용하는 알고리즘과 너무나도 다르다.

비트코인과 흔히 서비스에서 사용하는 분산 DB 알고리즘이 다른 이유는 바로 노드 참여 허용 여부이다.  개발자들이 서비스에 사용하는 분산 DB는 당연히 자기가 가지고 있는 노드들로만 구성할 것이다. 그리고 자신의 노드이기에 당연히 신뢰할 수 있다. 그러나 비트코인은 아무나 언제든 이 분산 시스템에 노드로 참여할 수 있다. 만약 허용된 노드만 들어오면 기존의 중앙화 화폐 시스템과 다를 게 없어지기 때문이다. 그렇기 때문에 Leaderless에서 쓰기 순서를 다루는 알고리즘을 사용하기 어려워진다. 보통 버전을 가지고 어떤 트랜잭션이 먼저 발생했는지 결정하는데 노드가 악의적으로 버전을 변경했을 가능성이 있기 때문이다.

그래서 비트코인이 사용한 합의 알고리즘이 바로 그 유명한 PoW이다. 다만 PoW를 사용하면 각 노드가 계산하기 위해 엄청난 에너지를 소모해야 하기 때문에 노드로 참여할 유인이 없어진다. 노드가 없어지면 소수의 노드가 참여하기 때문에 중앙화 시스템이 되버린다. 그래서 노드로 참여해 블록을 생성하면 보상으로 코인을 주는 것이다.

3. 이더리움의 등장

월드 컴퓨터

2015년 7월 이더리움의 첫 블록이 채굴되었다.

이더리움의 목적은 비트코인과는 사뭇 달랐다. 비트코인은 개인 간 전송 가능한 가상화폐 시스템이 목적이고, 이더리움은 월드 컴퓨터를 표방한다. 따라서 이더리움은 코드를 실행할 수 있는 가상 머신을 운영하는 블록체인으로 설계되었다. 비트코인도 비트코인 스크립트를 통해 프로그래밍을 할 수 있지만 매우 제한되어 월드 컴퓨터와는 거리가 멀다.

블록체인의 구성 요소에는 트랜잭션을 처리하는 상태 머신이 있다. 블록을 통해 현재 상태를 계산할 수 있고, 새 블록에 담긴 트랜잭션을 통해 다음 상태를 계산할 수 있다. 비트코인은 비트코인의 소유 상태를 블록에 담는다. 비트코인 블록의 트랜잭션이 코인의 소유권을 변경하고 이를 계산하면 어떤 계정이 몇 비트코인을 가지고 있는지 알 수 있다. 이더리움은 화폐 소유 상태만 추적하는 것이 아니라 키-밸류 튜플로 표현할 수 있는 모든 데이터의 상태를 추적한다.

EVM

EVM. https://github.com/ethereumbook/ethereumbook

위는 이더리움의 가상머신 EVM이다. EVM에서 실행되는 프로그램을 스마트 컨트랙트라고 한다. EVM은 트랜잭션이 들어오면 트랜잭션이 가리키는 스마트 컨트랙트 코드를 실행한다. 이때 EVM은 현재 블록 및 처리 중인 트랜잭션 관련 필요한 모든 정보를 인스턴스화 한다. EVM의 ROM에는 컨트랙트 계정 코드가 로드되고 프로그램 카운터는 0, 메모리 0, 스토리지는 컨트랙트 계정 스토리지가 로드된다. 코드 실행이 완료가 되면 컨트랙트 계정의 데이터가 변경되고 모든 변경된 데이터가 업데이트 된다.

튜링 완전

튜링 머신은 1936년 수학자 앨런 튜링이 제안한 이론적 계산 모델이다. 튜링 머신은 무한히 길고 넓은 테이프와 테이프를 읽고 쓸 수 있는 헤드, 상태 기록기, 행동 표를 가지고 있다. 현재 모든 컴퓨터는 본질적으로 튜링 머신과 동일하다.

시스템이 튜링 머신을 시뮬레이션할 수 있다면 이를 튜링 완전하다고 한다. 이더리움 가상 머신은 상태 머신에서 메모리에 데이터를 읽고 쓰면서 튜링 완전 시스템을 가능하게 한다. 따라서 이더리움 가상 머신에서 모든 계산을 수행할 수 있는 것이다. 따라서 이더리움은 탈중앙화된 단일 상태 월드 컴퓨터인 것이다. 이더리움에 올라간 프로그램(스마트 컨트랙트)는 모든 노드에서 실행되고 합의 규칙에 의해 보장되는 공통 상태를 만든다.

하지만 개방된 시스템에서 튜링 완전은 취약하다. 튜링은 정지 문제를 제안하고 튜링 머신에서 이 문제가 계산 불가능함을 증명하였다. 정지 문제란 특정 프로그램이 종료할 것인지 무한히 계속 실행될 것인지 판별하는 문제이다.  따라서 특정 프로그램을 직접 실행하기 전에는 정지할지 판별하는 것이 불가능하다. 개방된 시스템에서는 아무나 프로그램을 올릴 수 있어 악의적으로 무한히 실행하는 프로그램이 올릴 수 있고 이를 판별할 수 있는 방법이 없다. 만약 이더리움에 정지하지 않는 스마트 컨트랙트가 올라오면 전 세계의 노드가 해당 컨트랙트를 영원히 실행하고 있을 것이다.

이더리움은 컨트랙트가 무한히 실행되는 것을 막기 위해 가스라는 과금 메커니즘이 있다. EVM이 스마트 컨트랙트를 실행하게 되면 명령어를 사용할 때 마다 가스를 소비한다. 만약 계산에 소비되는 가스의 총량이 트랜잭션이 제시한 최대 가스 사용량을 초과하면 EVM은 실행을 중지한다. 이렇게 가스로 각 프로그램이 사용하는 리소스를 제한해 이더리움 튜링 완전 계산을 허용한다.

Solidity

스마트 컨트랙트를 작성할 수 있는 언어 중 대표적인 언어가 Solidity이다. Solidity로 작성한 컨트랙트의 코드를 보면 이더리움이 말하는 월드 컴퓨터 및 추적 가능한 데이터에 대해 감을 잡을 수 있을 것이다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import "./IERC20.sol";

contract ERC20 is IERC20 {
    uint public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;
    string public name = "Solidity by Example";
    string public symbol = "SOLBYEX";
    uint8 public decimals = 18;

    function transfer(address recipient, uint amount) external returns (bool) {
        balanceOf[msg.sender] -= amount;
        balanceOf[recipient] += amount;
        emit Transfer(msg.sender, recipient, amount);
        return true;
    }

    function approve(address spender, uint amount) external returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint amount
    ) external returns (bool) {
        allowance[sender][msg.sender] -= amount;
        balanceOf[sender] -= amount;
        balanceOf[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function mint(uint amount) external {
        balanceOf[msg.sender] += amount;
        totalSupply += amount;
        emit Transfer(address(0), msg.sender, amount);
    }

    function burn(uint amount) external {
        balanceOf[msg.sender] -= amount;
        totalSupply -= amount;
        emit Transfer(msg.sender, address(0), amount);
    }
}
https://solidity-by-example.org/app/erc20/

이더리움에서 Fungible 토큰 스펙인 ERC20을 구현한 컨트랙트이다. 컨트랙트가 balanceOf라는 map을 들고 있고 여기에 유저의 주소와 토큰의 양을 매핑하고 있다. transfer 함수는 이 map의 상태를 변화시킨다. 이더리움에 이 컨트랙트의 transfer 함수를 실행시키는 트랜잭션을 제출하면 EVM은 컨트랙트의 스토리지 상태를 변화시키게 된다.

이더리움은 이렇게 스마트 컨트랙트를 배포할 수 있게 허용함으로써 화폐인 이더뿐만 아니라 컨트랙트 상에서 정의된 토큰(ex ERC20)들도 교환을 할 수 있게 만들었다. 컨트랙트로 정의할 수 있는 것은 무한하기에 ERC20 토큰 뿐만 아니라 NFT(ERC721) 토큰도 스펙이 정해지고 널리 사용되고 있으며 지금도 여러 시도가 계속되고 있다.

4. Web3

💡
Web3의 개념은 사람들 사이에서 아직 의견이 분분하다.
아래 내용은 이더리움 재단에 기술된 내용을 참고하였다.

Web 1.0: Read-Only

https://ethereum.org/en/web3/

WWW가 개발된 1989년부터 2004년까지를 Web 1.0이라고 한다.

웹사이트는 대부분 static하였고 유저와 상호작용이 거의 없었다. 사이트를 운영하는 사람이 올린 컨텐츠만 소비할 수 있었기 때문에 이때를 read-only web이라고 한다.

Web 2.0: Read-Write

https://ethereum.org/en/web3/

소셜 미디어 플랫폼이 등장하면서 Web 2.0의 시대가 열린다. 유저간 상호작용을 하고, 플랫폼에 자신이 생성한 컨텐츠를 공유하며 Read-Write를 시작한 것이다.

시간이 지나며 거대 플랫폼에 사용자들이 몰리고 플랫폼을 소유한 회사들이 이러한 트래픽을 광고 BM에 이용해 돈을 벌었다. 플랫폼의 힘이 커지면서 컨텐츠를 생성한 것은 유저들이지만 돈을 거의 벌지 못하고 수익이 회사들에게 집중되는 문제가 생겼다.

Web 3.0: Read-Write-Own

https://ethereum.org/en/web3/

Web 3.0은 사용자가 데이터를 읽고 쓸 수 있을 뿐만 아니라 소유한다는 개념을 추가하였다.

Web 3.0은 블록체인이 주목받기 시작하면서 많이 사용되기 시작하였다. 블록체인은 중앙화된 주체가 없고 trustless한 네트워크이기 때문에 사용자가 데이터를 소유할 수 있게 되었기 때문이다. 비트코인은 화폐를 사용자에게 소유할 수 있도록 하였다. 비트코인 사용자는 자신이 소유한 비트코인을 자유롭게 이동할 수 있다. 이더리움은 다루는 데이터의 범위를 코인을 넘어 토큰으로 범위를 넓혔다. 이를 통해 유저는 가버넌스 토큰, ERC20 토큰, NFT 등 다양한 데이터를 소유할 수 있게 되었다.

Web 3.0은 데이터의 소유권이 플랫폼에 있어 회사의 힘이 너무 강했던 web 2.0의 단점을 보완한다. 예시로 게임을 들어보겠다. Web 2 게임은 계정과 아이템이 게임 회사에 묶여 있어 아이템을 자유롭게 거래하지 못한다. 또한 언제든지 회사가 계정을 정지시킬 수 있다. 회사가 자신의 서버에 데이터를 전부 가지고 있고 컨트롤 할 수 있기 때문이다. Web3에서는 블록체인의 계정이 아이템을 가지고 있고 그 어떤 주체도 특정 블록체인 계정을 정지시킬 수 없다. 해당 계정이 자신이 가지고 있는 다른 계정으로 아이템을 전송하는 것 또한 막을 수 없다.

데이터의 소유권을 유저에게 넘긴다는 이야기는, 데이터를 퍼블릭하게 공개한다는 것이다. 누구던 블록체인에 쿼리를 할 수 있기에 데이터가 공개되있고 이는 자신이 가진 데이터를 이용해 돈을 벌던 Web2의 BM이 더 이상 작동하지 않음을 의미한다. 현재 수 많은 블록체인 프로젝트들이 있었지만 Web3에 알맞은 새로운 BM으로 돈을 번 프로젝트는 나오지 않았다. 대부분의 프로젝트가 Web2 방식 BM에 코인을 찍어 파는 것을 덧붙인 것이 다이다. 당연히 이는 지속 가능하지 않고, 수 많은 프로젝트의 토큰의 가치가 0으로 수렴했다.

최근 국내 게임 회사들이 Web3의 특성을 활용한 게임을 만들려고 하고 있어 기대가 크다. 넥슨의 경우 메이플스토리의 아이템을 체인에 올린 뒤 유저들이 해당 아이템을 이용해서 게임을 만들 수 있는 SDK를 공급한다고 한다. 그동안 우리는 게임 회사들의 유저 및 아이템 정보를 알 수 없었고 따라서 이를 재가공해 다른 게임을 만들 수 없었다. IP 문제 또한 존재하였다. 블록체인을 통해 이를 풀어놓게 되면 유저들이 게임 아이템을 이용해서 컨텐츠를 재생산할 수 있을 것이고 이는 메이플스토리의 인기를 더 끌어올릴 수 있는 방법이 될 수 있다. 국내 게임 회사들이 Web3에 적합한 BM을 찾아낼 수 있을지 기대가 크다.

5. 개발자는 블록체인을 어떻게 사용해야 할까

블록체인은 소유권 이동을 인터넷 상에서 가능하게 해준다. 개발자는 서비스를 구성할 때 블록체인을 그 이상, 그 이하로 생각하면 안된다고 생각한다.

블록체인은 만병통치약이 아니다. 어떤 서비스들은 마치 블록체인을 사용하면 데이터 위변조가 절대 불가하고 해킹도 안된다는 식으로 마케팅을 한다. 블록체인 위에 올라간 데이터는 위변조가 불가한 것이 맞다. 하지만 블록체인을 회사에서 운영한다면 이야기가 다르다. 회사 노드가 대부분이고 심지어 노드 참여가 permissionless 하지도 않다면 언제든지 회사 입맛대로 데이터를 변경할 수 있다. 해킹 같은 사고도 프로젝트의 다른 구성 요소에서 발생한다면 막을 수 없다.

블록체인은 비효율적이고 느리다. 하나의 서버에서 할 수 있는 일을 굳이 여러 주체가 각자의 노드를 돌리며 운영하고 합의하는 과정을 거쳐야 하기 때문이다. 만약 자신의 프로젝트의 데이터 소유권을 유저에게 주고 싶은 마음이 없다면 블록체인을 사용할 이유가 하나도 없다.

하지만 블록체인이 쓸모 없는 것은 아니다. 일부는 블록체인이 너무 느리고 비싸기 때문에 대중화될 수 없다고 말한다. 하지만 블록체인을 쓰지 않으면 해결할 수 없는 지점들이 분명히 있다. 필자가 생각했을 때 블록체인을 적용하면 풀 수 있는 문제들의 예는 아래와 같다.

  • 부동산 등기
  • STO
  • 빠른 성장을 위한 인센티브 지급

부동산 등기

현재 부동산 등기 시스템은 정부가 관리자다. 부동산을 누가 점유하고 있는지 알기 어렵기 때문에 국가에서 등기부라는 공적 장부를 만들고 법원등기관에게 부동산의 표시와 그 부동산에 대한 권리관계를 작성한다. 부동산이라는 실물 자산을 인터넷 상의 시스템에 반영하는 것이 어렵기 때문에 여러 기관을 거치고 비효율적인 절차가 생기게 된다.

블록체인은 이를 해결할 수 있는 도구이다. 정부가 발급하는 토큰과 부동산 실물자산이 연결되어 있다고 가정해보자. 우리는 부동산 소유권을 트랜잭션 하나로 다른 사람에게 넘길 수 있다. 정부 차원에서 A 토큰을 가지고 있는 사람이 A 부동산의 소유권을 가지고 있음을 보장해주면 된다.

전기등기부의 대조를 사람이 하고 있다. 이렇게 할 필요가 있을까? 출처

현재 부동산 등기는 신청소와 전자등기부를 대조하고 기입하고 저장하는 과정을 전부 사람이 하고 있다. 블록체인을 사용하면 충분히 해결 가능한 문제다.

어차피 정부가 보장하는 것이라면, 정부가 운영하는 프라이빗 서버에 부동산을 토큰과 매핑하는 프로그램을 띄워도 되는 것 아니냐고 반문할 수도 있다. 블록체인 도입의 장점은 관리자를 없애는 것이다. 노드 운영을 기관들에게 허용하고 블록체인을 도입을 한다면 많은 비용을 절감할 수 있다. 예시로 단순히 토큰으로 부동산의 소유권을 이전하는 것을 들었지만 그 밖의 부동산 관련 정보들도 블록체인 상에 올린다면 기관간 정보 공유 및 관리가 훨씬 쉬워질 것이다.

우리는 왜 단순 부동산 소유 DB 조회에 700원이나 내야할까? 출처

현재 부동산 등기 열람만 하더라도 우리는 700원을 내야 한다. 정부가 관리하는 DB 서버 조회 한번에 700원이 드는 것이다. 정부의 서버 관리 비용을 충당하기 위함이라면, 블록체인 도입으로 정부의 비용을 해결하고 사용자는 싼 값에 DB 조회를 할 수 있다.

STO (Security Token Offering)

STO란 기존 금융시장에 존재했던 증권들을 블록체인의 토큰으로 만들어서 유통시키는 것이다. 우리나라의 경우 이미 23년 2월 6일 관련 가이드라인이 발표되었다.

STO에서 다루는 토큰은 증권형 토큰(Security Token)으로 주식, 채권, 부동산 등의 실물자산을 블록체인 기반 토큰으로 연동한다. STO는 쉽게 말해 이렇게 새로 발행되는 증권형 토큰을 증권사들이 판매하는 것이라고 보면 된다.

실물 자산을 이렇게 토큰으로 연동하면 좋은 점이 무엇일까? 토큰은 유동성이 풍부하고 거래 비용도 적다. 또한 소수점 단위로 거래할 수 있다는 것도 장점이다. 소수점 단위로 거래할 수 있다는 것은 분할 소유가 가능하다는 것이고 이를 통해 가격이 비싸 접근성이 떨어졌던 부동산, 미술품 등에 투자가 가능해진다. 또한 주식처럼 증권사를 끼고 거래할 필요가 없어 수수료를 낼 필요가 없다. 스마트 컨트랙트를 통해 사전에 정의한 대로 거래할 수 있기 때문이다.

STO가 활성화되면 소수의 사람들만 접근할 수 있던 고가의 자산군에 대중들이 투자하기 쉬워지고 관련 시장이 폭발적으로 성장하면서 여러 비즈니스 기회가 열릴 수 있다고 생각한다.

빠른 성장을 위한 인센티브 지급

플랫폼 사업을 영위하는 초기 스타트업의 가장 큰 문제는 유저가 없는 것이다. 플랫폼 사업에 유저가 많을수록 유저에게 주는 가치가 기하급수적으로 늘어나기에 유저를 빠르게 모으는 것이 중요한데, 아무도 없는 플랫폼을 이용할 유저는 거의 없다.

프로젝트 초기 사용자에게 프로젝트의 가버넌스 토큰을 지급하는 것은 이를 해결하는 방식이다. 가버넌스 토큰에 대한 자세한 내용은 이전 글에 자세히 작성했으므로 이번 글에서는 생략하겠다. 초기 유저에게 가버넌스 토큰을 지급하고 프로젝트의 수익을 가버넌스 토큰에 배당의 형태로 배분한다면 이러한 수익을 노리고 프로젝트 초기임에도 사용자가 몰릴 수 있다.

이러한 형태는 일반적인 기업에서는 불가하다. 회사의 서비스를 사용하는 유저에게 회사의 주식을 지급해주는 방식은 법적 규제로 불가한 상태다. 이를 토큰으로 풀어낸다면 초기 플랫폼 사업의 가장 큰 문제를 해결하는데 도움이 될 수 있을 것이다.

6. 참고: World Coin Project

오픈 AI의 샘 알트먼 블로그를 보면 기술의 발전으로 노동 가격의 하락으로 자본은 폭발적인 부가 쌓는 반면 대중들은 경제적으로 악화되는 상황을 예견한다. 그리고 이를 해결하기 위해 자본이 쌓은 부를 대중들에게 나누는 정책이 필요하다고 주장한다. 전통적으로 이를 해결하는 방법은 소득에 누진적으로 세금을 부과하는 것이지만 AI의 발전으로 대부분의 사람들이 일을 하는 시간이 줄어들게 되면서 이러한 방식으로는 해결이 불가하다고 말한다. 그렇기에 자본과 토지에 대한 과세를 이야기함과 동시에 기본소득 펀드를 만들어 18세 이상의 시민들에게 분배하는 것을 주장한다.

월드 코인 프로젝트는 샘 알트먼의 이런 생각의 연장선으로 보인다. 기본 소득을 구현하는 도구로 블록체인을 선택한 것이다. 월드 코인은 지구 상의 모든 사람이 글로벌 경제에 접근할 수 있는 시스템을 꿈꾸고 있다. 월드 코인의 메인 넷이 출시되면 사람들은 월드 ID를 사용해 무료 월드코인 토큰을 받을 수 있다. 그리고 사람마다 정확히 한 개의 아이디 발급을 위해 홍채 스캔 구슬인 오브(orb)를 이용해 월드 ID를 생성한다. 한 사람당 한 개의 계정, 그리고 계정당 토큰 분배를 통해 기본 소득을 구현한 시스템이다.

개인적으로 월드 코인 프로젝트는 앞으로 지켜볼만한 프로젝트라고 생각한다. 월드 코인의 가치와 AI 기술로 생성되는 소득의 연결 고리만 잘 고안을 한다면 글로벌하게 실행되는 첫 기본소득 프로젝트가 될 것이다. 월드 코인 프로젝트는 홍채 데이터에 대한 프라이버시, 기본소득이 정말 부의 불평등을 해결할 수 있을지 등 여러 논란에 휩싸여있다. 하지만 이러한 논란을 잘 이겨낸다면 블록체인을 핵심으로 사용하면서 글로벌하게 히트한 첫 프로덕트가 될 수 있을 것이라고 생각한다.

7. 마무리

비트코인과 이더리움 그리고 블록체인을 적용할 수 있는 문제 몇가지와 실제 사용 예인 월드 코인 프로젝트까지 살펴보았다. 이 글에서 다루지 않은 주제들은 수 없이 많다. 하지만 이 글에서 나온 내용들만 잘 찾아봐도 블록체인을 프로덕트에 사용했을 때 얻을 수 있는 장/단점을 어느정도 이해할 수 있을 것이라고 생각한다. 부디 이 글이 개발자들이 블록체인에 대한 이해도를 높이는데 도움이 됬으면 좋겠다.


Reference

사토시의 서

데이터 중심 어플리케이션

비트코인, 공개 블록체인 프로그래밍

마스터링 이더리움

우리는 애플리케이션이 필요하다

What Is Web3?

블록체인(Block Chain)과 부동산 시장

대신증권 산업 분석 증권업: STO, 뭐든 쪼개서 팝니다(23.02.07)

Moore's Law for Everything

샘 알트만의 월드코인은 인류를 구원할 수 있을까?