[Draft] Seeded Auctions

Custodial hash RIPEMD160 hash: tbd

=##=##=##=##=##=## Motion hash starts with this line ##=##=##=##=##=##=

1350 nbt

@Nagalim will continue running automated auctions every 5000 blocks and will seed the auctions with 200 nbt per auction for 25000 blocks. Received nsr will be burnt. @Nagalim will be rewarded 200 nbt for open sourcing the software, 100 nbt for acting as auctioneer, and 50 nbt for acting as reserve.

=##=##=##=##=##=## Motion hash ends with this line ##=##=##=##=##=##=

Trial software for this motion can be found here: https://github.com/Nagalim/SeededNuAuction

4 Likes

@JordanLee do we have NBT reserves for this? If not, we can make this a grant proposal for 50,000 NBT sent to an address of the auctioneer’s choosing.

Is this connected to @Benjamin’s proposal? If yes where to get the 1, 0 signal?

Can’t a robot be the auctioneer?

  1. Yes, this is the centralized version
  2. The auctioneer
  3. See 2), other than that and proposing refund grants, sure

How?

I have faith the community will unanimously pick the person who decides the 1,0 signal.
If you do not, and would prefer I insert a particular pseudonym, please nominate someone.

I can just put in that @JordanLee will pick the auctioneer, if it makes everyone more comfortable.

This might one of the rather important motions for Nu’s future, because it strives to a future in which NSR and NBT are not only conceptually tied to each other (NBT being backed by NSR), but the NBT supply is connected through an ongoing process to NSR by this motion.

Although this is a centralized version of this ongoing process, it’s a first step towards a decentralized version.
It’s a kind of test run before necessary protocol adjustments are done; it will provide Nu with results about this way of connecting NBT and NSR with each other and tell whether the protocol adjustments that allow a decentralized version are worth it.
If it proves to be as useful as I expect it to be, a decentralized version needs to follow.

I need some time to think about ways to game this type of auction.
So far I can’t think of any, but that could mean that I lack some creativity or haven’t understood it :wink:

2 Likes

Here are some basic gaming techniques:

General NSR market manipulation
Get the NSR price on the open market to be irrationally low, then buy the cheap NSR at auction. The way that Nu can fight this is by voting for a NBT seed when the NSR market is irrationally low. Invert for irrationally high.

Peg Breaking
Break the peg by irrationally selling NBT. This will force an NSR seed. However, the attacker no longer has the NBT to take advantage of the auction, so this attack fails.

Complete Nu Divestment and Reinvestment
Sell all NBT and NSR, break the peg and cause a black swan event. Pick up the pieces afterward and get tons of cheap NSR. This attack is independent of the auction and in fact is easier without the auction. Without the auction, just breaking the peg is enough to cause a black swan, as there is no good way to recover it. With the auction, breaking the peg will cause a high auction price and feedback loops will work against blackswan to spin down the number of NBT in the system without dropping the NSR price too much. As the attacker buys back the NBT and NSR, the system will spin back up again and the attacker will most likely walk away with a wash, minus all transaction fees.

Auction Manipulation
Of course, we are always susceptible to a 51% centralization attack on our democratic process. In this case, an individual would gain control over Nu and could manipulate the seed to always benefit them. However, even in this extreme case, because the auction is public the entire market would benefit from this manipulation at the cost of Nu. As this ‘attacker’ basically own Nu, they are only attacking themselves at the benefit of random traders, so they will not follow through with this attack.

Basically, the only sure-fire ‘attack’ is to properly hedge NSR with legitimate auction bids. This will incentivize use of NBT and NSR as trading units, and contribute to our overall health.

Voting on this motion is now open.

So is there any funding for the auctioneer required? There seems to be some work attached to this on a daily bases.
Are we supposing we are already paying whoever is chosen to be auctioneer?

Do we really need to do this daily? What about weekly to start with and starting with a higher seed (e.g. 500 NBT)

Daily is important to avoid market manipulation in my opinion.

