Pages:
Author

Topic: Self-replicating autonomous agent (Read 9246 times)

full member
Activity: 168
Merit: 100
AltcoinWarrior.com
March 28, 2014, 05:41:45 PM
#22
Thanks.  Those threads are definitely of interest.

Reading them made me realise that a really good application of this idea would be to build a distributed altcoin exchange.  Altcoin exchanges are essential because trading from BTC into an altcoin and back is almost like the zerocoin concept, so long as the exchanges are black boxes.  Imagine a distributed exchange that replicated itself with the profit!

The obvious weakness here is that people with physical access to the hardware can steal its wallet or manipulate the software, and it would be easy to trick an autonomous agent into purchasing a VPS from you for this purpose.

To take this even one step further, and into a viable "proof of concept" capability, I highly encourage you to check out Open-Transactions.org which is a 100% open source powerhouse perfecly suited to these very types of tasks.

Except that in Open-Transactions (OT), the personalities (or "characters", if you will) are called Nyms (shortened from 'pseudonym').

A Nym can either be human, AI, or smart-contract driven; able to start it's own virtual corporation, exercise trades (as contracted; in the case of a smart contract-powered Nym), run their own "in-house" peer-to-peer exchange, escrow... you name it. And this doesn't even begin to scratch OT's real capabilities (i.e. asset-backed digital basket currencies, etc.)

But alas I am not a coder / developer, and it would appear that a fairly savvy amount of knowledge is required to compile it for Linux; hence I must wait for a more universal (browser-based?) app to manefest; hopefully as an open source-based community Project.

Here's the OT mainpage:

http://opentransactions.org/wiki/index.php?title=Main_Page

Here's an in-depth article I wrote, introducing OT's undeniable open source awesomeness:

http://open-transactions.github.io/introduction/2014/01/16/revolutionary/

newbie
Activity: 9
Merit: 0
March 25, 2014, 08:37:33 PM
#21
The original speculation on this forum discussing autonomous agents was one of my biggest inspirations for building my Oracle, Early Temple.

How would an agent be able to engage in trade with a human being, without the possibility of cheating? Suppose, for instance, the agent wants to purchase time in a cloud server to run a copy of itself.  Or the agent offers to pay a programmer for an upgrade.  How does the agent prevent getting ripped off, or how does a human prevent being cheated by a malware agent?

They need a trusted third party.  An Oracle, which can judge if the digital good was sold, or the work was completed, and release the funds.

The agent could create a contract using Early Temple's basic protocol, and commit funds using an m-of-n address. The agent would then send a partially signed payment transaction to the human, who would also be able to check the Early Temple contract page and verify the payment condition.  Once that condition is met, the human goes back to the Early Temple contract page and they get their payment transaction signed.

So this is up and running already, and you guys just need to write the agent!

