Klaytn 사용성 개선 Series #2: 플랫폼에서의 멀티시그 지원

Tech at Klaytn
Klaytn
Published in
3 min readNov 28, 2019

전체 포스팅 목록은 여기에서 확인하세요.

Klaytn은 블록체인 플랫폼의 사용성을 개선하기 위해 다양한 노력들을 했습니다. 아래의 포스팅을 통해 사용성 개선 기능들을 살펴보고자 합니다.

  1. 키와 주소의 분리
  2. 플랫폼에서의 멀티시그 지원
  3. 대납 기능
  4. 플랫폼에서의 Role-based key 지원
  5. 명시적인 타입 정의

이전 포스팅에서 키와 주소의 분리에 대해 알아보았습니다. 키와 주소의 분리를 위해 Klaytn의 계정에는 key라는 필드가 추가되었다고 설명하였습니다. 이번 포스팅에서는 이 key 필드를 이용하여 멀티시그를 지원하는 것에 대해 이야기 해 보겠습니다.

멀티시그는 계정의 보안성 강화를 위해 사용할 수 있습니다. 대부분의 블록체인 플랫폼에서는 멀티시그를 이용하려면 복잡한 기능이 필요합니다. 이더리움을 예로 들면, 멀티시그를 사용하기 위해서는 스마트 컨트랙트를 이용해야 합니다. 원하는 기능은 계정의 보안성 강화인데, 그보다 훨씬 다양한 기능을 할 수 있지만 그만큼 복잡한 “스마트 컨트랙트”라는 것을 이해해야 합니다.

아래 질문들에 대답을 할 수 있어야 멀티시그를 제대로 사용할 수 있습니다.

  • 스마트 컨트랙트가 무엇인가?
  • 스마트 컨트랙트를 이용해 멀티시그 컨트랙트를 어떻게 구현해야 하는가?
  • 구현한 컨트랙트가 안전하게 구현되었는가?
  • 구현한 컨트랙트를 네트워크에 어떻게 배포해야 하는가?
  • 구현한 컨트랙트를 어떻게 실행해야 하는가?

이러한 질문에 대답하기 위해서는 상당한 지식수준을 요구하며, 단순히 계정 보안 강화를 위해 위의 내용을 다 이해하는 것은 너무 어렵습니다. 우리가 만약 은행의 대여 금고 서비스를 이용한다고 할 때, 그 금고가 어떻게 구성되어 있는지 동작원리를 다 이해해야 할 필요는 없습니다. 단지 서비스가 거기 있고, 필요하면 그것을 그냥 이용하면 되는 거죠.

블록체인도 마찬가지라고 생각했습니다. 금고처럼 보안성 강화를 위한 기능이라면 플랫폼 수준에서 그 기능을 제공하는 것이 더 안전하고 사용하기 쉬운 방법이라고 생각했습니다. 이전 포스팅에서 Klaytn의 계정에 key 필드를 추가했고, 이를 이용해 쉽게 멀티시그로 확장할 수 있습니다. 해당 필드에 키를 여러개 저장하면 되니까요.

다만 좀 더 자유도를 높이기 위해 가중치(weight)와 임계치(threshold)라는 개념을 도입했습니다. 각 키는 가중치 값을 가지며, 트랜잭션 내 서명한 키들의 가중치 합이 임계치를 넘어야 유효한 트랜잭션으로 인정됩니다. 예를 들어, 가중치 1인 k1, 가중치 2인 k2, 가중치 3인 k3가 있고, 해당 계정의 임계치가 3이라고 하면, 아래와 같은 키 조합으로 서명한 트랜잭션이 유효한 트랜잭션으로 인정됩니다.

  • k3
  • k1, k2
  • k1, k3
  • k2, k3
  • k1, k2, k3

이번 포스팅에서는 플랫폼 수준에서 구현된 멀티시그 기능에 대해 알아보았습니다. Klaytn을 이용하면 쉽게 여러 개인 키를 사용하여 보안을 높일 수 있습니다. 이 기능을 플랫폼 레벨로 내렸기 때문에, 사용자 또는 지갑 개발자들이 좀 더 쉽게 멀티시그를 이용할 수 있을 거라고 기대합니다. 다음 포스팅에서는 대납 기능에 대해 알아보겠습니다.

--

--