Been thinking a lot about periodic auctions, especially in the context of Entry & storage of self-assessed values/contribution rates and changing tax rates. Here are some thoughts:
Periodic vs Continuous
Although perhaps the âpurestâ form of PCO, there are issues and tradeoffs with a continuous auction.
- People may be turned off if they can lose their property at any given time
- Certain use cases would be devastated by their land being bought
- Temporary events, ETHDenver being bought by someone else during the event
Exploring a periodic auction could solve some of these issues and make PCO more conservative. Essentially, the new requirement could be:
A licensee should have the opportunity to guarantee their control of a license for some reasonable amount of time
Possible approaches
Method 1: Fixed-time deposits
- All land starts as unclaimed
- Anyone can create a new license from unclaimed land
- Upon creation, the license is put up for an open auction
- The person who triggered the creation/claim does not automatically get the license
- Each bidder can place a bid that contains
- Self-assessed value
- License Duration
-
License Duration
has a max, say 1 year
- A bidder must make a deposit equal to the fees owed for the entire period
Value * Tax Rate * License Duration
- Whoever has the highest self-assessed value at the end is now the licensee, and their deposit is collected
- Any losing bidders may claim their deposits back
- The license is now claimed with the following being stored:
- Self-assessed value
- Tax Rate
- Expiration
- If the expiration has not been reached:
- No purchases are allowed
- Licensee cannot make additional payments
- Licensee cannot change value
- Deposit cannot be refunded
- Bids can be placed for next period
- Once expiration is reached, the license is put up for auction again
- Current licensee must submit another bid, like any other bidder
- The new licensee must pay the previous licensee their self-assessed value from the previous auction
- The
Tax Rate
may have been updated since the last auction, and would be reflected in this new period
This is a simple approach that allows a licensee to guarantee control of a license for some period up to the max License Duration
, as long as they pay all the fees up front.
A major issue with this approach is the working capital requirement. Not only is a potentially large amount of working capital needed to bid, but the people with a larger working capital would have a major advantage over those with a small working capital.
Here is an example. Say there are two potential licensees (Alice and Bob) who both want a license for a year and who both value the license at $1000. The tax rate is 10%, thus the deposit required up front to purchase the license is $100.
Alice has $100 of working capital, but Bob only has $10 of working capital.
In PCO theory, Alice and Bob should be economically equal. In practice, Alice has an advantage because of the extra working capital. Bob, in this case, would either need to bid a higher self-assessed value or a smaller license duration.
A potential new requirement could be:
The current owner should be who values it the most for that period of time, not who has the most working capital.
This is not only an issue for this approach, but for our current design as well.
Method 2: Flow-based payments
Here is another method that could eliminate the working capital issue (or reduce it to be negligible).
Same as above, except:
- During an auction
- A bid contains
- Self-assessed value
-
License duration
is a constant for all bids
- Instead of making a deposit, the bidder creates a Superfluid flow of the rate:
- The license is now claimed with the following being stored:
- Self-assessed value
- Tax Rate
- Expiration (constant based on
License duration
)
- If the expiration has not been reached:
- No purchases are allowed
- Bids can be placed for next period
- Licensee makes periodic deposits into the Superfluid Flow
- A new auction is triggered if the licensee:
- Closes the flow
- Updates the value of the flow
- Fails to pay/fund the flow
- If a flow is closed or fails, the amount the new bidder must pay the current licensee is no more than the new licenseeâs self-assessed value
- Example: Current value is $100, flow fails, winning bid is $90. The bidder only pays $90 to the previous licensee, and not the full $100
- Once expiration is reached, the license is put up for auction again
- Current licensee does not need to do anything if they do not want to change their self-assessed value (flow stays open)
- If the auction winner is a new licensee, the current licensee is paid their self-assessed value and their flow is closed
This approach allows the licensee to pay for their fees throughout the period, only requiring a 4 hour deposit in the Superfluid protocol. Any failure or change to the flow would trigger an auction to allow others to bid again.
The license duration would need to be constant, since there is no deposit that can be used to âoutbidâ others, thus eliminating the race to who has the highest working capital as described above.
Method 3: Refundable deposits
This approach also uses deposits, but allows for a licensee to not need to come back every period unless someone outbids them.
Same as method 1, except:
-
License Duration
is a constant, say 1 month
- A deposit can be greater than 1 month of fees
- If the current licensee still has a deposit to cover 1 additional month and nobody else outbids them, they keep the license without needing to submit another bid
-
Max Expiration
is stored instead of Expiration
that is calculated from the deposit amount
-
Start Date
is also stored
-
Expiration
is calculated as the smaller of:
Start Date + (License Duration * (((Now - Start Date) % License Duration) + 1))
Max Expiration
- If the current licensee is outbid during a period, they lose the license and may get their remaining deposit refunded
- Refunds are calculate using a method described here
Supporting Multiple Payment Methods
The approaches above are very similar, but just differ in how the fees are paid. With our approach to modularity and reversible decisions, choosing a specific payment method (especially a niche protocol like Superfluid) is almost certain to be the wrong decision. So, is there a way we can support both payment methods and/or allow for switching between them?
Starting with the auction, the bids for both approaches are almost the same. Both contain:
- Self-assessed value
- License duration
Therefore, bids from both approaches can actually be used against one another and are interoperable. This means some bidders can be using flows while others are using deposits, all without needing to know which method the current licensee is using.
One catch is the max license duration
used in the deposit method needs to be equal to the constant license duration
used in the flow method. It would not be fair for users using the flow method to be âoutbidâ by a bidder using the deposit method with a bigger duration.
One contract can track the self-assessed value and expiration of licenses, without collecting payments. Two different contracts can be used to collect payments that have the necessary permission to transfer the license.
Bidding process
Adding more details for the bidding process.
In both methods, a bid consists of:
- Self-assessed value
- License duration (constant)
A bid can be placed at any time, but must include a deposit equal to the current licenseeâs self-assessed value.
Once the open auction period is over, the winning bidder must send another transaction that:
- Makes a deposit for taxes or opens a flow
- Sends bid deposit to current licensee for claiming
- Closes/cleans up the current licenseeâs flow
- Transfers the license to the new licensee
There could also be a commit-reveal model, where the initial bid has the bid amount hidden, only to be revealed on the second transaction. There would be the following bidding stages:
- Bidding
- Anyone may submit a blind bid + deposit for paying current owner
- Bid is a hash of their desired self-assessed value and a random number
- Reveal
- New bids are closed
- Anyone who placed a bid in stage 1 can now reveal by sending the unhashed message to be verified
- If no bids were placed OR no bids are revealed, the current owner maintains ownership and the license moves back to stage 1 for the next period
- Claim
- The highest bidder that revealed in stage 2 may now âclaimâ their bid by making another deposit for fees or opening a flow
- This is the official point where the bidder is now the owner and the license moves back into stage 1
- Anyone who submitted a bid in stage 1 (even if they did not reveal) may receive their deposit back
- The previous owner may collect the deposit from the highest bidder
- If the highest bidder fails to claim the license, their bid is invalidated and the license is put back into stage 2
- Next highest bid can claim in stage 3, with their deposit now going to the previous bidder who failed to claim
- This is as if the bidder bought the license and immediately failed to make payments. They would only receive what the next highest bidder is willing to pay, and not the full self-assessed value, just like if a normal licensee fails to make payments
If the current ownerâs deposit or flow runs out AND nobody submits or reveals a bid, the license is burned and the land is made available for other claims.
Here is my attempt at diagraming this in a state diagram:
Source
And the version without commit-reveal:
Source
Limitations
In both approaches, one limitation is for someone who wants to control a license for a specific period of time (like for an event), they will most likely need to bid for the license at the start of the period that contains the dates they are interested in. This is most likely much earlier than the actual date they would like to start owning it. This could be mitigated by having a shorter License duration
. A limit of say, one month, would give a bidder the opportunity to bid for their interested period no more than one month in advance, limiting the unnecessary fees they have to pay.
Open Questions
- Are modifications to land parcels allowed at any time?
- Appropriate value for
License duration
- Needs to be long enough to protect owner, short enough to allow for events and other use cases
- 1 month frequency is the latest proposed
- Different tax rates and license durations for different âzonesâ?
- Perhaps in the future it makes sense for certain parcels to have different license duration limits or tax rates based on some other factors
- Sort of similar to zoning of physical land (commercial, industrial, residential)
- Are transfers allowed when using Flows?
- Transferring a license may not be allowed if the payment is made via a Flow
- Does the new owner need to open another flow? Does the original owner keep the Flow open?
- Failed streams and a dutch auction
- Should the licensee with the failed stream receive an amount proportionally to how long they held it? If they only had it for one day, should they receive 1/30th of their self-assessed value?