테마 선택

📚 지식 노트

AI·하드웨어·주변기기·게임·컴퓨터 시스템·이론 컴퓨터 과학·수학·개발과 운영·보안·응용 분야에 대해 알아 두면 좋은 내용을 정리한 노트다. 위에서 분야를 고르고 아래에서 노트를 고른다.

블록체인과 분산 원장

믿을 주체 없이 여러 참여자가 하나의 장부에 합의하는 방법을 해시를 직접 계산해 가며 따라간다. 해시 사슬과 머클 트리, 작업 증명과 지분 증명, 포크와 51% 공격, 스마트 컨트랙트의 함정, 확장성과 키 관리, 그리고 블록체인이 필요 없는 경우까지를 기술과 한계 중심으로 정리한다.

목차 (13)
  1. 어떤 문제를 푸나
  2. 해시 사슬: 하나를 고치면 뒤가 모두 깨진다
  3. 머클 트리와 포함 증명
  4. 작업 증명과 난이도 조정
  5. 지분 증명: 이더리움 머지
  6. 51% 공격과 포크
  7. 거래 모델: UTXO와 계정
  8. 스마트 컨트랙트와 재진입 버그
  9. 확장성: 초당 거래 수와 레이어 2
  10. 지갑과 키: 잃으면 되찾을 수 없다
  11. 블록체인이 필요 없는 경우
  12. 에너지 사용
  13. 핵심 자료

이 노트는 기술의 원리와 한계만 다룬다. 투자 조언이 아니다. 특정 코인이나 서비스를 권하지 않고 가격도 이야기하지 않는다. 합의 알고리즘 일반(Raft·Paxos, 비잔틴 장애)은 분산 시스템 노트, 해시와 서명의 수학은 암호학 노트에 있다. 그림 속 해시는 모두 빌드할 때 SHA-256으로 실제로 계산한 값이다. 블록 구조는 원리를 보이려고 단순화했다.

어떤 문제를 푸나

디지털 데이터는 복사된다. 전자 화폐에서 이것은 같은 돈을 두 사람에게 보내는 이중 지불(double spending) 문제가 된다. 은행은 장부를 하나만 두고 순서를 정해 이 문제를 푼다. 비트코인 논문(2008)의 질문은 "그 믿을 주체 없이, 서로 모르는 참여자들이 거래 순서 하나에 합의할 수 있는가"였다.

이중 지불 그림. A의 코인 하나로 B와 C에게 보내는 두 거래를 만들면, 모두가 같은 장부 순서를 볼 때 먼저 적힌 거래 1만 인정되고 거래 2는 이미 쓴 코인이라 거부된다A의 코인 1개거래 1: B에게 1거래 2: C에게 1모두가 보는 하나의 장부1번째 줄: 거래 1 ✓거래 2 ✗ 이미 쓴 코인전자 화폐는 파일처럼 복사된다. 문제는 "어느 거래가 먼저인가"에 모두가 합의하는 것이다.
이중 지불. 같은 코인을 쓰는 두 거래가 동시에 퍼지면, 모두가 같은 순서의 장부를 보는 한 먼저 적힌 하나만 유효하다. 블록체인이 푸는 것은 결국 '순서에 대한 합의'다.

누구나 참여할 수 있는 네트워크에서는 가짜 신원을 무한히 만드는 시빌(Sybil) 공격 때문에 "참여자 다수결"이 통하지 않는다. 그래서 투표권을 머릿수가 아니라 쉽게 위조할 수 없는 자원, 곧 계산량(작업 증명)이나 예치한 자산(지분 증명)에 묶는다. 블록체인은 이 합의 규칙과, 지난 기록을 고치기 어렵게 만드는 해시 사슬의 조합이다.

해시 사슬: 하나를 고치면 뒤가 모두 깨진다

