You need to enable JavaScript to run this app.
Bankless Academy

블록체인 기초

블록체인 기술의 기본 구조를 배워 봐요.
레슨 시작

들어가며

블록체인 기술은 데이터를 저장하고 추적하는 혁신적인 방법이면서, 그 데이터를 누구나 볼 수 있게 해 줘요. 지금까지의 모든 트랜잭션을 하나의 공개 목록으로 정리해서, 누구나 볼 수 있지만 아무도 고칠 수 없게 만들어요. 이 공개 목록 전체를 블록체인 원장이라고 불러요.

블록체인의 층을 하나씩 살펴보면 블록 탐색기라는 도구가 보여 주는 구조를 이해하게 돼요. 블록의 목록, 그 블록 안의 트랜잭션, 각 트랜잭션의 세부 정보예요. 이더리움에서 널리 쓰이는 블록 탐색기 Etherscan에서 직접 확인해 보세요.

블록체인의 구조

블록체인이라는 말은 명사로도(비트코인 블록체인) 형용사로도(블록체인 기술) 쓸 수 있어요. 어느 쪽이든 블록체인은 암호화폐가 올라가 있는 구조 전체를 가리켜요.

바깥에서 안쪽으로 들어가 보면 블록체인의 구조는 3단계예요.

  1. 전체 블록체인은 순서대로 이어진 블록으로 이루어져요
  2. 블록은 트랜잭션을 모아 놓은 묶음이에요
  3. 트랜잭션은 네트워크상 주소 사이의 가치 이동이거나 프로그램에 보내는 명령이에요

이 3단 구조가 모여 암호학적 원장을 만들어요. 네트워크에서 일어난 모든 트랜잭션의 바꿀 수 없는 기록이에요.

이해도 확인 1

블록체인은 무엇일까요?

  • [ ] 블록이라고 부르는 트랜잭션 묶음

  • [ ] 누구나 볼 수 있지만 아무도 고칠 수 없는 공유 기록

  • [ ] 순서대로 이어 붙인 블록

  • [ ] 위 내용 모두

원장 들여다보기

보통의 금융 시스템에서는 각자 돈이 얼마나 있는지 은행 같은 제3자가 기록하고, 우리는 그 기록을 믿어요. 하지만 진정한 Bankless가 되려면 원장 관리를 한 곳에 맡기고 믿지 않아도 되는 시스템이 필요해요.

원장은 블록체인에서 이루어진 모든 트랜잭션의 목록이고, 공개 블록체인에서는 누구나 볼 수 있어요. 원장의 트랜잭션을 일정한 묶음으로 나눈 것이 블록이고, 블록이 모여 블록체인이 돼요.

새 트랜잭션이 원장에 추가되면 각 주소의 잔액이 갱신되고, 지난 트랜잭션은 바꿀 수 없어요. 누구나 언제든 모든 사람의 전체 은행 계좌 내역을 볼 수 있는 것과 같아요.

원장 위의 트랜잭션

트랜잭션 예시를 볼게요.

  • Alice가 Bob에게 5 ETH를 보내요
  • Bob이 Charlie에게 2 ETH를 보내요

개별 트랜잭션은 각 주소의 암호화폐 수량 변화를 보여 줘요. 그래서 모든 트랜잭션을 합한 결과가 곧 각 주소가 가진 암호화폐 수량이에요.


⇒ Alice는 5 ETH를 잃었어요

⇒ Bob은 합계 3 ETH를 얻었어요 (5 받고 2 보냄)

⇒ Charlie는 2 ETH를 얻었어요

이해도 확인 2

공개 블록체인 원장에 대해 맞는 것은 무엇일까요?

  • [ ] 모든 트랜잭션이 공개되고 과거 기록은 바꿀 수 없다는 점

  • [ ] 각 주소의 현재 암호화폐 보유량을 원장이 추적한다는 점

  • [ ] 새 트랜잭션이 쌓이며 원장이 계속 커진다는 점

  • [ ] 위 내용 모두

탈중앙화

블록체인 원장에 담긴 트랜잭션은 고칠 수 없을 뿐 아니라, 수많은 컴퓨터로 이루어진 네트워크에 함께 나뉘어 저장돼요. 어느 한 곳도 데이터를 바꿀 힘을 갖지 못하도록, 원장 사본이 네트워크 곳곳의 노드라는 컴퓨터에 저장돼요.

이렇게 데이터를 함께 나눠 갖기 때문에 블록체인 원장은 탈중앙화된 상태가 돼요. 어떤 기관도 데이터를 혼자 지배하지 않아요. 이더리움 같은 블록체인은 원장을 누구나 볼 수 있어서 공개 블록체인이기도 해요.

이번 레슨에서는 원장 데이터가 이더리움 네트워크를 돌리는 수많은 컴퓨터에 함께 저장된다는 점만 기억해 두세요.

이해도 확인 3

블록체인을 탈중앙화된 상태로 만드는 것은 무엇일까요?

  • [ ] 한 곳만 블록체인에 기록할 수 있다는 점

  • [ ] 정부가 정한 탈중앙화 요건을 충족한다는 점

  • [ ] 원장이 여러 컴퓨터에 저장되고 지배자가 없다는 점

  • [ ] 원장이 안전한 서버 한 대에 저장된다는 점

