[블록체인 개념] 정리 4

hskim_·2022년 5월 14일
0
post-thumbnail

ERC-20

이더리움 네트워크에서 대체 가능 토큰을 발행할 때 사용 됨. 이더리움 기반 EVM에서 사용되는 언어인 솔리디티로 제공되며, ERC-20을 이용하면 대체 가능한 토큰을 발행할 수 있음. 대표적인 ERC-20 토큰으로는 유니스왑이 있음.

ERC-721

이더리움 네트워크에서 대체 불가능 토큰을 발행할 때 사용 됨. 대표적인 토큰으로는 CryptoPunks가 있음.

SFT(Semi-Fungible Token)

FT, 대체 가능 토큰과 NFT 대체 불가능 토큰을 합친 토큰의 개념. FT 토큰으로 사용되다가 NFT로 변하는 과정이 SFT가지는 의미라고 생각하면 쉬울듯. 예시로는 아래와 같음

비틀즈의 마지막 공연의 콘서트 티켓을 토큰으로 발행했다고 상상해 보겠습니다. 그리고 이 티켓은 액면가를 가지며 아직 콘서트가 시작하기 전이라고 가정하겠습니다. 이 티켓은 동일한 날짜와 동일한 좌석 공간에 있는 동일한 밴드라면, 동일한 다른 콘서트 티켓으로 교환될 수 있습니다. 콘서트가 끝나면, 티켓을 나타내는 토큰은 (비틀즈의 마지막 공연 티켓이라는) 수집 가능한 기념품이 되어 완전히 새로운 가치를 갖게 됩니다. 동시에, 이 토큰으로 다른 콘서트 티켓과 교환할 수 없다는 것을 의미합니다. 이처럼 FT로 사용되다가 NFT로 변하는 과정이 SFT가 의미를 갖게된 이유입니다.

해당 개념은 게임 산업에서 유리하게 사용될 수 있음. 게임 내에서는 대체 가능한 게임 화폐가(FT) 존재함과 동시에 아이템이라는 대체 불가능한 항목이 공존하며, 이 둘을 교환하도록 해줄 수 있는 토큰 개념이라고 보여짐.

UTXO의 동작 원리

UTXO는 잠겨있는 비트코인이라고 이해하면 끝. 코인을 담는 상자이며, 다양한 양의 코인을 담을 수 있음.

자동차의 가격은 6BTC입니다. 앨리스는 현재 10BTC를 가지고 있으며, 이 10BTC는 하나의 UTXO에 들어있습니다. 이런 경우, 트랜잭션은 입력을 통해 우선 10BTC가 든 출력을 해제한 후에 두 가지 새로운 출력을 만듭니다. 하나는 밥에게 지불되어야 할 6BTC가 든 출력이고, 다른 하나는 앨리스에게 거슬러줄 4BTC가 든 출력입니다. 이 새로운 출력들은 아직 다른 입력에 의해 해제되지 않았기 때문에 UTXO(미사용 트랜잭션의 출력값)가 됩니다.

VM과 EVM


우리가 작성한 코드가 맥북, LG그램에서 각기 다르게 동작하면 문제가 된다는 생각은 너무나도 자연스럽다. 그리고 이는 우리가 일을 두번 해야한다는 말이랑도 같다. 이러한 이유로 보통 하드웨어 위에 가짜 컴퓨터를 하나 더 만들어두는데 이를 가상머신, 즉 VM이라고 한다. VM을 이용하여 어떤 하드웨어(맥북, LG그램)이던 같은 코드가 동일하게 동작하도록 만드는 것이다.
그렇다면 EVM 무엇인가. 우리가 짠 코드와 이더리움 블록체인 사이에 있는 가상 머신이다. 즉, 블록체인에서 우리가 짠 코드가 실행될 수 있도록 해준다. 그리고 이 코드는 solidity라는 언어로 작성된다. 하지만 여기서 EVM은 솔리디티 언어를 바로 이해할 수 없으며, solc를 이용하여 컴파일 후, EVM이 읽을 수 있는 바이트코드 형태로 만들어 전달한다. 그리고 이 바이트 코드를 Geth를 이용해 이더리움 네트워크에 올린다. 정리하자면,

솔리디티 코드 작성 -> solc로 컴파일 -> 바이트코드 -> opcode

상태 머신

이더리움은 거래에 기반을 둔 상태 머신이라고 불리운다. 상태 머신이란 일련의 입력을 읽고, 그 입력을 기반으로 새로운 상태로 전환하는 것으 의미한다. 이더리움의 상태 머신은 genesis states에서부터 시작되었고, 해당 트랜잭션이 실행되면, 다음 상태로 전환하게 된다.

브릿지

토큰이나 임의의 데이터를 하나의 체인에서 다른 체인으로 전송할 수 있게 하는 연결을 의미함. 두 체인은 서로 다른 프로토콜과 규칙 그리고 거버넌스 모델을 가질지언정 브릿지를 이용하여 양쪽이 서로 상호작용 가능한 방법을 제공함.

오라클

먼저 공부한 web API를 통해 외부 데이터를 가져오는 개념이 블록체인과 스마트 컨트랙트용 외부 데이터를 검색 및 검증에 사용되는 것으로 이해하면 될듯하다. dapp을 만든다고 가정할 때, 우리는 직접 수집한 정보가 아닌 이상 다양한 외부 데이터를 끌어다 쓸 수 없다. 오라클은 이러한 문제를 해결해줄 방법이다.
중요한점은 이러한 외부 데이터들은 비결정적인 정보의 형태로 들어오기 때문에 이를 블록체인에서 이해하고 특정 조건에서 실행할 수 있도록 도와주는 역할을 맡고 있다고 생각하면 된다.

profile
열심히, 꾸준히, 그리고 정확히

0개의 댓글