IT world

해시 Hash 본문

블록체인

해시 Hash

엄킹 2019. 5. 8. 03:11

해시란

문장 길이에 관계없이 일정한 길이의 값으로 변경하는 것.

예) 나는 블록체인을 좋아한다 → 125FD1004처럼 임의의 값으로 변경한다. 

만약 문장 내용이 완전히 같으면 완전히 같은 해시값을 가지게 된다.

단! "문장 일부라도 다르다면 완전히 다른 해시값을 가지게 된다."

예) 는 블록체인을 좋아한다 → 125FD1004

     는 블록체인을 좋아한다  EA56204B9 

 

이렇게 일부가 다르다면 전혀 다른 해쉬값을 가지게 된다.

이러한 특징 때문에 해시값 조합을 통해서 원문을 유추하기가 어렵다. 일부만 변경되어도 모든 값이 변경되는 해시의 특징 때문에 해시값을 통해 원래의 문장을 유추한다는 것은 어려운 일이다.

 

블록체인에서 해시가 어떻게 사용되는가?

A의 PC와 B의 PC에서 동일한 해시값을 가지고 있다면 원래의 내용을 서로의 PC가 보지 않아도 원본 내용이 같음을 알 수 있다. 

원본보다 훨씬 작은 해시의 적은 데이터 양으로 비교가 가능하다 

따라서 이러한 장점을 이용해 서로 가지고 있는 내용이 동일한지 동일하지 않은지 간단하게 파악할 수 있다.

 

해시의 특성을 이용해서 블록체인에서는 공공거래장부의 위조를 막고 있다.

 

블록 안에는 이전 블록의 해시값, 해당 블록의 해시값, 거래내역이 보관되어 있다.  블록체인은 각각의 블록들이 체인처럼 연결되어 있는데 이렇게 연결될 수 있도록 해주는 것이 해시이다. 즉 블록체인에서 체인의 역할을 담당하고 있는 것은 해시가 담당하고 있다.

직전 블록의 해시값을 포함하고 있기 때문에 블록의 내용이 변경되면 현재 블록에 포함된 이전 블록의 해시값이 다르므로 잘못된 블록이 되어 버린다. 

 

해시가 왜 위조를 막나?

한 거래내역을 위조를 한다면 블록의 내용을 위조를 하고 배포를 하여 51% 이상의 사람들에게 인정을 받아야 한다. 

하지만 거래내역이 변경되면 해시값이 변경된다. 원본과 다른 해시값을 가지기 때문에 다음 블록은 자신이 가지고 있는 이전의 해시값과 다른 값을 가지고 있으므로 문제가 발생했음을 인식한다. 따라서 위조를 한다면 다음 블록에 포함된 이전 해시값도 변경해야 하고 실시간으로 생성되는 블록들까지도 위조해야 하며 모든 블록의 정보를 변경해야 한다. 

이러한 특징 때문에 블록의 수정과 변경은 어려우며 위조가 힘든 것을 확인할 수 있다.

 

 

'블록체인' 카테고리의 다른 글

이더리움  (0) 2019.05.27
블록체인  (0) 2019.05.08
Comments