Klaytn Usability Improvement Series #2: Introducing Multisig on the Platform-Level

Tech at Klaytn
Klaytn
Published in
3 min readMar 31, 2021

--

See the list of articles here.
🇰🇷: Klaytn 사용성 개선 #2: 플랫폼에서의 멀티시그 지원

One of Klaytn’s top priorities has been improving the usability of our blockchain platform. In this series, we will show you some features that contribute to a more user-friendly experience.

  1. Separating Keys and Addresses
  2. Introducing Multisig on the Platform-Level
  3. Fee Delegation
  4. Supporting Role-Based Keys on the Platform-Level
  5. Implementing Explicit Types for Accounts and Transactions

In our last post, we learned about separating the key from the address and explained how the key field was added in the process. In this article, we will take a look at multisig, which uses the key field.

Multisig can be used to enhance account security. Most blockchain platforms involve complex procedures for multisig. Taking Ethereum for example, you need a smart contract to use multisig. But if the primary objective is achieving stronger security, understanding “smart contract” may be a bit too much of a demand, although it does enable many other features as well.

You will have be able to answer the following questions in order to properly use multisig:

  • What is a smart contract?
  • How do you implement a multisig contract using smart contract?
  • Is the contract safely implemented?
  • How is this contract going to be deployed on the network?
  • How do you execute this contract?

Answering these questions requires a high degree of knowledge, and it would be not feasible to understand everything just for the sake of account security. Let’s say you were to use a private deposit box from a bank; you don’t have to know the complex details of its mechanism. What matters is that it’s there and you are using it.

And we thought the same for blockchain. It would be much safer and easier if security could be enhanced on a platform level. In our previous post, we added the key field on the Klaytn account. This can be extended to multisig without much difficulty, by simply storing multiple keys in that field.

For the sake of flexibility, we added the concepts “weight”and “threshold”. Each key is assigned a weighted value and a transaction is considered valid only when the weighted values of the signed keys exceed the threshold. For example, let’s say k1, k2, and k3 have a weighted value of 1, 2 and 3 respectively and the threshold for that account is 3. Only the transactions signed with the keys in the combinations below will be valid.

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

In this post we learned about multisig implemented on a platform-wide scale. Using Klaytn allows improved security with multiple private keys. For more details about multisig, please refer to the references: AccountUpdate Transaction and AccountKeyWeightedMultisig. Since this feature has been implemented on the platform-level, users and wallet developers can use multisig with no trouble. In our next post, we will take a look at fee delegation. Thank you for reading, and stay tuned!

--

--