Multiple Signatures Of BIP 11
The financial background of Bitcoin development is simple: all funds controlled by a single central authority must be managed by each member of the network. This approach allows mitigating risks and avoiding problems with malfunctions at a single central point. However, technical details of such a proposal should solve newly appearing problems.
First of all, distributed data records are to be synchronously arranged. This means that each time a transfer occurs, it should eventually appear in all copies of the main ledger. In Bitcoin, this problem is solved with the help of a time interval between two blocks. If a block time is big enough, this guarantees data exchange across the whole network.
The second question concerns security. Initially, it was assumed that a single place to store passwords is vulnerable to external influence. However, if all data is dispersed throughout the network, key information is also in danger. Therefore, it is important to ensure data security without sacrificing complete transparency. This problem is solved through hashing and cryptography on elliptic curves. Their combination guarantees an incredibly high level of reliability.
After these basic issues were resolved, new tasks started to appear. One of them is about the cooperation between several users.
Bitcoin uses a signature system based on asymmetric encryption. This means that there are pairs of keys. While the private key must be kept secret in the most secure place, the public key can be shared. The main idea of such an approach is buried deep in mathematical functions, but we can omit complex details and get close to the point.
You can use public keys along with data that is available solely to the owner of the key pair. Data processing does not require much effort. The owner uses the private key to unlock the data. Thanks to the peculiarities of cryptography, it is next to impossible to crack key pairs or get a private key from a public one.
This creates a simple and at the same time efficient system. A sender signs asset transfer with the recipient's key. Thus, only the recipient can open these funds. However, if someone steals a private key, this person will get access to the funds and will be able to manage them. If the key is lost, all money is lost along with it.
M out of N Participants
Initially, all transactions were based on the peer-to-peer system — one sender and one recipient can take part in the process. A bit later, when the system became more popular, it turned out that more complex money management processes are required. In order to support them, an additional improvement was created — BIP 11.
This proposal explains how to change the signature system to support functionality similar to escrow (2 of 3 signatures) or additional wallet safety support (2 of 2 signatures). According to the specification, such a transaction is to define n signatures out of m with the help of “OP_CHECKMULTISIG”, a special command designed to verify validity. This caused a signature size increase. While it used to have 200 bytes, the newly introduced value has risen to 500 bytes.
Another issue concerns the mandatory use of the “OP_0” because of possible problems with stack dropping.
Interestingly, before this official introduction, multiple signatures were used by the community. Since Bitcoin is flexible, some of its functionality may not be accepted by official developers. Yet, it may be used independently by enthusiasts. It is because some signatures and commands are stated to be standard, while others are not. Thus, implementing and proposing different alternatives is possible if you mine them on your own.
As we can see, not only is the work on Bitcoin development possible on the community's demand. Participants are free to use their own ideas if they are safe and well-developed. Many alternative solutions can be applied today as non-standard and simply wait for their total legalization.