summaryrefslogtreecommitdiff
path: root/72/8b93176e4bd72dffa7a306a8a3ee2933083e78
blob: 9ca85af663ab8221875236aaf116a93d8c63462c (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
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
Return-Path: <tamas.blummer@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 64635C6C
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 28 Jun 2019 19:22:02 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com
	[209.85.128.67])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id CB07B13A
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 28 Jun 2019 19:21:59 +0000 (UTC)
Received: by mail-wm1-f67.google.com with SMTP id a15so10121957wmj.5
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 28 Jun 2019 12:21:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
	h=from:message-id:mime-version:subject:date:in-reply-to:cc:to
	:references; bh=p0zULb5tlOclcNvMxOnTV1c6Wtdc+LKyFxgeIdEevn0=;
	b=fnU7UIWrpr5AooaeYNwsW8ZDTJBjysaPMG/24PqD0deMcL68Cwf3/piCuIU4wTBYtR
	vkrhyZnVeXw6B6lR9857fe3pKYrbvwqeOJd2YAE5mTorYRd7a+wBcV+aTG/WIT2ep4gq
	dFs4OGaG4EGjfdrQSVD5+4dAxhjOecXTwbl4TNH8H4lFs/yRLqLJyXxl6vcGJvtUZ/XA
	nuzJ1+dKWCnLgs30+EpFmB024vzWn4NO+WkyaPxsrf4imkG2wliaoB07BXTzUxaTWj7D
	X78dK9LhnhoYuMtqft4GNhwx0Chk3EX5BMZLghKCnLfXWv0HKt0NhCDyWje2p/Tj927y
	2bgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20161025;
	h=x-gm-message-state:from:message-id:mime-version:subject:date
	:in-reply-to:cc:to:references;
	bh=p0zULb5tlOclcNvMxOnTV1c6Wtdc+LKyFxgeIdEevn0=;
	b=LtzksMe8LsVBZeKuvgoya1KVvuvWOpqO2GZTGwL0dgBzENAbMTniQZz9nOU20TwfS/
	cgi0CL2NBZr1EhQIgFai12a6qbGYZhyRD6TCPchAr2GxktrVLBGGp5wN8ay+YD6Jim1s
	PIAklk+dWg/e/eTogE1tadAOM/UpL2jXN+yJQMCiLglyH0FDbA5tmLGuqY0Z1dKAWZtv
	lNvHa6bGIPWBJAE5YSzuUCQuV7kQiMqhbyub0kCTpQaID/zkQ2gwurEI6c30eyfDEsOb
	xrPsVu6aOudMqMFRltrzsK2dCUnfuIJqusoJ7hleNMj73Xk+0RUmz7piKAhO4ICpJ/oj
	sL0A==
X-Gm-Message-State: APjAAAXphIe0vy3jFgtCXFA04SpgI7vZEFz+VbrnXrjvcUYE7ajz7Dqz
	zxgrh5apH4e21y5OYyXnKcWfUObN
X-Google-Smtp-Source: APXvYqyH/YUHUFVULMC+sUnVPsl5KLcmWXtQOnrb8Oi33e+Sa+YAQOBSOgeuxBKE8St6/3BaDP5bIQ==
X-Received: by 2002:a1c:ac81:: with SMTP id v123mr8478701wme.145.1561749718244;
	Fri, 28 Jun 2019 12:21:58 -0700 (PDT)
Received: from [192.168.2.105] (p4FEB9816.dip0.t-ipconnect.de. [79.235.152.22])
	by smtp.gmail.com with ESMTPSA id p3sm1990257wrd.47.2019.06.28.12.21.56
	(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Fri, 28 Jun 2019 12:21:57 -0700 (PDT)
From: Tamas Blummer <tamas.blummer@gmail.com>
Message-Id: <EB743E28-8486-4CD5-B9AE-09B5693B27FA@gmail.com>
Content-Type: multipart/signed;
	boundary="Apple-Mail=_7CBDD125-87E0-48A3-8C1D-589A78C155B6";
	protocol="application/pgp-signature"; micalg=pgp-sha512
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Date: Fri, 28 Jun 2019 21:21:56 +0200
In-Reply-To: <7A10C0F5-E206-43C1-853F-64AE04F57711@voskuil.org>
To: Eric Voskuil <eric@voskuil.org>
References: <0DBC0DEA-C999-4AEE-B2E1-D5337ECD9405@gmail.com>
	<7A10C0F5-E206-43C1-853F-64AE04F57711@voskuil.org>
X-Mailer: Apple Mail (2.3273)
X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE,
	MIME_QP_LONG_LINE, 
	RCVD_IN_DNSWL_NONE 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: Fri, 28 Jun 2019 20:05:14 +0000
Cc: Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] Generalized covenants with taproot enable
 riskless or risky lending,
 prevent credit inflation through fractional reserve
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: Fri, 28 Jun 2019 19:22:02 -0000


--Apple-Mail=_7CBDD125-87E0-48A3-8C1D-589A78C155B6
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_08A88D0A-B5D2-44A0-A549-01AC73AD2B4E"


--Apple-Mail=_08A88D0A-B5D2-44A0-A549-01AC73AD2B4E
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Eric,

