This article has been translated from English to Korean.

이번 강의에서는 비트코인과 다른 암호화폐에서 디지털 서명이 실제로 어떻게 작동하는지 알아볼 것입니다.

이 단계에 도달하기 위해서는 먼저 디지털 서명을 만드는 데 필요한 "구성 요소"인 몇 가지 기술적 개념을 배워야 했습니다.

이 개념에 익숙하지 않다면, 이전 수업에서 초보자에게 친숙한 방식으로 설명했습니다. 자세한 내용은 위의 링크를 참조하십시오.

디지털 서명은 어떻게 만들어지나요?

디지털 서명이 단계별로 어떻게 이루어지는지 살펴봅시다.

  1. 비트코인을 보내고 싶을 때, 여러분의 지갑은 거래 메시지를 생성합니다. 이 메시지에는 보내고자 하는 비트코인의 양과 수신인의 주소와 같은 정보가 포함되어 있습니다.
  2. 이 메시지는 해시 함수를 통해 실행됩니다.
  3. 해시 함수는"메시지 해시"또는 간단히"해시"라고 알려진 출력을 생성합니다.
  4. 이 메시지 해시는개인 키로암호화됩니다.
  5. 암호화된 메시지 해시는"디지털 서명"이 됩니다.

이 과정의 흐름도는 다음과 같습니다.

How a Digital Signature is Created

따라서 이 과정이 끝나면 지갑에 두 개의 "항목"이 생성됩니다.

  1. 거래 메시지
  2. 디지털 서명 (거래 메시지의 암호화된 해시)

이 시점에서는 아직 비트코인 네트워크로 전송된 것이 없습니다.

모르셨다면, 거래 메시지 자체가 디지털 서명을 생성하는 데 필요한 "재료"입니다.

따라서 개인 키 를 사용하여 디지털 서명을 생성하는 것이 아니라 개인 키와 거래 메시 지의 해시를 사용합니다.

이는 이 디지털 서명을 다른 거래에 사용할 수 없음을 의미합니다. 두 번째 거래에서 이 디지털 서명을 사용하려고 하면, 첫 번째 거래의 데이터에만 기반을 두고 있기 때문에 비트코인 네트워크에서 거부될 것입니다.

모든 디지털 서명은 특정 거래에 고유합니다.

디지털 서명은 어떻게 검증됩니까?

특정 비트코인 주소에서 비트코인을 사용하려면, 그 주소에 연결된 공개 키와 쌍을 이루는 개인 키의 "소유권(또는 지식)"을 증명해야 합니다.

그러나 개인 키를 공개하지 않고 이 작업을 수행하려고 합니다.

디지털 서명은 공개 키에 연결된 개인 키를 알고 있다는 것을 증명하는 데 사용할 수 있는 것으로, 실제 개인 키를 공개하지 않아도 됩니다.

이것이 어떻게 작동하는지 보도록 하겠습니다:

  1. 비트코인 거래를 시작할 때, 여러분의 지갑 소프트웨어는 실제로 비트코인 네트워크에 세 가지 "항목"을 제공합니다: 원래의 거래 메시지, 디지털 서명, 그리고 여러분의 공개 키 (보내려는 비트코인이 현재 저장되어 있는 주소와 연결되어 있음).
  2. 비트코인 노드가 이 "항목"을 받으면, 그것들을 분리합니다.
  3. 원래의 거래 메시지를 가져와서 이전에 사용한 것과 동일한 해시 함수를 통해 실행합니다. (모든 비트코인 소프트웨어는 동일한 해시 함수를 사용합니다.) 디지털 서명의 경우, 해독을 위해 제공한 공개 키를 사용합니다.
  4. 그러면 두 해시가 비교됩니다.
  5. 두 해시가 정확히 일치합니까?
  6. 두 해시가 일치한다면, 이는 여러분이 보내고자 하는 비트코인의 실제 소유자임을 증명하는 것입니다.

이 과정의 흐름도는 다음과 같습니다.

How a Digital Signature is Verified

여기서 두 가지 사항을 지적하고자 합니다.

1. 공개 키를 사용하여 해독할 수 있다는 것은 발신자의 신원을 증명하는 것입니다.

3단계에서 노드가 디지털 서명을 해독할 수 있게 되면, 이것이 여러분의 "신원"을 증명하게 됩니다.

개인 키와 공개 키는 수학적으로 연결되어 있으므로, 제 공개 키 로 메시지를 해독할 수 있다면, 그것은 제가 제 개인 키 로 메시지를 암호화했다는 의미입니다.

메시지의 암호를 해독할 수 없다면, 그것은 다른 사람의 개인 키로 암호화된 메시지라는 의미입니다. 그리고 그것은 저에게서 온 메시지가 아니라는 의미입니다.

2. 해시가 정확히 일치하면 메시지가 변경되지 않았음을 증명합니다.

6단계에서는 두 해시가 정확히 일치하는지 확인하여 원본 메시지가 변경되지 않았는지 확인합니다.

디지털 서명이 암호화되어 있는 것과는 달리, 모든 비트코인 거래는 공개되어 있기 때문에 원본 거래 메시지는 일반 텍스트로 되어 있습니다.

약간의 변경만으로도 완전히 다른 해시를 생성할 수 있다는 것을 기억하십시오. 따라서 누군가가 노드로 가는 도중에 원래의 거래 메시지를 가로채서 수정한다면(예를 들어 비트코인을 자신의 주소로 보내는 것처럼), 메시지가 해시 함수를 거칠 때 디지털 서명과 완전히 다른 해시를 생성하게 됩니다.

손으로 쓴 서명이 특정 문서를 작성한 사람과 연결되는 것과 유사하게, 암호화를 이용한 "디지털 서명"은암호학적으로특정 메시지와 신원을 연결합니다.

요약

이제 디지털 서명이 어떻게 생성되고 어떻게 검증되는지 이해하셨을 것입니다. 이제 거래에 서명하는 것이 실제로 무엇을 의미하는지, 그리고 송금인이 송금하고자 하는 비트코인의 소유권을 검증하기 위해 송금인의 "디지털 서명"이 어떻게 사용되는지에 대한 큰 그림을 살펴보겠습니다.

Digital Signature Process