내 지갑은 어떻게 작동합니까?

작성자 정보

  • 레딧 작성
  • 작성일

컨텐츠 정보

본문

저는 일반 대중을 이더리움/비트코인이 작동하는 방식에 대한 보다 추상적인 개념으로 연결하고 싶기 때문에 귀하의 "지갑"이 실제로 어떻게 작동하는지에 대한 포스트를 작성하려고 합니다. 댓글에 잘못된 부분이 있으면 알려주세요. 축약하기 어려운 주제입니다. 이러한 주제 중 많은 부분이 비트코인이 작동하는 방식과도 겹칩니다. 그러나 저는 이더리움 각도에서 연구했습니다.

수학을 두려워하지 말고 직관을 파악하세요. 수학이 당신에게 도움이 된다면 훌륭합니다!

공개 키 및 주소

공간의 한 지점을 상상해 보십시오 . 공개 키는 공간의 한 지점입니다.

공간에서 이 점을 어떻게 계산합니까?

개인 키(k)를 사용하여 공개 키(공간 K의 지점)를 찾을 수 있는 타원 곡선 암호화에 오신 것을 환영합니다.

타원 곡선은 다음과 같이 생겼으며, 함수의 오른쪽 부분에서 무한대가 되는 경향이 있음을 알 수 있습니다. 귀하의 공개 키는 이러한 무한 라인에 속하는 포인트입니다.

https://imgur.com/a/1WbFqf5

공개 키를 생성하는 데 일정한 타원 곡선의 임의 지점인 중요한 상수 G도 있습니다. 이 상수 G는 말 그대로 공개 키를 생성하는 데 사용되기 때문에 "Generator Point"라고 합니다.

이제 이러한 기본 개념을 알았으므로 공개 키를 계산하는 것은

K = k * G

(공개키 = 비공개키 좌표 * 생성기 포인트 좌표)

타원 곡선에 대한 곱셈은 이 게시물의 범위를 벗어납니다. 그러나 K와 상수 G가 주어지면 k를 다시 계산할 수 없습니다.

Horray, 이제 내 공개 키가 있습니다! 이것은 내 공개 키입니다. 공간의 이 지점. 그게 다야 나는 k(개인 키)의 유일한 소유자이기 때문에 공간에서 이 특정 지점을 계산할 수 있는 유일한 사람입니다.

재미있는 사실은 공개 키는 일반적인 0x...Ab가 아니라 개인 키와 비슷하다는 것입니다. 공개 키의 keccak 해시는 친구와 공유하는 귀하의 주소입니다.

지갑

지갑은 또 다른 추상화 계층을 추가합니다. "우리가 다른 암호화 트릭을 추가하고 단일 니모닉 문구에 연결된 여러 지갑을 가질 수 있다면 어떻게 될까요?"

따라서 이 지갑은 다음을 수행합니다.

  1. 니모닉 생성(BIP39 표준 사용)
  2. f(mnemonic, walletNumber) => 개인 키를 매핑하는 일종의 함수를 만듭니다.

이제 니모닉으로 N개의 주소를 생성할 수 있으며 니모닉으로 암호화되어 보호됩니다. 이 개념을 확장하고 기본적으로 이 방법을 재귀적으로 사용하는 Hierarchical Deterministic Wallets에서 Google을 확장할 수 있습니다. 조직에서 주로 사용합니다.

디지털 서명 및 거래

이 세부 사항을 많이 확장하지는 않지만 일반적인 아이디어를 제공합니다.

예를 들어 이더리움 트랜잭션을 생성할 때 "디지털 서명"을 생성한 다음 트랜잭션으로 실행합니다. 이것은 실제로 트랜잭션을 실행하지 않고도 트랜잭션을 작성할 수 있음을 의미합니다.

다음과 같은 방법으로 디지털 서명을 만들 수 있습니다.

서명 = Fsig(transactionData, k), k가 개인 키임을 기억하십시오.

Fsig() 는 일반적으로 r 및 s라고 하는 두 값으로 구성된 서명을 생성합니다.

시그 = ( r , s )

이 r,s 값은 "v"라고 불리는 도입되지 않을 변수와 함께 개인 키를 표시하는 타원 곡선 위의 좌표입니다.

이 서명을 사용하면 기본적으로 "예, 이 거래는 실제로 이 공개 키로 서명되었습니다"라는 복잡한 알고리즘인 "확인"으로 진행합니다.

확인된 거래가 있으면 이더리움 네트워크에 브로드캐스트하면 채굴됩니다.

내 주소가 공개 키의 해시인 경우 누군가 내 공개 키를 어떻게 볼 수 있는지 궁금할 것입니다. 거기에 공적인 부분이 어디 있습니까? 왜 이렇게 합니까?

이 특정 부분에 대한 전문가는 아니지만 이전에 r,s,v 변수를 사용하여 서명된 트랜잭션에 대한 타원 곡선 좌표를 다시 계산할 수 있습니다. (r,s)는 타원 곡선의 점임을 기억하십시오. 이 곡선에 대해 말하자면 v를 "차원"으로 취하거나 완전히 무시하십시오. 즉, 실제로 공개 키는 주소가 트랜잭션을 수행한 후에만 노출됩니다. 따라서 공개 키는 "외부 소유 계정"에서 사용할 때까지 비공개입니다. 이것은 "포인트"(공개 키)를 거래할 수 있는 누군가의 주소로 바꿉니다. 이것이 공개 키와 주소 간의 주요 개념적 차이점입니다.

/u/FeelTheFish 가 제출함
[링크] [댓글]

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 34,184 / 593 페이지
번호
제목
이름

공포-탐욕 지수


알림 0