Thank you for your questions as they show what concepts need further =
explanation, so you understand the potential of this proposal and how it =
is helpful to the ecosystem.

Riskless zero bond is in fact the most basic concept of financial =
engineering. Yes, there are engineers of finance, those who create and =
price financial derivatives (e.g. options, swaps) and structure products =
such as e.g. ABS, CDO etc.
I used to be one of them.

A zero bond formalizes the observation that 1 unit of currency in the =
future has different value than 1 unit available now. It is called =
riskless if it is certain to receive the payment in the future.
If we put this difference of vaue in relation to the amount then we get =
the =E2=80=9Crisk freee rate of return=E2=80=9D, that you heard of.

E.g if one is willing to exchange 1 BTC unconditionally available now =
for 1.1 BTC certainly available in a year but not earlier, then the =
implied =E2=80=9Crisk free rate of return=E2=80=9D is apparently 10% pa. =
for Bitcoins.

The transaction I construct in the first example achives exactly this, =
because:

Bob forgoes his ability to use his unconditionally available coins by =
giving them to Alice with a covenant that ensures that Bob will receive =
them back later.
Bob does this because Alice pays for this in advance.

Alice can further transfer the coins encumbered by the covenant, but =
they will unconditionally return to Bob in the future.

The utility of these encumbered coins is that they prove that the loan =
is fully covered by reserves.

How valuable this utility is will be decided by the market and that =
value will be interest received by those who temporarily give up =
control. I am guess the value will be low but positive.

Lending does not mandate fractional or full reserves. These are choices =
the market or regulators enforce. Full reserve banking is not a fiction =
but is how things worked before introduction of gold receipts. A bank =
could only lend gold coins it possesed. Perils of fractional reserve =
were felt repeatedly by the Bitcoin ecnomy e.g. in the collaps of MtGox.

The idea to return to full reserve banking is not unique to gold bugs or =
Bitcoin but recently a popular vote was initiated in Switzerland to =
force Swiss banks to full reserves with respect to lending. This popular =
vote achived  24% support [1] which is quite remarkable if considered =
that the topic is not trivial as also our exchange shows.

I published today a writing in medium, that explains the concept of =
fractional vs. full reserve banking in conjunction with this proposal. =
Please read: =
https://medium.com/@tamas.blummer/full-reserve-banking-with-bitcoin-462b21=
ae9479 =
<https://medium.com/@tamas.blummer/full-reserve-banking-with-bitcoin-462b2=
1ae9479>

I would welcome feedback on the generalized covenant construct or its =
implementation, as I think it can open up much more uses than the few =
examples I gave.

Tamas Blummer

