Agents & Smart Contracts
In July 2011 the user julz opened a thread on bitcointalk.org called 'Bitcoin the enabler - Truly Autonomous Software Agents roaming the net' in which he proposed an autonomous agent:
"For the first time, there exists the possibility for a software agent to roam the internet with it's own wallet.
Using Bitcoin - It could purchase the resources it needs to survive (hosting/cpu/memory) and sell services to other agents or to humans. To be truly effective and survive 'out there on the net' long term, you'd probably need some basic AI and the ability to move itself between service providers occasionally - but even a relatively dumb agent might survive for a while. What initial goals such agents might be given is anyone's guess. Funneling back to the programmer any profit over and above what the agent needs to survive would be the obvious case, and of course many such agents might be considered 'nefarious' depending on how they're programmed to achieve that goal. Other agents might be designed to provide free services or act in a way to support some piece of internet infrastructure.“ 5
In the same thread Gregory Maxwell introduced a file storage system called StorJ as an illustrative example:
"Want to share a file? send at least enough coin to pay for 24 hours of hosting and one download then send the file. Every day of storage and every byte transferred counts against the balance and when the balance becomes negative no downloads are allowed. If it stays negative too long the file is deleted. Anyone can pay to keep a file online.
StorJ is not able to find new hosting environments on its own, due to a lack of sufficiently powerful AI— but it can purchase the knowledge from humans: When an instance of StorJ is ready to reproduce it can announce a request for proposal: Who will make the best offer for a script that tells it how to load itself onto a new hosting environment and tells it all the things it needs to know how to survive on its own there? Each offer is a proposed investment: The offerer puts up the complete cost of spawning a new instance and then some: StorJ isn't smart enough to judge bad proposals on its own— instead it forms agreements that make it unprofitable to cheat.
By accumulating mutations over time, and through limited automatic adaptability StorJ could evolve and improve, without any true ability for an instance to directly improve itself.
Through this these activities an instance can be maintained for an indefinite period without any controlling human intervention. When StorJ interacts with people it does so as a peer, not as a tool."6
Although some of the technical specifications could be done differently now, this post outlined a solid set of criteria for defining an autonomous decentralized agent.
- The agent earns enough money to maintain itself, without human intervention (e.g. the agent pays for its own server space).
- The agent has an adaptive feedback system.
- The agent can replicate itself.
- When interacting with humans the agent does so as a peer, not as a tool.
While there are no specific implemented examples of autonomous agents yet (besides perhaps computer viruses), Vitalik Buterin (2013) developed this concept within 'Bootstrapping A Decentralized Autonomous Corporation: Part I'. Buterin attempted therein to develop a conceptual framework for an autonomous corporation:
"However, here a very interesting question arises: do we really need the people?… The question is, can we approach the problem from the other direction: even if we still need human beings to perform certain specialised tasks, can we remove the management from the equation instead?“7
Buterin (2014) further tried to build a reference system in order to properly categorize different organizational models within 'DAOs, DACs, DAs and More: An Incomplete Terminology Guide'. autonomous agents appeared again, yet in a more intelligent form, closer to fully developed artificial intelligences:
"Autonomous agents are on the other side of the automation spectrum; in an autonomous agent, there is no necessary specific human involvement at all; that is to say, while some degree of human effort might be necessary to build the hardware that the agent runs on, there is no need for any humans to exist that are aware of the agent’s existence. (…) A full autonomous agent, or a full artificial intelligence, is the dream of science fiction; such an entity would be able to adjust to arbitrary changes in circumstances, and even expand to manufacture the hardware needed for its own sustainability in theory. Between that, and single purpose agents like computer viruses, is a large range of possibilities, on a scale which can alternatively be described as intelligence or versatility“ 8
Buterin described different levels of complexity, ranging from single purpose agents (computer viruses) to AI-like agents using evolutionary algorithms to discover and enter new industries. These points can thus be added to the previously outlined criteria for defining an autonomous decentralized agent :
- The agent behaves much like a simple biological organism.
- The agent can react and adapt to its environment (and furthermore, gather and process information about this environment).
- The agent evolves through evolutionary algorithms and can thus discover new survival strategies.
5. julz: Bitcoin the enabler - Truly Autonomous Software Agents roaming the net, 06.12.2011, https://bitcountalk.org, URL: https://bitcointalk.org/index.php?topic=53855.0 ↩
6. gmaxwell: Bitcoin the enabler - Truly Autonomous Software Agents roaming the net, 07.12.2011, 05:45:45 AM, https://bitcountalk.org, URL: https://bitcointalk.org/index.php?topic=53855.0 ↩
7. Buterin, Vitalik: Bootstrapping A Decentralized Autonomous Corporation: Part I, 20.09.2013, 02:31:00 AM, https://bitcoinmagazine.com, URL: https://bitcoinmagazine.com/articles/bootstrapping-a-decentralized-autonomous-corporation-part-i-1379644274 ↩
8. Buterin, Vitalik: DAOs, DACs, DAs and More: An Incomplete Terminology Guide, 06.05.2014, https://blog.ethereum.org, URL: https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide/ ↩