3학년/인터넷 보안(블록체인 이론)

Chapter02 - 해시 함수(Hash Function)

김야키 2018. 12. 25. 17:26

Chapter02 - 해시 함수(Hash Function)

※해당 자료는 비트코인을 기준으로 만든 내용 입니다.


1.     메시지 지문 생성

l  임의의 메시지에 대해 짧고, 일정하며, 고유한 메시지 지문 생성


l  메시지 : 해시 값 = 1 : 1 관계 보장


l  무조건 어떤 데이터(크기에 상관 없이)를 넣던 SHA-256함수를 이용하면 256비트의 문자가 생성된다.

 

2.     블록 변경

l  해시 값이 변경 되는 것을 보아서 다음 블록으로 연결 시킨다.


l  블록 변경 어려움: 모든 변경 블록에 대해 채굴자들의 합의를 획득해야 가능


l  누구의 블록이 진짜 블록인가?

ü  누군가 블록을 채굴을 하고 합의가 이루어 져서 본인의 블록이 진본으로 판단이 되면 해당 채굴자는 본인에게 보상으로 지급된 장부를 가장 처음에 기입하게 된다.

 

3.     채굴자(블록 생성자) 결정

l  합의 프로토콜(Consensus Protocol)의 문제


l  다양한 합의 프로토콜 존재

ü  작업 증명(Proof of Work) -> 해당 문제를 정확하게 풀면 이번 블록을 만들 수 있는 권한을 준다. 그 문제를 정확히 풀었다는 증명을 해라 -> Nonce로 증명

ü  수요 증명(Proof of Stake)

 

4.     트랜잭션(Transaction): 블록체인 내에서 전송되는 메시지

l  디지털 서명을 통한 메시지 인증 및 부인 방지


l  송신자와 수신자의 필명화를 통한 프라이버시 보호

 

5.     블록(트랜잭션의 묶음): 특정 시간 동안 전송 된 트랜잭션 모음

l  블록 = 블록 헤더 + 블록 바디


l  특정 시간에 정해진 데이터를 입력하지 못 하는 경우를 방지하기 위해 블록 체인의 블록 헤더에서 Nonce로 조정 하도록 한다.

 

6.     합의 알고리즘: 누구의 블록을 어떻게 연결 할 것인가?

l  작업 증명(Proof of Work, PoW) -> Bit Coin


l  지분 증명(Proof of Stake, PoS)


l  위임된 지분 증명(Delegated Proof of Stake, DPoS)


7.     위 변조가 불가능하게 하는 기술

l  블록체인에 참여한 사람은 블록체인에 존재하는 모든 거래 내역을 저장하고 있지만, 자신의 정보를 제외한 다른 모든 정보를 볼 수는 없음


l  , 블록 자체에는 모든 사람의 정보가 모두 담겨 있지만, 정작 본인이 볼 수 있는 거래 내역은 자신이 연관된 정보만 보여 준다.


l  검증 자체는 나의 블록과 다른 사람의 블록이 같은 블록인지 비교한다.

 

8.     해시함수의 특징 3가지

l  같은 데이터에 2개 해시 값은 불가능


l  동일한 값이 있어도 완전히 다른 값이 만들어 진다.


l  같은 길이의 일부분이 동일 하더라도 해시 값은 완전히 다른 값으로 만들어 진다.

 

9.     블록체인에서 해시 함수를 사용하는 이유

l  원본 길이의 크기를 신경 쓰지 않고 원본이 모두 같아야 비교가 가능 하기 때문

 

10.  해시 테이블의 장점

l  적은 리소스로 많은 데이터를 효율적으로 관리하기 위해서


l  하드 디스크나 클라우드에 존재하는 무한에 가까운 데이터()들을 유한한 개수의 해시 값으로 매핑함으로써 작은 크기의 캐쉬 메모리로도 프로세스를 관리할 수 있게 됨


'3학년 > 인터넷 보안(블록체인 이론)' 카테고리의 다른 글

Chapter01 - 블록체인의 이해  (0) 2018.12.24