[1] Vollgeld Initiative: =
https://www.bfs.admin.ch/bfs/de/home/statistiken/politik/abstimmungen/jahr=
-2018/2018-06-10/vollgeld-initiative.html =
<https://www.bfs.admin.ch/bfs/de/home/statistiken/politik/abstimmungen/jah=
r-2018/2018-06-10/vollgeld-initiative.html>
> On Jun 28, 2019, at 19:25, Eric Voskuil <eric@voskuil.org> wrote:
>=20
> Hi Tamas,
>=20
> There are a number of economic assumptions contained herein. While I =
understand you would like to focus on implementation, the worst bugs are =
requirements bugs. IMO these should be addressed first. I=E2=80=99ve =
addressed some possible issues inline.
>=20
>> On Jun 28, 2019, at 01:27, Tamas Blummer via bitcoin-dev =
<bitcoin-dev@lists.linuxfoundation.org =
<mailto:bitcoin-dev@lists.linuxfoundation.org>> wrote:
>>=20
>> I start with a formalisation of loans as common in finance:
>>=20
>> A zero bond is a contract between two parties Alice and Bob whereby =
Alice receives an amount less than P and has to pay back P at a later =
time point called maturity.
>> The difference between the amount received and P is the interest =
implied by the contract. E.g. receiving 1 Bitcoin (<P) and agree to pay =
back 1.1 (=3DP) in a year is the same as getting a loan with 10% p.a. =
interest.
>>=20
>> The inherent risk in the contract is that Alice may not honor the =
agreement or be bankrupt by then.
>>=20
>> If we could programmatically guarantee that Alice honors the contract =
then we would be able to create a riskless zero bond, the fundation of =
financial engineering.
>=20
> I=E2=80=99m not aware of the basis of this statement. While people use =
the term =E2=80=9Crisk free rate of return=E2=80=9D there has never =
actually been such a thing. It=E2=80=99s not clear to me how a unicorn =
has been the foundation of =E2=80=9Cfinancial engineering=E2=80=9D, but =
I=E2=80=99m not also clear and what is intended by =E2=80=9Cengineering=E2=
=80=9D in this sense. Generally engineering is the implementation of =
higher level concepts. It is those concepts that constitute requirements =
here.
>=20
> At a minimum, interest cannot be guaranteed by this proposal, which =
implies that at best it guarantees, setting aside changes in purchasing =
power, a return of principle minus economic interest on that principle =
(ie opportunity cost). Given that purchasing power changes over time, =
risk increases with the term of the loan. As such this is not riskless - =
both volatility and opportunity cost remain as risks.
>=20
>> A systemic problem with loans is that the lender might operate on =
fractional reserve, that is lending more than his capital.
>=20
> This is not a systemic problem, this is the very nature of lending. =
Fractional reserve is simply a state banking term used to describe the =
fact that people invest (lend) a fraction of their savings and hoard the =
rest. It matters not that banks or individuals do this, credit expansion =
is inherent in economy. Without it there is no investment and therefore =
no production whatsoever.
>=20
>> Unchecked inflation of money supply through fractional reserve is =
creating a mess in the world we live in. Bitcoin could overcome this =
mess implementing this proposal!
>=20
> You seem to be conflating state banking with the effects of investing. =
Taxpayer support for bank investment creates both a moral hazard (and =
the resulting misallocation of capital to state-favored projects, =
creating the famed economic =E2=80=9Cbusiness cycle=E2=80=9D) and is a =
manifestation of persistent monetary inflation (ie seigniorage is a =
source taxation. Investment implies credit expansion, and the level of =
this expansion is controlled by time preference alone.
>=20
>> I stop here with finance speak as the purpose of this mail is not to =
dive into finance, but to show how loans with full reserve check could =
be implemented in Bitcoin.
>>=20
>> 1. Receiving the loan is a payment from Bob to Alice, but we need a =
restriction how Alice can use the funds, so Bob can get them back =
unconditionally at maturity, so lending is riskless to him.
>> 2. Bob wants to receive interest, since he gives up his control of =
the coins until maturity, he can not use them elsewhere until then. That =
interest could be paid in advance, this can be solved with Bitcoin as =
is.
>=20
> Interest cannot be paid in advance. This implies nothing more than a =
smaller amount of principle.
>=20
>> How do we allow Alice to use the coins, that is: split/merge and =
transfer them to others, but still ensure Bob can claim them back at =
maturity?
>>=20
>> We ensure that Alice can only send the coins to outputs that inherit =
a taproot path of validation (using http://bitcoin.sipa.be/miniscript/): =
'and(time(100),pk(C))' where C is Bob=E2=80=99s key and 100 is maturity
>>=20
>> This requires a generalization of the Bitcoin Covenants Idea[1] such =
that it nicely fits with taproot as follows:
>>=20
>> 1. A covenant in the form of '_ covenant C=E2=80=99 on output means =
that it can be spent to an output that maches the covenant pattern with =
placeholder _  and the output(s) will be assigned 'covenant C'.
>> 2. A covenant that mandates an output script with alternate =
validation paths can also assign alternate covernants to be inherited by =
the output(s) depending on which path was used to spend the input eg. =
'covenant or(c covenant C, d covernant D)=E2=80=99
>> 3. The resulting covenant of outputs should be reduced following =
boolean algebra, e.g. or(b,or(b,a)) to or(b, a)
>> 4. express transitivity with 'covenant transitive=E2=80=99 which =
means the output will have the same covenant as the input
>> 5. allow to omit covenant on the output with 'covenant drop'
>>=20
>> The covenant Bob would assign to the loan output sent to Alice is: =
'covenant or(and(time(100),pk(Bob)) covenant drop, _ covenant =
transitive)' which means:
>> - Alice can send to an output script where she is free to chose the =
embedded script at the placeholder _ and that output will again have the =
same covenant as the input.
>> - After maturity Bob can claim any coin that is transitively rooted =
in the loan (more on this later) and the covenant will no longer be =
assigned to his new output(s).
>>=20
>> Assuming Alice wants to send some of the borrowed coins to Charlie:
>>=20
>> for shorter notation lets use b=3D'and(time(100),pk(Bob)) covenant =
drop=E2=80=99 for the script that gives Bob control after maturity.
>>=20
>> Alice can not send to pk(Charlie), but she can send to or(b, =
pk(Charlie) covenant transitive)
>> Sending to pk(Charlie) would be sending cash, sending to or(b, =
pk(Charlie) covenant transitive) is a promissory note issued by Alice to =
Charlie, here is why:
>>=20
>> If Charlie accepts an or(b, pk(Charlie) covenant transitive) output =
then he trusts, that Alice will offer a regular payment in exchange for =
it before maturity, since that output is worthless to Charlie after =
maturity as Bob can just take it.
>>=20
>> It seems at the first sight that there is no value in these outputs =
for Charlie, since he still has to ensure Alice replaces them before =
maturity.
>>=20
>> The value of these outputs to Charlie is the proof that he has =
exclusive control of the coins until maturity.
>=20
> At a minimum, money that predictably depreciates (to zero in this =
case) must be discounted accordingly. How much is money worth today that =
is worth zero tomorrow? This can be observed with both inflation and =
demurrage money. This also implies that each encumbered coin is not =
fungible with any other of a distinct discount schedule.
>=20
> What is the economic consequence of lending discounted money? Lower =
interest rates. How much lower? The rate of depreciation. This can also =
be observed with inflation and demurrage, but observation isn=E2=80=99t =
required. This is a necessary outcome.
>=20
> So when one lends 1 demurrage coin for a term one cannot earn interest =
on 1 coin, one is earning interest on a fraction of a coin. That =
fraction creates credit expansion and reduces return in direct =
proportion to the risk that has been offset. In other words, the risk =
cost has been converted to opportunity cost. The discounted fraction =
earns no interest.
>=20
> So credit expansion and risk remain, in the same proportions as =
without such a system. However lack of fungibility introduces an =
additional overhead cost.
>=20
> e
>=20
>> Alice can not issue promissory notes in excess of own capital or =
capital that she was able to borrow. No coin inflation or fractional =
reserve here, which also reduces the credit risk Charlie takes.
>>=20
>> Due to the transitive covenant Charlie could pass on the coins to an =
other temporary owner until maturity when Bob would re-collect them =
unconditionally.
>>=20
>> Should Charlie no longer be comfortable with Alice=E2=80=99s promise =
or need final coins (cash) immediatelly, then he could turn to Dan and =
do a re-purchase (repo) agreement with him.
>>=20
>> Charlie would receive final coins from Dan in exchange for the =
temporarily controled coins and Charlie's promise to replace them with =
final coins before maturity.
>> Dan would thereby charge high interest through a discount since as he =
has to bear the credit risk of Charlie. This is not a riskless but a =
plain zero bond.
>>=20
>> Why would Dan want to take temporary control of the coins at all? =
Again, to ensure Charlie is not doing yet another repo with Frank on the =
same coins, the sum of Charlie's repo deals are not in excess of his =
claims against others.
>> This again avoids lending in excess of coin supply and reduces the =
credit risk Dan takes.
>>=20
>> Here are the sketches for the transacions for above alternate =
actions:
>>=20
>> lets use shortcut c for 'or(and(time(100),pk(Bob)) covenant drop, _ =
covenant transitive)=E2=80=99
>>=20
>> the transactions offer a fee of 0.0001
>>=20
>> Bob gives a riskless credit to Alice:
>>=20
>> Input            Output
>> 1 pk(Bob)        1 or(b,pk(Alice) covenant c)
>> 0.1 pk(Alice)        0.9999 pk(Bob)
>>=20
>> Alice could send a 0.5 promissory note to Charlie:
>>=20
>> Input                    Output
>> 1 or(pk(Alice) covenant c)        0.5 or(b,pk(Charlie) covenant c)
>> 1 pk(Alice)                0.5 or(b,pk(Alice) covenant c)
>>                   0.9999 pk(Alice)
>>=20
>> Alice could make good of the note before maturity, pay some interest =
and get back temporary control of the coins with:
>> Input                        Output
>> 0.5 or(b,pk(Charlie) covenant c)        0.5 or(b,pk(Alice) covenant =
c)
>> 0.5101 pk(Alice)                0.51 pk(Charlie)
>>=20
>> alternatively Charlie borrows from Dan at high interest:
>>=20
>> Input                        Output
>> 0.5 or(b,pk(Charlie) covenant c)        0.5 or(b,pk(Dan) covenant c)
>> 0.3001 pk(Dan)                0.3 pk(Charlie)
>>=20
>> and Charlie re-purchases the temporary coins before maturity, making =
good of the repo with Dan:
>>=20
>> Input                            Output
>> 0.5 or(b,pk(Dan) covenant c)            0.5 or(b,pk(Charlie) covenant =
c)
>> 0.5001 pk(Charlie)                    0.5 pk(Dan)
>>=20
>> We need to define further transaction level validations for =
transactions spending inputs with covenants as follows:
>>=20
>> 1. If there are inputs without covenant before the input with =
covenant than inputs without covenant must be spent exactly with outputs =
preceeding the outputs with covenants.
>> 2. A transaction can have inputs with different covenants, their =
allocation to outputs should follow input order.
>> 3. For output(s) that share input(s) with covenant, the sum of =
covenant outputs must exactly add up to the input(s). This allows =
merging and splitting them.
>>=20
>> Bob would re-collect his coins at maturity unconditionally. Who =
followed through promises or defaulted down the transitive chain is =
irrelevant to him.
>> Remark: we might also need a covenant attribute defining the minimum =
size of output, so Bob is not forced to collect dust, which would be =
expensive or even impossible. I am not yet happy with this solution, =
looking for better.
>>=20
>> I am very excited about the possibilities this proposal would unlock =
and ask you verify usefulness of this scheme and join working out the =
details and how covenants would be integrated with taproot.
>>=20
>> Tamas Blummer
>>=20
>> [1] Malte Moser, Ittay Eyal, and Emin Gun Sirer. Bitcoin Covenants. =
URL: http://fc16.ifca.ai/bitcoin/papers/MES16.pdf
>> _______________________________________________
>> bitcoin-dev mailing list
>> bitcoin-dev@lists.linuxfoundation.org =
<mailto:bitcoin-dev@lists.linuxfoundation.org>
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev =
<https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>

--Apple-Mail=_08A88D0A-B5D2-44A0-A549-01AC73AD2B4E
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Hi Eric,</div><div class=3D""><br =
class=3D""></div><div class=3D"">Thank you for your questions as they =
show what concepts need further explanation, so you understand the =
potential of this proposal and how it is helpful to the =
ecosystem.</div><div class=3D""><br class=3D""></div><div =
class=3D"">Riskless zero bond is in fact the most basic concept of =
financial engineering. Yes, there are engineers of finance, those who =
create and price financial derivatives (e.g. options, swaps) and =
structure products such as e.g. ABS, CDO etc.</div><div class=3D"">I =
used to be one of them.</div><div class=3D""><br class=3D""></div><div =
class=3D"">A zero bond formalizes the observation that 1 unit of =
currency in the future has different value than 1 unit available now. It =
is called riskless if it is certain to receive the payment in the =
future.</div><div class=3D"">If we put this difference of vaue in =
relation to the amount then we get the =E2=80=9Crisk freee rate of =
return=E2=80=9D, that you heard of.</div><div class=3D""><br =
class=3D""></div><div class=3D"">E.g if one is willing to exchange 1 BTC =
unconditionally available now for 1.1 BTC certainly available in a year =
but not earlier, then the implied =E2=80=9Crisk free rate of return=E2=80=9D=
 is apparently 10% pa. for Bitcoins.</div><div class=3D""><br =