블록은 거래 묶음과 함께 앞 블록의 해시를 품는다. 해시 함수는 입력이 한 글자만 바뀌어도 출력이 완전히 달라지므로, 가운데 블록을 고치면 그 블록의 해시가 바뀌고, 다음 블록에 적힌 "앞 해시"와 어긋나고, 그것을 고치면 또 다음 블록이 어긋난다. 직접 넘겨 보자.

해시 사슬 위조 단계 그림. 블록 네 개 중 블록 1의 내용을 바꾸면 블록 1부터 뒤가 모두 검증에 실패하고, 뒤 블록의 해시를 하나씩 다시 계산해야 사슬이 다시 이어진다블록 0앞 해시내 해시블록 1앞 해시내 해시블록 2앞 해시내 해시블록 3앞 해시내 해시✓첫 블록0000…f5612f✓A→B 5f5612f56a372✓B→C 256a3725e8e8d✓C→A 15e8e8d4c9673✓첫 블록0000…f5612f✗A→B 50f5612f56a372✗B→C 256a3725e8e8d✗C→A 15e8e8d4c9673✓첫 블록0000…f5612f✓A→B 50f5612f5d7f06✗B→C 256a3725e8e8d✗C→A 15e8e8d4c9673✓첫 블록0000…f5612f✓A→B 50f5612f5d7f06✓B→C 25d7f064d5dcf✗C→A 15e8e8d4c9673✓첫 블록0000…f5612f✓A→B 50f5612f5d7f06✓B→C 25d7f064d5dcf✓C→A 14d5dcffb7e06화살표: 내 해시가 다음 블록의 "앞 해시" 칸에 들어간다✗는 검증 실패다(내용과 해시 불일치, 끊긴 연결, 앞 블록이 이미 깨짐).빨간 글자는 고친 내용이나 어긋난 연결이다.
1 / 5

정상 사슬: 블록마다 앞 블록의 해시를 품고 있어 모두 검증을 통과한다

해시 사슬. 블록마다 앞 블록의 해시를 품고 있어서, 가운데 블록 하나를 고치면 그 뒤의 연결이 줄줄이 깨진다. 해시는 node:crypto의 SHA-256으로 빌드 때 실제로 계산한 값의 앞 6자리다.

해시 사슬만으로는 위조를 막지 못한다. 뒤 블록을 모두 다시 계산하는 데 드는 비용이 0에 가깝다면 위조자는 그냥 다시 계산하면 된다. 사슬이 안전해지는 것은 블록 하나를 만드는 데 큰 비용이 들게 하는 합의 규칙(다음 절들)이 붙을 때다. 해시 사슬이 주는 것은 "어디가 고쳐졌는지 바로 드러난다"는 성질, 곧 변조 탐지다.

머클 트리와 포함 증명

블록에는 거래가 수천 개 들어가지만 헤더에는 해시 하나, 머클 루트만 적는다. 거래 해시를 둘씩 이어 붙여 다시 해시하기를 하나가 남을 때까지 되풀이한 값이다. 거래가 홀수 개면 비트코인은 마지막 해시를 복제해 짝을 맞춘다(Bitcoin Developer Guide).

머클 트리 그림. 거래 8개의 해시를 두 개씩 묶어 해시하기를 세 번 하면 루트가 된다. tx5의 포함을 증명하려면 tx4, 그 위 층의 형제, 다시 그 위 층의 형제 해시 3개만 있으면 된다tx0tx1tx2tx3tx4tx5tx6tx702385ed38fca1013b5fb87fd루트옅은 칸: tx5에서 루트까지 다시 계산하는 길. 진한 테두리: 증명으로 받는 형제 해시 3개.검증 결과 통과. 잎이 100만 개여도 형제 해시 20개(32바이트 × 20)면 된다.
거래 8개의 머클 트리. tx5가 이 블록에 들어 있음을 보이려면 tx5와 형제 해시 3개만 있으면 루트를 다시 계산해 헤더의 값과 비교할 수 있다. 증명 길이는 ⌈log₂ n⌉이라 잎이 100만 개여도 20개다.

