본문 바로가기

블록체인/솔라나

서명 검증 함수 소개

반응형

솔라나 web3 개발 중에 키페어로 서버에서 서명하는 경우는 다음과 같은 코드를 활용한다.

const keypair = Keypair.generate();
let tx = new Transaction();
tx.sign(keypair);
  • keypair 객체는 public key / secret key 정보가 모두 있어 트랜잭션에 대한 서명을 만들 수 있다.

또는 Transaction 객체의 sign() 함수 대신 addSignature() 를 사용한다면 다음처럼 tweetnacl 함수를 사용해야 한다.

const keypair = Keypair.generate();
let tx = new Transaction();
const buffer = tx.serializeMessage();
const signature = nacl.sign.detached(buffer, keypair.secretKey);
tx.addSignature(keypair.publicKey, Buffer.from(signature));

Transaction 객체의 sign() 또는 partialSign() 함수도 내부적으로는 tweetnacl 함수를 사용한다. 그리고 verifySignatures() 함수를 사용하면 트랜잭션 객체에서 요구하는 모든 서명에 대해 정확한 서명이 동봉되어있는지 boolean 값으로 리턴된다. 여기서 검증하는 함수 또한 tweetnacl 라이브러리를 활용한다.

다음은

https://datatracker.ietf.org/doc/html/rfc8032

반응형