From Decimal Wiki
Jump to navigation Jump to search

|titlemode= append


Electronic/digital signature allows you to confirm the authorship of an electronic document (whether it is a real person or, for example, an account in a cryptocurrency system). The signature is linked to both the author and the document itself using cryptographic methods, so it cannot be forged using ordinary copying."

"'Multi—signature'" is a scheme for implementing an electronic signature, which for its reliability requires T keys from a group of N members, where T is less than N.

Multi-signature requires the cooperation of at least T members of a group of N participants. The private key is divided into N parts, and any T parts are enough to restore it. Multi-signature is implemented as a check of the specified conditions, which is carried out by the basic system of cryptocurrency scripts.

What is Multisignature used for

Multi-signature is used to complicate the operation in order to share responsibility or increase security.

The sharing of responsibility implies that several people must collectively make a decision on the transfer of funds, which is recorded using the use of a personal digital signature. An example is a situation where a company has two or more owners. In order to spend a significant amount, they must come to an agreement, while the subjects may be located in different parts of the globe.


Multi-signature security is achieved due to the fact that the keys required for signing are stored on different devices. For example, one is on a computer, and the other is on a smartphone. In order to seize the funds, an attacker must gain access not only to a computer that is connected to a cryptocurrency wallet, but also to other devices or storage locations that contain other private keys.

Multi-signature on DecimalChain

Addresses with multi-signature are available on Decimal. This is very convenient when allocating funds or simply making a joint decision when there are several independent participants and consensus conditions between them. For example, funds are withdrawn from the common wallet only if 80% of the company's participants agree to it (four out of five participants).

Three types of transactions are implemented to implement the functionality:

  • CreateMultisig

CreateMultisig creates a wallet with a multi-signature, indicating the owners, the weight of their vote and a threshold value (for example, three out of five or two out of three). A multisigned address is generated with the addition of a data string, which is passed to the hash function along with the input data array (prototype) to calculate the hash (image). This is done to allow you to create many addresses with three identical parameters and save them to the repository.

  • CreateTransaction

CreateTransaction creates a transaction to withdraw the specified number of specified coins to the specified address, the creator of the transaction immediately signs it. Each such transaction is assigned a unique identifier.

  • SignTransaction

Other owners of a multi-signature wallet can request unconfirmed transactions at this address, their parameters and identifiers. After that, they simply send a SignTransaction type transaction to the blockchain, in the parameters of which there will be a unique transaction identifier from paragraph 2. After verifying the signature, the number of collected "votes" from the transaction increases in accordance with the subscriber's weight in paragraph 1. If the threshold value is reached, the operation is executed, funds are transferred, the balances of the multi-signature address and the recipient's address are changed.

As a result, thanks to this scheme of interaction of multi—signature participants, we exclude offline communication between them. At least it becomes optional.