이 성질 덕분에 전체 블록을 받지 않고 헤더만 들고 있는 가벼운 클라이언트도 "내 거래가 이 블록에 있다"를 확인할 수 있다. 비트코인 논문은 이것을 단순 결제 검증(SPV)이라 불렀다. 머클 트리는 블록체인 전용 기술이 아니다. 인증서 투명성 로그(RFC 6962), Git, 파일 시스템의 무결성 검사도 같은 구조를 쓴다. RFC 6962는 잎과 내부 노드를 해시할 때 앞에 서로 다른 바이트(0x00, 0x01)를 붙여, 내부 노드를 잎으로 위장하는 두 번째 원상 공격을 막는다. 이 그림의 단순한 구성에는 그런 구분이 없다.

작업 증명과 난이도 조정

작업 증명(proof of work)은 블록 헤더의 해시가 어떤 목표값보다 작아지도록, 곧 앞자리가 0으로 시작하도록 논스(nonce)를 찾는 일이다. 해시는 예측할 수 없으니 하나씩 해 보는 수밖에 없고, 찾은 답은 다른 사람이 해시 한 번으로 확인한다. 만들기는 비싸고 확인은 싸다는 비대칭이 핵심이다.

작업 증명 단계 그림. 블록 내용에 논스 0부터 차례로 붙여 SHA-256을 계산하고, 해시가 0으로 시작하는 논스 7를 찾는다블록 1 = "거래 묶음 #2" + 앞 해시 + 논스목표: SHA-256 해시가 "0"으로 시작논스해시(앞 24자리)결과0badb8da753dadf212093526b✗ 다시140ca4846d787803cb73672e6✗ 다시2969613035c9ae1ebf90bb960✗ 다시396309fa1e5c53060d015fac3✗ 다시4199274b56f810c80844d1abc✗ 다시52fc628c2d15eec486c35bff3✗ 다시6e2dbce2979f77f7d95069cb7✗ 다시70b05971401194b06b36ed02e✓ 찾았다
1 / 8

논스 0: 해시가 b로 시작해 실패. 논스를 1 올려 다시 해시한다

작업 증명(난이도: 16진 0 1개). 해시는 입력이 조금만 바뀌어도 완전히 달라져서, 조건을 맞추는 논스는 하나씩 해 보는 수밖에 없다. 평균 16번이고 이 예는 8번 걸렸다. 0을 5개로 올리면 평균 1,048,576번이 된다.

16진 0 하나는 평균 16번이면 되지만, 0이 다섯 개면 평균 1,048,576번이다. 실제 네트워크의 난이도는 이보다 훨씬 높다. 참여하는 계산량이 늘면 블록이 빨리 나오므로 난이도를 주기적으로 다시 맞춘다. 비트코인은 2,016블록마다 실제 걸린 시간을 목표 2주(블록당 약 10분)와 비교해 난이도를 바꾸고, 한 번에 최대 4배 오르거나 4분의 1로 내린다. 예를 들어 2,016블록이 1주 만에 나왔다면 난이도는 2배가 된다.

작업 증명 사슬에서는 계산량이 가장 많이 쌓인 사슬(흔히 "가장 긴 사슬")을 정답으로 본다. 앞 절의 위조자가 블록을 고치려면, 그 뒤 블록들의 작업 증명을 모두 다시 하면서 정직한 참여자 전체가 새 블록을 쌓는 속도까지 따라잡아야 한다.

지분 증명: 이더리움 머지

지분 증명(proof of stake)은 계산 대신 예치한 자산으로 투표권을 정한다. 이더리움은 2022년 9월 15일 머지(The Merge)로 작업 증명에서 지분 증명으로 바꿨다. 기존 실행 계층에 비콘 체인이 합의 계층으로 붙은 것이다. 검증자가 되려면 32 ETH를 예치하고 실행·합의·검증자 클라이언트를 돌린다.

