monero-docs/Subaddress/index.html
2017-12-22 23:22:35 +01:00

226 lines
8.6 KiB
HTML

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Piotr 'Qertoip' Włodarek">
<link rel="shortcut icon" href="../img/favicon.ico">
<title>Subaddress - Monero Docs</title>
<link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="../css/theme.css" type="text/css" />
<link rel="stylesheet" href="../css/theme_extra.css" type="text/css" />
<link rel="stylesheet" href="../css/highlight.css">
<script>
// Current page data
var mkdocs_page_name = "Subaddress";
var mkdocs_page_input_path = "Subaddress.md";
var mkdocs_page_url = "/Subaddress/";
</script>
<script src="../js/jquery-2.1.1.min.js"></script>
<script src="../js/modernizr-2.8.3.min.js"></script>
<script type="text/javascript" src="../js/highlight.pack.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> Monero Docs</a>
<div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1">
<a class="" href="..">Unofficial Monero Documentation</a>
</li>
<li class="toctree-l1">
<a class="" href="../Monero-Base58/">Base58</a>
</li>
<li class="toctree-l1">
<a class="" href="../Multisignature/">Multisignature</a>
</li>
<li class="toctree-l1">
<a class="" href="../Public-Address/">Public Address</a>
</li>
<li class="toctree-l1 current">
<a class="current" href="./">Subaddress</a>
<ul class="subnav">
<li class="toctree-l2"><a href="#subaddress">Subaddress</a></li>
<ul>
<li><a class="toctree-l3" href="#prevent-payer-from-linking-your-payouts-together">Prevent payer from linking your payouts together</a></li>
<li><a class="toctree-l3" href="#group-incoming-payments">Group incoming payments</a></li>
<li><a class="toctree-l3" href="#why-not-multiple-wallets">Why not multiple wallets?</a></li>
<li><a class="toctree-l3" href="#caveates">Caveates</a></li>
<li><a class="toctree-l3" href="#implementation">Implementation</a></li>
<li><a class="toctree-l3" href="#reference">Reference</a></li>
</ul>
</ul>
</li>
<li class="toctree-l1">
<a class="" href="../Technical-Specs/">Technical Specs</a>
</li>
</ul>
</div>
&nbsp;
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">Monero Docs</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="..">Docs</a> &raquo;</li>
<li>Subaddress</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/monerodocs/monerodocs/edit/master/docs/Subaddress.md"> Edit on monerodocs/monerodocs</a>
</li>
</ul>
<hr/>
</div>
<div role="main">
<div class="section">
<h1 id="subaddress">Subaddress</h1>
<p>Subaddresses serve two purposes.</p>
<h2 id="prevent-payer-from-linking-your-payouts-together">Prevent payer from linking your payouts together</h2>
<p>To prevent the payer from linking your payouts together simply generate a new subaddress for each payout. This way services like <a href="https://shapeshift.io">Shapeshift</a> wouldn't know it is you again receving Monero.</p>
<h2 id="group-incoming-payments">Group incoming payments</h2>
<p>Think income streams.</p>
<p>Subaddresses allow you to group your incoming transactions within a single wallet.</p>
<p>You may want to organize your incoming funds into a streams like "donations", "work", "pool payouts", etc.</p>
<p>At first glance this is similar to subaccounts in your bank account. There is a very important difference though.</p>
<p>In Monero funds don't really sit on public addresses. Public addresses are conceptually a gateway or a routing mechanism. Funds sit on the unspent outputs. Thus, a single transaction can aggregate and spent outputs from multiple addresses. This means you can spend more than any individual address balance.</p>
<h2 id="why-not-multiple-wallets">Why not multiple wallets?</h2>
<p>The advantage over creating multiple wallets is that you only have a single seed to manage. All subaddresses can be derived from the wallet seed.</p>
<h2 id="caveates">Caveates</h2>
<ul>
<li>Subaddress <strong>cannot</strong> be used to receive transactions having multiple destinations (e.g. pool payouts). Only the standard address (the one with index == 0) can receive such transactions.</li>
<li>It is not recommended to sweep all the balances of subaddress to main address in a single transaction. That links the subaddresses together on the blockchain. However, this only concerns privacy against specific sender and the situation will never get worse than not using subaddresses in the first place. If you need to join funds while preserving maximum privacy do it with individual transactions (one per subaddress).</li>
</ul>
<h2 id="implementation">Implementation</h2>
<p>Each subaddress has an index (with 0 being the base standard address). User interface allows to assign convenience labels to subaddresses. However, labels are not preserved when recreating from seed.</p>
<table>
<thead>
<tr>
<th>Index</th>
<th>Size in bytes</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>1</td>
<td>identifies the network and address type; <a href="https://github.com/monero-project/monero/blob/784f7b07f05a645d43f62ed3a9cefda4b0c57825/src/cryptonote_config.h#L153">42</a> - main chain; <a href="https://github.com/monero-project/monero/blob/784f7b07f05a645d43f62ed3a9cefda4b0c57825/src/cryptonote_config.h#L167">63</a> - test chain</td>
</tr>
</tbody>
</table>
<p>TODO: finish</p>
<h2 id="reference">Reference</h2>
<ul>
<li><a href="https://github.com/monero-project/monero/pull/2056">https://github.com/monero-project/monero/pull/2056</a></li>
<li><a href="https://www.reddit.com/r/Monero/comments/5vgjs2/subaddresses_and_disposable_addresses/">https://www.reddit.com/r/Monero/comments/5vgjs2/subaddresses_and_disposable_addresses/</a></li>
</ul>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="../Technical-Specs/" class="btn btn-neutral float-right" title="Technical Specs">Next <span class="icon icon-circle-arrow-right"></span></a>
<a href="../Public-Address/" class="btn btn-neutral" title="Public Address"><span class="icon icon-circle-arrow-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" style="cursor: pointer">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="../Public-Address/" style="color: #fcfcfc;">&laquo; Previous</a></span>
<span style="margin-left: 15px"><a href="../Technical-Specs/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script>var base_url = '..';</script>
<script src="../js/theme.js"></script>
<script src="../search/require.js"></script>
<script src="../search/search.js"></script>
</body>
</html>