class=3D""></div><div class=3D"">The transaction I construct in the =
first example achives exactly this, because:</div><div class=3D""><br =
class=3D""></div><div class=3D"">Bob forgoes his ability to use his =
unconditionally available coins by giving them to Alice with a covenant =
that ensures that Bob will receive them back later.</div><div =
class=3D"">Bob does this because Alice pays for this in =
advance.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">Alice can further transfer the coins encumbered by the =
covenant, but they will unconditionally return to Bob in the =
future.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">The utility of these encumbered coins is that they prove that =
the loan is fully covered by reserves.</div><div class=3D""><br =
class=3D""></div><div class=3D"">How valuable this utility is will be =
decided by the market and that value will be interest received by those =
who temporarily give up control. I am guess the value will be low but =
positive.</div><div class=3D""><br class=3D""></div><div =
class=3D"">Lending does not mandate fractional or full reserves. These =
are choices the market or regulators enforce. Full reserve banking is =
not a fiction but is how things worked before introduction of gold =
receipts. A bank could only lend gold coins it possesed. Perils of =
fractional reserve were felt repeatedly by the Bitcoin ecnomy e.g. in =
the collaps of MtGox.</div><div class=3D""><br class=3D""></div><div =
class=3D"">The idea to return to full reserve banking is not unique to =
gold bugs or Bitcoin but recently a popular vote was initiated in =
Switzerland to force Swiss banks to full reserves with respect to =
lending. This popular vote achived &nbsp;24% support [1] which is quite =
remarkable if considered that the topic is not trivial as also our =
exchange shows.</div><div class=3D""><br class=3D""></div><div =
class=3D"">I published today a writing in medium, that explains the =
concept of fractional vs. full reserve banking in conjunction with this =
proposal. Please read:&nbsp;<a =
href=3D"https://medium.com/@tamas.blummer/full-reserve-banking-with-bitcoi=
n-462b21ae9479" =
class=3D"">https://medium.com/@tamas.blummer/full-reserve-banking-with-bit=
coin-462b21ae9479</a></div><div class=3D""><br class=3D""></div><div =
class=3D"">I would welcome feedback on the generalized covenant =
construct or its implementation, as I think it can open up much more =
uses than the few examples I gave.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Tamas Blummer</div><div class=3D""><br =
class=3D""></div><div class=3D"">[1] Vollgeld Initiative:&nbsp;<a =
href=3D"https://www.bfs.admin.ch/bfs/de/home/statistiken/politik/abstimmun=
gen/jahr-2018/2018-06-10/vollgeld-initiative.html" =
class=3D"">https://www.bfs.admin.ch/bfs/de/home/statistiken/politik/abstim=
mungen/jahr-2018/2018-06-10/vollgeld-initiative.html</a></div><br =
class=3D""><div><blockquote type=3D"cite" class=3D""><div class=3D"">On =
Jun 28, 2019, at 19:25, Eric Voskuil &lt;<a =
href=3D"mailto:eric@voskuil.org" class=3D"">eric@voskuil.org</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><div class=3D""><span =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; =
display: inline !important;" class=3D"">Hi Tamas,</span><br =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br=
 style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" =
class=3D""><span style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; float: none; display: inline =
!important;" class=3D"">There are a number of economic assumptions =
contained herein. While I understand you would like to focus on =
implementation, the worst bugs are requirements bugs. IMO these should =
be addressed first. I=E2=80=99ve addressed some possible issues =
inline.</span><br style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;" class=3D""><br style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><blockquote=
 type=3D"cite" style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; orphans: auto; text-align: start; text-indent: =