이더리움 지분 증명 그림. 12초 슬롯 32개가 한 에폭(384초)이고 첫 슬롯이 체크포인트다. 32 ETH를 예치한 검증자가 블록을 제안하고 증명하며, 지분 3분의 2 이상이 투표하면 체크포인트가 확정되고, 규칙을 어기면 지분이 깎인다에폭 1개 = 슬롯 32개 × 12초 = 384초(약 6.4분)▲ 체크포인트(에폭 첫 슬롯)슬롯마다 제안자 1명32 ETH 예치검증자가 된다제안 · 증명슬롯마다 무작위 배정2/3 투표체크포인트 확정어기면 슬래싱이중 서명 등확정된 블록을 되돌리려면 공격자가 전체 예치 지분의 3분의 1 이상을 잃어야 한다(ethereum.org).
이더리움 지분 증명의 시간과 흐름. 12초 슬롯 32개가 한 에폭(약 6.4분)이다. 슬롯마다 무작위로 뽑힌 제안자가 블록을 내고 위원회가 증명(attestation)하며, 에폭 첫 블록인 체크포인트가 지분 3분의 2 이상의 표를 받으면 확정(finalized)된다.

지분 증명에는 작업 증명에 없는 처벌이 있다. 한 슬롯에 블록 두 개를 제안하거나 서로 모순된 증명을 낸 검증자는 지분이 깎이고 강제로 퇴출된다(슬래싱). 동시에 많은 검증자가 어기면 깎이는 몫이 커진다. 또 ethereum.org 설명에 따르면 확정된 블록을 되돌리려면 공격자가 전체 예치 지분의 최소 3분의 1을 잃어야 한다. 작업 증명의 "되돌릴 확률이 점점 작아진다"는 확률적 확정과 달리, 비용이 명시된 확정이다.

51% 공격과 포크

두 블록이 거의 동시에 나오면 사슬이 잠시 둘로 갈라진다(포크). 다음 블록이 어느 쪽에 붙느냐에 따라 한쪽이 이기고, 진 쪽 블록의 거래는 장부에서 빠진다. 그래서 받는 쪽은 거래가 담긴 블록 뒤에 블록이 몇 개 더 쌓일 때까지(확인 수) 기다린다. 공격자가 몰래 다른 사슬을 쌓아 이 확인을 뒤집는 것이 이중 지불 공격이다.

공격자가 따라잡을 확률 그래프. 해시 파워 10%인 공격자는 5블록 뒤에서 약 0.09%, 30%는 훨씬 높고, 45%는 10블록 뒤에서도 높은 확률로 따라잡는다. 50% 이상이면 결국 반드시 따라잡는다따라잡을 확률q = 10%q = 30%q = 45%0%50%100%0246810q = 10%, z = 5: 0.09%공격자가 뒤처진 블록 수 z(확인 수) →q가 50% 이상이면 확률은 1이다. 확인을 아무리 기다려도 소용이 없다.
공격자가 z블록 뒤에서 따라잡을 확률(나카모토 논문 11절의 식을 그대로 계산). 해시 파워 10%인 공격자는 5블록 뒤에서 0.09%, 30%면 17.7%, 10블록 뒤에서도 4.2%다. 50%를 넘으면 기다려도 소용이 없다.

계산량이나 지분의 과반을 가진 쪽은 자기 거래를 뒤집고, 남의 거래를 빼고, 다른 사람의 블록을 고아로 만들 수 있다. 이것이 51% 공격이다. 반대로 과반을 가져도 남의 서명을 위조하거나 규칙에 없는 코인을 만들 수는 없다. 다른 노드들이 규칙을 검증해 그런 블록을 거부하기 때문이다. 계산량이 작은 사슬일수록 과반을 빌리거나 사기 쉬워 위험하다. 규칙 자체를 바꾸는 소프트웨어 개정도 "포크"라 부르는데, 옛 노드가 새 블록을 거부하면 하드 포크로 사슬이 영영 갈라진다. 아래 The DAO 사건이 그 예다.

거래 모델: UTXO와 계정

