이더리움은 5조 털렸는데,
왜 카르다노는 0원도 안 털렸을까?
"산 아래에서 벽돌을 나를 때는 담장 하나 짓는 줄 알았지만, 정상에 서서 보니 '아우라'라는 거대한 성채의 단단한 성벽이었습니다." — 저자 Paul Ko 서문 중에서
1. ✏️ 연필과 지우개 vs 돌에 새긴 글씨
우리가 쓰는 일반적인 프로그래밍 언어(파이썬, 자바 등)와 하스켈(Haskell)의 가장 결정적인 차이는 딱 하나입니다. 바로 "지우개가 있느냐, 없느냐"입니다.
일반적인 언어는 칠판에 적힌 글씨와 같습니다. 선생님이 사과 = 5개라고 적어두었는데, 지나가던 학생이 지우개로 슥 지우고 사과 = 0개로 바꿀 수 있습니다. 그러면 처음 사과를 5개로 알고 있던 다른 친구들은 큰 혼란에 빠집니다. "어? 아까 5개였는데 왜 갑자기 0개야?"
이것이 컴퓨터 프로그램에서 일어나는 '버그(오류)'와 금융 시스템 '해킹'의 90% 원인입니다.
하스켈 마을에는 지우개가 없다! (불변성)
하스켈은 칠판 대신 단단한 바위(돌판)에 글씨를 새깁니다. 한 번 사과 = 5개라고 새기면 지구 끝날 때까지 영원히 5개입니다. 만약 6개가 필요하다면? 기존 돌판을 고치지 않고, 새 돌판에 새사과 = 사과 + 1을 새롭게 조각합니다. 원래의 사과는 영원히 지켜집니다.
2. 🥤 정직한 붕어빵 자판기 (순수 함수)
하스켈의 함수는 '정직한 붕어빵 자판기'입니다. 팥 반죽을 넣으면 오늘 넣든, 내일 넣든, 비가 오든 상관없이 언제나 똑같은 팥 붕어빵이 나옵니다.
그리고 붕어빵을 구우면서 갑자기 주방 벽지를 찢거나 불을 끄는 엉뚱한 짓(부작용, Side-Effect)을 절대 하지 않습니다. 이것을 순수 함수(Pure Function)라고 부르며, 1원의 오차도 용납하지 않는 금융과 블록체인의 절대 안전을 보장합니다.
3. 🌐 글로벌 실전 개발 사례 (Case Study)
-
카르다노(Cardano) eUTxO 원장: 이더리움은 잔고를 메모리에서 직접 지우개로 덮어쓰다 매년 수조 원의 재진입성 해킹을 당합니다. 반면 카르다노는 하스켈의 불변성 박스(eUTxO) 모델로 온체인 해킹 $0를 기록 중입니다.
-
메타(페이스북) Haxl 엔진: 30억 사용자의 스팸과 공격을 실시간 방어하기 위해 수천 명의 엔지니어 규칙이 충돌하지 않는 하스켈 순수 함수형 엔진을 구축했습니다.
4. 💡 진화의 다리: Haskell ➔ Rust ➔ Aiken ➔ Cardano
| 비교 항목 | 🏛️ Haskell (뿌리) | ⚡ Rust (진화) | 🧩 Aiken (직관) | 🚀 Cardano/Aura 반영 |
|---|---|---|---|---|
| 불변성 철학 | 기본 100% 불변 | 기본 불변 (`let`), 필요시 `mut` | 기본 100% 불변 상수 | 거래 장부의 영구 불변성 |
| 함수 순수성 | 부작용(IO) 엄격 격리 | 소유권 검사로 공유 차단 | 온체인 Validator 순수성 | 수수료 100% 사전 결정론적 계산 |
🎯 [1분 마스터 퀴즈] 이해도를 확인해 보세요!
Q. 하스켈에서 '불변성(Immutability)'이 블록체인에서 최고의 무기인 이유는 무엇일까요?
제2장: 람다(Lambda)의 비밀 — 이름표 없는 마법 기계
페이스북이 30억 명의 해킹을 0.001초 만에 막아낸 일회용 종이컵 기계의 비밀이 내일 연재됩니다.
매일 연재 알림 받기