Subject: Re: [bitcoin-dev] Generalized covenants with taproot enable riskless or risky lending, prevent credit inflation through fractional reserve

From: ZmnSCPxj <[email-masked]>
Date: Tue, 09 Jul 2019 10:31:12 +0000

Good morning all,

I will attempt to restart my thinking from initial principles regarding my proposed "Bitcoin Classified Ads Network".

Nodes behave this way:

* Nodes in this network gossip advertisements.
* These advertisements refer to a UTXO that must be unspent at the chain tip considered by each node, else they would be rejected.
* The referred UTXO must contain a commitment to the text of the advertisement, else the advertisement is rejected.
* Nodes have a maximum limit on the total size of all advertisements they retain and propagate to new nodes, or gossip to their peers.
  This is a deliberate design decision.
* If nodes exceed the above limit, they will sort advertisements according to a value-rate, the value of the UTXO divided by the storage size of the advertisement, and prune advertisements with low value-rate until they are within the limit again.
* Once the backing UTXO is spent, the advertisement is removed by nodes that follow that chaintip.
* As the name ***Classified Ads*** suggests, each advertisement also indicates a "class" in which they belong to.

Then, from the above, we derive how a seller might behave.

* Sellers will attempt to put the minimum possible value into a UTXO committing to an advertisement, to reduce the opportunity cost of using the value elsewhere.
* Thus the rent of the advertisement in this case is paid to joinmarket makers and LN forwarding nodes, as the value used in a UTXO backing an advertisement is not useable in joinmarket/LN.
* Sellers remain in full control of their advertising UTXO, and can spend it at any time.
* Sellers may spend part of the UTXO and put the remaining funds into a change address that is a new advertising UTXO, and re-transmit the advertisement, this time pointing to the new change UTXO.
* However, if the remaining change becomes too low, then its value-rate may drop below the lowest value-rate that BCAN nodes will retain in their (deliberately limited) storage, thus also deleting their advertisement from the BCAN.
* Presumably, the reason for advertising at all, is that the seller considers the cost of advertising to be less than the expected gain of actually selling their product.
* Thus, even if the seller has the ability to spend the UTXO at any time, they run the risk of spending too much and thus removing their advertisement from the BCAN, and losing the expected gain of having the advertisement exist on the BCAN.
* A utility-maximizing seller would therefore not spend a minimal-value UTXO backing the advertisement until it has gained the advantage of actually selling the product, even if it has the option to do so: it is a forced move.
* The cost of keeping the minimal-value UTXO unspent is the opportunity cost in that the value may have been used in joinmarket or LN instead.
* The minimum value will largely be dependent on how much the BCAN is used; more sellers advertising over BCAN will increase the minimum value.
* If the minimum value that is viable to keep its advertisement alive goes higher, then the opportunity cost of the seller using the same value elsewhere might exceed the expected gain from selling the product.
  However, this is expected of *any* advertising scheme: if the gains from selling is too small to justify the advertisement price, advertising does not happen; this is expected utility-maximizing behavior.
* If competitors of the seller exist and the BCAN node storage is already filled, competitors can increase the minimum value of a UTXO that can keep an advertisement alive on BCAN by simply adding more of their advertisements to BCAN.
* Thus we expect that, once the BCAN node storage is at or near the maximum value, the minimum value of a UTXO that can back an advertisement will approach the expected gain from selling the product.

Thus the system of simply committing UTXOs to particular advertisement texts seems sufficient to extract value from a seller wishing to advertise.
The purpose of this extraction of value is to ensure that spam does not overload the BCAN.

Let us now consider some kind of specialization, where a HODLer specializes in owning UTXOs, while an advertiser specializes in trading products that need advertising of some kind.

* We assume that the specialization means that the HODLer cannot feasibly make and sell products on its own, while the advertiser cannot own and control UTXOs of the minimum value needed to keep their advertisement alive on the BCAN.
* We assume that the specialization means that the advertiser can make and sell products for cheaper than the HODLer can, while the HODLer can own and control (and secure) UTXOs of the minimum value needed for advertisements to be kept alive, for cheaper than the advertiser can.

Then:

* A HODLer may offer to provide a UTXO locked by a 2-of-2 with a commitment to an advertisement of the advertiser's choosing, in exchange for rent of the value, plus an unbreakable promise to return the rented UTXO value back to the HODLer (represented by a `nLockTime` pre-signed transaction that returns the 2-of-2 back to the HODLer control).
* The HODLer is effectively lending the UTXO out to the advertiser, for the time frame agreed upon by the advertiser.
* The rent at which the HODLer lends out the UTXO must be between the opportunity cost of instead securely utilizing the UTXO in LN or joinmarket, and the expected gain the advertiser expects from having its product advertised.
  * The HODLer is assumed to have the ability to secure the UTXO and retain all data it needs to recover the UTXO; this is part of the assumption that the HODLer specializes in such.
  * The advertiser is assumed to have positive gains from creating, advertising, and selling its product; this is part of the assumption that the advertiser specializes in such.
* The HODLer and advertiser can agree to refund part of the rent, if the advertiser signs a transaction that immediately returns control of the value to the HODLer, before the agreed `nLockTime`.
* The above constructions can be done in current Bitcoin.
* However, the same constructions could be done with a covenant as proposed by Tamas, possibly with reduced communication/coordination costs between the advertiser and HODLer.

Now, there remains the question as to whether users will actually patronize the BCAN instead of existing advertising systems.

* We assume that privacy is valuable to users.
* We assume that users of BCAN will run BCAN nodes.
  This leaks them as users of BCAN, a small loss of privacy.

Then:

* Users can look for advertisements of specific classes by simply querying their own BCAN node.
  This does not leak privacy ata all as long as the communication channel of the user with their own BCAN node is private.
  * Compare this to alternatives, which involve some entity observing the behavior of users and thus invading their privacy.
* Advertisers that misclassify their advertisements will be unable to reach their target audience.
* Utility-maximizing advertisers will correctly indicate the class of their advertisements, as otherwise they would be paying the advertising cost without gaining the benefit of the advertisement.

Regards,
ZmnSCPxj