비트코인은 UTXO(unspent transaction output) 모델이다. 잔액이라는 숫자가 따로 없고, 아직 쓰지 않은 출력들이 동전처럼 남아 있다. 거래는 출력을 통째로 입력으로 쓰고, 남는 금액은 자기에게 돌아오는 거스름 출력으로 만든다. 이더리움은 계정 모델이다. 계정마다 잔액과 논스가 있고, 거래는 잔액을 직접 고치며 논스를 하나 올린다(ethereum.org).

UTXO 모델과 계정 모델 비교. A가 B에게 6을 수수료 1과 함께 보낼 때, UTXO 모델은 A의 5와 3을 모두 입력으로 써서 B에게 6, A에게 거스름 1을 출력하고, 계정 모델은 A의 잔액 8을 1로, B의 4를 10으로 고치고 A의 논스를 3에서 4로 올린다UTXO 모델A의 5A의 3거래B에게 6A 거스름 1수수료 1입력은 통째로 쓰고 사라진다.같은 출력을 두 번 쓰면 거부된다.계정 모델계정보내기 전보낸 뒤A8 (논스 3)1 (논스 4)B4 (논스 0)10 (논스 0)잔액을 직접 고친다. 논스가 같은거래를 두 번 처리하지 못하게 막는다.
A가 B에게 6을 수수료 1과 함께 보낼 때. UTXO 모델은 5와 3을 모두 쓰고 6과 거스름 1을 새 출력으로 만든다(입력 8 − 출력 7 = 수수료 1). 계정 모델은 잔액을 고치고 논스를 올린다. 두 그림의 수는 같은 함수로 계산했다.

UTXO는 출력마다 독립이라 병렬로 검증하기 쉽고, 출력을 한 번만 쓸 수 있다는 규칙 하나로 이중 지불을 막는다. 대신 "지금 잔액"을 알려면 내 출력을 모두 모아야 한다. 계정 모델은 잔액 조회와 프로그램 상태 관리가 직관적이라 스마트 컨트랙트에 잘 맞지만, 같은 거래를 두 번 재생하는 것을 논스로 따로 막아야 한다.

스마트 컨트랙트와 재진입 버그

스마트 컨트랙트는 장부 위에 올린 프로그램이다. 이더리움의 모든 노드는 같은 EVM(이더리움 가상 머신)으로 같은 코드를 돌려 같은 새 상태에 닿는다. EVM은 256비트 단어를 최대 1024개 쌓는 스택 기계이고, 명령마다 가스가 매겨져 무한 루프로 네트워크를 멈추는 일을 막는다. 배포된 코드는 고칠 수 없고 누구나 호출할 수 있으므로, 버그가 곧 공개된 금고의 구멍이 된다.

재진입 버그 비교. 돈을 먼저 보내고 장부를 나중에 고치면 예치금 1인 계정이 재호출로 4를 빼 가고, 장부를 먼저 0으로 고치면 1만 나간다보내기 먼저 (취약)1. 잔액 확인: 12. 1을 보낸다 → 받는 쪽 코드 실행3. 그 코드가 다시 출금 호출4. 장부는 아직 1 → 또 보낸다…끝나고서야 장부를 0으로예치 1 → 빠져나간 돈 4출금 호출 4번, 금고 10 → 6장부 먼저 (검사-효과-상호작용)1. 검사: 잔액 1 확인2. 효과: 장부를 0으로3. 상호작용: 1을 보낸다4. 다시 불러도 잔액 0 → 거절예치 1 → 빠져나간 돈 1출금 호출 2번, 금고 10 → 9
재진입 버그의 원리(개념 모형). 출금에서 돈을 먼저 보내면 받는 쪽 계약의 코드가 실행되고, 그 코드가 장부가 고쳐지기 전에 다시 출금을 부를 수 있다. 장부를 먼저 고치면 두 번째 호출은 잔액 0을 본다. 그림의 수는 재호출을 세 번으로 묶은 모형에서 계산했다.