We aren’t paying for how the auctions are done now. This really shouldn’t be very hard to implement, the script to take care of the distribution should only be a few lines of code. The hardest part here is the marketing, but I was figuring that would come once people experienced the ongoing auctions for a little while.

The auctioneer will need to request a custodial grant eventually, if not initially. If the feel they are not being compensated properly that would be a good way to take it up with the shareholders.

The only thing the auctioneer needs to ultimately do manually is flip the seed as things fluctuate and request grants. Everything else should be easily automated. In the beginning, the seed can even be manually sent daily (not a very difficult job, but a consistent one for sure) and the script is as simple as recording outputs for the day and outputting a manysend command. As people get more comfortable with this, I’m sure withdrawal from reserve can be done automatically too.

They are not daily.

You will still need someone to code this. I wouldn’t be able to set this up, not being a coder. So who do you expect to do that? The appointed auctioneer? I will pass for sure.

You are making it look very easy. Again some coding effort would be required and even so I’m not sure if I would trust daily transactions with the value of 1% NBT with it without manual intervention. But maybe I’m overly cautious in that regard. Although I like the concept, I’m not aboard on the execution and hidden costs of it.

The amounts start small and increase to 1% over the course of months. The code is really not that hard, it’s just parsing some rpc commands. I’ll write it if y’all want, though it’ll be clunky and I’m sure any of the people that actually control the reserves could do it better and would want to look through any code involving it anyway.

I am indeed expecting people to eventually be sending thousands of $ in NSR and NBT to this auction daily, once it has been allowed to ramp up for a couple months and we get the seed signal into the blockchain.

For a little while, the auctioneer would most likely need to run a few lines of code each day and manually check the manysend and the seed withdrawal. I would be happy to turn this into a grant proposal and give a reward to the auctioneer, but I cannot be the auctioneer so i cannot propose something like that. As we do not have NSR grants, the auctioneer must have access to the NSR reserve held by Jordan, or a hot wallet thereof.

2 Likes

http://pastebin.com/i11hFRE1

I haven’t super tested it out and I probably have really bad coding practices, but this should be pretty close to what we need.

You’re right, it was longer than a few lines.

This is missing several things, and would only work in its present form on the first day. I’ll work on that later, ideally it would remember where it left off in the confirmation history the day before. The thing is, there are a lot of ideals here and this software should really be worked on over time and made awesome and part of the protocol. I think the auction mechanism is just as important as the NuBot mechanism in the long run.
What I’m really hoping for is that someone reads this code and tells me I’m doing wrong and how to do it better.

3 Likes

This one is like 20x better. There is now an input for block height at auction’s close, so it should be pretty much good to go. There may be a couple bugs surrounding rounding of pennies and what happens when no one submits anything to either the nsr or nbt side. Those can be fixed pretty easily, I think, I just need to consider the best strategies.

http://pastebin.com/GPA303n8

1 Like

In the past, motions have included plenty of unfunded mandates. As we move toward more decentralized operations, that is becoming a problem. I agree it is a problem with this motion, although I understand @Nagalim is just following the sloppy example of preceding successful motions. I’ve certainly introduced motions with unfunded mandates, but it is probably a good time to stop that practice.

I would prefer the motion source and specify an auctioneer, not specify I find one.

I would like to place a bit of context around the effort to automate expansion and contraction of the NSR and NBT supplies to follow market demands. There was much discussion about this on the forum months ago in a number of threads. Giannis, sigmike and I also discussed it privately. The result was that we weren’t comfortable enough with any specific proposal to include it in the protocol. Rather, the very simple step of simply allowing NSR grants was chosen because it would serve as a simple foundation upon which more complex and automated solutions could be built later. So an ongoing evolution of the process is certainly intended. It seems apparent that experimentation with various manual processes such as what is proposed here and the ongoing blind NSR auctions is helpful. Certainly the evolution must be toward an open and transparent process as there are no secrets on blockchains.

Honestly, I don’t understand how this motion would be implemented and I couldn’t do it even if I agreed to take the time to. Perhaps the method can be clarified with a use case example describing each step of the process, both from the perspective of the auctioneer and an auction participant.