(The agent doesn't even need to have enough intelligence to figure out that it needs a plug-in.  There could be a more general method where programmers are permitted to submit patches, and the network tests out these submitted patches on a small number of nodes, and it finds those nodes work better and earn more money, then the programmer receives their payment.)
legendary
Activity: 1094
Merit: 1006
March 25, 2014, 11:08:53 AM
#20
Nevertheless, the problem of determining what plugins it needs is actually harder than writing these plugins itself.

That is very arguable.

You can have unit tests, speed execution tests and all kind of tests to see if a plugin is good or not.

A program writing programs? I think we don't have that yet (well, there is https://en.wikipedia.org/wiki/Evolutionary_algorithm but from what I read in another thread DAC-related, it takes huge computational power).
Basically this. Your core modules will have to have near perfect, and have the best unit tests. From there its just evolution and experimentation.
The solution is to built from solid parts.

Some people think this is highly complex. It is, but not unobtainable. The fundamental of computer science is take one big problem you can't solve, and split it into many small problems that you can solve.
newbie
Activity: 6
Merit: 0
March 24, 2014, 05:21:42 PM
#19
That is very arguable.

You can have unit tests, speed execution tests and all kind of tests to see if a plugin is good or not.

Yes, you can test plugins for everything you want.  That is easy, as long as the "what you want part" is well defined.  Finding out what exactly you want these plugins to do is very difficult.  OP says the program "pays humans to do things that it can't do".  In order to ask humans to do such things, it must be able to get a grasp of what it cannot do, which is actually harder than doing these things in the first place.  Here's a book that offers some good insights on this matter http://en.wikipedia.org/wiki/I_Am_a_Strange_Loop

A program writing programs? I think we don't have that yet (well, there is https://en.wikipedia.org/wiki/Evolutionary_algorithm but from what I read in another thread DAC-related, it takes huge computational power).

Evolutionary algorithms are just one kind of learning algorithms.  There are many others, such as neural networks, swarm techniques, etc.  They mostly fall short for really hard problems because they cannot handle sufficient complexity yet.
newbie
Activity: 12
Merit: 0
March 17, 2014, 11:12:21 PM
#18
Nevertheless, the problem of determining what plugins it needs is actually harder than writing these plugins itself.

That is very arguable.

You can have unit tests, speed execution tests and all kind of tests to see if a plugin is good or not.

A program writing programs? I think we don't have that yet (well, there is https://en.wikipedia.org/wiki/Evolutionary_algorithm but from what I read in another thread DAC-related, it takes huge computational power).
newbie
Activity: 6
Merit: 0
March 14, 2014, 05:10:57 PM
#17
The general principle would be that it pays humans to do things that it can't do, so people are incentivised to work for it when it needs work.  For example, the software would need to adapt to new VPS providers with different APIs, so the software could offer money to anyone who can sell it a plugin that connects it with a new VPS provider.  This would ensure that it could move between VPS providers even if they disappeared.  (things like receiving some plugin code from a user, testing it, and paying them if it works, could all be feasibly automated).

You're assuming the program is not smart enough to write the plugins.  This is a very reasonable thing to assume.  Nevertheless, the problem of determining what plugins it needs is actually harder than writing these plugins itself.  Think about it.  So you don't need a program that can outsource plugins to humans: you need a super-intelligent program that can do everything itself.
legendary
Activity: 1094
Merit: 1006
March 09, 2014, 03:31:12 PM
#16
Since a computer virus isn't much different being code at the core, you could very likely build a self-replicating contract that can auto-execute other functions. Ethereum contracts are essentially autonomous agents that can perform many functions.

Wouldn't that be very expensive in terms of ether fees? As I understand Ethereum favours short programs because it charges fees per executed line of code. https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-White-Paper#wiki-fees
Yes, this was my main criticism for Ethereum's current solution. You can store a movie in their blockchain, but its going to cost you $1,000. When I implement this in the Ethereum chain I'm going to use my metadata solution. Essentially you only store where the stuff is not the actual stuff.
hero member
Activity: 504
Merit: 500
March 09, 2014, 01:55:10 PM
#15
Beam me up, Scotty!
newbie
Activity: 6
Merit: 0
March 09, 2014, 01:26:36 PM
#14
Since a computer virus isn't much different being code at the core, you could very likely build a self-replicating contract that can auto-execute other functions. Ethereum contracts are essentially autonomous agents that can perform many functions.

Wouldn't that be very expensive in terms of ether fees? As I understand Ethereum favours short programs because it charges fees per executed line of code. https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-White-Paper#wiki-fees
newbie
Activity: 24
Merit: 0
March 09, 2014, 01:19:45 PM
#13

Essentially it's a piece of software that has the following objectives:

1) reproduce (it does this by purchasing VPS's with bitcoin, spawning another instance of itself, and sending it seed money to get it started).
2) earn money (in order to survive and reproduce)


There is a project to do this in the physical world (self-reproducing automation): http://www.seed-factory.org/ book: http://en.wikibooks.org/wiki/Seed_Factories

legendary
Activity: 1094
Merit: 1006
March 09, 2014, 12:24:47 PM
#12
I am working on Storj. If you want this to work properly you need to build a decentralized storage network. We did this and it was presented at the Texas Bitcoin Conference Hackathon, which we won. We have a working web app that allows you the upload and download data to our decentralized storage network. An agent could be developed in a weekend or so once we clean up our codebase.

I have a whitepaper about this somewhere on this forum. I'm purposely not talking about some details because I'd rather present you guys with a working solution than a bunch of 2 weektm promises.
hero member
Activity: 798
Merit: 1000
www.DonateMedia.org
March 09, 2014, 11:48:24 AM
#11
This is an interesting concept.

You might look at Ethereum, it is a blockchain driven contract engine with a turing-complete language for scripting. You can do anything you can mathematically define. This contracting language goes far beyond Bitcoin's abilities.

Since a computer virus isn't much different being code at the core, you could very likely build a self-replicating contract that can auto-execute other functions. Ethereum contracts are essentially autonomous agents that can perform many functions.

Part of the Ethereum project is to have compilers that you could translate viruses written in another language into Etherum LLL.

ethereum.org



newbie
Activity: 7
Merit: 0
March 09, 2014, 10:22:40 AM
#10
@fuW19dxlim16 I've been thinking and working on this concept as well.  To get what you want, you need a highly distributed infrastructure: https://github.com/StackMonkey/xovio-pool/blob/master/whitepaper.md.  I need help, if anyone is interested and has the time.
newbie
Activity: 32
Merit: 0
March 09, 2014, 09:47:14 AM
#9
You've been listening to Andreas on the Let's Talk Bitcoin podcast right? Wink

If you haven't then do. He spend a significant portion of one episode describing such self-sustaining and replicating autonomous agents, paying for their own existence through cryptocurrency.