대표적인 사고가 2016년의 The DAO다. 안전하지 않은 계약에서 360만 ETH가 넘게 빠져나갔고, 이더리움은 2016년 7월 20일 하드 포크로 그 돈을 되돌렸다. 이 포크를 받아들이지 않은 쪽은 이더리움 클래식(Ethereum Classic)으로 남았다(ethereum.org 연표). Solidity 문서가 권하는 방어는 검사-효과-상호작용(checks-effects-interactions) 순서다. 입력과 잔액을 먼저 검사하고, 자기 상태를 먼저 고친 다음, 외부 호출은 맨 마지막에 한다. 재진입 잠금, 외부 감사, 검증된 라이브러리 사용이 함께 쓰인다.

확장성: 초당 거래 수와 레이어 2

모든 노드가 모든 거래를 검증하는 구조는 그 자체로 처리량의 상한이다. 블록을 키우거나 간격을 줄이면 처리량은 늘지만, 노드를 돌리는 비용이 커져 참여자가 줄고(탈중앙성 저하) 포크가 잦아진다. 이더리움에서 단순 송금 한 건은 가스 21,000이므로, ethereum.org가 예로 드는 블록 가스 한도 3,600만과 12초 슬롯을 넣으면 L1 단순 송금의 상한은 초당 약 143건이다(Gas and fees).

초당 거래 수를 로그 눈금으로 비교한 막대. 비트코인은 블록당 3,000건을 가정하면 초당 약 5건, 이더리움 L1의 단순 송금 상한은 가스 한도 3,600만에서 약 143건, Validium 한 체인은 약 10,000건이다비트코인 L1블록당 3,000건 가정, 10분약 5이더리움 L1가스 3,600만 ÷ 21,000, 12초약 143Validium 한 체인ethereum.org가 적은 값약 10,0001101001,00010,000초당 거래 수(로그 눈금)모두 이론적 상한이나 가정한 값이다. 실제 처리량은 거래 종류에 따라 다르다.
초당 거래 수(로그 눈금). 비트코인은 블록당 거래 수를 가정해 계산했고, 이더리움 L1은 가스 한도로 본 단순 송금의 상한이다. 가스 한도와 블록 크기는 개정마다 바뀌므로 숫자보다 자릿수를 보는 그림이다.

그래서 거래를 L1 밖에서 처리하고 결과만 L1에 묶는 레이어 2가 나왔다(ethereum.org Scaling). 롤업은 여러 거래를 L1 밖에서 실행하고 묶음으로 L1에 올린다. 낙관적 롤업은 묶음이 옳다고 보고 이의가 제기될 때만 다시 계산하고(사기 증명), 영지식 롤업은 묶음이 옳다는 암호학적 증명을 함께 올린다(유효성 증명). 데이터까지 L1 밖에 두는 Validium은 한 체인이 초당 약 10,000건에 이른다고 적혀 있지만, 그만큼 데이터 가용성을 다른 곳에 믿고 맡긴다. 확장성은 공짜가 아니라 무엇을 믿을지를 옮기는 일이다.

지갑과 키: 잃으면 되찾을 수 없다

"지갑"은 코인을 담는 곳이 아니라 개인 키를 보관하고 거래에 서명하는 도구다. 장부에는 주소별 기록만 있고, 그 주소의 자산을 움직일 수 있는 것은 개인 키로 만든 서명뿐이다. 대부분의 지갑은 BIP-39 시드 문구로 키를 만든다. 128비트 엔트로피는 12단어, 256비트는 24단어가 되고, 단어는 2048개 목록에서 고른다.

