Pages:
Author

Topic: Webpage to paste raw tx for broadcast? - page 2. (Read 9999 times)

legendary
Activity: 1428
Merit: 1093
Core Armory Developer
November 13, 2011, 12:24:21 PM
#38
Nibor,

First of all: as for the 0.005 payment/bribe (Smiley) I already thought about something like that in the past, but I just don't see how to make it work.  First of all, if I add an output less than 0.01 BTC to my tx, then it's considered dust and cannot satisfy the AllowFree requirement.  Sure, sometimes it gets propagated without a fee, but there's no guarantee if any of the outputs are less than 0.01.   And most people hate paying transaction fees...

On the other hand, if your fee is >=0.01, the person can do it, as long as they don't mind breaking off some of their change output for you.  But for whatever reason, despite being practically insignificant, people are really averse to paying such fees.  I think it's fair for your service, but admittedly, the Tx construction algorithm has to be modified to include an extra output just for the forwarding node.

SelectCoins is the algorithm that takes all the unspent TxOuts that you can spend, and figures out a "good" subset of them for a desired transaction.  For instance, I have 5 unspent TxOuts to my wallet {10.3, 0.003, 0.148, 29.0, 2.2}.  If I want to send someone 2.5 BTC, what is the best way to do it?  Or 0.002?  Or 31?  etc.   There's actually too many solutions, and a lot of them require fees (if a lot of outputs are used, and/or young, small outputs), or link a lot of addresses together on the input side (since all addresses on the input side are clearly owned by the same person, you want to limit how many are used).

One of the criteria for anonymity of the transaction is the outputs -- usually there's two outputs: reicipient, and change-back-to-self.  The sender usually picks a new address for the change part, which means, if both outputs are the same, then it's not actually clear which is the recipient and which is change.  If you're concerned about someone tracking the flow of your money, having two outputs, one of 10.00 and change of 1.93283, it's pretty obvious which is which.  However, in the case of the tx I sent you, it's got 20 outputs of exactly 0.5 BTC.  An investigator who really wants to know who I'm sending money to, would now have to investigate the pool of 20 different addresses to find the actual recipient since there's no information to distinguish them in the tx itself.    Most SelectCoins algs could not come up with this Tx on their own, but I wouldn't mind figuring out how to get mine to do it Smiley

sr. member
Activity: 438
Merit: 291
November 13, 2011, 12:05:56 PM
#37
This one is for you, Nibor!  I decided to have fun with high-anonymity transactions and used your webpage to make sure I did it right.  One of those outputs is yours Smiley  I just gotta figure out how to get my SelectCoins to do that automatically...

Thanks.. What are you trying to achieve with high anonymity transactions?
What is SelectCoins?

Also I was trying to think of a way to get bitsend to make a bit of money to keep it going (donations are not a long term solution!). One idea I had was to add a bit of code to forward instantly if the transaction included a 0.005 payment to my address and otherwise only forward after 60mins. Do you think anyone would make the payment?

sr. member
Activity: 438
Merit: 291
November 13, 2011, 11:59:51 AM
#36
Nibor,
I am just a layman, therefore my question might seem stupid, but:
for your webpage to operate your server has to download all the blockchain beforehand?
What are requirements for your java programs to work?

it does  Wink.

There is no need to download any of the blockchain. All you have to do is have a server that maintains a connection to a number of other bitcoin nodes. Then when it receives the transaction it then forwards to all those nodes.

The program is written using the bitcoinj library. Further up this thread is the source in a raw form.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
November 11, 2011, 09:07:26 PM
#35
This one is for you, Nibor!  I decided to have fun with high-anonymity transactions and used your webpage to make sure I did it right.  One of those outputs is yours Smiley  I just gotta figure out how to get my SelectCoins to do that automatically...
sr. member
Activity: 262
Merit: 250
November 10, 2011, 08:46:54 AM
#34
Nibor,
I am just a layman, therefore my question might seem stupid, but:
for your webpage to operate your server has to download all the blockchain beforehand?
What are requirements for your java programs to work?

You need information from the blockchain to create the transaction. But once it's created you don't need the blockchain to send it.
member
Activity: 62
Merit: 10
November 10, 2011, 08:10:14 AM
#33
Nibor,
I am just a layman, therefore my question might seem stupid, but:
for your webpage to operate your server has to download all the blockchain beforehand?
What are requirements for your java programs to work?
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
November 09, 2011, 06:33:37 PM
#32
It worked this time!   Here it is on BlockExplorer
I'll be sure to throw in more donations as I use it more! 
sr. member
Activity: 438
Merit: 291
November 09, 2011, 05:56:14 PM
#31
Web site is up now! Was just adding the extra debugging mentioned in post above.
sr. member
Activity: 438
Merit: 291
November 09, 2011, 05:55:17 PM
#30
Great! I thought it might be as I was sure it was transmitted.
Thanks for letting me know as might have wasted some time otherwise.

I have added outputting the hashes of the transactions that were inputs so is now easy to see if they are already used.
http://blockexplorer.com/tx/aa739836a44451be555f74a02f088b50a867b1d3a2c917ee863d708ec2db58f6
was already spent.

One day will make them links to BE so is quick to check. For now you can just paste them in though.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
November 09, 2011, 05:34:45 PM
#29
I just found my bug, and constructed a new Tx with actually-unspent outputs.  I'm ready to plug it into your webpage, but it looks like you took it down Sad.

Let me know when it's back up and I'll toss you a couple BTC.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
November 09, 2011, 09:34:04 AM
#28
Ack!  This is my problem.  Somehow my code picked a TxOut that had already been spent...?  I guess I've got my own debugging to do...  Will try again tonight.
sr. member
Activity: 438
Merit: 291
November 09, 2011, 02:49:20 AM
#27
yes i got it and transmitted, but you are right it is not in the block chain. Will do some debugging later!
hero member
Activity: 714
Merit: 500
November 09, 2011, 12:46:23 AM
#26
Nice!  Smiley
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
November 09, 2011, 12:35:03 AM
#25
I finally got my code together to select coins, construct the tx, and then sign with private key.  I created a tx for 1.09 BTC to your address, and submitted it to your webpage.  However, there was no explicit statement that it succeeded, only a restatement of the tx in a somewhat human-readable form.  I didn't see it in either of the next two blocks, so I question whether it actually made it to the blockchain. 

Here's the full, serialized tx that I submitted, in case you want to check on it yourself:

Code:
0100000002f658dbc28e703d86ee17c9a2d3b167a8508b082fa0745f55be5144a4369873aa010000008c493046022100d4b006a55d91d3b62a040089febc12bc4ec88e570ed34ccc3286938e622e31090221007351f84554ab1c1fe4b091ed1905e261660a9863f02c0f9036aae195e3ff6b400141048d103d81ac9691cf13f3fc94e44968ef67b27f58b27372c13108552d24a6ee04785838f34624b294afee83749b64478bb8480c20b242c376e77eea2b3dc48b4bffffffff26f5e5ab244ce8d56e47b282ee2f6cba2c511a538386c86acd72279e9e557290010000008c493046022100ae301914b8070cab6584b292976ca06a05f4dd7959b14112e4ce25533d315d64022100a419f8e6f66adae096f188b69774524d78e75b2b22a06e052e0848cfbf3c122a0141048d103d81ac9691cf13f3fc94e44968ef67b27f58b27372c13108552d24a6ee04785838f34624b294afee83749b64478bb8480c20b242c376e77eea2b3dc48b4bffffffff0240357f06000000001976a9141b00a2f6899335366f04b277e19d777559c35bc888ac804a5d05000000001976a9140e0aec36fe2545fb31a41164fb6954adcd96b34288ac00000000
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
November 07, 2011, 05:52:03 PM
#24
Thanks nibor!  Gonna be sending you a donation soon.  You will receive it if your webpage works!  Btw, it's really an aesthetic suggestion, but I think the input box should be multi-line.  I want to be able to see the full tx I copied into the page.

On a philosophical note, I want to reiterate the possibility of this kind of tx-forwarder enabling a simpler method of anonymity in the BTC network.  Right now, Tor is the best solution for the ultra-paranoid, but it's complicated/inconvenient for the user.  The developer could try to integrate Tor protocols in the client, but that's quite complicated too.

On the other hand, if we got a bunch of folks to voluntarily host tx-forwarders like nibor's, with SSL, then we've got a much easier solution for both developers and users.  The client software could come with a list of tx-forwarders, which only needs to be partially complete, because it can update from any of the forwarders.  When the client wants to send a tx, it makes an SSL connection to one of the forwarders at random, and uploads the tx data over the encrypted connection.  That forwarder will then randomly either broadcast, or forward to another forwarder, which will do the same.  Eventually, the tx will be emitted from a completely different IP address than the originator.  This would be fairly straightforward to implement in client software by linking in the OpenSSL library.
full member
Activity: 154
Merit: 102
Bitcoin!
November 07, 2011, 05:32:19 PM
#23
http://bitsend.rowit.co.uk/

Now you just have to create the transactions by hand!
Nice. I haven't had time to work on this. I'm glad to see you have a working tx broadcaster.
sr. member
Activity: 438
Merit: 291
November 07, 2011, 05:12:34 PM
#22
http://bitsend.rowit.co.uk/

Now you just have to create the transactions by hand!
member
Activity: 73
Merit: 10
November 02, 2011, 09:10:54 PM
#21
It looks like the site that used the patch to accept transactions entered on a webpage no longer exists:
https://bitcointalksearch.org/topic/m.384518

oh hey you meant my site! yeah, i've basically given up on it for now, i don't really have the time, and there didn't seem to be lots of interest.
however the code is still there, and even though i wouldn't advise using it in its current state, the tx broadcast feature might be fine..
https://github.com/mhanne/webtc/tree/broadcast_transactions
sr. member
Activity: 438
Merit: 291
November 02, 2011, 05:02:21 PM
#20
The benefit with that is then you could then host the code on Heroku (for free), they now accept java programs as long as there's a pom.xml and a proc file.

Does Heroku allow outgoing long standing IP connection for free? I have used Google Apps before and they do not allow that (only http). And also you can not have long running processes that keep IP connections open.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
November 02, 2011, 09:53:29 AM
#19
If we could get a bunch of users to setup such forwarders on webpages with SSL, then technically users won't need Tor for the anonymity they seek. 

The user accesses the tx-forwarding webpage which connects via SSL.  The tx-to-be-broadcast is uploaded, sometimes it broadcast, sometimes forwarded to one of the other tx-forwarding webpages (also via SSL).  The final IP address that broadcasts the tx is different than the IP of the originator, and as long as tx-requests are pooled and not sent immediately, then it would be tough to correlate the originator of the tx with any particular SSL connection in the logs  (but of course, the webservers probably wouldn't be saving logs of the SSL connections anyway, so that's probably not relevant).

While this is great for anonymity, you as the webserver host should be aware that it does open up far-fetched-but-non-zero risk for you.  If you allow people to upload arbitrary transactions, and those transactions are for illegal activity, the investigation might end up at your IP address, and you might be in a frustrating position. 

I think the chances of this are extraordinarily slim.  Additionally, theoretically, they shouldn't be able to do anything to if they can't prove you own the private key, but the legal system isn't always rational like this, especially when complicated technology/protocols are involved.  It's just a warning -- I would do it anyway because I really think the risk is virtually non-existent (at least until countries start explicitly trying to outlaw BTC), but it's something worth noting.
Pages:
Jump to: