티스토리 뷰


전자서명

 


문서를 전자서명해서 전송하는 과정


1. 문서를 해쉬한다. (고정길이 해쉬값으로 문서를 압축)

2. 그 해쉬값을 자신의 비밀키로 한번더 암호화 한다.(전자서명)

3. 그 암호화된 문자열을 기존의 문서에 덧붙인다.

4. 전자서명 + 문서를 전송한다.


전자 서명된 문서를 수신하는 과정


1. 문서를 받아서 보낸사람의 공개키로 전자서명된 부분을 복호화 한다.

-> 복호화 하면 문서를 해쉬한 고정길이 해쉬값이 나오게 될것이다.


2. 수신된 문서의 전자서명된 부분을 제외한 나머지 원래의 문서를 같은 해쉬함수로 해쉬해서 해쉬값을 구한다.


1번과 2번의 해쉬값을 비교해서 일치할 경우 그 사람이 이 문서를 보냈다는것이 확실하게 인증 된다.


이것을 비밀키 공개키를 활용한 전자서명이라고 한다.


블록체인에서는 어떤 노드가 트랜잭션을 발생시킬때 그 트랜잭션(문서)을 해쉬한 해쉬값을 비밀키로 암호화한뒤, 원래의 트랜잭션에 덧붙여서 전송한다.


그렇게 되면 이 전자서명된 트랜잭션은 P2P네트워크에 브로드 캐스트 되는데,

이 전자서명된 트랜잭션을 수신한 노드는 전자서명된 부분을 송신자의 공개키로 복호화해서 원래 트랜잭션의 해쉬값을 구하고,


전자서명된 트랜잭션에서 전자서명된 부분을 제외한 나머지 부분인 순수 트랜잭션을 다시 해쉬해서 나온 해쉬값과 비교해서

일치할 경우 이 트랜잭션은 그 사람이 보냈다는것이 확실하게 인증이 되는 구조이다.


이런식으로 블록체인에서는 트랜잭션 발행을 본인만 가능하게끔 만들어 놨고, a라는 사람이 b에게 20만원을 송금했다는 트랜잭션을 전자서명해서 발행시킬 경우 그것을 수신한 다른 p2p네트워크내의 수신 노드들은 전자서명을 복호화해서 a가 보낸 트랜잭션이 맞다고 판단되는 경우 그것을 트랜잭션 풀에 놓았다가 나중에 블록이 채굴되면 그 트랜잭션은 블록에 포함되게 된다.



'컴퓨터 공학과 졸업 > 블록체인' 카테고리의 다른 글

[이더리움] 가스 시스템  (1) 2018.02.11
블록체인 처리 흐름  (0) 2018.02.04
블록체인 FAQ  (2) 2018.01.15
블록체인의 거래 정보 변경 불가  (0) 2018.01.15
블록체인의 이중지불 문제  (0) 2018.01.15
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함