지갑과 키 그림. 시드 문구에서 개인 키, 공개 키, 주소가 한쪽 방향으로만 계산된다. 시드 문구와 개인 키는 비밀이고 공개 키와 주소는 알려도 된다. 시드 문구나 개인 키를 잃으면 복구할 수 없고, 누구에게도 알려 주면 안 된다시드 문구12·24단어개인 키서명에 쓴다공개 키서명을 확인주소받을 때 알려 준다비밀(빨간 테두리)알려도 되는 것화살표는 한쪽 방향 계산이다. 주소나 공개 키에서 개인 키를 구할 수 없다.시드 문구·개인 키를 아는 사람이 곧 주인이다. 잃으면 누구도 되찾아 주지 못한다.거래소 직원·고객센터·"복구 도우미"를 자처하는 누구에게도 알려 주지 않는다.사진·클라우드에 그대로 두지 말고, 종이 등에 적어 오프라인에 보관한다.
지갑과 키. 시드 문구에서 개인 키, 공개 키, 주소가 한쪽 방향으로만 계산된다. 빨간 테두리 두 칸이 곧 자산의 소유권이다. 은행과 달리 비밀번호 재설정도, 거래 취소 창구도 없다.

12단어 시드 문구를 무작위로 맞히려면 초당 1조 번 시도해도 절반을 훑는 데 약 5.4 × 10^18년이 걸린다. 그래서 공격은 수학이 아니라 사람을 노린다. FTC 안내가 꼽는 흔한 유형은 투자 사기(가짜 투자 관리자, 유명인 사칭 "보내면 두 배", 연애를 미끼로 한 투자 권유), 회사·정부·수사기관 사칭과 가짜 일자리, 협박이다. 공통 신호는 분명하다. 암호화폐로 돈을 요구하면 사기를 의심하고, 수익 보장이나 "위험 없음"은 사기이며, 먼저 연락해 온 링크와 번호는 따르지 않는다. 암호화폐 송금은 보통 되돌릴 수 없다.

시드 문구와 개인 키는 누구에게도 알려 주지 않는다. 정상적인 서비스는 시드 문구를 묻지 않으며, "지갑 동기화"·"복구 지원"을 이유로 요구하는 사이트나 사람은 사기다. 서명 요청도 내용을 읽지 않고 승인하지 않는다. 승인 한 번으로 계약에 자산 인출 권한을 넘기는 경우가 있다. 분실에 대비한 백업은 오프라인으로 두고, 그 백업 자체가 또 하나의 열쇠라는 점을 잊지 않는다. 가짜 지갑 앱, 고객센터를 사칭한 메신저 연락 같은 수법은 일반 피싱과 같으므로 사람과 운영 노트의 피싱 절이 그대로 통한다.

블록체인이 필요 없는 경우

블록체인은 "서로 믿지 않는 여러 주체가, 믿을 운영자 없이, 같은 장부를 함께 고쳐야 할 때" 비싼 값을 치를 이유가 생긴다. 이 조건 중 하나라도 빠지면 대개 데이터베이스가 더 빠르고, 싸고, 고치기 쉽다. Wüst·Gervais(2017)는 이것을 질문 몇 개의 결정 흐름으로 정리했다.

블록체인 필요 여부 결정 흐름. 공유 상태가 없거나, 쓰는 주체가 하나거나, 믿을 만한 운영자가 있거나, 주체끼리 서로 믿으면 데이터베이스가 낫다. 주체를 모두 알지 못하면 공개 블록체인, 알지만 서로 믿지 못하면 허가형 블록체인을 검토한다여러 곳이 함께 고치는 상태를 저장하나?아니오블록체인이 필요 없다예쓰는 주체가 여럿인가?아니오보통의 데이터베이스예늘 온라인인 믿을 만한 운영자가 있나?예중앙 데이터베이스가 낫다아니오쓰는 주체를 모두 알고 있나?아니오공개(무허가) 블록체인예쓰는 주체끼리 서로 믿나?예공유 데이터베이스로 충분아니오허가형 블록체인을 검토옅은 칸이 데이터베이스 쪽 결론이다. 대부분의 업무 시스템은 위쪽 질문에서 끝난다.
블록체인이 필요한가(Wüst·Gervais의 흐름을 줄인 것). 믿을 수 있는 운영자가 늘 있거나, 쓰는 주체끼리 서로 믿으면 데이터베이스가 낫다. 블록체인 쪽 결론은 주체를 모르거나 서로 믿지 못하는 경우에만 남는다.

