요즘IT
위시켓
새로 나온
인기요즘 작가들컬렉션
물어봐
새로 나온
인기
요즘 작가들
컬렉션
물어봐
개발
AI
IT서비스
기획
디자인
비즈니스
프로덕트
커리어
트렌드
스타트업
서비스 전체보기
위시켓요즘IT
고객 문의
02-6925-4867
10:00-18:00주말·공휴일 제외
[email protected]
요즘IT
요즘IT 소개작가 지원
기타 문의
콘텐츠 제안하기광고 상품 보기
요즘IT 슬랙봇크롬 확장 프로그램
이용약관
개인정보 처리방침
청소년보호정책
㈜위시켓
대표이사 : 박우범
서울특별시 강남구 테헤란로 211 3층 ㈜위시켓
사업자등록번호 : 209-81-57303
통신판매업신고 : 제2018-서울강남-02337 호
직업정보제공사업 신고번호 : J1200020180019
제호 : 요즘IT
발행인 : 박우범
편집인 : 노희선
청소년보호책임자 : 박우범
인터넷신문등록번호 : 서울,아54129
등록일 : 2022년 01월 23일
발행일 : 2021년 01월 10일
© 2013 Wishket Corp.
로그인
요즘IT 소개
콘텐츠 제안하기
광고 상품 보기
개발

해시가 뭐길래 안전하단 거죠? 비트코인 외계어 쉽게 이해하기 3편

돌망
5분
2021.05.20.
5.8K

소화가 잘되는 비트코인 지식

 

모든 분야의 '입문'은 흥미롭습니다.

비트코인의 경우도 그렇죠.

 

유튜브에 비트코인을 검색하면 나오는 약 5~10분 길이의 영상들은 비트코인이 뭔지 잘 알려줍니다. 심지어는 재밌기까지 하죠.

 

간단하고 쉬운 설명은 절 "비트코인 별거 아니네.." 라는 착각에 빠뜨린 채, [블록체인 공부 -심화 편]으로 이끌었지만,

 

 

별게 아닌 건 비트코인이 아닌 제 두뇌였다는 걸 깨닫는 데는 오랜 기간이 걸리지 않죠.

 

분명 초반엔 "은행을 대신해", "거래를 안전하게!"처럼 귀엽고 이해 가능한 설명을 하던 사람들이 갑자기 SHA-256, 머클루트, 논스와 같은 외계어를 뱉기 시작하는데요.

 

만성 수학 기피증에 걸린 제게 수학과 공학이 만들어낸 이 거대한 장벽은 지식 대신 자괴감을 선물해줬습니다.

 

"쉽게 이해하기"라는 목표를 가진 이번 시리즈에서도 이 함수들을 최대한 외면하려 했으나…

 

 

이젠 외면이 힘들어졌습니다. 블록체인의 안전을 담당하는 해시함수는 설명에서 뗄레야 뗄 수 없거든요.

 

본격적으로 기술 용어와 개발 외계어들이 자기주장을 하기 시작하는 비트코인 및 블록체인의 진짜 원리!

오늘은 그 시작으로 블록체인의 핵심인 해시함수를 알아보죠.

 

오늘의 글은 해시함수가 무엇이며, 이게 블록체인에서 어떻게 안전을 담당하는지에 대한 답을 담고 있습니다.

 

*본 글은 '소화가 잘되는 비트코인 지식'시리즈의 세 번째 글입니다.

혹시 아직 비트코인이 뭔지 모르신다면

탈중앙화 및 블록체인에 대한 설명이 담긴 1편과 채굴에 대한 설명이 담긴 2편을 참조해주세요.

 

해시함수는 일종의 랜덤 비밀번호 생성기입니다. 해시함수는 특정 값(인풋)이 들어오면 이를 랜덤하게 변형시켜 해시값이라는 새로운 비밀번호를 뱉어냅니다.

 

이 해시함수는

[입력값이 바뀌면 해시값도 바뀐다]와

[해시값을 가지고 입력값을 알아낼 수 없다]

라는 두 가지 특징을 갖고 있는데요.

 

