Feeless Multi-Signature Transactions
March 9, 2021
Today’s blog post will discuss feeless multi-signature (multisig) transactions, as an example of the unique versatility available to Stealth’s feeless transaction mechanism.
— — — — — — —
Briefly, feeless transactions are those where the amount sent is the same as the amount received, and, instead of fees, a user submits proof that his computer did a minimum of work. It is important to note that “feeless” is not the same as “free”. Feeless transactions have spam protection, while free transactions do not. Feeless transactions are helpful for accounting, and more importantly enable transacting with small amounts of money. I described feeless transactions in much greater detail in SDBS #31.
— — — — — — —
A multisig account is one that is sent to a subset of a group of addresses. For example, imagine you have a group of three different XST addresses that we’ll call A, B, and C. A user could make a 2-of-3 multisig account with these three addresses. In this case, all of the following combinations could make a spend from the 2-of-3 multisignature account: A+B, B+C, and A+C.
A single multisig address is associated with each multisig account, and takes the form of a “pay to script hash” (P2SH). P2SH addresses look like regular addresses, except they begin with a different first digit. On testnet, multisig addresses start with a “2”, while regular addresses start with “m” (mainnet regular XST addresses usually start with “S”).
For example, a couple of Stealth addresses from testnet are:
In most cryptocurrencies, addresses are abbreviated versions of cryptographic public keys. For these two addresses, the associated public keys are, respectively:
We could combine these two public keys to make a multisig account, in this case a 1-of-2 multisig account where either party could spend money sent to the account. The 1-of-2 multisig address from the above two keys is:
Sending to this address is as simple as sending to a regular address. Done with the command line client (CLI), sending 20 XST to the address looks like:
— — — — — — —
Multisig addresses have a variety of uses, but the most critical uses have to do with security. The major security applications are (1) preventing unauthorized spending by approved signatories (2) preventing spending when keys are compromised, and (3) ensuring access of funds.
An example of the first use is when a company or institution holds a large balance, and unauthorized spending would require a conspiracy between multiple individuals. While conspiracies cannot be universally prevented, the barrier to create a conspiracy is difficult from a game theoretic perspective because defectors might have something to gain by turning the others in.
An example of the second application is when one of the signatories gets his keys stolen. The thief would not be able to send any funds without convincing a valid number of the other legitimate signatories to sign a transaction.
An example of the third application would be when a signatory dies and no one knows what his key was or how to recover it. Funds could still be sent from the multisig wallet by the other signatories, assuming an n-of-m multisignature account where n is less than m, which is a typical setup.
It is critical to understand that for cryptocurrency adoption, support for multisig accounts is paramount. Most laypeople cannot be expected to hold private keys securely, keep track of them, and remember how to use them in times of urgency or crisis. For this reason, many people (e.g. Coinbase customers) keep cryptocurrencies with trusted custodians. The custodians may have security standards and practices that use multisig accounts for the reasons I mentioned above.
— — — — — — —
Today, as a proof of concept, I created the world’s first feeless (not “free”) multisig transaction. Then, I spent the money from the multisig account using a feeless transaction.
As noted in SDBS #31, the only other cryptocurrency with true feeless (spam resistant) transactions is Nano (and its clones). Steem (and its clones) also has a type of no-fee transaction, but the mechanism to prevent spam is somewhat different from proof-of-work.
Nano does not have multisig accounts, nor has any plans to introduce them. Steem and its clones also don’t have true multisig accounts in the sense that the sender cannot be guaranteed that the account will always have the same multi-signature properties – or will always be authorized by multi-signatures for that matter. In Steem it is possible to set multiple spending authorities for an account, to function similarly to a multisig account. However, these authorities can be changed at any time, potentially destroying the multisignature properties of the account.
— — — — — — —
For those interested in the process of using feeless transactions in combination with multisig accounts, I provide links below. The commands look complicated, but it is important to remember that these commands are generally used by computer programs that serve as interfaces to the underlying functionality.
I created these transactions by manually typing them out, but that is not how typical users would use them. For example, custodial parties would create their own workflow built from the basic commands represented here.
Links:
Fast. Secure. Reliable.
Get the Stealthsend Desktop App
Copyright © 2023 Stealth R&D LLC. All rights reserved. The Stealth main blockchain “StealthCore” incorporates all of the features to ensure FATF Travel Rule compliance.