Multi-signature technology introduction

Introduction

Multi-signature technology (mulTIsig) is where multiple users simultaneously sign a digital asset. It can be simply understood that more than one person in an account has the right to sign and pay.

If an address can only be signed and paid by a private key, the form of expression is 1/1; and the multi-signature manifestation is m/n, which means that a total of n private keys can sign an account, and when m addresses When you sign, you can pay for a transaction. So, m must be less than or equal to n.

Multi-signature technology introduction

To give a few examples:

Multi-signature 2/3 indicates that 3 people have the right to sign, and two people can sign the bitcoin in this account.

A multi-signature 1/2 means that two people can sign, and two people have private keys, and anyone can come to dominate the funds.

The principle of multi-signature technology is not very complicated, but it increases the involvement of third parties and can achieve many scenarios that require third-party intervention in real-life scenarios. Different from the traditional third-party intervention, this intervention must be determined in advance before the transaction and cannot be changed afterwards.

Process

The metaverse meta-boundary cli command is used as a demonstration example.

Each participant obtains the public key of an address through getpublickey. The private key corresponding to the public key is used to sign the multi-signature transaction subsequently created, and informs all other participants of the public key.

Each participant individually uses getnewmulTIsig to create a multi-signature with the same signing constraints (that is, the same m, n, and public key list) using its own public key, to get the same multi-signature address starting with 3: "Pay to Script Hash "P2SH (Pay-to-Script-Hash);

A participant initiates a multi-signature transaction using createmulTIsigtx using a multi-signature address; you can use the decoderawtx command to view the transaction details;

The m participants in turn signed the multisignature transaction using signmulTIsigtx. Each participant obtained a partially signed transaction from the previous signature participant in a chained manner.

Broadcast multiple signatures with enough signatures through sendrawtx.


example

This example involves three users: test, testam, and kesalin.

1. Obtaining and disseminating public keys

Each participant obtains the public key of an address through getpublickey. The private key corresponding to the public key is used to sign the multi-signature transaction created subsequently, and informs all other participants of the public key.

// testam get public key command:
./mvs-cli getpublickey testam testam "MCJ6vpdCYsVD34XFC22fhqDLfHo7ZtnyM2"
Output:
{
"address" : "MCJ6vpdCYsVD34XFC22fhqDLfHo7ZtnyM2",
"public-key" : "03d29f0b96f332e50d6014cb91c334214ecb8caf2881a97e7d944bdf4e5fd6a39e"
}

// kesalin get public key command:
./mvs-cli getpublickey kesalin kesalin MHaKHUFwAdcszvQarCmn1Rkq2uRoPQjZwm
Output:
{
"address" : "MHaKHUFwAdcszvQarCmn1Rkq2uRoPQjZwm",
"public-key" : "03f97e079ccae21e1ee65d5ee64e5c27d7d6ce9a867cec75e9736ad5f258329e02"
}

// test to get the public key command:
./mvs-cli getpublickey test 123456 MKXa7mtzNaGCEF9vM2sUmmTS93iDpHYd4m
Output:
{
"address" : "MKXa7mtzNaGCEF9vM2sUmmTS93iDpHYd4m",
"public-key" : "02729cae0c16009f44440f306b76fafb7a7d2503741a619c15b41ff927c1afd6b9"
}


2. Create a multi-signature

Each participant separately uses getxinmultisig to create a multi-signature with the same signature constraints (ie, the same m, n and public key list) using its own public key.

Each participant in the sample specifies its own public key by -s and -k specifies the public key of the other participant to create a multi-signature with m:n 2:3, resulting in the same multi-signature address "39hh1NY9xyTKzawD8zFKXgXa7XBwqck6BR"

