이전글
스마트 컨트랙트와 댑(DApp)
이번 글에서는 스마트 컨트랙트와 댑에 대해 알아보겠습니다.
I. 비트코인 스마트 컨트랙트
먼저 비트코인 스마트 컨트랙트를 살펴본 후 이더리움 스마트 컨트랙트를 살펴보겠습니다.
비트코인의 스마트 컨트랙트는 잠금과 해제로 구성되어 있습니다. 예를 들어 A가 B에게 비트코인 50개를 전송한다면, A는 우선 B의 주소를 포함하는 잠금 스크립트를 구성하고 이를 트랜잭션에 추가합니다. 만약 B가 비트코인을 다른 사람에게 전송하고 싶다면, A가 잠근 비트코인 50개를 해제하여 사용해야 합니다. 이렇게 비트코인을 잠그고 해제하는 과정에서는 디지털 서명을 사용하기 때문에, 제삼자가 개입하지 않습니다. 즉, 비트코인의 스마트 컨트랙트는 제삼자 없는 송금자와 수신자 간의 계약으로 볼 수 있습니다. 그리고 이 과정에서 스크립트라고 부르는 비트코인의 프로그래밍 언어가 사용됩니다.
II. 이더리움 스마트 컨트랙트
이더리움의 스마트 컨트랙트를 알아보기 위해 우선 지금까지 다뤘던 내용을 생각해 보겠습니다. 먼저 블록체인이 어떻게 단일 메모리로 사용될 수 있는지 알아봤습니다. 그리고 이 과정에서 발생할 수 있는 문제점과 이더리움이 이를 어떻게 해결했는지도 알아봤습니다. 결론적으로 블록체인이 어떻게 월드 컴퓨터로 사용될 수 있는지 알아봤습니다.
이제 컴퓨터의 구조와 월드 컴퓨터의 구조를 비교해 보겠습니다. 일반적인 컴퓨터는 다음과 같이 메모리에서 데이터를 불러와 연산한 뒤 다시 메모리로 반환하는 구조를 가지고 있습니다. 이는 레지스터와 하드 디스크 등을 제외한 가장 기본적인 구조를 말합니다. CPU는 메모리에서 데이터와 이를 이용해 수행할 연산을 담고 있는 코드를 받고, 연산한 결괏값을 반환합니다.
블록체인을 이용한 월드 컴퓨터는 다음과 같이 단순화하여 표현할 수 있습니다. 일반적인 컴퓨터와 유사하게 데이터와 코드를 받아서 연산한 후 블록체인에 기록하여 저장합니다. (아래 그림에서의 노드는 Node.js가 아닌 블록체인 네트워크 참여자인 노드를 말합니다.)
그렇다면 메모리와 블록체인에 저장된 것은 무엇일까요? 당연하겠지만 데이터와 코드입니다. 그리고 저장된 코드의 집합은 프로그램이라고 부릅니다. 물론 더 정확히 말하면 메모리에 저장된 것은 실행 중인 프로그램인 프로세스입니다.
그렇다면 블록체인에서의 프로그램은 무엇으로 부를까요? 이것이 바로 '스마트 컨트랙트'입니다. 즉, 스마트 컨트랙트란 블록체인에서 실행 중인 프로그램입니다.
III. 댑(DApp)
마지막으로 댑(또는 디앱)에 대해서 알아보겠습니다. 댑은 스마트 컨트랙트의 상위 개념이라고 볼 수 있습니다. 웹 프론트엔드 등의 유저 인터페이스와 블록체인에서 동작하는 스마트 컨트랙트를 합하면 이것이 바로 댑입니다. 즉, 댑은 블록체인 스마트 컨트랙트를 이용한 사용자 서비스라고 볼 수 있습니다.
지금까지 이더리움에 관한 전반적인 내용을 알아봤습니다. 다음글에서부턴 본격적으로 이더리움이 월드 컴퓨터를 어떻게 구현했는지 알아보겠습니다. 감사합니다.
다음글
'이더리움 > 이더리움과 월드 컴퓨터' 카테고리의 다른 글
[이더리움과 월드 컴퓨터] 2-2. EOA (0) | 2023.02.07 |
---|---|
[이더리움과 월드 컴퓨터] 2-1. 주소 (0) | 2023.02.06 |
[이더리움과 월드 컴퓨터] 1-3. 가스와 이더 (0) | 2023.02.02 |
[이더리움과 월드 컴퓨터] 1-2. 튜링 완전과 튜링 불완전 (0) | 2023.01.29 |
[이더리움과 월드 컴퓨터] 1-1. 블록체인: 단일 장부와 단일 메모리 (0) | 2023.01.26 |