개인 키는 암호화폐의 소유권을 증명하고 블록체인에서 그 이동을 승인하는 비밀 숫자입니다. 이는 네트워크가 사용자의 주소에서 발생한 거래를 수락하기 전에 확인하는 디지털 서명을 생성합니다.
암호화폐를 전송할 때 지갑은 개인 키를 사용해 거래에 서명하고, 네트워크는 그 서명을 사용자의 주소와 대조해 확인한 뒤 일치하면 전송을 기록합니다. 키 자체는 절대 공유해서는 안 되는데, 이를 가진 사람은 누구든 사용자인 것처럼 거래에 서명할 수 있기 때문입니다.
공개 키는 이에 대응되는 개념입니다. 이는 개인 키로부터 파생되며 자유롭게 공유할 수 있고, 자금을 받거나 서명을 확인하는 데 사용되지만 지출을 승인하는 데는 사용되지 않습니다. 이 관계는 단방향이므로 공개 키는 개인 키로부터 계산할 수 있지만 그 반대는 불가능합니다. 개인 키를 가진 사람이 자금을 통제합니다. 그게 전부입니다.
지갑에서 0.5 단위의 암호화폐를 보내려 한다고 가정해 보겠습니다.
지갑이 개인 키로 거래에 서명하고, 네트워크가 이를 검증합니다:
개인 키로 서명 → 네트워크가 서명 확인 → 0.5 단위 전송 승인
다른 누군가가 그 개인 키를 복사했다면, 그 사람은 별다른 것 없이도 자신의 거래에 서명해 사용자의 자금을 모두 이동시킬 수 있습니다. 그래서 개인 키는 비밀로 유지되어야 합니다.