"위변조를 막고 싶다"만으로는 이유가 되지 않는다. 한 기관이 운영하는 시스템이라면 추가 전용 로그, 머클 트리로 묶은 감사 로그, 전자 서명, 외부 타임스탬프로 같은 효과를 훨씬 싸게 얻는다. 인증서 투명성처럼 공개 검증이 필요한 경우도 블록체인 없이 풀린 사례가 있다. 또 블록체인은 바깥 세계의 사실을 보증하지 못한다. 창고에 물건이 있다는 기록이 장부에 들어가는 순간까지는 결국 누군가를 믿어야 한다(오라클 문제).

에너지 사용

작업 증명은 일부러 계산을 낭비하게 만드는 설계라 전력 사용이 보안과 직결된다. 지분 증명은 그 경쟁을 없앴다. 머지 페이지는 이더리움의 에너지 사용이 약 99.95% 줄었다고 적고, 에너지 페이지는 CCRI의 추정을 들어 연간 약 0.0026 TWh, 감소율 99.988% 이상이라고 적는다. 같은 기관의 페이지 안에서도 추정 방법에 따라 값이 다르다.

연간 전력 사용 비교. 전 세계 데이터 센터 190, 비트코인 149, 작업 증명 이더리움 21, 구글 19, 넷플릭스 0.457, 페이팔 0.26, 지분 증명 이더리움 0.0026 테라와트시다연간 전력, TWh(로그 눈금, 2023년 7월 기준 추정)전 세계 데이터 센터190비트코인149작업 증명 이더리움21구글19넷플릭스0.457페이팔0.26지분 증명 이더리움0.00260.011100작업 증명 이더리움 ÷ 지분 증명 이더리움 ≈ 8,077배. 추정 방법에 따라 값이 크게 달라진다.
연간 전력 사용 비교(로그 눈금). ethereum.org 에너지 페이지가 2023년 7월 기준으로 모은 추정치다. 비트코인 값은 케임브리지 대학의 전력 지수를 인용한 것이며, 작업 증명의 전력 사용은 날마다 바뀌고 출처마다 차이가 크다.

이 그림은 시점과 방법이 정해진 추정치를 옮긴 것이라 지금의 값과 다를 수 있다. 숫자보다 자릿수를 본다. 작업 증명 사슬의 전력은 참여하는 계산량에 비례하고, 계산량은 보상의 가치에 따라 움직인다. 지분 증명 사슬의 전력은 검증자 노드 수와 하드웨어에 비례해 일반 서버 운영에 가깝다.

핵심 자료

요지는 직접 정리한 한 줄이다. 합의 알고리즘 일반은 분산 시스템 노트, 해시와 서명의 수학은 암호학 노트에 있다. 다시 적어 둔다. 이 노트는 투자 조언이 아니다.

자료연도한 줄 요지
Bitcoin: A Peer-to-Peer Electronic Cash System (Nakamoto)2008믿을 제3자 없이 이중 지불을 막는 방법으로 작업 증명 해시 사슬과 가장 긴 사슬 규칙을 내놓았다.
Ethereum Whitepaper2014거래 대신 범용 상태 기계를 복제해, 장부 위에서 프로그램(스마트 컨트랙트)을 돌리자고 제안했다.
RFC 6962 Certificate Transparency2013머클 트리 기반의 추가 전용 로그와 포함·일관성 증명을 표준으로 정했다. 블록체인 없이도 공개 검증 가능한 장부를 만든 사례다.
Do you need a Blockchain? (Wüst, Gervais)2017공개·허가형 블록체인과 중앙 데이터베이스 중 무엇이 맞는지 가리는 결정 흐름을 제시했다.
NIST IR 8202 Blockchain Technology Overview2018합의 모델, 스마트 컨트랙트, 한계와 오해를 정부 보고서 눈높이로 정리했다.
BIP-39 Mnemonic code for generating deterministic keys2013엔트로피를 단어 2048개 목록의 12~24단어로 바꾸는 시드 문구 규칙이다.