이번 장에선 해시함수의 일종인 SHA-256에 직접 값을 넣어보며 이 특징들을 하나씩 살펴보겠습니다.

*본문은 이 웹사이트를 활용, 해시값을 구했습니다.

 

 

첫 번째 특징: 눈덩이 효과

해시함수는 인풋값이 한 글자라도 변하면전혀 다른 결과값을 만들어냅니다.

눈덩이 효과

 

위 예시의 경우 최규재 할아버지의 "무~야~호~!"를 "도전~"으로 바꿨을 뿐인데

그 결괏값은 "b2718..a53"에서 "57675..7d3"로 전혀 새로운 비밀번호가 생성되었죠.

 

비트코인은 이러한 특징을 활용해서 해시함수에 거래내역을 넣습니다.

10분마다 쌓이는 수백 수천개의 거래내역은 이 해시함수에 들어가 “86d52…bfa”라는 64자리 비밀번호로 바뀌는데요.

 

나쁜 마음을 먹은 해커가 이 거래내역 중 숫자를 하나만이라도 조작한다면 해시함수는 눈덩이 효과를 활용, 이 비밀번호를 “5418..006”이라는 전혀 다른 값으로 바꿔버립니다

 

덕분에 비트코인 시스템은 해당 비밀번호 하나만 확인한다면, 거래내역을 하나하나 살펴보지 않아도 누군가 거래를 조작했는지 손쉽게 확인할 수 있습니다.

 

 

두 번째 특징: 역추적 불가

또한, 해시함수는 결괏값을 기반으로 인풋값을 알아낼 수 없습니다.

역추적 불가

 

무한도전 대본을 해시함수에 넣으면 "b27... a53"라는 해시값이 나오지만

"b27...a53"이라는 값을 안다고 해서 무한도전의 대본을 찾아내는 건 매우 힘들죠.

 

비트코인 시스템은 이를 활용해 채굴자들에게 문제를 내는데요.

 

예를들어 “[b27... a53]라는 결과값을 가장 빨리 찾아낸 사람한테 새로운 블록과 비트코인을 보상으로 줄게!” 라는 미션을 주는거죠.

 

즉 해시함수의 역추적 불가라는 특징은 [b27... a53]라는 값으로 입력값을 추정하는 것을 불가능하게 만들기 때문에, 채굴자들은 해시함수가 [b27... a53]라는 값을 뱉어낼 때까지 0부터 숫자를 1씩 늘려가면서 넣어보는 노가다를 해야만 하는 겁니다.

 

해당 문제를 푸는건 모두에게 공평하게 어렵기 때문에, 비트코인 시스템은 누군가에게 독점이 되지 않고 안정적으로 운영이 되는 것이고요.


정리하자면 해시함수는 조금만 입력값을 바꿔도 전혀 다른 결과값을 뱉으며, 역추적이 불가능한 아주 까다로운 함수입니다.

이 덕분에 블록체인은 거래의 조작을 쉽게 감지하고, 모든 채굴자들에게 공통적으로 어려운 채굴 미션을 줄 수 있죠.

 

하지만 사실 앞선 예시처럼 [b27..a53]이라는 특정한 결과값을 알아내는 미션은 해결 불가능한데요. 이는 저 값을 찾아낼 확률이 (40억*40억*40억*40억*40억*40억)분의 1에 불과하기 때문입니다.

*이는 전세계 인구가 각자 보유한 슈퍼컴퓨터로 동시에 계산을 해도 인류가 멸종할 때까지 계산할 수 없는 수준.

 

전세계 채굴자들이 저 문제를 풀다가 실패하고 멸종하는 걸 보고만 있을 순 없는 비트코인 시스템은 결국 “난이도”라는 개념을 추가하는데요.

비트코인이 이 난이도 개념을 어떻게 활용해서 문제를 풀 수 있게 하는지는 다음편에서 알아보겠습니다.

 

©️요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.

에디터가 직접 고른 실무 인사이트 매주 목요일에 만나요.
newsletter_profile0명 뉴스레터 구독 중