App2App API로 execute contract 사용 시 개인키 문의

안녕하세요.

App2App API 사용 및 키 관리에 대해 궁금한 점이 있어서 이렇게 문의드립니다.

해당 API를 사용하여 스마트 컨트랙트를 실행하고자 할때,

클립에서 단순히 6자리 비밀번호만 입력하면 트랜잭션이 전송되는 것을 확인할 수 있었습니다.

위 API를 사용하면서 궁금한 점은 다음과 같습니다.

  1. 사용자의 비밀키는 어떻게 관리되고 있는지?
  2. 6자리 비밀번호를 어떠한 알고리즘을 적용하여 비밀키를 생성해내는 것인지?
  3. 혹시, 키 관리 서비스(KMS)라는 것이 위 비밀키 관리와 관련 있다면, 해당 시스템이 어떻게 안전하게 관리되는지 사용자 입장에서 어떻게 믿을 수 있는지?

이더리움과 같은 타 블록체인에서 주소, 공개키, 비밀키 등 사용하기 어려운 점들이 여럿 있기에
사용자 편의성을 높이고자 클립에서는 비밀번호만으로도 트랜잭션을 전송할 수 있는 것으로 이해하고 있습니다. 그러나, 사용하는 저의 입장에서는, 비밀키가 어떻게 안전하게 관리되고 있는지 여부가 궁금하기에 이렇게 문의 드립니다.

추가적으로,
계정 - Klaytn Docs 페이지에서 다음을 확인할 수 있듯이,

  • 주소로부터 키 쌍(key pairs) 분리하기
  • 다중 키 쌍과 역할기반 키
    기존 이더리움처럼 공개키에서 블록체인 주소를 생성하는 것과 다른 방식으로
    키 생성 및 관리를 할 수 있는 것으로 보여집니다.

어떠한, 내부적인 알고리즘 혹은 메커니즘에 의해 “주소로부터 키 쌍 분리” 등을 할 수 있는지 알 수 있을까요? 관련 알고리즘 혹은 참고자료 등을 알려주시면 감사하겠습니다.

긴 글 읽어주셔서 감사합니다.

@Yoong

안녕하세요. 먼저 주소로부터 키 쌍 분리, 다중서명 관련 링크 첨부드립니다.
클레이튼에서의 다중서명 관련 질의 (AccountKeyMultisig) - Denver님의 글 #2 일전에 누군가 비슷한 주제로 질문을 올려주셨고 거기에 답변을 단 내용인데요, 이 내용들을 먼저 확인해보시면 좋을 거 같습니다 :slight_smile:

App2App API 관련해서는 추후 안내드리도록 하겠습니다.

감사합니다.

안녕하세요 :slight_smile:

Klip의 키관리에 대해서 설명드립니다. 우선 Klip은 코드가 공개된 제품이 아니기 때문에 내부 아키텍처에 대한 자세한 설명은 어려운 점 양해 부탁드립니다.

사용자 키는 HSM이라는 장비에 저장돼 있으며, HSM 구조적으로 외부에서 키를 다시 꺼낼 수 없는 매커니즘을 사용하고 있습니다. 따라서 종종 Klip 키를 Kaikas와 같은 self-hosted wallet에 import할 수 있는지 문의가 오지만 불가능하다고 답변드리고 있는데요, GX에서도 키를 알 수 없기 때문입니다.

사용자 PIN은 로그인된 사용자에게 지식기반으로 추가 정보를 요구하여 서명을 보호하기 위한 장치입니다. 말씀하신 비밀키와는 직접 관련이 없습니다. PIN은 일반적인 로그인 시스템과 동일한 형태로 SHA256 해시가 저장됩니다.

기본적으로 Klip에서 키를 보관하는 방법은 위에 설명드렸습니다. 그외에 실제 서명을 처리하기 위한 권한이 분산된 시스템과 정책으로 구성돼 있으니 믿고 사용하셔도 되겠습니다.

1 Like