블록체인 학습
0 XP

Chapter 1: 블록체인이란 무엇일까?

프로그래밍 가능한 블록체인

지금까지 본 블록체인은 '믿을 수 있는 장부'였습니다. 그런데 여기서 한 발짝 더 나아간 아이디어가 블록체인을 완전히 새로운 차원으로 끌어올렸습니다. 장부에 데이터뿐 아니라 '프로그램'까지 올리는 것입니다.

단순 장부에서 공용 컴퓨터로

초기 블록체인은 주로 '누가 무엇을 보냈다'는 기록만 담는 단순한 장부였습니다. 그런데 누군가 이런 질문을 던졌습니다. "장부에 데이터뿐 아니라 프로그램도 올릴 수 있다면?"

그러면 블록체인은 기록 장부를 넘어, 누구도 마음대로 멈추거나 바꿀 수 없는 공용 컴퓨터가 됩니다. 전 세계 노드가 똑같은 프로그램을 똑같이 실행하고 그 결과에 합의하니까요. 이렇게 프로그램을 실행할 수 있는 환경을 이더리움에서는 EVM(이더리움 가상머신)이라고 부릅니다.

스마트 컨트랙트란?

이렇게 블록체인 위에 올린 프로그램을 스마트 컨트랙트(smart contract)라고 부릅니다. 보통의 프로그램과 다른 점은 다음과 같습니다.

  • 정해진 조건이 충족되면 자동으로 실행됩니다. 사람이 개입할 필요가 없습니다.
  • 한 번 올리면 누구도 임의로 멈추거나 결과를 조작할 수 없습니다. 앞에서 배운 불변성이 코드에도 적용되니까요.
  • 전 세계 노드가 똑같이 실행하므로 결과를 모두가 신뢰할 수 있습니다.

비유하자면 자판기와 같습니다. 돈을 넣고 버튼을 누르면(조건) 정확히 음료가 나옵니다(실행). 점원이 기분 따라 바꿀 수도 없습니다. 스마트 컨트랙트는 '코드로 적힌, 누구도 못 멈추는 자판기'입니다.

강력한 만큼 책임도 큽니다. 한 번 올린 컨트랙트는 바꾸기 어렵기 때문에, 코드에 실수나 허점이 있으면 그 또한 고치기 어렵습니다. '자동 실행'은 잘 짠 코드에는 축복이지만, 잘못 짠 코드에는 위험이 될 수 있습니다. 그래서 앞으로 코드를 신중하게 작성하는 법을 배웁니다.

다음 차시에서는 이 스마트 컨트랙트가 정확히 무엇인지 더 깊이 들여다보고, 후반부에서는 직접 아주 간단한 컨트랙트를 코드로 작성해 봅니다. (지금까지처럼 천천히, 코드는 그때 처음 만납니다.)