STX; BTC를 기반으로

SungJunEun·2021년 10월 16일
0

Case Studies

목록 보기
3/6
post-thumbnail

본 글은 비트코인 백서을 기반으로 저만의 방식으로 이해하기 쉽게 정리한 글입니다. 하지만, 해당 내용 전체를 다루지 않을뿐만 아니라 포함되어 있지 않은 내용들도 설명을 위해 포함되어 있으므로 주의를 바랍니다. 저 또한 블록체인을 막 공부하기 시작한 사람으로써 오류와 보완할 점 및 피드백 주시면 큰 도움될 것 같습니다!🐶

해결하고자 하는 문제는

STX 개발진들의 주장

STX 백서에 따르면 개발자들은 결국에는 dApp과 여러 사용 케이스들이 비트코인 위에서 이루어질 것이다라고 주장한다. 그 이유는 비트코인이 가장 강력하고 많이 사용되는 기본과 같은 블록체인 네트워크이기 때문이다.

마치 인터넷이 처음 만들어졌을 때 여러 프로토콜들이 경쟁하였지만, 결국 TCP/IP가 승리한 기준이 된 거처럼, 비트코인이 결국에는 블록체인의 기준이 될 것이라고 STX 팀은 예상한다.

이러한 주장을 바탕으로 스택스 프로토콜은 비트코인 프로토콜과 경쟁하는 관계가 아닌, 비트코인 프로토콜을 기반으로 사용한다.

BTC의 기존 문제는?

비트코인은 굉장히 불변적이고 견고한 프로토콜이다. 하지만, 비트코인의 광범위하게 이용되기에 다음과 같은 문제가 있다.

1. 확장성

기존의 비트코인 블록체인은 transaction에 대해 한정된 용량을 가지고 있다.

2. 견고한 컨트랙트

비트코인 블록체인의 한정적인 script 언어는 오류에 강한 견고하고 안전한 언어이지만, 여러 일반적인 스마트 컨트랙트를 지원하지 않는다.

스택스는 새로운 형태의 합의 알고리즘새로운 스마트 컨트랙트 언어를 통해 위 문제를 해결하고자 한다.
이 2가지를 이용하여 스택스는 비트코인 프로토콜 자체를 변형시키는 것이 아닌 자체적인 layer1 블록체인을 만들 수 있게 된다.


PoX, Proof of Transfer

STX ↔ BTC

PoX는 두 블록체인 사이의 새로운 형태의 합의 알고리즘으로 기존의 PoW로 작동하는 블록체인의 토큰을 이용하여서 다른 블록체인의 합의를 이루어낸다. 스택스의 경우에는 비트코인을 베이스 체인으로 이용한다. 기존의 PoB, Proof of Burn 알고리즘에서 토큰을 없애는 것이 아닌 특정 주소로 보내는 것이 차이점이다.

PoX의 장점은 합의 알고리즘에 참여하는 노드들이 새로운 토큰으로 보상받는 것이 아닌 기존의 더 안정된 토큰으로 보상받기 때문에 네트워크 참여의 인센티브를 올려준다.

비트코인 블록체인은 스택스 블록체인의 최종적인 결정성을 제공하는 settlement layer/ source of truth 역할을 하고, 스택스 블록체인은 스마트 컨트랙트의 실행을 맡는다.

채굴자와 홀더

PoX 합의 알고리즘에는 2가지 종류의 참여자가 있다.

1. STX 채굴자

채굴자들은 비트코인 블록체인과 스택스 블록체인 2가지에 모두 접근이 가능하다. 채굴자들은 매 라운드에 리더 선거에 참여하기 위하여 비트코인 블록체인 상에서 특정 주소로 비트코인을 보내야 한다. 비트코인을 많이 보낼수록 뽑힐 확률은 올라간다. 이 후 매 라운드 별로 VRF(Verifiable Random Function)이 랜덤하게 리더를 뽑게 되고, 뽑힌 리더는 스택스 블록체인 상에서 새로운 블록을 만들 수 있는 권한을 얻게 된다. 새로운 블럭을 만든 보상으로 채굴 reward와 해당 블럭에 포함된 transaction 수수료를 STX 토큰으로 받게 된다.

2. STX 홀더

STX 홀더들은 합의 알고리즘에 참여함으로써 BTC 토큰을 보상으로 받게 되고, 이 과정을 Stacking이라고 한다. 참여할려면, 자신의 STX를 일정 시간동안 락업한 뒤, 풀 노드를 가동시켜서 STX 네트워크에 유의미한 정보를 보내면 된다.

디테일

사실 채굴자들이 선거에 참여하기 위해 보내는 비트코인 transaction의 주소는 합의 알고리즘에 참여하는 홀더들의 비트코인 주소이다. 채굴자들이 새로운 블럭을 만들때 VRF이 네트워크에 참여하는 홀더들의 비트코인 주소 중에 랜덤하게 5개를 정하게 되고, 블럭이 유효하게 되면, 채굴자가 투표에 사용한 BTC는 이 주소들로 보내지게 된다.

한마디로 채굴자들은 채굴에 들어간 자원을 비트코인으로 표현하고, 채굴에 대한 보상을 STX 토큰으로 받는다.
홀더들은 STX를 락업하고, 스택스 네트워크에 기여함으로써 BTC를 보상으로 받는다.


Clarity 언어

Clarity는 예측성과 보안에 최적화된 스마트컨트랙트를 위한 새로운 프로그래밍 언어이다. 이 Clarity를 통해 스택스 블록체인 위에서 비트코인 블록체인을 기반으로 스마트 컨트랙트 작성이 가능해진다. Clarity는 다음과 같은 특징들을 가진다.

  • Clarity는 Decidable 언어이다.

    코드만 보고도 우리가 이 프로그램이 어떻게 작동할 지 알 수 있을 때 우린 이 언어를 decidable 언어라고 한다.

    또한 Clarity는 튜링-완전 언어에서 일어날 수 있는 여러 추상적 문제들을 방지하기 위해 의도적으로 튜링-불완전하게 만들어졌다.

    마지막으로 Clarity 코드는 런타임 cost와 데이터 사용량을 미리 분석할 수 있어서 프로그램을 실행하기 전에 해당 프로그램이 얼마만큼의 비용이 들지 예측할 수 있다.

  • 컴파일러가 불필요하다.

    보통 우리가 사용하는 프로그래밍 언어는 인간인 우리가 보기에 편하게 작성된 것으로 컴파일러를 거쳐야지만 컴퓨터가 이해할 수 있는 형태로 바뀐다. 하지만 Clarity의 경우에 우리가 작성하는 코드 그자체가 블록체인 노드에 실행되어서 컴파일러가 따로 필요없다.

    컴파일러가 없는 것에는 몇가지의 장점이 있다. 먼저 코드의 이해력이 올라가고, 미연에 컴파일러 버그를 방지한다. 컴파일러 버그란 소스 코드 자체에는 문제가 없지만, 실행하였을 때 문제가 생기는 까다로운 문제이다.

  • 비트코인 블록체인에 접근가능하다.

    Clarity는 비트코인의 상태에 접근 가능함으로 비트코인 transaction에 의거하여 스마트 컨트랙트를 발생시킬 수 있다.

    또한 SPV가 내장되어 있어서 프로그래머들이 쉽게 비트코인 블록체인에 접근할 수 있다.


    References

    Stacks 2.0 Apps and Smart Contracts for Bitcoin

    Proof of Transfer Whitepaper

profile
블록체인 개발자(진)

0개의 댓글