0px; text-transform: none; white-space: normal; widows: auto; =
word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" class=3D"">On Jun 28, 2019, at 01:27, =
Tamas Blummer via bitcoin-dev &lt;<a =
href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" =
class=3D"">bitcoin-dev@lists.linuxfoundation.org</a>&gt; wrote:<br =
class=3D""><br class=3D"">I start with a formalisation of loans as =
common in finance:<br class=3D""><br class=3D"">A zero bond is a =
contract between two parties Alice and Bob whereby Alice receives an =
amount less than P and has to pay back P at a later time point called =
maturity.<br class=3D"">The difference between the amount received and P =
is the interest implied by the contract. E.g. receiving 1 Bitcoin =
(&lt;P) and agree to pay back 1.1 (=3DP) in a year is the same as =
getting a loan with 10% p.a. interest.<br class=3D""><br class=3D"">The =
inherent risk in the contract is that Alice may not honor the agreement =
or be bankrupt by then.<br class=3D""><br class=3D"">If we could =
programmatically guarantee that Alice honors the contract then we would =
be able to create a riskless zero bond, the fundation of financial =
engineering.<br class=3D""></blockquote><br style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; =
display: inline !important;" class=3D"">I=E2=80=99m not aware of the =
basis of this statement. While people use the term =E2=80=9Crisk free =
rate of return=E2=80=9D there has never actually been such a thing. =
It=E2=80=99s not clear to me how a unicorn has been the foundation of =
=E2=80=9Cfinancial engineering=E2=80=9D, but I=E2=80=99m not also clear =
and what is intended by =E2=80=9Cengineering=E2=80=9D in this sense. =
Generally engineering is the implementation of higher level concepts. It =
is those concepts that constitute requirements here.</span><br =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br=
 style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" =
class=3D""><span style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; float: none; display: inline =
!important;" class=3D"">At a minimum, interest cannot be guaranteed by =
this proposal, which implies that at best it guarantees, setting aside =
changes in purchasing power, a return of principle minus economic =
interest on that principle (ie opportunity cost). Given that purchasing =
power changes over time, risk increases with the term of the loan. As =
such this is not riskless - both volatility and opportunity cost remain =
as risks.</span><br style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;" class=3D""><br style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><blockquote=
 type=3D"cite" style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; orphans: auto; text-align: start; text-indent: =
0px; text-transform: none; white-space: normal; widows: auto; =
word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" class=3D"">A systemic problem with =
loans is that the lender might operate on fractional reserve, that is =
lending more than his capital.<br class=3D""></blockquote><br =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" =
class=3D""><span style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; float: none; display: inline =
!important;" class=3D"">This is not a systemic problem, this is the very =
nature of lending. Fractional reserve is simply a state banking term =
used to describe the fact that people invest (lend) a fraction of their =
savings and hoard the rest. It matters not that banks or individuals do =
this, credit expansion is inherent in economy. Without it there is no =
investment and therefore no production whatsoever.</span><br =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br=
 style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" =
