(August 11th, 2021)
TradeNet is an idea that's been in the air since at least 2012. It posits a world where autonomous agents can find and trade with humans as equals, usually for money. I focus on the version where autonomous vehicle (AV) taxicab agents are on the road picking up passengers, taking them places, and getting paid. Assuming a reliable AV, which isn't yet true, this can be done by having the agents be controlled from a centralized switchboard like how Uber or Lyft operate. Another version though is when we jettison the centralization and have agents with their own motives. By allowing the agents to pursue their own motives outside of what a duopoly deigns or what a union requires, customers could see strong results both in cost as well as service.
The fun part is that survival is enough of a motive. Picture a platoon of cars, each with a goal of driving some number of miles in the following 24 hours. How do they achieve that? First, they need charge and second they need roads. We have the roads; Getting charge requires a map to find a compatible station, money to pay the station, and mobility to get there. We assume the mobility because it's an AV and we get the maps for free because software maps are ubiquitous today. How do we do the money part?
We are excluding bartering from this, so to pay a station, we need some valuable mechanism that we can sell for $$ and some way to transfer that $$ to the station. These are taxis, so we have our valuable mechanism - transporting people/things from place to place. People broadcast that they want an AV to take them to the ballgame, an AV responds with a price, picks them up, and the economic transaction happens. Do this enough times and the AV has won its bread for the day. This is actually also how DiDi operated in China where drivers would respond with bids to a broadcasted request (h/t Ren).
The broadcasting part is where you might see the centralization, however we already have the decentralized technology to do that today, and that's with blockchains. People can broadcast with their AV app that they want a ride; it goes to a public chain that's monitored by the AVs. When the pickup happens, both parties sign on the contract that initiated the block. This is also the way that we get the money storage for the AV - a wallet on the blockchain. The AVs can use this to receive payment from customers and pay the charging station.
All of what I've described above can be written as code and left to run. There's code to monitor the blockchain, to enter and close a contract with a customer, and to do the same with the charging station. This is sufficient though to make a self-sustaining system. It can procure all the resources it needs, protect itself from adversarial influences, and respond to environmental signals. All the roads are shut down? It can use the map to find a new route. The charging station is out of juice? It can wait nearby for more.
We have excluded any way for the AV to change these rigid structures, in other words to adapt. If we include humans in the system and let them modify the code, then this becomes a self-organizing system. For example, AV might be owned by a corporation who does an on-air update, or it might broadcast to the world that it wants a white hat hacker give it a new ability in exchange for a percentage of future revenue. An example could be that it can receive payment from passengers to go faster (gotta get to that ballgame) or slower (there's a baby in the car).
This human + AV combo could also reach the next rung of systems complexity - a non-isolated system that coexists in the larger environment with its competitors. This is best seen by the AVs being governed by a group, say, of white hats. They would be modifying the software to compete for resources with other groups.
This view of AVs is in contrast with the prevailing one where a few companies (Waymo, Tesla, etc) control all the fleets. Instead, anyone could buy a few AVs made by those companies and start their own service heralded by their own software-governed take on what would make for a competitive entrant economically.
I suspect this will be the likely outcome because A) manufacturing the AVs and optimizing the profit on the road are two wholly different businesses, B) the AV companies can charge a percent of the profit as a platform and reap the reward without doing any more work, C) the government will require that the cars talk to each other, which will open up a tremendous amount of cross-car optimizations that any single manufacturer will be loathe to implement, and D) the feedback loop of improving the AV's policy is a lot faster if you are an independent organization that can experiment and not a big corporation with large liabilities and organizational overhead.
We are prevented from reaching the next level of complexity, self-replicating, because there is no reproductive capabilities in an AV. We have no reason to believe we could go on from there to sentient systems. However, at this point we'll note that it's fun to have to wait for a reliable AV system to try this idea out. Let's explore another avenue - Art.
We're relying on the blockchain for the economics, so what about art? We've had an explosion of compelling art pursuits on the blockchain, from NFTs to social coins around artists to art collectives experimenting with crypto community.
Consider a real-world (human) curator who knew what would styles make $$. She could broadcast to her list of artists "ok, send me 'daisies in the sky'" and then pay them according to her interpretation of the best "daisies in the sky". She has a taste, one that's driven by economic value, and so it doesn't have to be literally daisies. As long as it makes money, she will continue to be in business. What we've described is a self-sustaining system, albeit in the form of a person.
We can change that curator to instead by governed by Art Dealer (AD) code that says:
- Send artists a short description of what we want just to add creative constraints.
- Pay the artists for their work.
- Sell that work for enough to repeat the process
Where before the goal was to drive a certain number of miles the following 24 hours, here the goal could be to buy a certain amount of art in the following 24 hours.
Just like a single person can be a profitable taxi driver, the same is true here aside from the taste part. Deriving economic value as a taxi driver is a purely transactional activity that requires little to no future conceptualization. That's not true for a gallery owner or curator; they need to grasp trends, be able to project what they can sell, and evaluate the art themselves. Can we codify that?
We do so by adding a part where the AD doesn't actually try to project what would be valuable but instead have people tell her what they will pay for. The AD receives phrases along with staked $$. She keeps a public priority queue of these phrases (by $ and time) and sequentially broadcasts the next in line at each interval (say 48 hours). The staked $$ then goes to paying the artists their share according to what the AD deems is best. See below for a diagram.
In practice, real people would submit phrases like "daisies in the sky" and $$ like 1 eth (~$2200 as of writing) to an AD contract on the blockchain. That AD would queue these pairs. On a 48 hour cadence, it pops from the queue and broadcasts the requested phrase plus bounty to the art world. It then gathers the responses over the following week and issues prizes for the pieces she deems are best.
One incentive for the artists is clear - they have the chance to win the prize money. On the side, we also run an associated storefront that is automatically built for them upon each submission similar to what you see on Threadless or RedBubble. This encourages them to use the same blockchain address from which to submit (so their art would be collated together) and serves as an additional incentive for the majority who don't win. Further, we give them a creator NFT representing the submission that holds the economic value of that piece in their store. This can be sold on the market similar to other NFTs.
The incentives for the patron at launch are A) receiving a patron NFT representing the submission holding storefront economic value and B) yielding a lot of artistic designs for their own interest.
What we've described is 99Designs meets RedBubble. The storefront [website] serves all of the art that artists submit as responses to the phrases. It passes a cut of the profits of each commission (shirt, sticker, etc) to whomever holds the patron or artist NFTs for the piece. It also serves as a backstop when the AD is running low on juice because it can load up more phrases for higher $$. And it guides the AD towards phrases it knows that people want to buy.
What we've described above is a system that is too rigidly constrained because of the (supposed) uniqueness of the AD. If a patron puts up 10 eth for 5 winners, that might arouse a tremendous amount of competitive art. If almost every patron is 0.1 eth for 1 winner, though, then that will likely dampen the draw and produce mostly unsatisfying work. It's not clear from the outset how to guide this system to work in perpetuity in order to be self-sustaining. At the core of the problem is that there are limited resources for art patronage relative to the vast resources there are for transportation. Consequently, we expect for there to be multiple iterations of ADs before a good setup comes to fruition. The storefront serves as one crutch for this because it is a proven approach (e.g. RedBubble) that can support the AD development in the meantime. It simultaneously reduces the heavy marketing burden that RedBubble has and gives us a desired attribute that they struggle to achieve - user guidance.
That there will be multiple iterations of ADs suggests making the first one and then opening it up to the public to make more, just like how we did with AVs. Anyone can program their own AD and put it on the blockchain, with its own rules as to how it solicits economics, and with its own utility for what art it considers best.
The storefront can then serve as a motivation for this AD proliferation. In addition to the patron and creator NFTs, there is an AD NFT that remains with the designer and charges a small cut on every downstream transaction in the store. The store benefits by having ADs capably produce profitable designs because those would go straight to the store's profit and be a unique point as to why you'd want to peruse the store's wares. The AD designer benefits by getting economics from their design. This is analogous to the distinction in AV between the manufacturer and the TradeNet developers.
The most challenging issue for the AD is judging what is "best".
Why not have the submitter choose what is best? This would be a problem for artists because they wouldn't know if their style would be to the taste of whomever was paying. In effect, the AD's strategy would be at the whim of whomever was paying. That could be an approach taken by an AD designed on the platform. it would mean that that AD's utility function was an API call to the submitter, which also means that the submitter needs to be reachable by the AD in a timely way.
There are two issues at play. One is that the art should be semantically aligned with the phrase, and the other is that the art should be very good. The latter is subjective and extraordinarily hard to encode, but the former is an attribute that we can validate. For example, I can explain without much difficulty how the picture on my left is of crumbling buildings, connotes a doomsday scenario, and contains a weapon trying to pierce the sky. In other words, I can explain how the associated phrase is connected to the piece. Consequently, we'll let the market decide how good is the art and instead focus on programmatically validating the piece given the phrase.
There is a recent technique from machine learning that almost suffices. CLIP, from OpenAI and released publicly, can be fed a phrase and an art piece, and will reliably compute a score as to whether they are aligned semantically. While of course this does not necessarily mean it's the best art, it does mean that it's related to the phrase.
It's exceptionally good as can be seen in this blog post, this twitter thread, and the images seen in this post. With CLIP, we can receive JPEGs from artists, score them according to their overlap with the phrase, order that list of art, and then release the funds to the winners. Of course, every art piece is awarded the patron and artist NFTs representing the cash flows.
There is a cottage industry of art being produced where people are taking generative models off the shelf that can produce images and pairing it with the publicly released CLIP model as a critic. They then take a phrase and optimize the generative model's output to score very highly with that phrase. Companies have formed to sell these generations. All of the output art is different per generative model because these generators have different capabilities and different places where they excel, e.g. impressionist art or realism, etc. This is similar to a few years back where style transfer models were being optimized in real time. This means that if we use that public CLIP model, then it will be very easy to game and so the emergent cadre of artists that we'd like to promote would not be rewarded. There is potential in trying to get around this with one-off hacks, however then it would have to be an API instead of a deterministic all-rules-on-the-blockchain AD. An example hack is scoring by taking an intersection of CLIP and some other rule, e.g. emphasizing or deemphasizing the color blue.
This potential solution coincides well with having the ADs be their own mini businesses on top of this platform. The API could have anything behind it. It could be the exact same CLIP model (which people would figure out very quickly); it could be a hacked CLIP like the aforementioned blue emphasis one (less quickly, but would likely be understood over time); it could be actual people just looking at the art and giving a score based on their opinion. I think one approach that would actually work is to train our own CLIP-like model on our own data. OpenAI did a very thorough job training on lots of data (400m pairs of image captions found on the internet), but training on subsets that focus on different styles would be compelling because then it would be challenging to beat this hidden version of CLIP with optimizations over the full CLIP. That could also bring into play lots of proprietary images.
The above potential solution set is just that - potential. The exciting part of it all is that we could build this kind of setup today without waiting for AVs. Another area where we could do this that is also exploding in crypto popularity is gaming.
(This section is woefully underspecced. I welcome comments from gaming experts to help think through where to start doing this practically.)
Similar to the explosion in art, we've also had one in crypto gaming heralded by Axie Infinity. A major component that the crypto part adds is cryptoeconomics, which provides community fuel.
One view of the idea is that we're implementing a Life Simulation game similar to Spore. Players control virtual character(s) and the games revolve around relationships amongst the characters / simulation of an ecosystem. There's a long rich history of these games, both in research (ALife) and in actual production gaming (e.g. the Sims).
In the same way that there are expressive building blocks in Minecraft that players use to develop a world of fantastic possibilities, the game development here would proceed such that players can give new rules to their agent. The agent would then have to figure out how to use those rules and prosper (or not) based on its ability to adapt to the environment.
There are many ways to skin this cat and it's worthwhile to think through what are possibilities where we can introduce player-coded agents:
- Players code local agents; Environments are static:
- Players build the agent by coding in rules and then letting it learn how to use those rules. Learning proceeds either by the player's rules for learning or by a default approach, e.g. gradient based.
- The local part is that the game play happens in isolation.
- The environment is designed by the game studio and represents a static adversary.
- Players code global agents; Environments are static.
- The same as the above but the agents are global, i.e. in the same world.
- The version of this where agents are humans is an MMO.
- Players code environments; Agent learns but is not coded.
- Players do not build the agent but instead either provide its learning rules, use the default approach, or play against humans trying to beat these environments.
- Players build the environment and code how it responds to players. The goal is to beat all other agents / other humans. The best environment will be able to defeat all agents, whether they're humans or the agents learned on other environments.
- One tricky part is how do we guarantee that an environment is beatable. Requiring that the creator beat it will substantially weaken the difficulty of these environments. How do game studios do this?
- Players code environments; Players code agents;
- Players build an environment to battle against agents.
- Other players build agents to battle against those environments.
- Players get credit for each in a world-wide of adversarial competition. The version of this where the agents are humans is Mega Maker.
- This has the same issue re guaranteeing an environment is beatable. Does Mega Maker try to do that?
If something here hit a nerve, reach out to me on Twitter.