본문 바로가기

Blockchain

[Blockchain] 개인키&공개키

블록체인에서 개인키(private key), 공개키(public key), 그리고 서명(signature)은 암호학적인 개념들로 ,안전하고 신뢰성 있는 트랜잭션을 보장하기 위해 사용됩니다. 

 

지갑의 구성 및 역할

  • 기본적으로 암화화폐를 안전하게 보관할 수 있고, 암호화폐를 전달하거나 받을수 있다.
  • 자신의 소유권을 함호화 방식을 증명 지갑의 개인키를 사용해서 거래의 검증하고 본인의 자산을 관리
  • 본인의 암호화폐의 보유량도 확인
  • 지갑의 거래내역 확인
  • 복구 문구를 사용해서 지갑복원(복구 문구를 가지고 특정 알고리즘을 거쳐서 개인키를 추출한다.)

 

신원 인증 방식 분산 원장기술 

 

개인키(Private Key)

  • 개인키는 블록체인 지갑의 주인만이 알고 있는 비밀 키입니다.
  • 일련의 무작위 바이트로 구성되며, 매우 큰 숫자입니다.
  • 이 개인키는 블록체인에서 자신의 소유자를 식별하고 , 트랜잭션에 서명하는데 사용됩니다.
  • 블록체인 기술은 개인키를 안전하게 보호하고 관리하는 것이 매우 중요하며, 개인키가 노출되면 해당 지갑의 자산이 위험에 처할 수 있습니다.

공개키(Public key)

  • 공개키는 개인키를 기반으로 생성되는 키로, 개인키와 연관되어 있습니다.
  • 공개키는 블록체인 네트워크에 공개되어 있으며, 누구나 해당 지갑에 대한 트랜잭션을 확인 할 수 있습니다.
  • 개인키는 주로 지갑 주소로 변환되어 사용되며, 누군가가 자신에게 코인 전송할 때 사용됩니다.
  • 개인키와 공개키는 수학적으로 연결되어 있으며, 한 쌍의 키로써 서로에게 반대되는 역할을 합니다.

서명(Signature)

  • 트랜잭션에 대한 서명은 해당 트랜잭션이 개인키의 소유자에 의해 생성되었음을 증명하는 디지털 서명입니다.
  • 개인키를 사용하여 트랜잭션에 서명하면 , 블록체인 네트워크는 해당 트랜잭션이 유효하다는 것을 확인 할 수 있습니다.
  • 서명을 통해 트랜잭션의 무결성(트랜잭션이 변조되지 않았음을 의미)과 인증이 보장되며, 이를 통해 중요한 정보가 변조되지 않고 안전하게 전송되는 것을 확인 할 수 있습니디.

암호화 방식

  • 대칭형: 암호화 복호화 할때 사용하는 키가 동일한 한개의 키를 사용한다. 암호화를 시킨 사람과 수신된 사람이 같은 키를 사용한다.
  • 비대칭형: 사용하는 키와 검증할때 사용하는 키가 다른것 키가 두개 다른 사람에게 공개되어서는 절때 안되는 키(비밀키)를 토대로 만든 공개키가 한다
비밀키와 공개키의 역할

- 공개키 : 상대방에게 공개하는 키
- 비밀키 : 본인만 알고 있어야하는 키 암호문을 검증할때 사용
- 비밀키 소유자는 비밀키로 데이터를 암호화하고 공개키를 같이 전달
- 공개키로 암호문을 받은 사람이 공개키를 가지고 검증을 할 수 있다.
- 공개키 데이터를 검증하는 목적은 데이터를 제공한 사람이 맞는지 신원을 보장 해주기 위한것.

 

순서

  • 암호화 하고 싶은 데이터를 SHA256 방식의 해싱을 하고 
  • 개인키를 사용해서 해시 값으로 서명을 생성
  • 서명이랑 공개키는 제 3자에게 전달 되고
  • 받은 제 3자는 공개키를 이용해서 서명을 검증.

 

 

secp256k1

  • secp256k1은 타원 곡선 암호학(elliptic curve cryptography, ECC)에서 사용되는 알고리즘 중 하나입니다.
  • 특히, 비트코인과 같은 암호화폐에서 주로 사용됩니다. 비트코인의 주소 생성, 서명 검증 등에 이 알고리즘이 활용됩니다.
  • secp256k1은 타원 곡선의 방정식에 기반한 알고리즘이며, 해당 알고리즘은 특정한 소수 필드 위에서 정의됩니다.

타원 곡선 암호학은 컴퓨터 보안 분야에서 중요한 역할을 하는데, 그 중에서도 secp256k1은 블록체인 분야에서 매우 널리 사용되고 있는 알고리즘 중 하나입니다.

'Blockchain' 카테고리의 다른 글

DID(분산신원증명) 개념  (1) 2024.02.15
[Blockchain] 데이터 구조 header/body  (1) 2024.01.23
[Blockchain] Merkle  (0) 2024.01.23