블록의 구성 요소

블록체인의 중요한 특징은 블록에 담긴 과거 트랜잭션 데이터를 나중에 바꿀 수 없다는 점이에요. 각 블록에는 지문 같은 고유한 블록 해시가 있어서, 블록을 하나씩 이어 붙이는 데 쓰여요. 각 지문은 바로 앞 지문에서 계산되기 때문에, 과거 트랜잭션을 바꾸면 그 지문은 물론 뒤따르는 모든 블록의 지문까지 바뀌어요.

그래서 각 블록은 트랜잭션 묶음에 그 내용으로 계산한 고유한 지문(블록 해시)을 더한 것이에요. 모든 블록이 앞 블록의 지문을 참조하니 전체가 하나로 이어진 블록체인이 돼요.

이해도 확인 4

블록 해시의 역할은 무엇일까요?

  • [ ] 블록 데이터를 암호화해 아무도 못 읽게 하는 것

  • [ ] 블록을 잇고 과거 트랜잭션 데이터를 못 바꾸게 하는 것

  • [ ] 트랜잭션이 올바른 주소로 가게 하는 것

  • [ ] 블록체인을 탈중앙화된 상태로 유지하는 것

블록 내부 살펴보기

블록 데이터는 트랜잭션을 모아 놓은 묶음이라는 점을 기억하세요. 블록 하나를 들여다보면 트랜잭션 목록과 그 블록을 만든 주체에 대한 정보가 보여요.

앞에서 원장을 설명할 때 본 두 트랜잭션은 한 블록에 함께 담길 수도 있고, 여러 블록에 나뉘어 시차를 두고 담길 수도 있어요. 하지만 어느 블록에 들어가든 결국 모두 블록체인 원장에 더해져요.

  • Alice가 Bob에게 5 ETH를 보내요
  • Bob이 Charlie에게 2 ETH를 보내요

블록체인을 하나로 잇기 위해 각 블록이 앞 블록의 블록 해시도 반드시 참조한다는 점을 떠올려 보세요.

이해도 확인 5

블록에는 어떤 정보가 담길까요?

  • [ ] 앞선 블록에 담긴 모든 정보

  • [ ] 블록 크기가 무제한이라 블록체인에 관련된 모든 것

  • [ ] 트랜잭션 데이터와 앞 블록에 대한 참조

  • [ ] 정해진 시간 안에 생긴 모든 트랜잭션 데이터

개별 트랜잭션

블록체인의 데이터는 사용자 사이에서 옮겨진 자산의 기록, 즉 트랜잭션 목록이에요. 각 트랜잭션이 유효하려면 보내는 사람의 디지털 서명이 있어야 해요.

지갑에서 트랜잭션을 확인하고 승인할 때 하는 일이 바로 이 서명이에요. 수표나 영수증, 카드 결제에 손으로 서명하는 것의 디지털 판이라고 생각하면 돼요.

트랜잭션은 암호화폐 자산을 보내는 것처럼 단순할 수도 있고, 자산을 스왑하거나 조건이 맞으면 실행되는 특별한 코드(스마트 컨트랙트)를 배포하는 것처럼 복잡할 수도 있어요.

끝으로 각 트랜잭션에는 다른 어떤 트랜잭션과도 겹치지 않는 고유한 식별자 트랜잭션 해시가 있어요. 덕분에 나중에 특정 트랜잭션을 쉽게 가리킬 수 있고, 그 내용도 바뀌지 않아요.

이해도 확인 6

블록체인의 데이터는 블록으로 묶인 트랜잭션 목록이에요. 그런 트랜잭션의 예로 맞는 것은 무엇일까요?

  • [ ] 암호화폐 자산을 보내거나 받는 것

  • [ ] 블록의 크기를 바꾸는 것

  • [ ] 과거 블록체인 데이터를 고치는 것

  • [ ] 위 내용 모두

사용자 주소

주소는 블록체인에서 누구나 찾아볼 수 있는 공개 식별자예요. 이메일 주소처럼 누구나 자금을 보낼 수 있지만, 그 주소의 자금을 열어서 쓸 수 있는 사람은 개인 키를 가진 사람뿐이에요.

이더리움에서 주소는 항상 _0x__________ 로 시작하고, 그 주소의 공개 키에서 나온 숫자와 문자 42자로 이루어져요.

블록 탐색기에서 트랜잭션 하나를 보면 보내는 주소(From:)와 받는 주소(To:)를 확인할 수 있어요. 그 주소를 쓰는 사람이 누구인지는 알 수 없지만, 누구나 원장 전체에서 암호화폐의 이동을 따라갈 수 있어요.

이해도 확인 7

블록체인 주소에 대해 맞는 것은 무엇일까요?

  • [ ] 블록체인 위 여러 주체의 공개 식별자라는 점

  • [ ] 이더리움에서는 항상 0x로 시작한다는 점

  • [ ] 개인 키를 가진 사람이 그 주소의 자금을 쓸 수 있다는 점

  • [ ] 위 내용 모두