From e61b25087d56b99516b4e6045b8969b76da0cb4b Mon Sep 17 00:00:00 2001 From: Karl-Johan Alm Date: Tue, 14 Nov 2017 17:39:23 +0900 Subject: [PATCH 1/4] BIP-0098: Fast Merkle Trees --- bip-0098.mediawiki | 308 ++++++++++++++++++++++++++++++ bip-0098/build.sh | 6 + bip-0098/node-variants.dot | 85 +++++++++ bip-0098/node-variants.png | Bin 0 -> 105569 bytes bip-0098/skip-skip.dot | 7 + bip-0098/skip-skip.png | Bin 0 -> 9434 bytes bip-0098/traversal-example.dot | 32 ++++ bip-0098/traversal-example.png | Bin 0 -> 60703 bytes bip-0098/unbalanced-hash-tree.dot | 11 ++ bip-0098/unbalanced-hash-tree.png | Bin 0 -> 22836 bytes 10 files changed, 449 insertions(+) create mode 100644 bip-0098.mediawiki create mode 100755 bip-0098/build.sh create mode 100644 bip-0098/node-variants.dot create mode 100644 bip-0098/node-variants.png create mode 100644 bip-0098/skip-skip.dot create mode 100644 bip-0098/skip-skip.png create mode 100644 bip-0098/traversal-example.dot create mode 100644 bip-0098/traversal-example.png create mode 100644 bip-0098/unbalanced-hash-tree.dot create mode 100644 bip-0098/unbalanced-hash-tree.png diff --git a/bip-0098.mediawiki b/bip-0098.mediawiki new file mode 100644 index 0000000..6bdf784 --- /dev/null +++ b/bip-0098.mediawiki @@ -0,0 +1,308 @@ +
+  BIP: 98
+  Layer: Consensus (soft fork)
+  Title: Fast Merkle Trees
+  Author: Mark Friedenbach 
+          Kalle Alm 
+          BtcDrak 
+  Comments-Summary: No comments yet.
+  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0098
+  Status: Draft
+  Type: Standards Track
+  Created: 2017-08-24
+  License: CC-BY-SA-4.0
+  License-Code: MIT
+
+ +==Abstract== + +In many applications it is useful to prove membership of a data element in a set without having to reveal the entire contents of that set. +The Merkle hash-tree, where inner/non-leaf nodes are labeled with the hash of the labels or values of its children, is a cryptographic tool that achieves this goal. +Bitcoin uses a Merkle hash-tree construct for committing the transactions of a block into the block header. +This particular design, created by Satoshi, suffers from a serious flaw related to duplicate entries documented in the National Vulnerability Database as CVE-2012-2459[1], and also suffers from less than optimal performance due to unnecessary double-hashing. + +This Bitcoin Improvement Proposal describes a more efficient Merkle hash-tree construct that is not vulnerable to CVE-2012-2459 +and achieves an approximate 55% decrease in hash-tree construction and validation times as compared with fully optimized implementations of the Satoshi Merkle hash-tree construct. + +==Copyright== + +This BIP is licensed under a Creative Commons Attribution-ShareAlike license. All provided source code is licensed under the MIT license. + +==Motivation== + +A Merkle hash-tree is a directed acyclic graph data structure where all non-terminal nodes are labeled with the hash of combined labels or values of the node(s) it is connected to. +Bitcoin uses a unique Merkle hash-tree construct invented by Satoshi for calculating the block header commitment to the list of transactions in a block. +While it would be convenient for new applications to make use of this same data structure so as to share implementation and maintenance costs, there are three principle drawbacks to reuse. + +First, Satoshi's Merkle hash-tree has a serious vulnerability[1] related to duplicate tree entries that can cause bugs in protocols that use it. +While it is possible to secure protocols and implementations against exploit of this flaw, it requires foresight and it is a bit more tricky to design secure protocols that work around this vulnerability. +Designers of new protocols ought avoid using the Satoshi Merkle hash-tree construct where at all possible in order to responsibly decrease the likelihood of downstream bugs in naïve implementations. + +Second, Satoshi's Merkle hash-tree performs an unnecessary number of cryptographic hash function compression rounds, resulting in construction and validation times that are approximately three (3) times more computation than is strictly necessary in a naïve implementation, or 2.32x more computation in an implementation specialized for this purpose only[2]. +New implementations that do not require backwards compatibility ought to consider hash-tree implementations that do not carry this unnecessary performance hit. + +Third, Satoshi's algorithm presumes construction of a tree index from an ordered list, and therefore is designed to support balanced trees with a uniform path length from root to leaf for all elements in the tree. +Many applications, on the other hand, benefit from having unbalanced trees, particularly if the shorter path is more likely to be used. +While it is possible to make a few elements of a Satoshi hash-tree have shorter paths than the others, the tricks for doing so are dependent on the size of the tree and not very flexible. + +Together these three reasons provide justification for specifying a standard Merkle hash-tree structure for use in new protocols that fixes these issues. +This BIP describes such a structure, and provides an example implementation. + +==Specification== + +A Merkle hash-tree as defined by this BIP is an arbitrarily-balanced binary tree whose terminal/leaf nodes are labelled with the double-SHA256 hashes of data, whose format is outside the scope of this BIP, and inner nodes with labels constructed from the fast-SHA256 hash of its children's labels. +The following image depicts an example unbalanced hash-tree: + +:: [[File:bip-0098/unbalanced-hash-tree.png]] + +'''A''', '''B''', and '''C''' are leaf labels, 32-byte double-SHA256 hashes of the data associated with the leaf. +'''Node''' and '''Root''' are inner nodes, whose labels are fast-SHA256 (defined below) hashes of their respective children's labels. +'''Node''' is labelled with the fast-SHA256 hash of the concatination of '''B''' and '''C'''. +'''Root''' is labelled with the fast-SHA256 hash of the concatination of '''A''' and '''Node''', and is the ''Merkle root'' of the tree. +Nodes with single children are not allowed. + +The ''double-SHA256'' cryptographic hash function takes an arbitrary-length data as input and produces a 32-byte hash by running the data through the SHA-256 hash function as specified in FIPS 180-4[3], and then running the same hash function again on the 32-byte result, as a protection against length-extension attacks. + +The ''fast-SHA256'' cryptographic hash function takes two 32-byte hash values, concatenates these to produce a 64-byte buffer, and applies a single run of the SHA-256 hash function with a custom 'initialization vector' (IV) and without message paddding. +The result is a 32-byte 'midstate' which is the combined hash value and the label of the inner node. +The changed IV protects against path-length extension attacks (grinding to interpret a hash as both an inner node and a leaf). +fast-SHA256 is only defined for two 32-byte inputs. +The custom IV is the intermediate hash value generated after performing a standard SHA-256 of the following hex-encoded bytes and extracting the midstate: + + cbbb9d5dc1059ed8 e7730eaff25e24a3 f367f2fc266a0373 fe7a4d34486d08ae + d41670a136851f32 663914b66b4b3c23 1b9e3d7740a60887 63c11d86d446cb1c + +This data is the first 512 fractional bits of the square root of 23, the 9th prime number. +The resulting midstate is used as IV for the fast-SHA256 cryptographic hash function: + + static unsigned char _MidstateIV[32] = + { 0x89, 0xcc, 0x59, 0xc6, 0xf7, 0xce, 0x43, 0xfc, + 0xf6, 0x12, 0x67, 0x0e, 0x78, 0xe9, 0x36, 0x2e, + 0x76, 0x8f, 0xd2, 0xc9, 0x18, 0xbd, 0x42, 0xed, + 0x0e, 0x0b, 0x9f, 0x79, 0xee, 0xf6, 0x8a, 0x24 }; + +As fast-SHA256 is only defined for two (2) 32-byte hash inputs, there are necessarily two special cases: +an empty Merkle tree is not allowed, nor is any root hash defined for such a "tree"; +and a Merkle tree with a single value has a root hash label equal to that self-same value of the leaf branch, the only node in the tree (a passthrough operation with no hashing). + +===Rationale=== + +The fast-SHA256 hash function can be calculated 2.32x faster than a specialized double-SHA256 implementation[2], or three (3) times faster than an implementation applying a generic SHA-256 primitive twice, +as hashing 64 bytes of data with SHA-256 as specified by FIPS 180-4[3] takes two compression runs (because of message padding) and then a third compression run for the double-SHA256 construction. +Validating a fast-SHA256 Merkle root is therefore more than twice as fast as the double-SHA256 construction used by Satoshi in bitcoin. +Furthermore the fastest fast-SHA256 implementation ''is'' the generic SHA-256 implementation, enabling generic circuitry and code reuse without a cost to performance. + +The application of fast-SHA256 to inner node label updates is safe in this limited domain because the inputs are hash values and fixed in number and in length, +so the sorts of attacks prevented by message padding and double-hashing do not apply. + +The 'initialization vector' for fast-SHA256 is changed in order to prevent a category of attacks on higher level protocols where a partial collision can serve as both a leaf hash and as an inner node commitment to another leaf hash. +The IV is computed using standard SHA-256 plus midstate extraction so as to preserve compatability with cryptographic library interfaces that do not support custom IVs, at the cost of a 2x performance hit if neither custom IVs nor resuming from midstate are supported. +The data hashed is a nothing-up-my-sleeve number that is unlikely to have a known hash preimage. +The prime 23 was chosen as the leading fractional bits of the first eight (8) primes, two (2) through nineteen (19), are constants used in the setup of SHA-256 itself. +Using the next prime in sequence reduces the likelihood of introducing weakness due to reuse of a constant factor. + +The Merkle root hash of a single element tree is a simple pass-through of the leaf hash without modification so as to allow for chained validation of split proofs. +This is particularly useful when the validation environment constrains proof sizes, such as push limits in Bitcoin script. +Chained validation allows a verifier to split one proof into two or more, where the leaf is shown to be under an inner node, and that inner node is shown to be under the root. +Without pass-through hashing in a single-element tree, use of chained validation would unnecessarily introduce a minimum path length requirement equal to the number of chain links. +Pass-through hashing of single elements allows instead for one or more of the chained validations to use a "NOP" proof consisting of a zero-length path, +thereby allowing, for example, a fixed series of four (4) chained validations to verify a length three (3) or shorter path. + +==Inclusion Proofs== + +An important use of Merkle hash-trees is the ability to compactly prove membership with log-sized proofs. +This section specifies a standard encoding for a multi-element inclusion proof. + +To prove that a set of hashes is contained within a Merkle tree with a given root requires four pieces of information: + +# The root hash of the Merkle tree; +# The hash values to be verified, a set usually consisting of the double-SHA256 hash of data elements, but potentially the labels of inner nodes instead, or both; +# The paths from the root to the nodes containing the values under consideration, expressed as a serialized binary tree structure; and +# The hash values of branches not taken along those paths. + +Typically the last two elements, the paths and the elided branch hashes, are lumped together and referred to as the ''proof''. + +Serialization begins with a variable-length integer (VarInt) used to encode N, the number of internal nodes in the proof. +Next the structure of the tree is traversed using depth-first, left-to-right, pre-order algorithm to visit each internal nodes, which are serialized using a packed 3-bit representation for the configuration of each node, consuming (3*N + 7) / 8 bytes. +Then the number skipped hashes (those included in the proof, not verified by the proof) is serialized as a variable-length integer (VarInt), +followed by the hashes themselves in the order previously traversed. + +There are eight possible configurations of internal nodes, as given in the following diagram: + +:: [[File:bip-0098/node-variants.png]] + +In this diagram, DESCEND means the branch links to another internal node, as indicated by the its child graph elements labeled "..."; +SKIP means the branch contains a hash of an elided subtree or element, and the fast-SHA256 root hash of this subtree or double-SHA256 hash of the element is included in the proof structure; and +VERIFY means the branch contains an externally provided hash that is needed as witness for the verification of the proof. +In tabular form, these code values are: + +{| class="wikitable" +|- +| scope="col"| Code +| scope="col"| Left +| scope="col"| Right +|- +| scope="row"| 000 +| VERIFY +| SKIP +|- +| scope="row"| 001 +| VERIFY +| VERIFY +|- +| scope="row"| 010 +| VERIFY +| DESCEND +|- +| scope="row"| 011 +| DESCEND +| SKIP +|- +| scope="row"| 100 +| DESCEND +| VERIFY +|- +| scope="row"| 101 +| DESCEND +| DESCEND +|- +| scope="row"| 110 +| SKIP +| VERIFY +|- +| scope="row"| 111 +| SKIP +| DESCEND +|} + +These 3-bit codes are packed into a byte array such that eight (8) codes would fit in every three (3) bytes. +The order of filling a byte begins with the most significant bit 0x80 and ends with the lest significant bit 0x01. +Unless the number of inner nodes is a multiple of eight (8), there will be excess low-order bits in the final byte of serialization. +These excess bits must be zero. + +Note that the tree serialization is self-segmenting. +By tracking tree structure a proof reader will know when the parser has reached the last internal node. +The number of inner nodes serialized in the proof MUST equal the number of nodes inferred from the tree structure itself. +Similarly, the number of SKIP hashes can also be inferred from the tree structure as serialized, and MUST equal the number of hashes provided within the proof. + +The single-hash proof has N=0 (the number of inner nodes), +the tree structure is not serialized (as there are no inner nodes), +and the number of SKIP hashes can be either 0 or 1. + +===Example=== + +Consider the following Merkle tree structure: + +:: [[File:bip-0098/traversal-example.png]] + +There are six (6) internal nodes. +The depth-first, left-to-right, pre-order traversal of the tree visits these nodes in the following order: A, B, D, F, C, then E. +There are three (3) skipped hashes, visited in the following order: 0x00..., 0x66..., and 0x22... +The remaining four (4) hashes are provided at runtime to be verified by the proof. + +{| +| scope="col"| +| scope="col"| Byte 1 +| scope="col"| Byte 2 +| scope="col"| Byte 3 +|- +| scope="row"| Bits +| 76543210 +| 76543210 +| 76543210 +|- +| scope="row"| Nodes +| AAABBBDD +| DFFFCCCE +| EE------ +|- +| scope="row"| Code +| 10111101 +| 10000100 +| 01000000 +|} + +The serialization begins with the VarInt encoded number of inner nodes, 0x06, followed by the tree serialization itself, 0xbd8440. +Next the number of SKIP hashes is VarInt encoded, 0x03, followed by the three (3) hashes in sequence. +The resulting 101 byte proof, encoded in base64:. + + Br2EQAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZm + ZmZmZmZmZmZmZmZmREREREREREREREREREREREREREREREREREREREREREQ= + +===Rationale=== + +The 3-bit encoding for inner nodes allows encoding all relevant configurations of the nodes where the left and right branches can each be one of {DESCEND, SKIP, VERIFY}. +The excluded 9th possibility would have both branches as SKIP: + +:: [[File:bip-0098/skip-skip.png]] + +This possibility is not allowed as for verification purposes it is entirely equivalent to the shorter proof where the branch to that node was SKIP'ed. +Disallowing a node with two SKIP branches eliminates what would otherwise be a source of proof malleability. + +The number of hashing operations required to verify a proof is one less than the number of hashes (SKIP and VERIFY combined), +and is exactly equal to the number of inner nodes serialized as the beginning of the proof as N. +The variable-length integer encoding has the property that serialized integers, sorted lexigraphically, will also be sorted numerically. +Since the first serialized item is the number of inner nodes, sorting proofs lexigraphically has the effect of sorting the proofs by the amount of work required to verify. + +The number of hashes required as input for verification of a proof is N+1 minus the number of SKIP hashses, +and can be quickly calculated without parsing the tree structure. + +The coding and packing rules for the serialized tree structure were also chosen to make lexigraphical comparison useful (or at least not meaningless). +If we consider a fully-expanded tree (no SKIP hashes, all VERIFY) to be encoding a list of elements in the order traversed depth-first from left-to-right, +then we can extract proofs for subsets of the list by SKIP'ing the hashes of missing values and recursively pruning any resulting SKIP,SKIP nodes. +Lexigraphically comparing the resulting serialized tree structures is the same as lexigraphically comparing lists of indices from the original list verified by the derived proof. + +Because the number of inner nodes and the number of SKIP hashes is extractible from the tree structure, +both variable-length integers in the proof are redundant and could have been omitted. +However that would require either construction and storage of the explicit tree in memory at deserialization time, +or duplication of the relatively complicated tree parsing code in both the serialization and verification methods. +For that reason (as well as to handle the single-hash edge case) the redundant inner node and SKIP hash counts are made explicit in the serialization, +and the two values must match what is inferred from the tree structure for a proof to be valid. +This makes deserialization trivial and defers tree construction until verification time, +which has the additional benefit of enabling log-space verification algorithms. + +==Fast Merkle Lists== + +Many applications use a Merkle tree to provide indexing of, or compact membership proofs about the elements in a list. +This ammendum specifies an algorithm that constructs a canonical balanced tree structure for lists of various lengths. +It differs in a subtle but important way from the algorithm used by Satoshi so as to structurally prevent the vulnerability described in [1]. + +# Begin with a list of arbitrary data strings. +# Pre-process the list by replacing each element with its double-SHA256 hash. +# If the list is empty, return the zero hash. +# While the list has 2 or more elements, +#* Pass through the list combining adjacent entries with the fast-SHA256 hash. If the list has an odd number of elements, leave the last element as-is (this fixes [1]). This step reduces a list of N elements to ceil(N/2) entries. +# The last remaining item in the list is the Merkle root. + +This algorithm differs from Merkle lists used in bitcoin in two ways. +First, fast-SHA256 is used instead of double-SHA256 for inner node labels. +Second, final entries on an odd-length list are not duplicated and hashed, which is the mistake that led to CVE-2012-2459[1]. + +==Implementation== + +An implementation of this BIP for extraction of Merkle branches and fast, log-space Merkle branch validation is available at the following Github repository: + +[https://github.com/maaku/bitcoin/tree/fast-merkle-tree] + +Also included in this repo is a 'merklebranch' RPC for calculating root values and extracting inclusion proofs for both arbitrary trees and trees constructed from lists of values using the algorithm in this BIP, +and a 'mergemerklebranch' RPC for unifying two or more fast Merkle tree inclusion proofs--replacing SKIP hashes in one proof with a subtree extracted from another. + +==Deployment== + +This BIP is used by BIP116 (MERKLEBRANCHVERIFY)[4] to add Merkle inclusion proof verification to script by means of a soft-fork NOP expansion opcode. +Deployment of MERKLEBRANCHVERIFY would make the contents of this BIP consensus critical. +The deployment plan for BIP116 is covered in the text of that BIP. + +==Compatibility== + +This BIP on its own does not cause any backwards incompatibility. + +==References== + +[1] [https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2459 National Vulnerability Database: CVE-2012-2459] + +[2] [https://github.com/sipa/bitcoin/tree/201709_dsha256_64 github.com:sipa/bitcoin 201709_dsha256_64] Pieter Wuille, September 2017, personal communication. By making use of knowledge that the inputs at each stage are fixed length, Mr. Wuille was able to achieve a 22.7% reduction in the time it takes to compute the double-SHA256 hash of 64 bytes of data, the hash aggregation function of the Satoshi Merkle tree construction. + +[3] [http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf Secure Hash Standard] + +[4] [https://github.com/bitcoin/bips/blob/master/bip-0116.mediawiki BIP 116 MERKLEBRANCHVERIFY] diff --git a/bip-0098/build.sh b/bip-0098/build.sh new file mode 100755 index 0000000..a8a3155 --- /dev/null +++ b/bip-0098/build.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +dot -Tpng -o node-variants.png node-variants.dot +dot -Tpng -o skip-skip.png skip-skip.dot +dot -Tpng -o traversal-example.png traversal-example.dot +dot -Tpng -o unbalanced-hash-tree.png unbalanced-hash-tree.dot diff --git a/bip-0098/node-variants.dot b/bip-0098/node-variants.dot new file mode 100644 index 0000000..7171346 --- /dev/null +++ b/bip-0098/node-variants.dot @@ -0,0 +1,85 @@ +digraph G { + row1 [shape=none, label=""] + + A [label="000"] + A -> Al [label="L"] + Al [label="VERIFY"] + A -> Ar [label="R"] + Ar [label="SKIP"] + + B [label="001"] + B -> Bl [label="L"] + Bl [label="VERIFY"] + B -> Br [label="R"] + Br [label="VERIFY"] + + { rank = same; row1; A; B; } + + C [label="010"] + C -> Cl [label="L"] + Cl [label="VERIFY"] + C -> Cr [label="R"] + Cr [label="DESCEND"] + Cr -> Crl + Crl [label="..."] + Cr -> Crr + Crr [label="..."] + + D [label="011"] + D -> Dl [label="L"] + Dl [label="DESCEND"] + Dl -> Dll + Dll [label="..."] + Dl -> Dlr + Dlr [label="..."] + D -> Dr [label="R"] + Dr [label="SKIP"] + + E [label="100"] + E -> El [label="L"] + El [label="DESCEND"] + El -> Ell + Ell [label="..."] + El -> Elr + Elr [label="..."] + E -> Er [label="R"] + Er [label="VERIFY"] + + row1 -> invis [style=invis] + invis [shape=none, label=""] + invis -> C [style=invis] + { rank = same; C; D; E; } + + F [label="101"] + F -> Fl [label="L"] + Fl [label="DESCEND"] + Fl -> Fll + Fll [label="..."] + Fl -> Flr + Flr [label="..."] + F -> Fr [label="R"] + Fr [label="DESCEND"] + Fr -> Frl + Frl [label="..."] + Fr -> Frr + Frr [label="..."] + + G [label="110"] + G -> Gl [label="L"] + Gl [label="SKIP"] + G -> Gr [label="R"] + Gr [label="VERIFY"] + + H [label="111"] + H -> Hl [label="L"] + Hl [label="SKIP"] + H -> Hr [label="R"] + Hr [label="DESCEND"] + Hr -> Hrl + Hrl [label="..."] + Hr -> Hrr + Hrr [label="..."] + + Crl -> F [style=invis] + { rank = same; F; G; H; } +} diff --git a/bip-0098/node-variants.png b/bip-0098/node-variants.png new file mode 100644 index 0000000000000000000000000000000000000000..991d7bc2a1df952b214d0475dee6c8a6e02f1dd5 GIT binary patch literal 105569 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 Al [label="L"] + Al [label="SKIP"] + A -> Ar [label="R"] + Ar [label="SKIP"] +} \ No newline at end of file diff --git a/bip-0098/skip-skip.png b/bip-0098/skip-skip.png new file mode 100644 index 0000000000000000000000000000000000000000..d3e7c454e28f526c22828bf8f6895e9b94b5a337 GIT binary patch literal 9434 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 literal 0 HcmV?d00001 diff --git a/bip-0098/traversal-example.dot b/bip-0098/traversal-example.dot new file mode 100644 index 0000000..2993642 --- /dev/null +++ b/bip-0098/traversal-example.dot @@ -0,0 +1,32 @@ +digraph G { + a [label="A\n101"] + a -> b + a -> c + + b [label="B\n111"] + b -> s0 + s0 [label="SKIP\n0x00..."] + b -> d + + d [label="D\n011"] + d -> f + d -> s1 + s1 [label="SKIP\n0x22..."] + + f [label="F\n000"] + f -> v1 + v1 [label="VERIFY\n0x55..."] + f -> s2 + s2 [label="SKIP\n0x66..."] + + c [label="C\n010"] + c -> v2 + v2 [label="VERIFY\n0x11..."] + c -> e + + e [label="E\n001"] + e -> v3 + v3 [label="VERIFY\n0x33..."] + e -> v4 + v4 [label="VERIFY\n0x44..."] +} diff --git a/bip-0098/traversal-example.png b/bip-0098/traversal-example.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a7954ec3faa527d2eb6c149f4dafc532aaaeae GIT binary patch literal 60703 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 literal 0 HcmV?d00001 diff --git a/bip-0098/unbalanced-hash-tree.dot b/bip-0098/unbalanced-hash-tree.dot new file mode 100644 index 0000000..c637652 --- /dev/null +++ b/bip-0098/unbalanced-hash-tree.dot @@ -0,0 +1,11 @@ +digraph G { + 0 [label="Root\nH(A || H(B || C))"] + 0 -> A + A [label="A\nskip"] + 0 -> 1 + 1 [label="Node\nH(B || C)"] + 1 -> B + B [label="B\nskip"] + 1 -> C + C [label="C\nverify"] +} diff --git a/bip-0098/unbalanced-hash-tree.png b/bip-0098/unbalanced-hash-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..339bb2276cbb4bf328b5fd75334e4e6586852f78 GIT binary patch literal 22836 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 Date: Tue, 14 Nov 2017 17:39:39 +0900 Subject: [PATCH 2/4] BIP-0116: MERKLEBRANCHVERIFY (Consensus layer) --- bip-0116.mediawiki | 145 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 bip-0116.mediawiki diff --git a/bip-0116.mediawiki b/bip-0116.mediawiki new file mode 100644 index 0000000..e2a1daf --- /dev/null +++ b/bip-0116.mediawiki @@ -0,0 +1,145 @@ +
+  BIP: 116
+  Layer: Consensus (soft fork)
+  Title: MERKLEBRANCHVERIFY
+  Author: Mark Friedenbach 
+          Kalle Alm 
+          BtcDrak 
+  Comments-Summary: No comments yet.
+  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0116
+  Status: Draft
+  Type: Standards Track
+  Created: 2017-08-25
+  License: CC-BY-SA-4.0
+  License-Code: MIT
+
+ +==Abstract== + +A general approach to bitcoin contracts is to fully enumerate the possible spending conditions and then program verification of these conditions into a single script. +At redemption, the spending condition used is explicitly selected, e.g. by pushing a value on the witness stack which cascades through a series if if/else constructs. + +This approach has significant downsides, such as requiring all program pathways to be visible in the scriptPubKey or redeem script, even those which are not used at validation. +This wastes space on the block chain, restricts the size of possible scripts due to push limits, and impacts both privacy and fungibility as details of the contract can often be specific to the user. + +This BIP proposes a new soft-fork upgradeable opcode, MERKLEBRANCHVERIFY, which allows script writers to commit to a set of data elements and have one or more of these elements be provided at redemption without having to reveal the entire set. +As these data elements can be used to encode policy, such as public keys or validation subscripts, the MERKLEBRANCHVERIFY opcode can be used to overcome these limitations of existing bitcoin script. + +==Copyright== + +This BIP is licensed under a Creative Commons Attribution-ShareAlike license. All provided source code is licensed under the MIT license. + +==Specification== + +MERKLEBRANCHVERIFY redefines the existing NOP4 opcode. +When executed, if any of the following conditions are true, the script interpreter will terminate with an error: + +# the stack contains less than three (3) items; +# the first item on the stack is more than 2 bytes; +# the first item on the stack, interpreted as an integer, N, is negative or not minimally encoded; +# the second item on the stack is not exactly 32 bytes; +# the third item on the stack is not a serialized Merkle tree inclusion proof as specified by BIP98[1] and requiring exactly floor(N/2) VERIFY hashes; or +# the remainder of the stack contains less than floor(N/2) additional items, together referred to as the input stack elements. + +If the low-order bit of N is clear, N&1 == 0, each input stack element is hashed using double-SHA256. +Otherwise, each element must be exactly 32 bytes in length and are interpreted as serialized hashes. +These are the VERIFY hashes. + +If the fast Merkle root computed from the Merkle tree inclusion proof, the third item on the stack, +with the VERIFY hashes in the order as presented on the stack, from top to bottom, +does not exactly match the second item on the stack, +the script interpreter will terminate with an error. + +Otherwise, script execution will continue as if a NOP had been executed. + +==Motivation== + +Although BIP16 (Pay to Script Hash)[2] and BIP141 (Segregated Witness)[3] both allow the redeem script to be kept out of the scriptPubKey and therefore out of the UTXO set, the entire spending conditions for a coin must nevertheless be revealed when that coin is spent. +This includes execution pathways or policy conditions which end up not being needed by the redemption. +Not only is it inefficient to require this unnecessary information to be present on the blockchain, albeit in the witness, it also impacts privacy and fungibility as some unused script policies may be identifying. +Using a Merkle hash tree to commit to the policy options, and then only forcing revelation of the policy used at redemption minimizes this information leakage. + +Using Merkle hash trees to commit to policy allows for considerably more complex contracts than would would otherwise be possible, due to various built-in script size and runtime limitations. +With Merkle commitments to policy these size and runtime limitations constrain the complexity of any one policy that can be used rather than the sum of all possible policies. + +==Rationale== + +The MERKLEBRANCHVERIFY opcode uses fast Merkle hash trees as specified by BIP98[1] rather than the construct used by Satoshi for committing transactions to the block header as the later has a known vulnerability relating to duplicate entries that introduces a source of malleability to downstream protocols[4]. +A source of malleability in Merkle proofs could potentially lead to spend vulnerabilities in protocols that use MERKLEBRANCHVERIFY. +For example, a compact 2-of-N policy could be written by using MERKLEBRANCHVERIFY to prove that two keys are extracted from the same tree, one at a time, then checking the proofs for bitwise equality to make sure the same entry wasn't used twice. +With the vulnerable Merkle tree implementation there are privledged positions in unbalanced Merkle trees that allow multiple proofs to be constructed for the same, single entry. + +BIP141 (Segregated Witness)[3] provides support for a powerful form of scirpt upgrades called script versioning, which is able to achieve the sort of upgrades which would previously have been hard-forks. +If script versioning were used for deployment then MERKLEBRANCHVERIFY could be written to consume its inputs, which would provide a small 2-byte savings for many anticipated use cases. +However the more familiar NOP-expansion soft-fork mechanism used by BIP65 (CHECKLOCKTIMEVERIFY)[5] and BIP112 (CHECKSEQUENCEVERIFY)[6] was chosen over script versioning for the following two reasons: + +# '''Infrastructure compatibility.''' Using soft-fork NOP extensions allows MERKLEBRANCHVERIFY to be used by any existing software able to consume custom scripts, and results in standard P2SH or P2WSH-nested-in-P2SH addresses without the need for BIP143[7] signing code. This allows MERKLEBRANCHVERIFY to be used immediately by services that need it rather than wait on support for script versioning and/or BIP-143[7] signatures in tools and libraries. +# '''Delayed decision on script upgrade protocol.''' There are unresolved issues with respect to how script versioning should be used for future script upgrades. There are only 16 available script versions reserved for future use, and so they should be treated as a scarce resource. Additionally, script feature versioning should arguably be specified in the witness and the BIP141 script versioning only be used to specify the structure of the witness, however no such protocol exists as of yet. Using the NOP-expansion space prevents MERKLEBRANCHVERIFY from being stalled due to waiting on script upgrade procedure to be worked out, while making use of expansion space that is already available. + +The MERKLEBRANCHVERIFY opcode allows for VERIFY hashes to be presented directly, or calculated from the leaf values using double-SHA256. +In most cases the latter approach is expected to be used so that the leaf value(s) can be used for both branch validation and other purposes without any explicit preprocessing. +However allowing already-calculated hash values as inputs enables using chained MERKLEBRANCHVERIFY opcodes to verify branches of trees with proofs large enough that they would not fit in the 520 byte script push limitation. +As specified, a 30-branch path can be verified by proving the path from the leaf to the 15th interior node as the 'root', then proving that node's hash to be a child of the actual Merkle tree root hash. +Validation of a 256-branch path (e.g. a binary prefix tree with a hash value as key) would require 18 chained validations, which would fit within current script limitations. + +==Applications== + +===1-of-N for large N=== + +Here is a redeem script that allows a coin to be spent by any key from a large set, without linear scaling in script size: + + redeemScript: 2 MERKLEBRANCHVERIFY 2DROP DROP CHECKSIG + witness: + +The redeem script looks very similar to the standard pay-to-pubkey-hash, except instead of showing that the pubkey's hash is the same as the commitment given, we demonstrate that the pubkey is one of potentially many pubkeys included in the Merkle tree committed to in the redeem script. +The low-order bit of the first parameter, 2, is clear, meaning that there is one input ((2>>1) == 1), the serialized pubkey, and its VERIFY hash needs to be calculated by MERKLEBRANCHVERIFY using double-SHA256. + +===Honeypots=== + +As described by Pieter Wuille[8] the 1-of-N scheme is particularly useful for constructing honeypots. +The desire is to put a large bounty on a server, larger than the value of the server itself so that if the server is compromised it is highly likely that the hacker will claim the bitcoin, thereby revealing the intrusion. +However if there are many servers, e.g. 1,000, it becomes excessively expensive to lock up separate bounties for each server. +It would be desireable if the same bounty was shared across multiple servers in such a way that the spend would reveal which server was compromised. + +This is accomplished by generating 1,000 different keys, building a hash tree of these public keys, and placing each key and associated Merkle path on separate servers. +When the honeypot is claimed, the (previous) owner of the coins can tell which server was compromised from the key and path used to claim the funds. + +==Implementation== + +An implementation of this BIP, including both consensus code updates and tests is available at the following Github repository: + +[https://github.com/maaku/bitcoin/tree/merkle-branch-verify] + +==Deployment== + +This BIP will be deployed by BIP8 (Version bits with lock-in by height)[9] with the name "merklebranchverify" and using bit 2. + +For Bitcoin mainnet, the BIP8 startheight will be at height M to be determined and BIP8 timeout activation will occur on height M + 50,400 blocks. + +For Bitcoin testnet, the BIP8 startheight will be at height T to be determined and BIP8 timeout activation will occur on height T + 50,400 blocks. + +We note that DISCOURAGE_UPGRADABLE_NOPS means that transactions which use this feature are already considered non-standard by the rules of the network, making deployment easier than was the case with, for example, with BIP68 (Relative lock-time using consensus-enforced sequence numbers)[9]. + +==Compatibility== + +Old clients will consider the OP_MERKLEBRANCHVERIFY as a NOP and ignore it. Proof will not be verified, but the transaction will be accepted. + +==References== + +[1] [https://github.com/bitcoin/bips/blog/master/bip-0098.mediawiki BIP98: Fast Merkle Trees (Consensus layer)] + +[2] [https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki BIP16: Pay to Script Hash] + +[3] [https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141: Segregated Witness (Consensus layer)] + +[4] [https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2459 National Vulnerability Database: CVE-2012-2459] + +[5] [https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP65: OP_CHECKLOCKTIMEVERIFY] + +[6] [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP112: CHECKSEQUENCEVERIFY] + +[7] [https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki BIP143: Transaction Signature Verification for Version 0 Witness Program] + +[8] [https://blockstream.com/2015/08/24/treesignatures.html Multisig on steroids using tree signatures] + +[9] [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP68: Relative lock-time using consensus-enforced sequence numbers] From 689f2a5d02a65ed4d21e57f55ff3e5e0ddd073c5 Mon Sep 17 00:00:00 2001 From: Karl-Johan Alm Date: Tue, 14 Nov 2017 17:39:53 +0900 Subject: [PATCH 3/4] BIP-0117: Tail Call Execution Semantics (Consensus layer) --- bip-0117.mediawiki | 199 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 bip-0117.mediawiki diff --git a/bip-0117.mediawiki b/bip-0117.mediawiki new file mode 100644 index 0000000..ab5af61 --- /dev/null +++ b/bip-0117.mediawiki @@ -0,0 +1,199 @@ +
+  BIP: 117
+  Layer: Consensus (soft fork)
+  Title: Tail Call Execution Semantics
+  Author: Mark Friedenbach 
+          Kalle Alm 
+          BtcDrak 
+  Comments-Summary: No comments yet.
+  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0117
+  Status: Draft
+  Type: Standards Track
+  Created: 2017-08-25
+  License: CC-BY-SA-4.0
+  License-Code: MIT
+
+ +==Abstract== + +BIP16 (Pay to Script Hash)[1] and BIP141 (Segregated Witness)[2] provide mechanisms by which script policy can be revealed at spend time as part of the execution witness. +In both cases only a single script can be committed to by the construct. +While useful for achieving the goals of these proposals, they still require that all policies be specified within the confine of a single script, regardless of whether the policies are needed at the time of spend. + +This BIP, in conjunction with BIP116 (MERKLEBRANCHVERIFY)[3] allows for a script to commit to a practically unbounded number of code pathways, and then reveal the actual code pathway used at spend time. +This achieves a form of generalized MAST[4] enabling decomposition of complex branching scripts into a set of non-branching flat execution pathways, committing to the entire set of possible pathways, and then revealing only the path used at spend time. + +==Copyright== + +This BIP is licensed under a Creative Commons Attribution-ShareAlike license. All provided source code is licensed under the MIT license. + +==Specification== + +If, at the end of script execution: + +* the execution state is non-clean, meaning +*# the main stack has more than one item on it, or +*# the main stack has exactly one item and the alt-stack is not empty; +* the top-most element of the main stack evaluates as true when interpreted as a bool; and +* the top-most element is not a single byte or is outside the inclusive range of 0x51 to 0x60, + +then that top-most element of the main stack is popped and interpreted as a serialized script and executed, +while the remaining elements of both stacks remain in place as inputs. + +If the above conditions hold except for the last one, such that: + +* the top-most element ''is'' a single byte within the inclusive range of 0x51 (OP_1, meaning N=2) to 0x60 (OP_16, meaning N=17); + +and: + +* the next N-1 elements on the main stack (continuing on the alt stack if the main stack is exhausted) are 520 byte pushes; and +* the following Nth element on the main stack (or alt stack, as above) is between 1 and 520 bytes, + +then the top-most element of the main stack is dropped, +and the N=2 (0x51) to 17 (0x60) further elements are popped from the main stack, +continuing from the alt stack if the main stack is exhausted, +and concatinated together in reverse order to form a serialized script, +which is then executed with the remaining elements of both stacks remaining in place as inputs. + +The presence of CHECKSIG or CHECKMULTISIG within the subscript do not count towards the global MAX_BLOCK_SIGOPS_COST limit, +and the number of non-push opcodes executed in the subscript is not limited by MAX_OPS_PER_SCRIPT. +Execution state, other than the above exceptions, carries over into the subscript, +and termination of the subscript terminates execution of the script as a whole. +This is known as execution with tail-call semantics. + +Only one such tail-call of a subscript is allowed per script execution context, and only from within a segwit redeem script. +Alternatively stated, neither evaluation of witness stack nor execution of the scriptPubKey or scriptSig or P2SH redeem script results in tail-call semantics. + +==Motivation== + +BIP16 (Pay to Script Hash)[1] and BIP141 (Segregated Witness)[2] allow delayed revelation of a script's policy until the time of spend. +However these approaches are limited in that only a single policy can be committed to in a given transaction output. +It is not possible to commit to multiple policies and then choose, at spend time, which to reveal. + +BIP116 (MERKLEBRANCHVERIFY)[3] allows multiple data elements to be committed to while only revealing those necessary at the time of spend. +The MERKLEBRANCHVERIFY opcode is only able to provide commitments to a preselected set of data values, and does not by itself allow for executing code. + +This BIP generalizes the approach of these prior methods by allowing the redeem script to perform any type of computation necessary to place the policy script on the stack. +The policy script is then executed from the top of the data stack in a way similar to how BIP16 and BIP141 enable redeem scripts to be executed from the top of the witness stack. +In particular, using MERKLEBRANCHVERIFY[3] in the scriptPubKey or redeem script allows selection of the policy script that contains only the necessary conditions for validation of the spend. +This is a form of generalized MAST[4] where a stage of precomputation splits a syntax tree into possible execution pathways, which are then enumerated and hashed into a Merkle tree of policy scripts. +At spend time membership in this tree of the provided policy script is proven before execution recurses into the policy script. + +==Rationale== + +This proposal is a soft-fork change to bitcoin's consensus rules because leaving a script that data-wise evaluates as true from its serialized form on the stack as execution terminates would result in the script validation returning true anyway. +Giving the subscript a chance to terminate execution is only further constraining the validation rules. +The only scripts which would evaluate as false are the empty script, or a script that does nothing more than push empty/zero values to the stack. +None of these scripts have any real-world utility, so excluding them to achieve soft-fork compatibility doesn't come with any downsides. + +By restricting ourselves to tail-call evaluation instead of a more general EVAL opcode we greatly simplify the implementation. +Tail-call semantics means that execution never returns to the calling script's context, and therefore no state needs to be saved or later restored. +The implementation is truly as simple as pulling the subscript off the stack, resetting a few state variables, and performing a jump back to the beginning of the script interpreter. + +The restriction to allow only one layer of tail-call recursion is admittedly limiting, however the technical challenges to supporting multi-layer tail-call recursion are significant. +A new metric would have to be developed to track script resource usage, for which transaction data witness size are only two factors. +This new weight would have to be relayed with transactions, used as the basis for fee calculation, validated in-line with transaction execution, and policy decided upon for DoS-banning peers that propagate violating transactions. + +However should these problems be overcome, dropping the single recursion constraint is itself a soft-fork for the same reason, applied inductively. +Allowing only one layer of tail-call recursion allows us to receive the primary benefit of multi-policy commitments / generalized MAST, +while leaving the door open to future generalized tail-call recursion if and when the necessary changes are made to resource accounting and p2p transaction distribution. + +The global SIGOP limit and per-script opcode limits do not apply to the policy script +because dynamic selection of the policy script makes it not possible for static analysis tools to verify these limits in general, +and because performance improvements to libsecp256k1 and Bitcoin Core have made these limits no longer necessary as they once were. +The validation costs are still limited by the number of signature operations it is possible to encode within block size limits, +and the maximum script size per input is still limited to 10,000 bytes. + +To allow for this drop of global and per-script limits, +tail-call evaluation cannot be allowed for direct execution of the scriptPubKey, +as such scripts are fetched from the UTXO and do not count towards block size limits of the block being validated. +Likewise tail-call from P2SH redeem scripts is not supported due to quadratic blow-up vulnerabilities that are fixed in segwit. + +==Generalized MAST== + +When combined with BIP116 (MERKLEBRANCHVERIFY)[3], tail-call semantics allows for generalized MAST capabilities[4]. +The script author starts with a full description of the entire contract they want to validate at the time of spend. +The possible execution pathways through the script are then enumerated, with conditional branches replaced by a validation of the condition and the branch taken. +The list of possible execution pathways is then put into a Merkle tree, with the flattened policy scripts as the leaves of this tree. +The final redeem script which funds are sent to is as follows: + + redeemScript: OVER HASH256 1 MERKLEBRANCHVERIFY 2DROP 2DROP + witness: ... + +Where policyScript is the flattened execution pathway, proof is the serialized Merkle branch and path that proves the policyScript is drawn from the set used to construct the Merkle tree root, and arg1 through argN are the arguments required by policyScript. +The OVER HASH256 copies the subscript and performs the double-SHA256 hash necessary to prepare the leaf hash value for MERKLEBRANCHVERIFY, and the 2DROP 2DROP is necessary to remove the arguments to MERKLEBRANCHVERIFY from the stack. + +The above example was designed for clarity, but actually violates the CLEANSTACK rule of segwit v0 script execution. +Unless the CLEANSTACK rule is dropped or modified in a new segwit output version, this would script would have to be modified to use the alt-stack, as follows: + + redeemScript: [TOALTSTACK]*N OVER HASH256 1 MERKLEBRANCHVERIFY 2DROP 2DROP + witness: ... + +Where [TOALTSTACK]*N is the TOALTSTACK opcode repeated N times. +This moves arg1 through argN to the alt-stack in reverse order, such that arg1 is on the top of the alt-stack when execution of policyScript begins. +The policyScript would also have to be modified to fetch its arguments from the alt-stack, of course. + +If the total set of policy scripts includes scripts that take a varying number of parameters, that too can be supported, within reasonable limits. +The following redeem script allows between 1 and 3 witness arguments in addition to the policy script and Merkle proof: + + witness: ... // N is between 1 and 3 + redeemScript: DEPTH TOALTSTACK // Save number of witness elements to alt-stack + TOALTSTACK // Save 1st element (required) to alt-stack + DEPTH 2 SUB // Calculate number of optional elements, ignoring policyScript and proof + DUP IF SWAP TOALTSTACK 1SUB ENDIF // Save 2nd element (optional) to alt-stack, if it is present + IF TOALTSTACK ENDIF // Save 3rd element (optional) to alt-stack, if it is present; consume counter + OVER HASH256 1 MERKLEBRANCHVERIFY 2DROP 2DROP + alt-stack: ... + +Because the number of witness elements is pushed onto the alt-stack, this enables policy scripts to verify the number of arguments passed, even though the size of the alt-stack is not usually accessible to script. +The following policy script for use with the above redeem script will only accept 2 witness elements on the alt-stack, preventing witness malleability: + + policyScript: FROMALTSTACK ...check arg1... FROMALTSTACK ...check&consume arg2/arg1&2... FROMALTSTACK 4 EQUAL + +The number 4 is expected as that includes the policyScript and proof. + +The verbosity of this example can be prevented by using a uniform number of witness elements as parameters for all policy subscripts, eliminating the conditionals and stack size counts. +Future script version upgrades should also consider relaxing CLEANSTACK rules to allow direct pass-through of arguments from the witness/redeem script to the policy script on the main stack. + +===Comparison with BIP114=== + +BIP114 (Merkelized Abstract Syntax Tree)[5] specifies an explicit MAST scheme activated by BIP141 script versioning[2]. +Unlike BIP114, the scheme proposed by this BIP in conjunction with BIP116 (MERKLEBRANCHVERIFY)[3] implicitly enables MAST constructs using script itself to validate membership of the policy script in the MAST. +This has the advantage of requiring vastly fewer consensus code changes, as well as potentially enabling future script-based innovation without requiring any further consensus code changes at all, as the MAST scheme itself is programmable. + +Furthermore, by adding MERKLEBRANCHVERIFY and tail-call semantics to all script using the NOP-expansion space, BIP141 style script versioning is not required. +This removes a potentially significant hurdle to deployment by making this feature not dependent on resolving outstanding issues over address formats, how script version upgrades should be deployed, and consensus over what other features might go into a v1 upgrade. + +==Implementation== + +An implementation of this BIP, including both consensus code changes and tests are available at the following Github repository: + +[https://github.com/maaku/bitcoin/tree/tail-call-semantics] + +==Deployment== + +This BIP will be deployed by BIP8 (Version bits with lock-in by height)[9] with the name "tailcall" and using bit 3. + +For Bitcoin mainnet, the BIP8 startheight will be at height M to be determined and BIP8 timeout activation will occur on height M + 50,400 blocks. + +For Bitcoin testnet, the BIP8 startheight will be at height T to be determined and BIP8 timeout activation will occur on height T + 50,400 blocks. + +We note that CLEANSTACK means that transactions which use this feature are already considered non-standard by the rules of the network, making deployment easier than was the case with, for example, with BIP68 (Relative lock-time using consensus-enforced sequence numbers)[6]. + +==Compatibility== + +The v0 segwit rules prohibit leaving anything on the stack, so for v0 parameters have to be passed on the alt stack for compatibility reasons. + +==References== + +[1] [https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki BIP16: Pay to Script Hash] + +[2] [https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki BIP141: Segregated Witness (Consensus Layer)] + +[3] [https://github.com/bitcoin/bips/blob/master/bip-0116.mediawiki BIP116: MERKLEBRANCHVERIFY] + +[4] "[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-September/015028.html An explanation and justification of the tail-call and MBV approach to MAST]", Mark Friedenbach, Bitcoin Development Mailing List, 20 September 2017. + +[5] [https://github.com/bitcoin/bips/blob/master/bip-0114.mediawiki BIP114: Merkelized Abstract Syntax Tree] + +[6] [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP68: Relative lock-time using consensus-enforced sequence numbers] From 5df90e1ae83c23b6d336f3b184030d8e2cf6c66a Mon Sep 17 00:00:00 2001 From: Karl-Johan Alm Date: Wed, 15 Nov 2017 13:08:35 +0900 Subject: [PATCH 4/4] Updated README to include BIPs 98, 116, 117. --- README.mediawiki | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.mediawiki b/README.mediawiki index c8431d2..9943ca8 100644 --- a/README.mediawiki +++ b/README.mediawiki @@ -421,6 +421,13 @@ Those proposing changes should consider that ultimately consent may rest with th | Standard | Final |- +| [[bip-0098.mediawiki|98]] +| Consensus (soft fork) +| Fast Merkle Trees +| Mark Friedenbach, Kalle Alm, BtcDrak +| Standard +| Draft +|- | [[bip-0099.mediawiki|99]] | | Motivation and deployment of consensus rule changes ([soft/hard]forks) @@ -519,6 +526,20 @@ Those proposing changes should consider that ultimately consent may rest with th | Standard | Draft |- +| [[bip-0116.mediawiki|116]] +| Consensus (soft fork) +| MERKLEBRANCHVERIFY +| Mark Friedenbach, Kalle Alm, BtcDrak +| Standard +| Draft +|- +| [[bip-0117.mediawiki|117]] +| Consensus (soft fork) +| Tail Call Execution Semantics +| Mark Friedenbach, Kalle Alm, BtcDrak +| Standard +| Draft +|- | [[bip-0120.mediawiki|120]] | Applications | Proof of Payment