본문으로 건너뛰기

키 쌍 — ETH.BUILD

ETH.BUILD 교육 도구를 사용한 공개키-개인 키 쌍 데모입니다. 암호학적 키 쌍이 이더리움 계정을 보호하고 트랜잭션 서명하기를 가능하게 하는 방법을 이해해 보세요.

Date published: 2021년 1월 14일

오스틴 그리피스의 튜토리얼로, ETH.BUILD 시각적 프로그래밍 도구를 사용하여 공개키-개인 키 쌍이 어떻게 작동하는지 보여주며, 개인 키 생성, 공개키 파생, 메시지 서명하기 및 서명 복구를 다룹니다.

이 스크립트는 오스틴 그리피스가 게시한 원본 비디오 스크립트 (opens in a new tab)의 접근성 향상 버전입니다. 가독성을 위해 약간 편집되었습니다.

개인 키 (0:00)

첫 번째 비디오에서 우리는 해시를 사용했으며, 해시는 앞으로도 중요하게 다뤄질 것입니다. 하지만 그 다음으로 가장 중요한 요소는 키 쌍입니다. 키 쌍에서 가장 중요한 부분은 개인 키입니다. 하나 생성해 보겠습니다. 이는 기본적으로 무작위 64자리 16진수 문자열로, 방금 작업했던 해시와 크기가 같습니다.

이를 개인 키로 시작하여 타원 곡선 암호학(사이드 퀘스트로 위키백과에서 확인해 보세요)을 사용해 공개키를 파생합니다. 이제 개인 키와 공개키를 갖게 되었습니다. 방금 무작위로 개인 키를 생성했고, 공개키는 우리에게 주소를 제공합니다. 이곳이 사람들이 실제로 돈을 보낼 수 있는 곳입니다. 누군가 "내 이더리움 주소로 보내주세요"라고 말할 때, 바로 이것을 의미합니다.

만약 웰스 파고(Wells Fargo) 은행에서 계좌를 만들고 싶다면, 은행에 직접 가서 많은 정보를 제공해야 할 것입니다. 시간도 꽤 걸리겠죠. 하지만 돈을 보내고 받을 수 있는 이러한 암호학적 시스템 내에서 계정을 생성하려면, 그저 이 개인 키만 생성하면 됩니다. 이 64자리 16진수 개인 키가 다른 모든 것을 파생시킵니다.

메시지 서명하기 및 복구 (1:54)

이 키 쌍에는 우리가 살펴봐야 할 정말 멋진 특성이 있는데, 바로 메시지 서명하기와 복구입니다. 기본적으로 개인 키를 가져와서 어떤 종류의 메시지에 서명하는 데 사용합니다. 메시지를 입력해 보겠습니다. "the bear is sticky with honey"

이를 메시지로 입력하고 자동 서명 기능을 활성화하면 서명을 반환합니다. 해시와 비슷하게, 서명은 기본적으로 메시지와 개인 키를 가져와서 무언가에 서명하는 것입니다. 그 결과로 얻는 것이 바로 서명입니다.

저는 이것을 세상에 보낼 수 있습니다. 이 서명 문자열을 메시지와 함께 모든 사람에게 공개적으로 보낼 수 있죠. 그러면 누구든지 수학을 이용해 제가 바로 그 서명을 한 사람이라는 것을 검증할 수 있습니다.

서명자의 주소 복구 (3:17)

그것이 어떻게 작동하는지 보여드리겠습니다. 우리는 "복구(recover)" 메서드를 사용합니다. 두 가지 입력값이 필요합니다. 메시지("the bear is sticky with honey")와 서명입니다. 그 결과로 나오는 것은 서명에 사용된 주소입니다. Blockie 아이덴티콘(identicon)을 사용하면 해당 계정이 그 메시지에 서명했다는 것을 시각적으로 확인할 수 있습니다.

이것을 조작할 방법은 없습니다. 누군가 단어 하나라도 바꾼다면(예: "bear"를 "badger"로 바꾸는 등) 모든 것이 바뀝니다. 동일한 서명이라도 메시지가 다르면 올바른 주소가 아닌 다른 주소를 뱉어냅니다.

이 메시지는 조작될 수 없습니다. 여기에 타임스탬프를 넣을 수도 있습니다. "이 날 나는 어떤 일이 일어날 것이라고 예측한다"라고 적고, 서명하고, 서명과 메시지를 공개하면, 앞으로 누구든지 당신이 그 시간에 그 메시지에 서명했다는 것을 수학적으로 증명할 수 있습니다.

키 쌍의 핵심 특성 (4:58)

이것이 키 쌍의 핵심 특성입니다. 64자리 16진수 무작위 문자열에 불과한 것에서 생성된 키 쌍을 사용하여 메시지에 서명할 수 있고, 그 후 해당 메시지를 복구할 수 있습니다.

  • 개인 키 + 메시지 = 서명
  • 서명 + 메시지 = 공개 주소

우리는 개인 키로 데이터에 서명할 수 있고, 사람들은 서명한 사람이 우리라는 것을 증명할 수 있습니다. 이것은 다음 단계를 위한 중요한 요소가 될 것입니다.

이 페이지가 도움이 되었나요?