불변성과 위변조 방지 원리
블록체인의 가장 강력한 특성은 불변성(immutability), 곧 한 번 기록되면 사실상 바꿀 수 없다는 점입니다. 그런데 디지털 데이터는 원래 복사와 수정이 자유롭습니다. 어떻게 '바꿀 수 없는' 기록이 가능할까요?
하나를 고치면 줄줄이 무너진다
앞 수업에서 각 블록은 **앞 블록의 지문(해시)**을 품고 있다고 했습니다. 그래서 어떤 블록 하나를 몰래 고치면 연쇄 반응이 일어납니다.
- 고친 블록의 내용이 바뀌므로 → 그 블록의
해시가 바뀐다. - 그 지문을 가리키던 → 다음 블록의 연결이 깨진다.
- 깨진 연결 때문에 → 그 뒤의 모든 블록이 줄줄이 어긋난다.
말로만 들으면 와닿지 않으니, 직접 깨뜨려 보세요. 아무 블록의 내용을 고치면 어떤 일이 벌어지나요?
블록 변조 실험
🔗 직접 해보기: 아무 블록의 내용을 고쳐보세요.
각 블록은 앞 블록의 해시를 품고 있어 사슬처럼 연결됩니다. 위 블록 중 하나를 고쳐보세요.
고친 블록 이후가 전부 빨갛게 변했을 겁니다. 위변조를 감추려면 그 뒤 블록을 전부 다시 계산해야 합니다. 블록이 길수록 다시 계산할 양도 어마어마하게 늘어납니다.
혼자 고쳐봐야 소용없다
설령 한 사람이 자기 컴퓨터에서 모든 블록을 다시 계산해 냈다고 해도, 그것만으로는 위변조에 성공하지 못합니다. 진짜 블록체인에서는 이 장부가 전 세계 수많은 노드에 똑같이 복제돼 있기 때문입니다.
진짜 블록체인은 장부가 전 세계 수천에서 수만 대의 컴퓨터(노드)에 똑같이 복제돼 있습니다. 내
것만 고쳐봐야 나머지 다수와 달라 무시당합니다. 다수의 사본을 동시에 바꾸는 것은 현실적으로
불가능하기 때문에, '한 번 기록되면 사실상 바꿀 수 없다(불변성)'고 말합니다.
여기서 주의할 점이 있습니다. 불변성은 '절대 0%의 가능성'이라기보다 '비용이 천문학적이라 시도할 이유가 없는 상태'에 가깝습니다. 블록을 다시 계산하고 다수 사본을 압도하는 데 드는 자원이 얻을 이익보다 훨씬 크기 때문에, 합리적인 공격자라면 시도할 이유가 없습니다.
이 불변성이 블록체인을 '믿을 수 있는 기록'으로 만드는 한 축입니다. 다른 한 축인 탈중앙화는 곧 살펴봅니다.