해시와 해시함수가 뭔지 알아보자

in #kr7 years ago (edited)

암호학에 있어서 해시는 매우 중요한 요소이며
블록체인에도 마찬가지이다

보기만해도 현기증이 나겠지만 참고 한번 알아보자

IT 계열은 용어가 무진장 중요하다
또한 무진장 거지 같다
마치 10대 애들이 쓰는 은어 같은 수준인게 바로
IT 용어다. ㅇㄱㄹㅇ(이거리얼) 뭐 이런거?

대신 용어자체에 그 뜻이 함축되어 있어서
한번만 제대로 알면 그후 이해도에서 다른 사람과
엄청난 차이가 나게 된다

일단 용어의 일반적 뜻부터 알아보자

Hash : 잘게 썰고 섞어서 짬뽕
함수 : 상자와 수?

사실 함수라는 용어의 탄생은 아래와 같다

function [평션] -> 휭션(중국발음) -> 한션 -> 한슈


함수의 유래

한국어 용어들은 이런 식으로 다른나라에서 번역한걸
재번역해서 알아듣기 어려운게 많다

다만 함수의 경우는 예상외로 원래의 뜻에 굉장히
가까운 뜻이 되었는데 이왕이면 그냥 '함' 이었으면
더 나을지도 모르겠다

진짜 뜻과 우연찮게 유사함

여튼 함수의 의미는 수학시간에 지겹게 들어서 뭔지는 알겠지만
이게 또 정확히 모를 수도 있으니 다시 설명하겠다

함수는 함에 들어있는 모종의 장치로 인해서
입구에 뭔가를 넣으면
거기에 반응해 출구에 뭔가가 튀어나오는 것을 말한다

가장 대표적으로 자판기다

돈과 버튼 - 입구
나오는 것 - 결과물

이렇게 되는 것이다
여기서 맥심을 눌렀는데 콜라가 튀어나오는 참사는 없다
함수는 사용처에 따라 '그렇게' 설계해놓는다
예를들어 자동차의 핸들함수의 경우
오른쪽으로 돌렸을때(입력) 오른쪽으로 간다(출력)
왼쪽으로 가면 설계자가 싸이코거나 문제가 있는것이다

여하튼 우린 함수의 '설계'를 알 필요는 없다
단순히 그 함수가 용도에 맞게
뭔가를 넣으면 원하는 결과를 뱉게만 하면된다

결과만 원하는데로 나오면 내부는 어찌만들던
상관할바가 아니다

그럼 해시함수의 용도는 무엇이며
우리가 원하는 결과물은 뭘까

이해를 돕기 위해 다음의 예제를 보자


본래의 짜장면(원래의 데이터)


어이쿠(해시함수)


늦어서 죄송합니다 짜장면 시키셨죠?(해시당한 결과물)

대체 이것이 뭔가
우리가 원한게 멀쩡한 음식이 해쉬당해 음식 쓰레기가
되는 것이란 말인가?

음식점에서야 이딴 쓰레기 함수는 안쓰겠지만
암호학이라면 얘기가 다르다

암호학이 원하는 것은 짬뽕쓰레기 결과다
해커가 결과로부터 입력값을 절대 모르게 하기 위해서다

우리는 이것을 직접 실험해볼 수 있다
아래사이트로 가보자
http://www.convertstring.com/ko/Hash/SHA256

이 사이트는 자신의 입력을 해시함수가
어떻게 망쳐놓는지를 보여준다

이걸보면 확실히 해커가 나의 원래 입력을
결과로부터 알아낼 수가 없다는 것을 알것이다

근데 그래서 뭘 어쩌란 것인가
이걸 어떻게 쓰라구 라고 범인은 생각한다
하지만
암호학자들은

입력이 같으면 결과값도 같다

라는 사실에 주목하게 된다

200번 커피를 누른다고 그중 한번은 콜라를 뱉는게
아니라는 것이다
그것은 역으로 상대가 뭘 누른지 몰라도
커피가 나왔다면 커피버튼을 눌렀다는 확인이 된다는 것이다!

흔히들 보안업체가 말하는 변명(?) 같은게 있다
우린 패스워드를 암호화해서 실제론 모른다
이게 말인지 방구인지 잘 몰랐을 것이다
암호화했어도 자기네들이 가지고 있을테고
확인할려면 어차피 풀어야하는데 누가 푼단 말인가

여기서 바로 해시함수가 등장한다

쟤네들이 가진 그 암호화 된것이란 바로
짬뽕된 해시값을 뜻한다

그 해시값만 가지고 있다면 그 말대로 자기네들은
상대방의 암호를 알아낼수가 없는 것이다
하지만 상대방이 보낸 암호를 해시함수에 입력해서
결과가 자신들이 가진 해시값과 일치한다면?

그것은 진짜라는 것이 인증된다

해시함수를 통해
커피가 나왔으니 상대가 커피가 나오게 하는 입력을
넣은것이 확실하다는 것이다

이건 이전에 설명한 지갑에서 키파일의 작동방식이기도 하다
🔗이더리움 온라인 지갑을 만들어보자

키파일은 털려도 상관없다. 어차피 해시값일 뿐이니
거기서 원래값은 알아낼수 없다
우리가 지갑에 로그인할때 키파일을 주고
그 다음에 패스워드를 입력한다. 그럼 지갑은 그 패스워드를
바로 해시함수에 집어넣어 값을 뽑아낸다
이제 이 값과 키파일의 값을 비교,
일치하면 인증이 되는 것이다

