내 ECDSA 서명은 항상 고유합니까?

Dec 01 2020

P2PKH에서 유효성 검사 스크립트는 다음과 같습니다.

<sig> <pubKey> OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

항상 똑같은 개인 키를 사용하고 항상 똑같은 메시지에 서명하면 내 <sig>모든 거래에서 내 고유 한가?

또한 <sig>내 모든 거래에서 항상 동일 하다면 <sig>나를 아는 모든 사람이 나를 가장 할 수 있다는 의미 일까요?

답변

2 Murch Dec 01 2020 at 12:39

디지털 서명은 실제로 누군가의 John Hancock과 거의 비슷하지 않습니다. 디지털 서명은 정확히 하나의 메시지에 암호화 방식으로 커밋되고 다른 메시지에 대해서는 유효하지 않은 것으로 확인됩니다. 누군가의 세 개의 십자가와는 달리 한 문서에서 다른 문서로 들어올 리거나 쉽게 모방 할 수 없습니다.

ECDSA의 서명 알고리즘은 두 가지 입력, 개인 키와 서명이 커밋하는 메시지를 사용합니다. 비트 코인의 경우 "메시지"는 커밋하려는 비트 코인 거래입니다.

서명은 메시지, 개인 키 및 서명 중에 생성 된 임의 구성 요소에서 수학적으로 파생됩니다. 서명을 생성하려면 개인 키에 대한 지식이 필요하지만 메시지, 서명 및 해당 공개 키를 알고있는 사람은 누구나 서명의 유효성을 검사 할 수 있습니다. 서명은 특정 거래에만 적용됩니다. 다른 모든 트랜잭션은 다른 "메시지"에 커밋하려면 서명이 필요하며 이러한 서명은 개인 키에 대한 지식 없이는 생성 될 수 없습니다.

트랜잭션이 하나 이상의 미사용 트랜잭션 출력 (UTXO)을 소비 하고 각 UTXO가 고유하므로 ¹, "동일한 메시지에 서명"이라는 전제는 "모든 트랜잭션에 대해 동일"과 충돌합니다. 각 트랜잭션은 고유해야하므로 트랜잭션이 동일한 개인 키와 관련된 입력을 소비하더라도 서명이 전송되지 않습니다. 따라서 예, 모든 서명은 고유합니다.

또한 <sig>내 모든 거래에서 항상 동일 하다면 <sig>나를 아는 모든 사람이 나를 가장 할 수 있다는 의미 일까요?

아니요, 그게 서명이 작동하는 방식이 아닙니다. 서명이 모든 거래에 대해 항상 동일하다면 유용하지 않을 것입니다. 그러한 "서명"은 귀하가 특정 사항을 약속했음을 증명하지 않으므로 지불을 승인하는 수단이 될 수 없습니다.


¹ UTXO 자신에 의해 고유하게 식별 할 수 있습니다 를 outpoint 의 구성 txid이 그 거래의 출력 목록에서 출력의 위치를 만들어 그. txid트랜잭션 데이터의 SHA256D 다이제스트입니다. 이것은 BIP34 가 코인베이스 트랜잭션에 블록 높이를 포함하도록 요구하기 때문에 사실상 고유 합니다. 따라서 인덕션에 의해 어떤 트랜잭션도 동일한 데이터로 구성 될 수 없습니다.