One point I would like to make is that as we talk about basically building ways to permit the trading of NSR and NBT, it is likely that doing so on B&C Exchange will be the most sensible solution, rather than building a dedicated exchange in the Nu protocol. NSR and NBT can be easily created by custodial grant directly into a B&C Exchange deposit address. A B&C Exchange account simply consists of a BlockCredit key pair, so this means that an account can be multisig, requiring multiple signatures of orders and such. It is even possible to place a B&C Exchange account under the distributed control of B&C Exchange signers. What they would do with that account is currently beyond the scope of the B&C protocol, but it is possible to imagine protocol rules for how B&C signers would handle funds given to an account under their collective control via custodial grant. B&C Exchange signers handling NSR and NBT must run the Nu client. This means that they will have direct access to liquidity figures, voting results etc. It may make sense to create a new type of voting on the Nu blockchain that pertains to burning NBT and creating NSR and vice versa. Then B&C Exchange signers could automatically implement the results of the ongoing voting. Needs more specification, but that is a general direction that seems to hold a lot of potential.

2 Likes

Aw shoot, there is a flaw. We can’t send NBT to NSR addresses and vice versa, so we’d need some way to link them to each other. My code wouldn’t work properly. Shoot.

@JordanLee let’s go back to the drawing board. Imagine weekly auctions (like they are now). Imagine a seed comparable to what we have now.

Perspective of Participant:

  1. Pick what NSR/NBT price I am willing to trade at
  2. Send bitmessage or email to auctioneer linking NSR to NBT address (a response from the auctioneer here would be cool, especially if we could automate it)
  3. Send NSR and NBT to auction address in appropriate nsr:nbt ratio.

Perspective of Auctioneer:

  1. Keep a static announcement on a website (nubits.com perhaps?) of the seed. Switch at leisure when necessary.
  2. Every week, send the desired seed from reserve to the appropriate auction address.
  3. Run a program (like the one I’ve posted) to add up all the unspent outputs and divide them across each other. The program would have inputs of the auction closing block and a text file containing pairs of NBT;NSR addresses… The output would be two manysend commands, one for NSR and one for NBT.
  4. Check the manysend command by eye and execute it.
  5. Broadcast the price and results of the auction.
  6. Ask for more funds from shareholders if need be.

Who would you be willing to send some of the NSR reserve to? Anyone the shareholders vote for? If you have someone in mind, please let us know.
I’m fine with turning this into a grant, does 250 NBT for 3 months of weekly auctions and the expectation of troubleshooting the program sound good?

I made some pretty fundamental changes and kicked it back to the [Draft] phase. Please do not vote on the previous hash.

New and improved, now on github. Unfortunately, this doesn’t work on windows. The ‘addresses.txt’ file will have to be created manually, but that should not be more effort than sifting through all the bids for the current auctions. Also, the auctioneer can totally use the same addresses.txt from the last auction. The code will trigger a warning if an address is entered twice.

If you have open outputs in your wallet and you run linux, you can test the script out. Just make up links for your NSR and NBT addresses and see how the auction price would vary and if it distributes the funds properly. Make sure you have a nu.conf file.

3 Likes

I have updated the motion somewhat. The github is sorely out of date, but I am not super keen on uploading a working version of my software without a glimmer of compensation. Thoughts on the grant proposal?

I’d love it if someone else would step up as reservoir. We could put the grant on an account of your choosing and just give me a promise of future pay. It’s remarkably easy, you just send nbt from a specific account once or twice a week.

Given this precedent of NSR buyback using excess tier 4 funds, I guess there can be another task for any team that ends up managing tier4, which is seeding automated auctions. Tier 4 funds were meant to be a bit more general purpose than just liquidity, and it would be nice if @JordanLee could confirm that is still within his vision. The development effort of this piece of software may be a part of the fee of managing tier 4, as a start, so I suggest you could bring this back up and offer to join the tier 4 group for some pay.