BITCOIN BTC
3,825,500 (+0.38%)
크레이그 라이트의 사토시 나카모토 인증은 거짓
최초작성 : 2주 전 / 최종수정 : 2주 전 / 작성자 : misskiwi

크레이그 라이트(Craig Wright)는 본인이 사토시 나카모토임을 증명하기 위해 서명 증명을 자신의 블로그를 통해 공개했습니다.

크레이그가 증거를 제시한 직후, 사람들은 그가 정상적인 서명을 통해 증명에 성공했다고 파악했지만, 이 방식은 기술적인 트릭이 존재하고 결국 그가 제시한 증거라는 것은 유효하지 않습니다.

가장 간단하고 완벽하게 자신이 사토시 나카모토임을 증명하는 방법(다른 이가 불특정하게 제시하는 문자열에 개인키로 서명하여 서명을 검증하는 방식)을 두고, 굳이 이런 말도 안되는 방식을 택한다는 것부터 문제가 있습니다. 그는 어떤 것도 증명한 바가 없습니다.

비트코인의 서명 확인

비트코인은 ECDSA를 이용한 공개키와 개인키 쌍을 이용하여 권한을 관리합니다. 그리고 송금을 하지 않더라도(트랜잭션을 만들어 노드에 알리지 않더라도) 개인키의 소유권을 확인할 수 있는 방법이 있습니다. 개인키를 소유하고 있다면 자신의 개인키와 문자열을 가지고 서명 알고리즘을 거쳐 전자 서명을 만들 수 있습니다. 상대방이 임의의 문자열을 얼마든지 바꿔 요청하더라도 개인키의 소유자라면 유효한 서명을 만들 수 있습니다.

  • A : 내가 비트코인 XXX 주소의 소유자입니다.
  • B : 그렇다면 iamsatoshi 라는 문자열로 서명해보시지.
  • A : 여기 서명입니다.

받은 서명을 확인하여(대부분의 지갑 소프트웨어가 서명의 생성 및 확인 기능을 지원합니다.) 유효한 서명임이 입증되면 그가 개인키의 소유주임을 확인할 수 있습니다. 미심쩍다면 문자열을 바꿔가며 요청하면 더 확실하겠지만 굳이 수차례 반복할 필요까지는 없습니다. 불특정 문자열에 유효한 서명을 생성하는 것은 거의 불가능에 가깝기 때문입니다.

크레이그 라이트의 증명

크레이그 라이트는 사토시의 지갑임이 유력한 주소를 택하여 서명을 제시했습니다.

하지만 그가 제시한 방식은 개인키가 없어도 가능한 방법입니다.

사토시 지갑(으로 추정되는)에서 발생한 트랜잭션의 입력 스크립트를 보면 3045022100...cce01 라는 서명 부분을 확인할 수 있습니다.

이 서명은 OP_CHECKSIG라는 알고리즘을 통해 생성된 서명입니다. 이 알고리즘은 트랜잭션의 바디 부분을 추출하고 SHA 해시를 적용한 뒤 ECDSA를 거치는 순서로 제작됩니다. 그리고 여기서 사용된 모든 데이터는 당연히 이미 블록체인에 공개되어 있습니다.

위 트랜잭션에서 보면 12cb.. 주소로 출력하는 부분이 있습니다. 이 출력 스크립트는 0411db93e1dcd...656b412a3 입니다.

비트코인 클라이언트의 getrawtransaction을 통해 해당 트랜잭션의 raw 트랜잭션을 구한뒤 위 공개된 정보를 통해 변형하고, 해시코드 01000000을 더하면 서명을 위한 새로운 raw 트랜잭션 바디 데이터를 얻을 수 있습니다.

그리고 여기에 SHA 해시를 한번 적용한 결과를 자신의 웹사이트에 올려둔 것입니다. 그리고 보다시피 이 증명 과정에서 개인 키가 사용된 적은 없습니다.

이미 사용된 사인을 재사용한 것에 불과합니다. 새로운 메시지에 사인을 하는 것이 훨씬 쉽고 확실한 방법입니다. 그럼에도 불구하고 그는 말도 안되는(그가 사토시 나카모토 본인이라면 더더욱) 방법을 택했고, 더 쉽고 확실한 방법은 한 적이 없다는 점입니다.

그가 사토시 나카모토일수도, 아닐 수도 있습니다.

하지만 명확한 것은, 크레이그 라이트는 한번도 본인이 사토시 나카모토임을 증명하지 못했습니다.

최초작성 : 10개월 전 / 최종수정 : 10개월 전 / 작성자 : misskiwi