이제 Public Key와 Private Key를 만드는 과정에 진입했는데
드디어 수학적인 개념들, 그림들이 나오기 시작하네요
privateKey를 만드는 함수에는 매개변수로 랜덤 뭐시기가 필요하구요
이 퍼블릭 키는 elliptic curve의 x,y좌표에서 나온다라고 합니다
또한 public key 구조체는 private key 필드(구조체)안에 있기 때문에 private key로 public key의 x,y를 바로 참조 가능한 점도 흥미롭네요
간단했지만 속은 복잡할 것같은 지금까지의 코드들의 로직을 살펴봅세다~
1. ecdsa.GenerateKey() 함수를 통해서 private Key를 만듭니다
2. message := "i love blockchain" 메세지를 만들고
hashed_message := utils.Hash(message) 메세지를 해시드된 16진수 string으로 만든 후
hashAsByte := hex.DecodeString(hashed_message)를 통해서 hashAsByte로 만든다
3. r, s, err := ecdsa.Sign(랜덤 리더, private Key, hashAsByte) 를 사용하여 sign(ature, 서명)을 만들어냅니다
4. ok := ecdsa.Verify(Public Key, HashAsByte, Sign) 으로 확인? 증명을 해줍니다
%d로 모두 출력해봤을 때
'go언어 블록체인' 카테고리의 다른 글
노마드코인 11-4 (0) | 2021.08.02 |
---|---|
노마드 코인 11-3 (0) | 2021.08.01 |
노마드 코인 11-1 (0) | 2021.07.30 |
노마드 코더 10-13 리뷰 (0) | 2021.07.30 |
노마드 코더 10-12 리뷰 (0) | 2021.07.30 |