monero-docs/public/search/search_index.json

1 line
456 KiB
JSON
Raw Normal View History

{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Unofficial Monero Documentation \u00b6 Work in Progress \u00b6 Monerodocs attempts to organize basic technical knowledge on Monero in one place. While technical explanations are out there, knowledge is scattered through reddit posts, git comments, stack exchange answers, chat logs and the source code. This makes it hard to find complete and up-to-date explanations on advanced topics. The goal is to educate and onboard power users faster. Please submit your feedback and corrections directly on github . Find my contact details at qertoip.com .","title":"Home"},{"location":"#unofficial-monero-documentation","text":"","title":"Unofficial Monero Documentation"},{"location":"#work-in-progress","text":"Monerodocs attempts to organize basic technical knowledge on Monero in one place. While technical explanations are out there, knowledge is scattered through reddit posts, git comments, stack exchange answers, chat logs and the source code. This makes it hard to find complete and up-to-date explanations on advanced topics. The goal is to educate and onboard power users faster. Please submit your feedback and corrections directly on github . Find my contact details at qertoip.com .","title":"Work in Progress"},{"location":"multisignature/","text":"Multisignature \u00b6 In cryptocurrencies, multisig feature allows to sign a transaction with more than one private key. Funds protected with multisig can only be spent by signing with M-of-N keys. Example use cases: shared account (1-of-2; both husband and wife individually have full access to their funds) consensus account (2-of-2; both husband and wife must agree to spend their funds) threshold account (2-of-3; an escrow service is involved as an independent 3rd party, to co-sign with either the seller, or with the buyer, if seller and buyer do not agree) secure account (2-of-3; a single owner controlls all 3 keys but secures them via a different means to diversify risks) arbitrary threshold account (M-of-N; some cryptocurrencies provide full flexibility on the number of signers) Monero multisignature \u00b6 Monero doesn't directly implement multisignatures (at least not in a classical sense). Monero emulates the feature by secret splitting. Transactions are still signed with a single spend key. The spend key is a sum of all N private keys. The rationale for such design is to decouple multisig from ring signatures. Let's consider the 2-of-3 scheme. We have 3 participants. Each participant is granted exactly 2 private keys in a way that pairs do not repeat between participants. This way any 2 participants together have all 3 private keys required to create the private spend key. Multi-signing is a wallet-level feature. There is no way to learn from the blockchain which transactions were created using multiple signatures. It is also worth noting in Monero there is no multisig addresses as such. Address structure does not care how the underlying private spend key got created. After multisig wallet setup every participant ends up knowing the public address and private view key. This is necessary for participants to recognize and decipher transactions they are supposed to co-sign. Multisig wallet setup \u00b6 Multisig feature is only available via a command line wallet. You should be familiar with the CLI wallet before playing with multisig. Let's consider a 2-of-3 scheme as it generalizes well. 0. Open your wallet \u00b6 Access your (stagenet) wallet: ./monerod --stagenet --daemon # Run your full node; make sure it is fully synced ./monero-wallet-cli --stagenet --wallet-file=... # Run your wallet; make sure you have some funds to play with 1. prepare_multisig \u00b6 Every participant independently generates initialization data . This is not an address. Every participant sends his initialization data manually to all other participants over secure channel. 2. make_multisig \u00b6 Every participant applies initialization data from other participants. This results in a