// testam creates a multi-signature command:
./mvs-cli getnewmultisig testam testam -m 2 -n 3 -s "03d29f0b96f332e50d6014cb91c334214ecb8caf2881a97e7d944bdf4e5fd6a39e" -k "03f97e079ccae21e1ee65d5ee64e5c27d7d6ce9a867cec75e9736ad5f258329e02" -k "02729cae0c16009f44440f306b76fafb7a7d2503741a619c15b41ff927c1afd6b9" -d "multisig test"
Output:
{
"address" : "39hh1NY9xyTKzawD8zFKXgXa7XBwqck6BR",
"description" : "multisig test",
"index" : 1,
"m" : 2,
"Multisig-script": "2 [02729cae0c16009f44440f306b76fafb7a7d2503741a619c15b41ff927c1afd6b9] [03d29f0b96f332e50d6014cb91c334214ecb8caf2881a97e7d944bdf4e5fd6a39e] [03f97e079ccae21e1ee65d5ee64e5c27d7d6ce9a867cec75e9736ad5f258329e02] 3 checkmultisig",
"n" : 3,
"public-keys" :
[
"02729cae0c16009f44440f306b76fafb7a7d2503741a619c15b41ff927c1afd6b9",
"03d29f0b96f332e50d6014cb91c334214ecb8caf2881a97e7d944bdf4e5fd6a39e",
"03f97e079ccae21e1ee65d5ee64e5c27d7d6ce9a867cec75e9736ad5f258329e02"
],
"self-publickey" : "03d29f0b96f332e50d6014cb91c334214ecb8caf2881a97e7d944bdf4e5fd6a39e"
}
// kesalin creates a multi-signature command:
./mvs-cli getnewmultisig kesalin kesalin -m 2 -n 3 -s "03f97e079ccae21e1ee65d5ee64e5c27d7d6ce9a867cec75e9736ad5f258329e02" -k "03d29f0b96f332e50d6014cb91c334214ecb8caf2881a97e7d944bdf4e5fd6a39e" -k "02729cae0c16009f44440f306b76fafb7a7d2503741a619c15b41ff927c1afd6b9" -d "multisig test"
Output:
{
"address" : "39hh1NY9xyTKzawD8zFKXgXa7XBwqck6BR",
"description" : "multisig test",
"index" : 1,
"m" : 2,
"Multisig-script": "2 [02729cae0c16009f44440f306b76fafb7a7d2503741a619c15b41ff927c1afd6b9] [03d29f0b96f332e50d6014cb91c334214ecb8caf2881a97e7d944bdf4e5fd6a39e] [03f97e079ccae21e1ee65d5ee64e5c27d7d6ce9a867cec75e9736ad5f258329e02] 3 checkmultisig",
"n" : 3,
"public-keys" :
[
"02729cae0c16009f44440f306b76fafb7a7d2503741a619c15b41ff927c1afd6b9",
"03d29f0b96f332e50d6014cb91c334214ecb8caf2881a97e7d944bdf4e5fd6a39e",
"03f97e079ccae21e1ee65d5ee64e5c27d7d6ce9a867cec75e9736ad5f258329e02"
],
"self-publickey" : "03f97e079ccae21e1ee65d5ee64e5c27d7d6ce9a867cec75e9736ad5f258329e02"
}
// test creates a multi-signature command:
./mvs-cli getnewmultisig test 123456 -m 2 -n 3 -s "02729cae0c16009f44440f306b76fafb7a7d2503741a619c15b41ff927c1afd6b9" -k "03f97e079ccae21e1ee65d5ee64e5c27d7d6ce9a867cec75e9736ad5f258329e02" -k "03d29f0b96f332e50d6014cb91c334214ecb8caf2881a97e7d944bdf4e5fd6a39e" -d "multisig test"
Output:
{
"address" : "39hh1NY9xyTKzawD8zFKXgXa7XBwqck6BR",
"description" : "",
"index" : 1,
"m" : 2,
"Multisig-script": "2 [02729cae0c16009f44440f306b76fafb7a7d2503741a619c15b41ff927c1afd6b9] [03d29f0b96f332e50d6014cb91c334214ecb8caf2881a97e7d944bdf4e5fd6a39e] [03f97e079ccae21e1ee65d5ee64e5c27d7d6ce9a867cec75e9736ad5f258329e02] 3 checkmultisig",
"n" : 3,
"public-keys" :
[
"02729cae0c16009f44440f306b76fafb7a7d2503741a619c15b41ff927c1afd6b9",
"03d29f0b96f332e50d6014cb91c334214ecb8caf2881a97e7d944bdf4e5fd6a39e",
"03f97e079ccae21e1ee65d5ee64e5c27d7d6ce9a867cec75e9736ad5f258329e02"
],
"self-publickey" : "02729cae0c16009f44440f306b76fafb7a7d2503741a619c15b41ff927c1afd6b9"
}


3. Send coins to multiple signature addresses

Participants send virtual currency on the multi-signature address created according to the requirements of the contract.

Tweeter For Horn Speaker

Minsound offers a great range of Driver Units,providing accurate reproduction.high intelligibility and dependable performance in commercial sound,signaling and public address loudspeaker systems.

All models are suited for Minsound reflex horns,equipped with the industry standard 1-3/8"-male tread pattern.

This series driver units are compression driver unit tweeter,which is solid and durable ,long lifetime, high acoustic quality and wide coverage. Suitable for public security, tourism, teaching, transportation, environment use.tweeter

Compression Horn Driver,Compression Tweeter Drivers,Tweeter compression driver,Compression Driver,Compression Driver Unit

Taixing Minsheng Electronic Co.,Ltd. , https://www.ms-speakers.com

Posted on