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 |
---|