Very cool stuff, and something I'd have loved to have got into around 15 years ago, when I was doing my masters in AI, except there was no Bitcoin back then. Now I've moved on to even more interesting stuff Wink
sr. member
Activity: 253
Merit: 250
newbie
Activity: 3
Merit: 0
March 09, 2014, 06:48:32 AM
#7
.

really interesting ideas niniyo

I have also been thinking alone similar lines too. i'm not a coder but an Arts Grad, but would love to help out in developing some of these idea further- and seeing where they might go.

I added some comments on an article in businessinsider.com on a classic 'bitcoin is a bubble' FUD post on 3rd March.

http://www.businessinsider.com/bitcoin-and-the-south-seas-bubble-2014-3?pundits_only=0&comments_page=1#comment-5314cd7eeab8ea5f5a60618b

my last couple of paragraphs read

"All their attempts to try and define where bitcoin fits therefore in our existing money-market structures will never understand that it is the FUTURE where bitcoin actually lives. ie it is an idea well ahead of the curve - so far ahead that they can't understand its relevance.

The real relevance of the blockchain lies in the future - when "intelligent machines" driven by algorithm controls will wander the world of the internet and will use 'electronic decentralised currency' to trade, gain access, share data etc.

bitcoin , or its off-springs, have to be that payment mechanism - as only decentralised incorruptible currency will be universally accepted by trans-national wandering bots.
"

Get in touch via twitter if you wish  @Bitcoinrat
.
legendary
Activity: 1078
Merit: 1006
100 satoshis -> ISO code
March 09, 2014, 05:07:37 AM
#6
Thanks.  Those threads are definitely of interest.

Reading them made me realise that a really good application of this idea would be to build a distributed altcoin exchange.  ...

http://mastercointalk.org/index.php?topic=108.0

Not a DAC but it will be interesting to see how it does.
newbie
Activity: 12
Merit: 0
March 09, 2014, 03:35:07 AM
#5
I am very interested in this, I've been thinking a lot about it (but sadly I don't have a lot of free time to put in it).

Some applications :

- obviously, host files (that is the StorJ idea) like Mega, but also images like imgur, and videos like Youtube

- it can serve as TOR relays

- run bitcoind instances

- share some torrents (I'm thinking linux images, not the latest Hollywood movie)

- it could procure VPN services to its clients (although I'm not sure it could compete with professional VPNs)

- mail servers (again, if it's not free it may not be interesting to a lot of people)

- if there is a web front-end with interesting content (a forum for its users?), monetize it with ads (but I just made a quick search and it seems that, currently, advertisement networks which pays in BTC are not so good)

- host blogs

- IRC server

- maybe some game servers, but I'm not really into that so I don't know if it is needed

For the decision-making part, my idea was to let users vote, using the Bitcoin technology : The agent would be kind of like a company, issuing "shares". People who put some coins in the agent capital gain voting power. No need for ID or passwords, they can sign their vote with the BTC address they used to send funds. That's less autonomous, but can also avoid IA fatal mistakes and helps fund the agent.
Parts of the agent's master bitcoin key (separated with Shamir's secret sharing system) could also be given to each shareholders in case the agent crash down and the coins need to get recovered.
Actually, to avoid hacks, it may be a good idea to let the agent only with a multi-sig wallet, requiring a minimum of 50%+1 shareholders to verify and sign each transactions made.

Is there already some VPS/dedicated servers providers who have an API good enough for this purpose ? Else we can always teach the agent to go through the host website and subscribe like a human, but some kind of universal protocol would be so much better for error handling and to later plug-in more providers.

Damn this is so full of possibilities, I think I'm gonna start really working on it during my free time. (I may not have all the competences required, I mainly do web development)

edit : and thanks organofcorti, I'm gonna read these threads too

edit 2 : it can also serves as oracles for bitcoin contracts (https://en.bitcoin.it/wiki/Contracts#Example_4:_Using_external_state) and be the third-party for this https://gist.github.com/gavinandresen/5616606

edit 3 : Namecheap takes BTC and has an API for domain names and SSL certificates : https://www.namecheap.com/support/api/intro.aspx
No hosting and I think it has to be linked to a funded account, but that's a start
b!z
legendary
Activity: 1582
Merit: 1010
member
Activity: 118
Merit: 10
March 09, 2014, 03:06:08 AM
#3
Thanks.  Those threads are definitely of interest.

Reading them made me realise that a really good application of this idea would be to build a distributed altcoin exchange.  Altcoin exchanges are essential because trading from BTC into an altcoin and back is almost like the zerocoin concept, so long as the exchanges are black boxes.  Imagine a distributed exchange that replicated itself with the profit!

The obvious weakness here is that people with physical access to the hardware can steal its wallet or manipulate the software, and it would be easy to trick an autonomous agent into purchasing a VPS from you for this purpose.
Pages:
Jump to: