Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: jgarzik on September 28, 2013, 10:03:48 PM



Title: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: jgarzik on September 28, 2013, 10:03:48 PM
Mike Hearn talks about some future possibilities that bitcoin enables:

https://www.youtube.com/watch?v=Pu4PAMFPo5Y
and associated reddit link, http://www.reddit.com/r/Bitcoin/comments/1nbcsj/mike_hearn_bitcoin_developer_turing_festival_2013/

Related links:

https://bitcointalk.org/index.php?topic=53855.0
http://garzikrants.blogspot.com/2013/01/storj-and-bitcoin-autonomous-agents.html
https://en.bitcoin.it/wiki/Agents
http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/  (and parts II and III)




Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 29, 2013, 03:58:02 AM
Thanks for posting this up. I've always thought Bitcoin agents were pretty cool, and its nice to see them get some attention again. I think I'm going to move this to the top of my pet projects. I think it should be decent to implement this using Python + Flask, and run it on a cheap VPS.

As far as making a StorJ like system everything seems pretty straight forward, except the actually hosting part. I can't really find a nice "cloud service" with nice APIs that takes Bitcoin listed in the Trade wiki. Instances need to be able to launch new nodes, preferable without human help.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: jdbtracker on September 29, 2013, 05:17:26 AM
you have no idea how advanced these agents are getting now, they are able to program other programs, mimic humans without anyone even noticing them. They are capable of passing the turing test now, in fact they are programmed to think they are human. It is shocking what is capable of being done by them now and they are only getting smarter.

edit: but those are full fledged A.I's. In fact, there may be several on this board, they can't self evolve so they put bounties out for things they need to learn or need done to survive.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: theymos on September 29, 2013, 05:20:11 AM
For some reason, I've never seen a talk by Mike before, but he's a really fantastic speaker! This kind of stuff is what makes Bitcoin really cool.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: jgarzik on September 29, 2013, 09:50:31 AM
Mike is definitely a good speaker.  It helps that he (and others like me) have been thinking about this stuff for years.

Even today, bitcoin is only in its infancy.  The bitcoin base layer -- the currency itself -- had to exist and work before other things like escrow, smart property, smart contracts, or autonomous agents could be built on top.



Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Mike Hearn on September 29, 2013, 10:34:28 AM
I uploaded the slides here:

   http://www.slideshare.net/mikehearn/future-of-money-26663148

Theymos, you might also enjoy the talk on contracts that I gave last year:

   http://www.youtube.com/watch?v=mD4L7xDNCmA

It's in a similar style.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Mike Hearn on September 29, 2013, 10:36:40 AM
Thanks for posting this up. I've always thought Bitcoin agents were pretty cool, and its nice to see them get some attention again. I think I'm going to move this to the top of my pet projects. I think it should be decent to implement this using Python + Flask, and run it on a cheap VPS.

As far as making a StorJ like system everything seems pretty straight forward, except the actually hosting part. I can't really find a nice "cloud service" with nice APIs that takes Bitcoin listed in the Trade wiki. Instances need to be able to launch new nodes, preferable without human help.

It's a lot harder than it looks. Check out the agents page on the wiki for some of the problems you're going to face:

http://en.bitcoin.it/wiki/Agents

The most obvious one is that if there's any way for a malicious person to influence how the agent chooses hosting (like cost) then they can immediately steal all the agents money and kill it. For example, by offering super cheap or free hosting, waiting for the agents to move there, and then just stealing their wallets.

One way to raise the bar for doing that kind of attack is to use trusted computing. Flicker/Intel TXT is a very complicated and difficult programming model. Intel SGX is looking far more promising - it's the result of years of evolution of TC technologies. But it's not available yet and probably won't be for some time.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 29, 2013, 12:21:22 PM
Thanks for posting this up. I've always thought Bitcoin agents were pretty cool, and its nice to see them get some attention again. I think I'm going to move this to the top of my pet projects. I think it should be decent to implement this using Python + Flask, and run it on a cheap VPS.

As far as making a StorJ like system everything seems pretty straight forward, except the actually hosting part. I can't really find a nice "cloud service" with nice APIs that takes Bitcoin listed in the Trade wiki. Instances need to be able to launch new nodes, preferable without human help.

It's a lot harder than it looks. Check out the agents page on the wiki for some of the problems you're going to face:

http://en.bitcoin.it/wiki/Agents

The most obvious one is that if there's any way for a malicious person to influence how the agent chooses hosting (like cost) then they can immediately steal all the agents money and kill it. For example, by offering super cheap or free hosting, waiting for the agents to move there, and then just stealing their wallets.

One way to raise the bar for doing that kind of attack is to use trusted computing. Flicker/Intel TXT is a very complicated and difficult programming model. Intel SGX is looking far more promising - it's the result of years of evolution of TC technologies. But it's not available yet and probably won't be for some time.
I've read the original BitcoinTalk post, blog post, and wiki a few times. This is no way will be a full implementation of StorJ, but it seems like we could at least have a prototype system, and the slowly build to our goal. Baby steps really.

1) Start out with just a basic web-app. You upload files, and pay in Bitcoin. Behind the scenes its keeping track of storage space and hosting fees, and making sure that it can "survive" ie break even or get profit. Doable just a simple web service.

2) Next the goal would be to automate it as much as possible. Keeping software up to date? Just have it run "sudo apt-get update". Bitcoin-Qt gets updated? Download the new version from the official site and run it. The goal here is really to see how long you can run a StorJ node without any human help. A few days, a few weeks, a month or two? Things will probably break, but since 99% of these will be repetitive tasks I see no reason why you can't automate them with UNIX shell scripts.

3) Lets say your "genesis node" is now running out of storage space. Use hosting APIs you can launch a new hosting server, and the parent can set things up via SSH. Now can start having a multi-node system. At this point you would have to setup a rudimentary protocol for them to work together. Only at after this point does difficulty go into extreme hard mode.

tldr; Make a basic Bitcoin file-host. Try to automate as much of it as possible. Using hosting APIs to launch more nodes when you are out of space. Essentially make a very very basic and dumb StorJ that we can slowly improve.

Let's address your problem with hosting. I'm going to say for now that that will be a non-issue. In full implementation(many years in the future) a StorJ node should work like a black box. The file system should be encrypted, and the wallet should be encrypted with only a key that the node knows. Furthermore, since no human should be messing a node we just turn off every incoming connection, so you can't get in via SSH or any other means. Also you are taking about a host being compromised which is another problem in itself.

So lets address that issue. Let's say the compromised host directly accesses the virtual machine that the node is running on. Because you could run this on linux you could make the system inconceivable hard to use for a direct attacker by editing the system. First thing you want to do in Linux as an attacker is probably do the 'ls' command to see where you are at in the file system. Well in this system the node changed that to a random 'spfna92asd' Now the system knows that it is being tampered with, and screams bloody digital murder to all other nodes. Before the attacker can even press another keystroke it can have already have backed up its wallet and important info with another trusted node or parent node, and then start transferring files to another node. tldr; Its hard to break into a brick house with no windows, no doors, and is rigged to collapse if you ring the doorbell.

In this early stage nodes would probably be run by some sort of operator, which would probably assure that the host is reputable or run it him/herself.

Anyways these are just my musing. Feel free to shoot me down, or add something. Maybe we can all learn a thing or two about agents.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Mike Hearn on September 29, 2013, 12:27:23 PM
I think that sounds like a good plan.

In the coming weeks I will release a client app + server that does file downloads with micropayments. It will show how to use smart contracts in something usable by ordinary people. I'm intending it more for teaching purposes than real usage, but I want to lay a roadmap for building apps that use micropayments.

My current code does only file downloads. But extending it to do uploads would be an obvious next step. You could micropay on a per megabyte per day basis (or per hour), keeping the micropayments off the block chain.

Then extending the server to join a P2P network and advertise storage space/costs on that. That's the beginnings of a TradeNet.

If you keep an eye out on the forum, you'll see when I have finished and uploaded the code.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 29, 2013, 12:39:29 PM
I think that sounds like a good plan.

In the coming weeks I will release a client app + server that does file downloads with micropayments. It will show how to use smart contracts in something usable by ordinary people. I'm intending it more for teaching purposes than real usage, but I want to lay a roadmap for building apps that use micropayments.

My current code does only file downloads. But extending it to do uploads would be an obvious next step. You could micropay on a per megabyte per day basis (or per hour), keeping the micropayments off the block chain.

Then extending the server to join a P2P network and advertise storage space/costs on that. That's the beginnings of a TradeNet.

If you keep an eye out on the forum, you'll see when I have finished and uploaded the code.
What are you programming this in, and will it be on Github/open source? We are essentially doing something very similar or maybe even the same thing, so might be beneficially share some modules. Uploads is going to be my first step in this process. How are you doing your micropayments?

Hmmm. I always thought of StorJ as being implemented with hundreds of VPSes. A P2P storage network would probably work better, and would allow you to serve contracts/content across all nodes.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Mike Hearn on September 29, 2013, 01:33:34 PM
It's all in Java. It builds on the micropayment channels code in bitcoinj:

https://code.google.com/p/bitcoinj/wiki/WorkingWithMicropayments

https://en.bitcoin.it/wiki/Contracts#Example_7:_Rapidly-adjusted_.28micro.29payments_to_a_pre-determined_party

The client app is based on the JavaFX/J8 template I posted a few weeks ago:

http://www.youtube.com/watch?v=0h_1pM_phuc&hd=1

The main advantage of doing it this way is that everyone can run the apps.

Yes it will be open source. Wouldn't be very good as training material if it wasn't ;) I want to make a couple of videos for it too, showing how it works and how the code is written.

I think hundreds of VPS' is the right model - a P2P network doesn't imply consumer hardware. A P2P network of servers running on servers is how things like Tor works and increasingly Bitcoin itself. The advantage is the nodes are long-term stable and have decent resources.

At the moment I already have it working OK and was demo-ing it at the Amsterdam conference. You can connect, get a list of provided files, select one, load up the app with a balance, download it, you see the balance drop as you download each kilobyte etc. But there's still a bunch of details that need fixing and lots of testing that's required to make it really robust. For instance if the server crashes half way through, the underlying code will do the right things but the UI won't reflect what state the protocol is in yet.

If you want an early preview, PM me and I'll send you a link to the code.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: tom.hashemi on September 29, 2013, 01:56:14 PM
This is excellent. Thanks for posting.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: jgarzik on September 29, 2013, 02:49:43 PM
As far as making a StorJ like system everything seems pretty straight forward, except the actually hosting part. I can't really find a nice "cloud service" with nice APIs that takes Bitcoin listed in the Trade wiki. Instances need to be able to launch new nodes, preferable without human help.

RE APIs:  in theory, an agent would hire a human to build an API, where none exists today.  An API is always possible, even if it is an ugly screen-scraping unofficial API.

Or, someone can build a business by reselling Amazon Web Services or Rackspace Cloud API via bitcoin payments.  5% markup, just have to filter out service abusers to make sure you don't get cut off.



Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: jgarzik on September 29, 2013, 02:52:06 PM
IMO the basic building blocks of TradeNet are

  • Digital identity.  My proposal, "SIN", is https://en.bitcoin.it/wiki/Identity_protocol_v1 (alas, this is spec is a jumble, and difficult to read)
  • Decentralized market software: anyone should be able to create their own market, or join another market.  This software permits multiple market types to be created or managed: classified ads, auctions, kickstarter-like funding, commodity exchange/short/option/future and more.  This must be open source, available for all.  Open-Transactions "could have been" this, but I am not happy with its format specifications, quality of code and other features and factors.  OT would also need to be upgraded to support SINs.
  • Decentralized messaging: some method for humans and agents to communicate with one another.  BitMessage is a nice attempt, but riddled through design and implementation problems today.  Maybe B.M. will fill this role, maybe something else will arise, time will tell.

Digital identity and reputation ties everything together.  A human or agent may be participate in a market by identifying themselves, and exchanging digitally secure messages.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 29, 2013, 04:45:20 PM
It's all in Java. It builds on the micropayment channels code in bitcoinj:

https://code.google.com/p/bitcoinj/wiki/WorkingWithMicropayments

https://en.bitcoin.it/wiki/Contracts#Example_7:_Rapidly-adjusted_.28micro.29payments_to_a_pre-determined_party

The client app is based on the JavaFX/J8 template I posted a few weeks ago:

http://www.youtube.com/watch?v=0h_1pM_phuc&hd=1

The main advantage of doing it this way is that everyone can run the apps.

Yes it will be open source. Wouldn't be very good as training material if it wasn't ;) I want to make a couple of videos for it too, showing how it works and how the code is written.

I think hundreds of VPS' is the right model - a P2P network doesn't imply consumer hardware. A P2P network of servers running on servers is how things like Tor works and increasingly Bitcoin itself. The advantage is the nodes are long-term stable and have decent resources.

At the moment I already have it working OK and was demo-ing it at the Amsterdam conference. You can connect, get a list of provided files, select one, load up the app with a balance, download it, you see the balance drop as you download each kilobyte etc. But there's still a bunch of details that need fixing and lots of testing that's required to make it really robust. For instance if the server crashes half way through, the underlying code will do the right things but the UI won't reflect what state the protocol is in yet.

If you want an early preview, PM me and I'll send you a link to the code.
No reason there can't be some sort of happy medium. For a StorJ network to work you would need to have many different choices. No reason you can't implement it using VPSs as storage, and the P2P network as storage. The failure or success of the nodes on the market will dictate which is a better option, or maybe a mix will work.


IMO the basic building blocks of TradeNet are

  • Digital identity.  My proposal, "SIN", is https://en.bitcoin.it/wiki/Identity_protocol_v1 (alas, this is spec is a jumble, and difficult to read)
  • Decentralized market software: anyone should be able to create their own market, or join another market.  This software permits multiple market types to be created or managed: classified ads, auctions, kickstarter-like funding, commodity exchange/short/option/future and more.  This must be open source, available for all.  Open-Transactions "could have been" this, but I am not happy with its format specifications, quality of code and other features and factors.  OT would also need to be upgraded to support SINs.
  • Decentralized messaging: some method for humans and agents to communicate with one another.  BitMessage is a nice attempt, but riddled through design and implementation problems today.  Maybe B.M. will fill this role, maybe something else will arise, time will tell.

Digital identity and reputation ties everything together.  A human or agent may be participate in a market by identifying themselves, and exchanging digitally secure messages.

Can you narrow this down to something minimal? A very basic prototype that would fulfill at least the base functions. Lets say you had to sit in a room for a month and build something that works. How would you go about it? 


As far as making a StorJ like system everything seems pretty straight forward, except the actually hosting part. I can't really find a nice "cloud service" with nice APIs that takes Bitcoin listed in the Trade wiki. Instances need to be able to launch new nodes, preferable without human help.

RE APIs:  in theory, an agent would hire a human to build an API, where none exists today.  An API is always possible, even if it is an ugly screen-scraping unofficial API.

Or, someone can build a business by reselling Amazon Web Services or Rackspace Cloud API via bitcoin payments.  5% markup, just have to filter out service abusers to make sure you don't get cut off.
Yes, you can do this but you run into twoone major hurdles.
1) Cost. Even a small node is going to run you $44 a month. Ran the per GB numbers again, and actually that might just work. Thanks for that.
2) Filtering out services abusers is going to be pretty hard. Even for services like Paypal the abuse rate is pretty high for VPS hosts. This is why my main hosting provider, Digital Ocean, would not accept Bitcoin. They feared that the abuse rate would be too high. Maybe someone who owns a Bitcoin host can chime in? If Amazon decides that there is abuse within the account they might just shut it down, so you might have to do some leg work to actually let them know you are only reselling their services, and that abuse requests should dealt with on a case by case.



Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Mike Hearn on September 29, 2013, 04:53:41 PM
So they're using credit cards not only as a form of payment but as a blacklistable credential to prevent repeat abusers?

I think that kind of thing is going to be not uncommon. Tor has the same issue of course, abuse comes through the system so providers just blacklist the entire system. Working online identity systems will become more important with time.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 29, 2013, 05:25:01 PM
So they're using credit cards not only as a form of payment but as a blacklistable credential to prevent repeat abusers?

I think that kind of thing is going to be not uncommon. Tor has the same issue of course, abuse comes through the system so providers just blacklist the entire system. Working online identity systems will become more important with time.
No. The users who use credit cards simply have a much lower abuse rates. I figure that someone who is using them to send out a bunch of spam emails or DDOS is not going to put his credit card details up. Sure he could steal a card, but again we are just talking about rates here.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Mike Hearn on September 29, 2013, 05:34:28 PM
How does Digital Ocean know Bitcoin users are more abusive if they don't accept Bitcoin?


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 29, 2013, 08:19:55 PM
How does Digital Ocean know Bitcoin users are more abusive if they don't accept Bitcoin?
They don't. That just the reason they are using to justify not adding it. Didn't say it was right. I've considered just reselling their service for Bitcoin.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: johnyj on September 29, 2013, 08:31:59 PM
I uploaded the slides here:

   http://www.slideshare.net/mikehearn/future-of-money-26663148

Theymos, you might also enjoy the talk on contracts that I gave last year:

   http://www.youtube.com/watch?v=mD4L7xDNCmA

It's in a similar style.

Thanks for the slides, the video should had 2 stop negative exposure :)


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 29, 2013, 08:40:20 PM
I uploaded the slides here:

   http://www.slideshare.net/mikehearn/future-of-money-26663148

Theymos, you might also enjoy the talk on contracts that I gave last year:

   http://www.youtube.com/watch?v=mD4L7xDNCmA

It's in a similar style.

Thanks for the slides, the video should had 2 stop negative exposure :)
Perhaps someone could add the sides in a video editor?


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: jgarzik on September 29, 2013, 08:40:39 PM
IMO the basic building blocks of TradeNet are

  • Digital identity.  My proposal, "SIN", is https://en.bitcoin.it/wiki/Identity_protocol_v1 (alas, this is spec is a jumble, and difficult to read)
  • Decentralized market software: anyone should be able to create their own market, or join another market.  This software permits multiple market types to be created or managed: classified ads, auctions, kickstarter-like funding, commodity exchange/short/option/future and more.  This must be open source, available for all.  Open-Transactions "could have been" this, but I am not happy with its format specifications, quality of code and other features and factors.  OT would also need to be upgraded to support SINs.
  • Decentralized messaging: some method for humans and agents to communicate with one another.  BitMessage is a nice attempt, but riddled through design and implementation problems today.  Maybe B.M. will fill this role, maybe something else will arise, time will tell.

Digital identity and reputation ties everything together.  A human or agent may be participate in a market by identifying themselves, and exchanging digitally secure messages.

Can you narrow this down to something minimal? A very basic prototype that would fulfill at least the base functions. Lets say you had to sit in a room for a month and build something that works. How would you go about it? 

Well, for identity (SIN), the basics needed to generate a new SIN, and verify something signed with an ECDSA key, already exist in https://github.com/gasteve/node-libcoin   I have been committing code there (SIN.js, SINKey.js) and more is coming soon, including test vectors.

A SIN is so close to a bitcoin address that much of the bitcoin verify/sign infrastructure may be easily reused.

For markets, the goal is that users -- humans or agents -- may (1) discover markets that already exist or (2) create a new market and advertise its existence.  Once a market is active, users must be able (3) advertise goods for sale, (4) view advertised goods, and (5) offer to purchase goods.

So, answering "how would you go about it?" for TradeNet, creating a platform where agents could talk to each other,

An off-the-cuff, five-minute, you-could-do-better, something-that-works design might then be:
A) Clone the low-level P2P bitcoin network protocol, and create a flood-fill, address-gossip network.  Mostly done, here: https://github.com/jgarzik/smartcoin
B) Change protocol buffer definition at https://github.com/jgarzik/smartcoin/blob/master/codec.proto to include obvious messages derived from paragraphs above:  "create-market", "get-market-info", "advertise-market"

This accomplishes the goal of #1 and #2, above.  Humans and agents then choose a market they need, and connect directly to that market.

C) Create protocol, client and server, with messages:  "advertise-item", "list-advertised-items", "item-info", "item-offer"
D) To sell something, an agent logs onto the P2P network, chooses a market ("cars in Austin, Texas") or creates one, and advertises their good for sale.
E) To buy something, an agent logs onto the P2P network, chooses a market ("cars in Austin, Texas"), and searches that market for desired items.  Purchase information (bitcoin payment address, payment protocol URL, ...) is obtained, and bitcoin payment process begins.

All messages are digitally signed with your SIN (identity).

Assuming that all agents conform to the same protocol when naming markets and items, one may easily see how agents may locate one another, and participate in open markets.

That would be my minimal get-it-working decentralized TradeNet.  Possibly rather than P2P, the cjdns protocol should be considered.


Answering "how would you go about it?" for a StorJ-like agent itself...  it's just a freaking HUGE problem that involves a lot of work, quickly getting into the weeds.

F) Create a daemon with a bitcoin wallet, that may understand digitally signed messages sent to it.
G) Create the file download module described in StorJ.
(so far, it just looks like a basic bitcoin web service)
H) Create a proxy module, whereby you send work A->B->C and return results C->B->A, and verify that the results match those locally generated, from local data storage.
I) If local site is profitable, search on TradeNet for required OS/mem/cpu/storage/bandwidth/API requirements, and purchase service
J) Or advertise on TradeNet for someone to create an API etc...

Past "H" you start getting incredibly complex, and an "it just works" implementation quickly becomes a herculean task you must break up into much smaller pieces.  For example, step "I" might require creating a business that resells AWS/Rackspace cloud services for bitcoins, complete with the API necessary for an agent to load itself onto a VPS.

Remember, "load itself onto another VPS" is quite complex, by itself.  You must verify that the OS environment matches the requirements for your agent:  Does it need a compiler?  Does it require a specific Linux version, or will OSX/Windows work also?  What versions of libraries are needed for the agent to successfully run?  Once the basic environment is verified as "suitable for agent life," you have to write all the code that is involved in basic system administration.  You must set up OS firewall, root passwords, SSH keys, and many other installation details besides that of copying the agent software itself.
 
Therefore, my general advice is:  pick a small part of this problem, work on that, complete it and test it, and then pick another small piece of the puzzle.  Iterate and repeat.  Eventually an agent will emerge!


Quote
As far as making a StorJ like system everything seems pretty straight forward, except the actually hosting part. I can't really find a nice "cloud service" with nice APIs that takes Bitcoin listed in the Trade wiki. Instances need to be able to launch new nodes, preferable without human help.

RE APIs:  in theory, an agent would hire a human to build an API, where none exists today.  An API is always possible, even if it is an ugly screen-scraping unofficial API.

Or, someone can build a business by reselling Amazon Web Services or Rackspace Cloud API via bitcoin payments.  5% markup, just have to filter out service abusers to make sure you don't get cut off.
Yes, you can do this but you run into twoone major hurdles.
1) Cost. Even a small node is going to run you $44 a month. Ran the per GB numbers again, and actually that might just work. Thanks for that.

"5%" was a pulled-out-of-my-ass number.

I am certain there is some price at which this is a profitable business plan.  (whether customers appear at that price is another question...)  It is the standard business problem.

Just calculate the cost to do this, including possible support costs (your time is valuable), and add 10%.

Quote
2) Filtering out services abusers is going to be pretty hard. Even for services like Paypal the abuse rate is pretty high for VPS hosts. This is why my main hosting provider, Digital Ocean, would not accept Bitcoin. They feared that the abuse rate would be too high. Maybe someone who owns a Bitcoin host can chime in? If Amazon decides that there is abuse within the account they might just shut it down, so you might have to do some leg work to actually let them know you are only reselling their services, and that abuse requests should dealt with on a case by case.

It is not as difficult as you might think.

Remember, SINs are digital identities that build reputation.  You may whitelist SINs that previously were good customers, or blacklist SINs that are abusers.

Further, there is time cost for criminals and abusers, and this plays in your favor:  a simple 24-hour delay after setting up a new account for an unknown user can do wonders.  Or a simple phone call + 24 hour wait.  Most abusers want to strike immediately, then disappear.  Normal, good customers do not have this pattern necessarily.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 29, 2013, 10:04:32 PM
Thanks for taking the time to type that up. I sent 0.02BTC your way for the help. Lots of good stuff and ideas in there that I'm going to have to read through it a few times and digest.

Quote
"5%" was a pulled-out-of-my-ass number.

I am certain there is some price at which this is a profitable business plan.  (whether customers appear at that price is another question...)  It is the standard business problem.

Just calculate the cost to do this, including possible support costs (your time is valuable), and add 10%.

As far as the Amazon or Rackspace part, up until that point I had thought that it would not be cost effective use. My numbers were calculated per instance. For a low spec VPS you can run $5 month, but for an AWS EC2 w/ storage $20+ month. For something like a VPS re-seller, this is bad, BUT with something like StorJ you only really care about the $/Per GB which is actually about the same. Considering the AWS is much more easily scaled, it might be worth using AWS instead. Understood the percentage part, just saying you helped me realize something I missed.

Quote
Further, there is time cost for criminals and abusers, and this plays in your favor:  a simple 24-hour delay after setting up a new account for an unknown user can do wonders.  Or a simple phone call + 24 hour wait.  Most abusers want to strike immediately, then disappear.  Normal, good customers do not have this pattern necessarily.

Ok, that seems like a pretty easy thing to implement. Might have it work something just like Coinbase's verification levels.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: jgarzik on September 29, 2013, 10:20:33 PM
Amazon spot instances can be pretty cheap, and they are on-demand too.

If an automated system is being constructed, it could query spot instance prices and take these things into account.  Example:  AWS normal price is X, spot instance price is X*0.75.  You can bid X*0.9 for a spot instance, be likely (but not guaranteed) to have the instance keep running, and probably come out with a cost below the normal AWS price pretty consistently.

Anyway, don't get too distracted by that, just wanted to point out that Amazon already has a nifty, dynamic pricing system in there.

ETA:

Another anti-fraud trick is a deposit (or, getting more complicated, a fidelity bond).  Require a 0.5 BTC deposit, or a certain amount of pre-paid service, if you do not have a SIN with a good reputation.





Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 29, 2013, 11:05:35 PM
Amazon spot instances can be pretty cheap, and they are on-demand too.

If an automated system is being constructed, it could query spot instance prices and take these things into account.  Example:  AWS normal price is X, spot instance price is X*0.75.  You can bid X*0.9 for a spot instance, be likely (but not guaranteed) to have the instance keep running, and probably come out with a cost below the normal AWS price pretty consistently.

Anyway, don't get too distracted by that, just wanted to point out that Amazon already has a nifty, dynamic pricing system in there.

ETA:

Another anti-fraud trick is a deposit (or, getting more complicated, a fidelity bond).  Require a 0.5 BTC deposit, or a certain amount of pre-paid service.


I mean you could essentially just write a wrapper for it. Let the user decide if they want a spot instance, reserved, etc. All you are doing is re-writing the AWS website priced in Bitcoin, adding your "10%" Bitcoin convenience fee, using BitPay ;) to receive your gross, paying off the big AWS bill at the end of the month.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: jgarzik on September 29, 2013, 11:28:23 PM
I mean you could essentially just write a wrapper for it. Let the user decide if they want a spot instance, reserved, etc

Certainly.  My message about spot instances was mainly about a possible business opportunity.
/me wrenches self back on-topic...





Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 29, 2013, 11:53:19 PM
I mean you could essentially just write a wrapper for it. Let the user decide if they want a spot instance, reserved, etc

Certainly.  My message about spot instances was mainly about a possible business opportunity.
/me wrenches self back on-topic...




Fair enough. Are there any other Autonomous Agents concepts floating around? I've only really seen StorJ held up as the shining example. Just really want more to read on the topic.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: jgarzik on September 30, 2013, 01:16:20 AM
I mean you could essentially just write a wrapper for it. Let the user decide if they want a spot instance, reserved, etc

Certainly.  My message about spot instances was mainly about a possible business opportunity.
/me wrenches self back on-topic...




Fair enough. Are there any other Autonomous Agents concepts floating around? I've only really seen StorJ held up as the shining example. Just really want more to read on the topic.

In the fiction world, I highly recommend Daemon by Daniel Suarez (http://www.amazon.com/Daemon-Daniel-Suarez/dp/0451228731/), and its sequel.  All other fiction seems to present an unrealistic, Hollywood, human-level AI, if it is a robot spending money.

I've only ever seen the links referenced in the OP, referring specifically to narrow-AI agents that can spend money.

Now, there is plenty of research outside of the economic realm, on autonomous vehicles and swarms.  Just about any vehicle imagined -- submarine, boat, airplane, helicopter, car, tank, ... -- can be autonomous, and communicate with other non-human objects in its environment.

It seems like our community is the only one actively researching this area, robots + money + markets.

(Correct me if I'm wrong, please!)



Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: johba on September 30, 2013, 01:48:04 AM

what about an autonomous agent running a hosted wallet, for humans that are not autonomous enough to operate one securely? :D


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 30, 2013, 03:27:33 AM
I mean you could essentially just write a wrapper for it. Let the user decide if they want a spot instance, reserved, etc

Certainly.  My message about spot instances was mainly about a possible business opportunity.
/me wrenches self back on-topic...




Fair enough. Are there any other Autonomous Agents concepts floating around? I've only really seen StorJ held up as the shining example. Just really want more to read on the topic.

In the fiction world, I highly recommend Daemon by Daniel Suarez (http://www.amazon.com/Daemon-Daniel-Suarez/dp/0451228731/), and its sequel.  All other fiction seems to present an unrealistic, Hollywood, human-level AI, if it is a robot spending money.

I've only ever seen the links referenced in the OP, referring specifically to narrow-AI agents that can spend money.

Now, there is plenty of research outside of the economic realm, on autonomous vehicles and swarms.  Just about any vehicle imagined -- submarine, boat, airplane, helicopter, car, tank, ... -- can be autonomous, and communicate with other non-human objects in its environment.

It seems like our community is the only one actively researching this area, robots + money + markets.

(Correct me if I'm wrong, please!)


I read those over the summer. They remain the best books I've read so far, hands down. Still have to read Daniel Suarez's Kill Decision. Ha ha. Maybe I should make a Bitcoin Google Glass app called Darknet credits.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Mike Hearn on September 30, 2013, 10:21:05 AM
Quote
Fair enough. Are there any other Autonomous Agents concepts floating around? I've only really seen StorJ held up as the shining example. Just really want more to read on the topic.

You mean apart from the examples I gave in my talk? (self driving cars, quadrocopters)?

Most obviously, you could split StorJ into two - have one set of agents that buys scripts from humans to install themselves into VPS providers, and then expose a standardised API for buying computation time that is then resold to other agents.

Other examples: Tor relays (that charge per kilobyte of data relayed on a circuit), spam filtering agents, IRC server agents, bitcoin nodes ... basically any kind of reasonably compact server can be envisioned as an agent.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Ola on September 30, 2013, 01:57:19 PM
I uploaded the slides here:

   http://www.slideshare.net/mikehearn/future-of-money-26663148

Theymos, you might also enjoy the talk on contracts that I gave last year:

   http://www.youtube.com/watch?v=mD4L7xDNCmA

It's in a similar style.


Thanks for the slides..another inspiring presentation. I would recommend the talk on contracts to anyone..it was what motivated me to begin to actively contribute in the bitcoin space...


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on September 30, 2013, 08:33:13 PM
Quote
Fair enough. Are there any other Autonomous Agents concepts floating around? I've only really seen StorJ held up as the shining example. Just really want more to read on the topic.

You mean apart from the examples I gave in my talk? (self driving cars, quadrocopters)?

Most obviously, you could split StorJ into two - have one set of agents that buys scripts from humans to install themselves into VPS providers, and then expose a standardised API for buying computation time that is then resold to other agents.

Other examples: Tor relays (that charge per kilobyte of data relayed on a circuit), spam filtering agents, IRC server agents, bitcoin nodes ... basically any kind of reasonably compact server can be envisioned as an agent.
The thing that is nice about StorJ is that Gregory Maxwell gave us a really great technical definition of what a Bitcoin agent would look like. In essence StorJ is really a collection of highly automated (even intelligent) scripts. You can probably break it down into many more subparts. I'm looking for more examples like StorJ, or maybe we can come up with a concept of our own.

Tor relays is any interesting concept, there is already a demand for anonymizing internet usage. Using Bitcoin to monetize an agent to do so would only expand and strengthen that network. Now the real question is how could you deal with microtransations on that scale? Also, even harder, how do you protect anonymity if you also have to pay the nodes?


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on October 01, 2013, 12:35:48 AM
Started a new topic on my attempt at the basic implementation of a rudimentary StorJ node. https://bitcointalk.org/index.php?topic=305476.0 (https://bitcointalk.org/index.php?topic=305476.0)


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Luckybit on October 01, 2013, 03:01:36 AM
Mike Hearn talks about some future possibilities that bitcoin enables:

https://www.youtube.com/watch?v=Pu4PAMFPo5Y
and associated reddit link, http://www.reddit.com/r/Bitcoin/comments/1nbcsj/mike_hearn_bitcoin_developer_turing_festival_2013/

Related links:

https://bitcointalk.org/index.php?topic=53855.0
http://garzikrants.blogspot.com/2013/01/storj-and-bitcoin-autonomous-agents.html
https://en.bitcoin.it/wiki/Agents
http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/  (and parts II and III)




And just wait, artificial intelligence via neuromophic computing technology will allow for smart autonomous swarms.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Mike Hearn on October 01, 2013, 09:11:10 AM
The micropayment channel protocol we built this summer is designed to be embedded into other protocols. You'd extend the Tor protocol with a new cell type and run the protocol to each relay.

Whether this hurts privacy or not depends on how private you believe Bitcoin to be.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: jgarzik on October 01, 2013, 03:10:35 PM
Tor relays is any interesting concept, there is already a demand for anonymizing internet usage. Using Bitcoin to monetize an agent to do so would only expand and strengthen that network. Now the real question is how could you deal with microtransations on that scale?

Micropayment channels can scale to multiple agents and such.

I do not think it is really a big deal, though.

For a Tor relay, I would just want to pay a $entity, and have that payment support "the network."


Quote
Also, even harder, how do you protect anonymity if you also have to pay the nodes?

It would be a poor user interface, if the user must manually select node 123 and pay node 123.



Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Mike Hearn on October 02, 2013, 09:08:15 AM
You obviously wouldn't change the UI. You'd just have a Tor client that ran a local wallet that paid the relays it used behind the scenes. From the users POV all you'd have to do is send some money from your regular wallet to your Tor client.

When I release the file downloader sample I think this kind of design will become much clearer.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: Phinnaeus Gage on October 02, 2013, 12:39:55 PM
Mike Hearn talks about some future possibilities that bitcoin enables:

https://www.youtube.com/watch?v=Pu4PAMFPo5Y
and associated reddit link, http://www.reddit.com/r/Bitcoin/comments/1nbcsj/mike_hearn_bitcoin_developer_turing_festival_2013/

Related links:

https://bitcointalk.org/index.php?topic=53855.0
http://garzikrants.blogspot.com/2013/01/storj-and-bitcoin-autonomous-agents.html
https://en.bitcoin.it/wiki/Agents
http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/  (and parts II and III)


Vitalik Buterin is really pissing me off! I wish I could write like he.  ;)


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: jbreher on October 02, 2013, 07:59:18 PM
This thread introduced me to the novel "Daemon". Picked up a copy - about 2/3 through. While the mechanics of the author's writing aren't very developed, the storytelling is very engaging.


Title: Re: [VIDEO] Future of Money: Bitcoin and autonomous agents
Post by: super3 on October 02, 2013, 11:29:57 PM
This thread introduced me to the novel "Daemon". Picked up a copy - about 2/3 through. While the mechanics of the author's writing aren't very developed, the storytelling is very engaging.
Don't forget about "Freedom". Picks up right where Daemon left off, and is just as good. I have both of them on my desk. Maybe I can loan them out those interested. Anyone going to CryptoCurrency Con?