토큰 전송 in-memory wallet

웹에서 토큰을 전송하는 사이트를 만들고 있습니다. (node.js, caver-js)

caver.kct.kip7.transfer 를 호출 하기전에 아래와 같이 in-memory wallet 에 계정을 추가하는데요.

const keyring = caver.wallet.keyring.createWithSingleKey(user.ky_address, user.ky_private);
if (!caver.wallet.isExisted(user.ky_address)) {
caver.wallet.add(keyring);
} else {
caver.wallet.updateKeyring(keyring);
}

여러 사람들이 사이트에서 토큰을 보낸다면, 보안상 문제가 없을까요?

안녕하세요.
keyring 자체가 private key의 정보를 가지고 있기때문에, 사이트 상에 키가 노출될 수 있을 것 같습니다.

감사합니다.

1개의 좋아요

답변 감사드립니다.

caver.kct.kip7 을 사용하려다보니 keyring 을 사용하게 된 것인데, 토큰 전송을 다른 방식으로 처리해야 되나보네요.

혹시 이런 사이트를 만들때, 어떤 api 를 쓰는게 좋을까요?

웹페이지의 코드에 저 코드가 들어가있는거면 개인키가 유출되는 문제가 있겠지만, 서버쪽에서 저렇게 코드를 관리하는 것은 문제가 되지 않는다고 생각합니다.
현재 코드가 보안상으로 문제가 있을지 없을지는 질문자님이 더 잘 파악하실 수 있을 거라 생각합니다.

또한 웹페이지의 구성은 질문자님이 하셨으므로 어떤 API 혹은 라이브러리를 사용하면 좋을지도 질문자님이 더 잘 파악하실 수 있을 것 같습니다.

KAS에서 제공하는 API중 KIP7 API가 있습니다. 검토해보시기 바랍니다.

https://refs.klaytnapi.com/ko/kip7/latest