해쉬란??steemCreated with Sketch.

in #elamachain8 years ago (edited)

HASH.png

블록체인이란 이전 포스팅에서도 설명했듯이, 거래내역 등의 데이터가 '블록'이라고 하는 저장환경에 저장되어 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 데이터 위변조 방지 기술입니다.

쉽게 말해서 "위조 안되는 공공 거래 장부" 입니다.

블록체인 네트워크를 사용하는 모든 이들이 똑같은 거래 장부를 보유하고 있어야하기 때문에 내가 작성하는 블록과 너가 작성하는 블록이 같은 것인지 내용 대조를 해야하고 그렇게 해서 공공 거래 장부인 블록체인이 만들어 진다는 것을 이해하기 어렵지는 않습니다.

하지만 어떻게 블록체인이 기술적으로 위변조를 막을 수 있는지가 문제입니다. 블록체인은 데이터 위변조 방지 기술이잖아요.
블록체인을 여러명이 공유하는 것 자체도 방법이지만 (하나 털려도 백업 해놓은 것과 같은 동일한 다른 블록체인이 많으니까요)
블록체인에는 데이터 위변조를 더욱 어렵게 하는 장치가 있습니다.

바로 해시(Hash) 입니다. 많이 들어보셨죠?
그놈의 해시를 알아보겠습니다.

해시(Hash)
-블록체인을 가능하게 만드는 기술-

006.jpg

코린이를 위한 블록체인 용어정리에 있습니다^^

말 그대로 문장 길이에 관계없이 일정한 길이의 값으로 변경할 수 있어 용량 절약이 되고, 또한 원문이 같으면 해시값도 완벽히 일치합니다. (저렇게 변환해주는 것을 '해시함수'가 해줍니다)

001.png

문장 길이에 관계 없이 일정길이의 문자열로 변경

002.png
원문이 같으면 해시값도 완벽히 일치합니다

중요한 것은 내용 속에 글자 하나라도 다르면 완전히 다른 해시값을 가진다는 것입니다.
003.png

토씨하나 안 틀리고 똑같으면 완전히 똑같은 해시값을 가지기 때문에
짧은 문장으로 원본내용 모두 완전히 같다는 것 정도는 비교할 수 있게 됩니다!
마찬가지로 한 글자의 모음 하나라도 다르면 해시값이 완전히 달라지기 때문에 해시만 봐서는 원래 문장을 알아낼 수가 없고 위변조 되었는지 아닌지도 쉽게 알 수가 있겠죠?

그런데 이게 왜 중요하냐?

블록에는 거래 내역과 블록생성시각, 논스값 등 다양한 정보가 있고, 이를 해시값으로 만들어 놓습니다. 눈여겨 보아야 할 것은 블록에는 해당 블록의 해시값과 직전 블록의 해시값이 있다는 사실입니다.

004.jpg

블록에는 직전 블록의 해시값이 있습니다.(blockchain.com)

블록에 직전 블록의 해시값이 있기 때문에 이전 블록과 연결되어 있다는 것이고, 모든 블록이 순차적으로 해시를 통해 연결되어 있기 때문에 '블록체인' 이 되는 것입니다. 체인 역할을 하는게 해시죠.

그런데 해시로 연결되어있는 블록 중에 일부를 내가 위조해버리면 해당 블록의 해시값이 완전히 변하게 되고, 다음 블록도 수정해야합니다.다음 블록을 수정했으니 그것도 해시값이 바뀌겠죠. 그러면 또 다음 블록을 수정해야합니다. 작업이 번거로워지죠.
005.png

하나 수정하기도 힘든데 다른 컴퓨터에 저장된 블록 체인들도 모두 수정해야합니다.

게다가 위조하는 동안에 비트코인 같은 경우 10분 마다 하나씩 블록이 계속 추가로 생성됩니다. 위조한 블록의 해시값을 가진 그 다음 블록 그 다음 블록을 만들어야합니다.

블록체인 네트워크보다 빠른 연산력으로 위조 해야하기 때문에 현재 해킹 기술로는 현실적으로 위조 및 배포는 불가능합니다.

요약하자면
해시(Hash)는

  1. 문장 길이에 관계없이 일정한 길이의 값으로 변환하는 것
  2. 블록에 직전 블록의 해시값이 있기 때문에 체인 역할을 하는 것
  3. 블록 내용을 바꿔버리면 해시값도 변하기 때문에 위변조를 방지하는 것
    입니다!
    이상 해시의 의미와 중요성에 대해서 간략하게 알아보았습니다!

참조:

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.082
BTC 60573.65
ETH 1550.46
USDT 1.00
SBD 0.47