블록체인 기술에서 대칭 암호키와 비대칭 암호키는 어떻게 사용되나요?
블록체인 기술은 분산원장의 기록을 암호키로 Locking하여 송-수신한다고 하는데요. 대칭 암호키와 비대칭 암호키가 어떻게 사용되는지 알고 싶습니다.
대칭 키 암호화는 쉽게 말해서 키가 하나라서 똑같은(대칭되는) 암호화와 복호화에 같은 키가 사용되는 방식입니다.
즉, 어떤 거래의 과정에서 거래 내역을 암호화하여 보냈을 때 상대방이 같은 키를 가지고 있어야만 그것을 복호화하여 받을 수가 있게 되는 것입니다. 예를 들면 비밀번호 자물쇠 같은 것이라고 생각하시면 좋을 듯합니다. 왜냐하면 비밀번호 자물쇠의 경우 비밀번호(대칭 키)만 알면 누구나 열 수 있기 때문입니다.
또한 이 방식의 경우 비교적 단순하고 키 관리가 쉽고 빠르다는 장점이 있습니다. 하지만 질문자께서도 금방 생각하셨겠지만 거래를 하기 위해서는 여러 명의 거래 당사자들이 같은 키를 소유하게 되므로 키가 유출될 확률이 높아지고 보안성이 낮다는 단점이 있습니다.
다음으로 비대칭 암호화의 경우 공개 키 암호화 방식이라고도 불리는데, 우리가 현재 사용하고 있는 것처럼 암호화와 복호화에 공개 키와 개인 키 두 가지 키가 사용되는 방식입니다. 공개 키, 개인 키 암호화의 경우 아래와 같은 거래 방식을 가지고 있습니다.
A가 B의 지갑 주소로 암호화폐를 전송하면서 A의 개인 키로 트랜젝션의 내용을 암호화하여 자신의 공개 키 주소를 통해 B에게 보냅니다.
B를 비롯해서 트랜젝션을 검증하는 다른 노드들이 A의 공개 키 주소를 통해 트랜젝션의 내용이 복호화가 되는지 확인함으로써 해당 거래가 유효한 거래인지 확인합니다.
그리고 A의 공개키를 통해 해당 트랜젝션의 내용이 복호화가 가능하여 A가 B에게 암호화폐를 전송했다는 것이 노드들에 의해 검증됩니다.
이때 트랜젝션의 내용에는 해당 암호화폐를 수령하는 것은 B이고 A가 B의 공개 키 주소로 암호화폐를 보낸 것이라는 내용이 있으므로 B가 수령인임이 함께 증명됩니다.
따라서 중간에서 C가 이 트랜젝션의 정보를 탈취하더라도 A가 B의 공개 키 주소로 암호화폐를 보낸 것이 확실하므로 암호화폐를 탈취하기 위해서는 B의 개인 키가 필요하게 됩니다.
따라서 B는 안전하게 A가 보낸 암호화폐를 자신의 개인 키로 서명함으로써 소유권을 정당하게 주장하고 수령할 수 있게 됩니다.
따라서 대칭 키 방식에 비해 보안성이 높다는 장점이 있지만 프라이빗 키를 관리해야하는 부담이 있고 보다 복잡한 거래 과정을 거치게 된다는 점에서 다소 불편할 수 있겠습니다.
답변이 도움이 되길 바랍니다.