summaryrefslogtreecommitdiff
path: root/fb/28d54ac8f0f6413942ec59c998be86fe3f4e04
blob: e11bf7a5aef064e6e41396e644ed01098e03ce38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
Return-Path: <luke@dashjr.org>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 6158018AA
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Mon,  1 Apr 2019 00:30:52 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-1.7.6
Received: from zinan.dashjr.org (zinan.dashjr.org [192.3.11.21])
	by smtp1.linuxfoundation.org (Postfix) with ESMTP id 987CEE7
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Mon,  1 Apr 2019 00:30:51 +0000 (UTC)
Received: from [2001:470:5:265:a45d:823b:2d27:961c] (unknown
	[IPv6:2001:470:5:265:a45d:823b:2d27:961c])
	(Authenticated sender: luke-jr)
	by zinan.dashjr.org (Postfix) with ESMTPSA id 79B4238A0CF7
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Mon,  1 Apr 2019 00:30:47 +0000 (UTC)
X-Hashcash: 1:25:190401:bitcoin-dev@lists.linuxfoundation.org::5lPT==D=BYBJzfLM:b7PK
From: Luke Dashjr <luke@dashjr.org>
To: bitcoin-dev@lists.linuxfoundation.org
Date: Mon, 1 Apr 2019 00:30:34 +0000
User-Agent: KMail/1.9.10 (enterprise35 0.20100827.1168748)
MIME-Version: 1.0
Content-Type: Text/Plain;
  charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Message-Id: <201904010030.34825.luke@dashjr.org>
X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED
	autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
X-Mailman-Approved-At: Mon, 01 Apr 2019 00:32:27 +0000
Subject: [bitcoin-dev] Softfork proposal for minimum price of $50k USD/BTC
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Apr 2019 00:30:52 -0000

Certain parts of the community have been selling bitcoins for unreasonably
low prices. This has halted Bitcoin's valuation at $20k and even driven the
price down below $15k! However, clearly Bitcoin is worth much more than
that, and there is widespread support for higher prices.

In light of this, I have written and implemented two BIPs: one to add a
signed price field to Bitcoin transactions, and the other to softfork a
minimum price of $50k USD/BTC a year from today.

The BIPs are here, as well as included at the bottom of this email for 
convenience:
  https://github.com/luke-jr/bips/blob/softfork_50k/bip-usdprice.mediawiki
https://github.com/luke-jr/bips/blob/softfork_50k/bip-softfork-50k-price.mediawiki

A reference implementation is here:
  https://github.com/bitcoin/bitcoin/compare/v0.17.1...luke-jr:softfork_50k

Please review ASAP so we can get these deployed in Bitcoin Core v0.18.

Luke


<pre>
  BIP: ?
  Layer: Applications
  Title: Signed USD Price Indicator
  Author: Luke Dashjr <luke+bip@dashjr.org>
  Comments-Summary: No comments yet.
  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-????
  Status: Draft
  Type: Standards Track
  Created: 2019-04-01
  License: BSD-2-Clause
</pre>

==Abstract==

This BIP proposes a method to explicitly specify and sign the USD/BTC price 
for transactions.

==Copyright==

This BIP is licensed under the BSD 2-clause license.

==Motivation==

Certain parts of the community have been selling bitcoins for unreasonably low 
prices. This has halted Bitcoin's valuation at $20k and even driven the price 
down below $15k! However, clearly Bitcoin is worth much more than that, and 
there is widespread support for higher prices.

This problem can be fixed by setting a global minimum price for bitcoins. 
Unfortunately, today, the consensus protocol is completely oblivious to the 
price bitcoins are traded at. Therefore, we must first add a field to Bitcoin 
transactions to indicate their price.

==Specification==

===New field and legal implication===

A new field is added to Bitcoin transactions. This field, if present, must 
represent the honest and true USD/BTC rate used for the transaction. By 
signing the transaction, the sender legally affirms this is the valuation of 
bitcoins used for the transaction.

For the avoidance of doubt: when the transaction is valued in a currency other 
than USD, any reasonable exchange rate may be used to come up with the USD 
valuation.

===Serialisation===

When serialising the transaction for any purpose, including signing, weight 
calculation, and so on, the output count must be incremented by one. Prior to 
the first real output, the following bytes must be inserted:

* Constant: 00 00 00 00 00 00 00 00
* A single byte, the size in bytes of the remainder of the inserted data
* Constant: 6a 04 55 53 44 24
* A single byte, the size in bytes of the remainder of the inserted data
* The USD/BTC rate used for the transaction, in standard signed integer 
serialisation, with all leading zeros removed (except as necessary to 
preserve the sign bit).

==Backwards compatibility==

===Consensus===

The new price field is serialised as a dummy output, with a value of zero, and 
a scriptPubKey that begins with OP_RETURN (6a). Existing nodes will ignore 
this dummy output, and the leading OP_RETURN in the scriptPubKey ensures it 
is never considered spendable.

Therefore, current nodes will ignore the new field entirely, and accept 
transactions using it.

===Wallets===

Existing wallets do not typically generate price indicators as specified. 
Under this BIP, this absence of the field is perfectly acceptable.

==Reference implementation==

https://github.com/bitcoin/bitcoin/compare/v0.17.1...luke-jr:usd_price_tx_field

<pre>
  BIP: ?
  Layer: Consensus (soft fork)
  Title: $50k USD/BTC Minimum Price
  Author: Luke Dashjr <luke+bip@dashjr.org>
  Comments-Summary: No comments yet.
  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-????
  Status: Draft
  Type: Standards Track
  Created: 2019-04-01
  License: BSD-2-Clause
  Requires: usdprice
</pre>

==Abstract==

This BIP defines a minimum price of $50k USD/BTC for Bitcoin transactions.

==Copyright==

This BIP is licensed under the BSD 2-clause license.

==Motivation==

Certain parts of the community have been selling bitcoins for unreasonably low 
prices. This has halted Bitcoin's valuation at $20k and even driven the price 
down below $15k! However, clearly Bitcoin is worth much more than that, and 
there is widespread support for higher prices.

bip-usdprice defines a new field to indicate the price of transactions. Using 
this, we can softfork to require a minimum transaction price.

==Specification==

Beginning with block height 622370 (expected approximately 2020 April 1), a 
block is reject as invalid unless all transactions it contains both declare a 
USD/BTC price (as defined in bip-usdprice) and specify a price that is at a 
minimum $50k USD/BTC.

==Backwards compatibility==

As a soft fork, older nodes will continue to accept the blockchain without 
modification. Non-upgraded nodes, however, will not validate the minimum 
price requirement, and may accept invalid blocks if miners choose to make 
them. Since transactions not declaring a price are at this time still 
common-place, the softfork activation has been set a full year into the 
future to ensure time to upgrade both nodes and wallet software.

==Reference implementation==

https://github.com/luke-jr/bitcoin/compare/usd_price_tx_field...softfork_50k