summaryrefslogtreecommitdiff
path: root/bip-0301.mediawiki
diff options
context:
space:
mode:
authorPaul Sztorc <psztorc01@gmail.com>2021-11-05 08:10:13 -0400
committerPaul Sztorc <psztorc01@gmail.com>2021-11-05 08:10:13 -0400
commita557ac187e9c6072fbeab51c3c28d93d4650d0ce (patch)
treec1b1c2272ea4b70c1f12cbb3b825db0ed1fe1c1d /bip-0301.mediawiki
parentbb6bc39ca79ce694ee94a01a4b47392248e2c970 (diff)
downloadbips-a557ac187e9c6072fbeab51c3c28d93d4650d0ce.tar.xz
re-add abstract, revise slightly
Diffstat (limited to 'bip-0301.mediawiki')
-rw-r--r--bip-0301.mediawiki30
1 files changed, 16 insertions, 14 deletions
diff --git a/bip-0301.mediawiki b/bip-0301.mediawiki
index 3dea7a8..2f6b79e 100644
--- a/bip-0301.mediawiki
+++ b/bip-0301.mediawiki
@@ -13,6 +13,12 @@
</pre>
+==Abstract==
+
+Blind Merged Mining (BMM) allows miners to mine a Sidechain/Altcoin, without running its node software (ie, without "looking" at it, hence "blind").
+
+Instead, a separate sidechain user runs their node and constructs the block, paying himself the transaction fees. He then uses an equivalent amount of money to "buy" the right to find this block, from the conventional layer1 Sha256d miners.
+
==Motivation==
@@ -24,15 +30,11 @@ However, traditional MM has two drawbacks:
# Miners are paid on the other chain, in Alt-currency. (Miners who MM Namecoin, will earn NMC.)
-==Summary==
+==Notation and Example==
Note: We use notation side:\* and main:\* in front of otherwise-ambiguous words (such as "block", "node", or "chain"), to sort the mainchain version from its sidechain counterpart. We name all sidechain users "Simon", and name all mainchain miners "Mary".
-Blind Merged Mining (BMM) allows miners to MM a Sidechain/Altcoin, without running its node software (ie, without "looking" at it, hence "blind").
-
-Instead, a sidechain user ("Simon") runs node software, and assumes responsibility for constructing the side:block. (That user is sometimes called a "virtual miner".) Simon then "buys" the right to find the block, from the Layer1 miners ("Mary").
-
-For example: a sidechain block contains 20,000 txns, each paying a $0.10 fee; so, therefore, the block is worth $2000 of fee-revenue. As usual: the sidechain’s coinbase txn will pay this $2000 to someone (in this case, "Simon"). Under Bip301, Simon does no hashing, but instead makes one layer1 txn paying $1999 to the layer1 miners ("Mary").
+Example: imagine that a sidechain block contains 20,000 txns, each paying a $0.10 fee; therefore, the block is worth $2000 of fee-revenue. As usual: the sidechain's coinbase txn will pay this $2000 to someone (in this case, "Simon"). Under Bip301, Simon does no hashing, but instead makes one layer1 txn paying $1999 to the layer1 miners ("Mary").
{| class="wikitable"
@@ -69,29 +71,29 @@ For example: a sidechain block contains 20,000 txns, each paying a $0.10 fee; so
|}
-Bip301 makes this specialization-of-labor trustless on layer1. If Mary takes Simon’s money, then she must let Simon control the side:block.
+Bip301 makes this specialization-of-labor trustless on layer1. If Mary takes Simon's money, then she must let Simon control the side:block.
==Specification==
+Bip300 consists of two messages: "BMM Accept" and "BMM Request". These govern something called "h*".
-We will discuss:
-
+So we will discuss:
-# h* -- The sidechain’s hashMerkleRoot, and why it matters.
+# h* -- The sidechain's hashMerkleRoot, and why it matters.
# "BMM Accept" -- How h* enters a main:coinbase. When Mary "accepts" a BMM Request, Mary is ''endorsing a side:block''.
# "BMM Request" -- Simon offering money to Mary, if (and only if) she will Endorse a specific h*. When Simon broadcasts a BMM Request, Simon is ''attempting a side:block''.
=== h* ===
-h* ("h star") is the sidechain’s Merkle Root hash.
+h* ("h star") is the sidechain's Merkle Root hash.
-In Bip301, a sidechain’s coinbase txn acts as a header (it contains the hash of the previous side:block, and previous main:block). Thus, the MerkleRoot contains everything important.
+In Bip301, a sidechain's coinbase txn acts as a header (it contains the hash of the previous side:block, and previous main:block). Thus, the MerkleRoot contains everything important.
-Note: in Bip301 sidechains, "headers" and "hashes" do not have significant consensus meaning and are in the design mainly to help with IBD.
+Note: in Bip301 sidechains, "headers" and "block hashes" do not have significant consensus meaning and are in the design mainly to help with IBD. (In the mainchain, in contrast, headers and block hashes determine the difficulty adjustments and cumulative PoW.)
<img src="bip-0301/sidechain-headers.png?raw=true" align="middle"></img>
@@ -103,7 +105,7 @@ Mary controls the main:coinbase, so she may select any h*. Her selection will de
=== BMM Accept ===
-To "Accept" the BMM proposal (and to accept Simon’s money), Mary must endorse Simon’s block.
+To "Accept" the BMM proposal (and to accept Simon's money), Mary must endorse Simon's block.
<pre>
For each side:block Mary wishes to endorse, Mary places the following into a main:coinbase OP_RETURN: