공개키 편집하기
최신판 | 당신의 편집 | ||
25번째 줄: | 25번째 줄: | ||
=== 비트코인 === | === 비트코인 === | ||
− | 모든 비트코인 주소에는 | + | 모든 비트코인 주소에는 '''공개키'''와 '''개인키'''가 들어 있다. 컴퓨터와 같은 통신 환경을 허락받지 않은 공격자가 통신 중에 정보를 도청하여 변조하거나 다른 애용을 삽입 또는 삭제할 수 있다. 이처럼 거래 및 블록체인 변조를 방지하는 가장 좋은 방법은 정보를 암호화하는 것이다. |
− | + | 1. 트랜잭션을 위해 발신자는 개인키와 공개키를 생성한다. 개인키는 서명 생성 용도이고, 공개키는 서명 검증 용도이다. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | 2. 발신자는 생성한 공개키를 미리 수신자에게 전달한다. 발신자의 서명을 검증하기 위해 수신자는 자신이 받은 공개키로 서명을 검증할 수 있다. | |
− | |||
+ | 3. 발신자는 개인키를 이용해 전자 데이터를 암호화한다. 만들어진 암호문을 전자서명이라고 한다. 보낸 사람만 알고 있는 개인키로 암호문을 생성하기 때문에 그 암호문은 서명으로서의 의미를 가진다. 온라인상에서 거래를 실현하기 위해서는 이전 소유자의 본인 인증과 부인 방지를 위해 전자 서명이라는 방법을 사용한다. | ||
+ | |||
+ | 4. 발신자는 생성된 전자서명을 원본 전자 데이터에 붙여서 수신자에게 전달한다. | ||
+ | |||
+ | 5. 수신자는 공개키를 이용해 받은 전자서명을 복호화한다. 복호화에 성공하면 원본 전자 데이터가 변조되지 않은 것이다. | ||
+ | |||
+ | 6. 수신자는 전자 데이터와 복호화한 결과를 비교하여 내용이 같은지 확인한다. 비교 결과가 같다면 전자 데이터는 변조되지 않은 것이다. | ||
+ | |||
+ | '''공개키'''를 사용하면 한 사용자가 다른 사용자의 주소로 비트코인을 보낼 수 있고, 거래의 전자서명을 확인하여 모든 것이 올바른지 확인하고 거래를 마무리할 수 있다. 반면에 '''개인키'''는 비트코인을 받은 사람이 '잠금 해제'하고 비트코인을 사용할 수 있게 한다. 한 당사자가 트랜잭션에 서명한다는 것은 비트코인 네트워크에서 그 사람이 비트코인이 보유된 주소의 소유자이며 거래가 유효하다는 것을 알리는 것이다. 비트코인 주소의 개인키를 보유하고 있는 사람은 누구나 그 주소가 보유하고 있는 비트코인을 사용할 수 있기 때문에 개인키는 본질적으로 비트코인을 보관하는 금고 열쇠이다. 사용자는 역시 한 주소의 개인키를 사용하여 메시지에 서명하거나, 지정된 주소에 보유돼 있는 비트코인의 소유자임을 확인할 수 있다. 이러한 거래의 정확성은 비대칭 암호화를 사용하는 수학을 통해 보증된다. | ||
{{각주}} | {{각주}} | ||