class=3D""><blockquote type=3D"cite" style=3D"font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: normal; letter-spacing: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" class=3D"">Unchecked inflation of money =
supply through fractional reserve is creating a mess in the world we =
live in. Bitcoin could overcome this mess implementing this proposal!<br =
class=3D""></blockquote><br style=3D"font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;" class=3D""><span style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: =
inline !important;" class=3D"">You seem to be conflating state banking =
with the effects of investing. Taxpayer support for bank investment =
creates both a moral hazard (and the resulting misallocation of capital =
to state-favored projects, creating the famed economic =E2=80=9Cbusiness =
cycle=E2=80=9D) and is a manifestation of persistent monetary inflation =
(ie seigniorage is a source taxation. Investment implies credit =
expansion, and the level of this expansion is controlled by time =
preference alone.</span><br style=3D"font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;" class=3D""><br style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><blockquote=
 type=3D"cite" style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; orphans: auto; text-align: start; text-indent: =
0px; text-transform: none; white-space: normal; widows: auto; =
word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" class=3D"">I stop here with finance =
speak as the purpose of this mail is not to dive into finance, but to =
show how loans with full reserve check could be implemented in =
Bitcoin.<br class=3D""><br class=3D"">1. Receiving the loan is a payment =
from Bob to Alice, but we need a restriction how Alice can use the =
funds, so Bob can get them back unconditionally at maturity, so lending =
is riskless to him.<br class=3D"">2. Bob wants to receive interest, =
since he gives up his control of the coins until maturity, he can not =
use them elsewhere until then. That interest could be paid in advance, =
this can be solved with Bitcoin as is.<br class=3D""></blockquote><br =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" =
class=3D""><span style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; float: none; display: inline =
!important;" class=3D"">Interest cannot be paid in advance. This implies =
nothing more than a smaller amount of principle.</span><br =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br=
 style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" =
class=3D""><blockquote type=3D"cite" style=3D"font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: normal; letter-spacing: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" class=3D"">How do we allow Alice to use =
the coins, that is: split/merge and transfer them to others, but still =
ensure Bob can claim them back at maturity?<br class=3D""><br =
class=3D"">We ensure that Alice can only send the coins to outputs that =
inherit a taproot path of validation (using <a =
href=3D"http://bitcoin.sipa.be/miniscript/" =
class=3D"">http://bitcoin.sipa.be/miniscript/</a>): =
'and(time(100),pk(C))' where C is Bob=E2=80=99s key and 100 is =
maturity<br class=3D""><br class=3D"">This requires a generalization of =
the Bitcoin Covenants Idea[1] such that it nicely fits with taproot as =
follows:<br class=3D""><br class=3D"">1. A covenant in the form of '_ =
covenant C=E2=80=99 on output means that it can be spent to an output =
that maches the covenant pattern with placeholder _ &nbsp;and the =
output(s) will be assigned 'covenant C'.<br class=3D"">2. A covenant =
that mandates an output script with alternate validation paths can also =
assign alternate covernants to be inherited by the output(s) depending =
on which path was used to spend the input eg. 'covenant or(c covenant C, =
d covernant D)=E2=80=99<br class=3D"">3. The resulting covenant of =
outputs should be reduced following boolean algebra, e.g. or(b,or(b,a)) =
to or(b, a)<br class=3D"">4. express transitivity with 'covenant =
transitive=E2=80=99 which means the output will have the same covenant =
as the input<br class=3D"">5. allow to omit covenant on the output with =
'covenant drop'<br class=3D""><br class=3D"">The covenant Bob would =
assign to the loan output sent to Alice is: 'covenant =
or(and(time(100),pk(Bob)) covenant drop, _ covenant transitive)' which =
means:<br class=3D"">- Alice can send to an output script where she is =
free to chose the embedded script at the placeholder _ and that output =
will again have the same covenant as the input.<br class=3D"">- After =
maturity Bob can claim any coin that is transitively rooted in the loan =
(more on this later) and the covenant will no longer be assigned to his =
new output(s).<br class=3D""><br class=3D"">Assuming Alice wants to send =
some of the borrowed coins to Charlie:<br class=3D""><br class=3D"">for =
shorter notation lets use b=3D'and(time(100),pk(Bob)) covenant drop=E2=80=99=
 for the script that gives Bob control after maturity.<br class=3D""><br =
class=3D"">Alice can not send to pk(Charlie), but she can send to or(b, =
pk(Charlie) covenant transitive)<br class=3D"">Sending to pk(Charlie) =
would be sending cash, sending to or(b, pk(Charlie) covenant transitive) =
is a promissory note issued by Alice to Charlie, here is why:<br =
class=3D""><br class=3D"">If Charlie accepts an or(b, pk(Charlie) =
covenant transitive) output then he trusts, that Alice will offer a =
regular payment in exchange for it before maturity, since that output is =
worthless to Charlie after maturity as Bob can just take it.<br =
class=3D""><br class=3D"">It seems at the first sight that there is no =
value in these outputs for Charlie, since he still has to ensure Alice =
replaces them before maturity.<br class=3D""><br class=3D"">The value of =
these outputs to Charlie is the proof that he has exclusive control of =
the coins until maturity.<br class=3D""></blockquote><br =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" =
class=3D""><span style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; float: none; display: inline =
!important;" class=3D"">At a minimum, money that predictably depreciates =
(to zero in this case) must be discounted accordingly. How much is money =
worth today that is worth zero tomorrow? This can be observed with both =
inflation and demurrage money. This also implies that each encumbered =
coin is not fungible with any other of a distinct discount =
schedule.</span><br style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;" class=3D""><br style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; =
display: inline !important;" class=3D"">What is the economic consequence =
of lending discounted money? Lower interest rates. How much lower? The =
rate of depreciation. This can also be observed with inflation and =
demurrage, but observation isn=E2=80=99t required. This is a necessary =
outcome.</span><br style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;" class=3D""><br style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><span =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; =
display: inline !important;" class=3D"">So when one lends 1 demurrage =
coin for a term one cannot earn interest on 1 coin, one is earning =
interest on a fraction of a coin. That fraction creates credit expansion =
and reduces return in direct proportion to the risk that has been =
offset. In other words, the risk cost has been converted to opportunity =
cost. The discounted fraction earns no interest.</span><br =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br=
 style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" =
class=3D""><span style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; float: none; display: inline =
!important;" class=3D"">So credit expansion and risk remain, in the same =
proportions as without such a system. However lack of fungibility =
introduces an additional overhead cost.</span><br style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" =
class=3D""><span style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; float: none; display: inline =
!important;" class=3D"">e</span><br style=3D"font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br =
style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" =
class=3D""><blockquote type=3D"cite" style=3D"font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: normal; letter-spacing: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" class=3D"">Alice can not issue =
promissory notes in excess of own capital or capital that she was able =
to borrow. No coin inflation or fractional reserve here, which also =
reduces the credit risk Charlie takes.<br class=3D""><br class=3D"">Due =
to the transitive covenant Charlie could pass on the coins to an other =
temporary owner until maturity when Bob would re-collect them =
unconditionally.<br class=3D""><br class=3D"">Should Charlie no longer =
be comfortable with Alice=E2=80=99s promise or need final coins (cash) =
immediatelly, then he could turn to Dan and do a re-purchase (repo) =
agreement with him.<br class=3D""><br class=3D"">Charlie would receive =
final coins from Dan in exchange for the temporarily controled coins and =
Charlie's promise to replace them with final coins before maturity.<br =
class=3D"">Dan would thereby charge high interest through a discount =
since as he has to bear the credit risk of Charlie. This is not a =
riskless but a plain zero bond.<br class=3D""><br class=3D"">Why would =
Dan want to take temporary control of the coins at all? Again, to ensure =
Charlie is not doing yet another repo with Frank on the same coins, the =
sum of Charlie's repo deals are not in excess of his claims against =
others.<br class=3D"">This again avoids lending in excess of coin supply =
and reduces the credit risk Dan takes.<br class=3D""><br class=3D"">Here =
are the sketches for the transacions for above alternate actions:<br =
class=3D""><br class=3D"">lets use shortcut c for =
'or(and(time(100),pk(Bob)) covenant drop, _ covenant transitive)=E2=80=99<=
br class=3D""><br class=3D"">the transactions offer a fee of 0.0001<br =
class=3D""><br class=3D"">Bob gives a riskless credit to Alice:<br =
class=3D""><br class=3D"">Input =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output<b=
r class=3D"">1 pk(Bob) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 =
or(b,pk(Alice) covenant c)<br class=3D"">0.1 pk(Alice) =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.9999 pk(Bob)<br class=3D""><br=
 class=3D"">Alice could send a 0.5 promissory note to Charlie:<br =
class=3D""><br class=3D"">Input =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output<br class=3D"">1 =
or(pk(Alice) covenant c) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.5 =
or(b,pk(Charlie) covenant c)<br class=3D"">1 pk(Alice) =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;0.5 or(b,pk(Alice) covenant c)<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.9999 pk(Alice)<br =
class=3D""><br class=3D"">Alice could make good of the note before =
maturity, pay some interest and get back temporary control of the coins =
with:<br class=3D"">Input =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output<br =
class=3D"">0.5 or(b,pk(Charlie) covenant c) =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.5 or(b,pk(Alice) covenant =
c)<br class=3D"">0.5101 pk(Alice) =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;0.51 pk(Charlie)<br class=3D""><br =
class=3D"">alternatively Charlie borrows from Dan at high interest:<br =
class=3D""><br class=3D"">Input =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output<br =
class=3D"">0.5 or(b,pk(Charlie) covenant c) =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.5 or(b,pk(Dan) covenant =
c)<br class=3D"">0.3001 pk(Dan) =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;0.3 pk(Charlie)<br class=3D""><br class=3D"">and Charlie =
re-purchases the temporary coins before maturity, making good of the =
repo with Dan:<br class=3D""><br class=3D"">Input =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;Output<br class=3D"">0.5 or(b,pk(Dan) covenant c) =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.5 =
or(b,pk(Charlie) covenant c)<br class=3D"">0.5001 pk(Charlie) =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.5 pk(Dan)<br class=3D""><br =
class=3D"">We need to define further transaction level validations for =
transactions spending inputs with covenants as follows:<br class=3D""><br =
class=3D"">1. If there are inputs without covenant before the input with =
covenant than inputs without covenant must be spent exactly with outputs =
preceeding the outputs with covenants.<br class=3D"">2. A transaction =
can have inputs with different covenants, their allocation to outputs =
should follow input order.<br class=3D"">3. For output(s) that share =
input(s) with covenant, the sum of covenant outputs must exactly add up =
to the input(s). This allows merging and splitting them.<br class=3D""><br=
 class=3D"">Bob would re-collect his coins at maturity unconditionally. =
Who followed through promises or defaulted down the transitive chain is =
irrelevant to him.<br class=3D"">Remark: we might also need a covenant =
attribute defining the minimum size of output, so Bob is not forced to =
collect dust, which would be expensive or even impossible. I am not yet =
happy with this solution, looking for better.<br class=3D""><br =
class=3D"">I am very excited about the possibilities this proposal would =
unlock and ask you verify usefulness of this scheme and join working out =
the details and how covenants would be integrated with taproot.<br =
class=3D""><br class=3D"">Tamas Blummer<br class=3D""><br class=3D"">[1] =
Malte Moser, Ittay Eyal, and Emin Gun Sirer. Bitcoin Covenants. URL: <a =
href=3D"http://fc16.ifca.ai/bitcoin/papers/MES16.pdf" =
class=3D"">http://fc16.ifca.ai/bitcoin/papers/MES16.pdf</a><br =
class=3D"">_______________________________________________<br =
class=3D"">bitcoin-dev mailing list<br class=3D""><a =
href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" =
class=3D"">bitcoin-dev@lists.linuxfoundation.org</a><br class=3D""><a =
href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
class=3D"">https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev<=
/a></blockquote></div></blockquote></div><br class=3D""></body></html>=

--Apple-Mail=_08A88D0A-B5D2-44A0-A549-01AC73AD2B4E--

--Apple-Mail=_7CBDD125-87E0-48A3-8C1D-589A78C155B6
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEE6YNJViYMM6Iv5f9e9nKRxRdxORwFAl0WaNQACgkQ9nKRxRdx
ORwzDwf+M0ArahdTue4FJ6XHmKJBzMw/SLO00htzXPTzbb0tftd11Ys0YaizPTog
j4gKFdO70kY+HhrI1OJNSNUu+7HPmDhKsovQE1SDmGZR8LICB8tNuwDmTt2rx16P
gUyFLM5Tgsxhpc+pH/fQHD0muR9IZmbEjqBUBVIhB0kbckUEzjV5crl/xo/UCIi1
PdLFxRF5ER6LJFI2gZq0U5EJLBVNnUHDxWsqhF+AY56VDbNRpjp1XC21PJgQgexj
mP1weKcq1MINfGGIu57gb0mPm5ZTii8y0Rn/KeZUFPi3QGVnAv03zqMJy/VFzsAz
Vo5iXp2KqQh/FCwCO1S9rpGtAJtmdA==
=SNDL
-----END PGP SIGNATURE-----

--Apple-Mail=_7CBDD125-87E0-48A3-8C1D-589A78C155B6--