이로써 해시에 대해서 어느정도 알았을 것이다
덤으로 외국인이 떡갈비에 대해서 물으면

'오우 잇츠 갈뷔해시~'

라고 자신있게 지껄일 부가지식까지 얻은 것이다
해시가 이렇게나 유용하다

빙수는? 아이스해쉬 오우..-ㅅ-~

함수는? 오우~... 오.. .. 예~

..뭐...그런 것이다
어쨋든 유용하고 생각보다 쉽다는 것이다

Sort:  

설명을 엄청 쉽게 잘해주시네요^^
좋은글 감사합니다^^

댓글 감사합니다 +_+/
새로운 댓글은 항상 아래에서 찾는데 짱님은 위에서
등장하시니 가끔 놓치네요 ㅎㅎ

제 스스로에게 보팅을 하느라 ㅋㅋㅋ

예전에 댓글 보팅에 가산점 주는 방안 나올려다가
말았는데 그게 아쉽네요 ㅎㅎ

어젠가는 될지도 모르죠^^
다음포크에..

보팅을 안할수가 없네요~

언제나 이해가쏙쏙되는 쉬운 설명 감사합니다ㅎㅎㅎ

다음편에는 트렌젝션 아이디 검색과 예상 컨펌시간등에대해서 부탁드려도될까요?

ㅎㄷㄷ 네 노력해보겠습니다 +_+/

기대하고있겠습니다! ㅎㅎㅎ

역시 트윈브레이드 님의 비유는 최고입니다 ^^

캄사합니다! 한글로는 처음으로 닉 언급된거 같습니다
맨날 트윈버드라고들 하시던데 ㅋㅋ

헐.. 블록체인만 아니였으면.. 숨길수 있었을텐데
망할 블록체인..;ㅁ;

쏙쏙 들어오는 설명 감사합니다.^^

댓글 감사합니다!

@twinbraid 님의 포스팅만 잘 모으면, 정말 이해하기 쉬운 백과사전 하나 만들어도 될것 같습니다~!!

ㅎ 과찬이십니다.. 십과사전이라면 가능할지도-0-

쉽게 설명해주셔서 감사합니다.
채굴관련 뉴스를 보면 해시레이트가 올라갔다라고 하는건 암호가 어려워 졌다 이런말이 되는건가요?

채굴에서 해시파워는.. 블록체인이 암호를 해시질해서 제시합니다
그럼 채굴자들이 그 암호를 맞추기위해서 노력하게됩니다
그때 노력의 방법은 암호를 해킹하는게 아니라
있는대로 쳐넣는거죠. 맞을때까지..
초당 얼마나 쳐넣을 수 있는가를 해시파워, 해시레이트라고 합니다
해시레이트가 올라갔다는 말은 그만큼 사람들 컴이 좋아졌다는 말입니다
더불어 좋아지면 좋아질수록 블록체인도 그에 맞춰서 난이도를 올리니까
캐는건 그만큼 어려워집니다

해쉬발명도 역대급인거 같아요 ㅎㅎ

다 역대급이죠.. 그냥 다 ㅋㅋ
하나도 모르겠음

감사합니다. 문돌이인데.. 이렇게 쉽게 설명해주시니 .. ㅎㅎ

ㅎㅎ 저두 초보라.. 제 눈높이가 낮습니다 아주 많이

설명 너무 재밌게 잘 하시네요 ㅋㅋㅋ 어이쿠(해시함수)

의외로 짜장면 엎은 그림이 없어서 고생했습니다
다 정상 짜장면뿐.. 건모형이 살렸습니다

감사합니다. 저같은 문돌이에겐 진짜 빛과 소금같은 글을 매번 포스팅해주십니다. ㅜ
구멍이 두갠데, 넣는 구멍으로 배출만 하고 나오는 구멍을 통해 역으로 들어갈 순 없는 상자인거군요!
51%의 해시 파워를 가진다는 것은 코인 거래를 암호화하는 '함수' 역할을 하는 그 상자, 즉 컴퓨터파워를 51% 확보한다는 걸로 이해되구요. 제가 맞게 이해한 거였으면 좋겠네여 ㅜ

정말 감사합니다!

아니 제 설명도 이상해서 다시 설명하겠습니다

51%의 해시파워를 가진다는 것은 컴퓨터파워를 51% 가진다는 말은 맞습니다
코인 거래를 암호화하고 풀고 전달하는 것도 컴퓨터가 맞고요
근데 해시파워는 암호화하는게 아니라 암호를 푸는 힘입니다
블록체인이 암호를 내고 컴퓨터가 그것을 푸는 것을 채굴이라고 하죠

헉 어렵네여 ㄷㄷ 어찌됐든 감사합니다! ㅋ

C6xx715V0AA4zAz.jpg

해시파워쪽하고 알려면 블록체인의 개념뿐만 아니라
어떻게 작동하는지도 알아야되므로 일단은 저것만 이해하셔도 됩니다
저도 블록체인의 작동쪽은 긴가민가하거든요 ㅎ

보팅 잘보고갑니다 ^^

감사합니다!

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 65128.68
ETH 3442.23
USDT 1.00
SBD 2.52