스마트컨트랙트와 탈중앙화앱

심우진·2021년 12월 27일

내가 블록체인을 처음 접하게 된 때는 2017년 여름이었다.
마이이더월렛에 지갑을 만들고 국내 거래소에서 코인을 사서 해외 거래소 지갑에 전송 후 바이낸스나 비트릭스에서 알트 코인을 구매 후 마이이더월렛에 저장하기도 해보고 ICO에 참가도 했었다.

돈 탭스콧의 블록체인혁명 TED영상을 보고 이 기술이 세상을 바꿀 혁명적이고 미래의 새로운 플랫폼이라는
말에 흥분되었고 이 기술을 배워서 이 분야에서 일해보고 싶다는 막연한 생각이 들었다.
당시 국내에서 블록체인을 배우려면 서강대 대학원과정 밖에 없었다.
그런데 요즘에는 자료도 많고 책도 많이 나와서 다시 관심을 가지게 되었다.

비트코인과 같은 블록체인에 열광하는 이유는 전 세계 누구나 디지털통화를 P2P(peer to peer)방식으로
전송 할 수 있다는 것이다.
기존에 돈을 송금하려면 국민은행과 같은 은행을 거쳐서 돈을 보내야 하지만
디지털통화는 은행을 거치지 않고 보내고 싶은 사람에게 바로 보낼 수 있다.

트랜잭션(Transaction)

어떤 기능을 실행한지, 그 기능을 실행하기 위한 데이터 파라미터, 그리고 메시지 송신인, 수신인,
수수료, 저장할때의 타임 등을 포함하는 P2P 메시지로서 블록체인에 기록된다.

블록체인이란 무엇인가?

블록체인은 peer 참여자들 간의 트랜잭션으로 이루어진 탈중앙화 시스템에 신뢰를 구축해 주는 기술이다.
블록체인의 목적은 참여자들이 올린 트랜잭션을 확인하고 검증해주고, 그 트랜잭션을 실행해 주며,
각 참여자의 동의하에 이러한 행위들의 증거를 기록해 주는 것이다.
블록체인 기반 신뢰 인프라는 특정한 목적, 즉 많은 수의 P2P참여자들 간에 신뢰 중개를 만드는
소프트웨어를 포함하고 있다. 이 시스템은 이를 둘러싼 더 큰 시스템에 신뢰를 제공하기 위해
블록체인에서 확인하고 검증하고 기록한 데이터를 포함한 메세지를 보낼 수 있다.
블록체인 프로그래밍은 기존 시스템을 전부 대체한다기보다 확인과 검증을 하는 신뢰 중개 코드를 바탕으로
기존 시스템을 개선하는 것이다.

비트코인은 오직 지갑 애플리케이션만 가지고 있지만,
이더리움은 스마트 컨트랙트라는 프로그래밍이 가능한 코드 기능을 제공한다.

  • 프로토콜 레벨 프로그래밍: 블록체인 자체의 배포와 운영을 위해 필요한 소프트웨어와 관련된 것이다.
  • 스마트 컨트랙트 레벨 프로그래밍: 확인과 검증을 위한 규칙을 설계하고 프로그래밍하며,
    해당 블록체인에 기록할 데이터와 메세지를 규정하는 프로그래밍에 대한 것이다.
  • 어플리케이션 레벨 프로그래밍: 웹 어플리케이션 프레임워크와 UI 설계 컨셉들을 사용해 프로그래밍하는 것이다.

Dapp

신뢰 중개를 구현한 블록체인 함수들을 구동시키는 어플리케이션 로직을 가진 웹앱이다.

Smart Contract

Dapp의 로직을 표현해주는 변조 불가능하고 실행 가능한 코드이다.
스마트 컨트랙트에서 정의한 데이터 변수와 함수들은
블록체인에서 확인, 검증, 저장을 가능케 하는 어플리케이션의 규칙을 강제하기 위한 상태와
오퍼레이션을 집합적으로 표현한다.

0개의 댓글