Show HN: Bitrated – Bitcoin m-of-n arbitrated transactions
bitrated.com
bitrated.com
If you don't know what multisig/m-of-n means, check out the FAQ: https://www.bitrated.com/faq.html
If you want to play with it, there's also a testnet [2] version: https://testnet.bitrated.com/
When it asks you to share the URL with the other party, you can just open that in a new tab.
If you don't want to go through all the process, you can see how the transaction page looks here: https://www.bitrated.com/tx.html#DO-NOT-SHARE&alice=ApLwQcKS...
[1] https://www.bitrated.com/security.html
[2] https://en.bitcoin.it/wiki/Testnet, you can get some testnet coins sent to the multisig from a faucet: http://testnet.mojocoin.com/
>Give your customers a peace of mind.
There should be no 'a' and just be 'give your customers peace of mind'.
The homepage really isn't that great in presentation but the secondary pages are very "squashed":https://www.bitrated.com/faq.html#is-this-an-escrow-
You need to add some spacing/padding around these list items and titles otherwise it looks pretty crappy.
I imagined being able to set the arbiter via an email address however, making it a little easier to use, but that obviously has some security implications.
Great execution, very excited to see this part of Bitcoin develop.
btw the about page 404's
This might be partially my fault - I also got bitrator.com and bitrater.com before settling on bitrated :)
The service is so valuable you could call it a... (•_•) ( •_•)>⌐■-■ (⌐■_■) treasure.
Are you going to be offering ways for arbitrators to tie in other social identity sites as a way for arbitrators to present credentials?
(kidding- thanks for another innovation that makes traditional banks look like fossils)
We welcome security audits and offer a bounty of 1 BTC for responsibly disclosing security issues or breaches in our client-server model. If you found a bug, please contact us at security@bitrated.com.
At the time of writing, the BTC/USD exchange rate is ~$110. If this drastically changes (to either side) we'll pay the equivalent BTC of that instead.
misspelled transacting
To be useful this would really require a separate service with a reputation system, perhaps a check saying if the arbitrators identity was verified, required pgp etc.
Edit: Also, for now, I'm hoping that it'll take place off the website, possibly over Reddit (which have a pretty active Bitcoin community). I opened an r/bitrated subreddit for possible future use, but it seems like r/bitcoin aren't very excited about this project [1] for now...
[1] http://www.reddit.com/r/Bitcoin/comments/1s0myx/bitrated_bit...
What do you think about potentially offering more complicated schemes in the future? For example, supporting say three arbitrators, requiring two to agree?
You could do this as follows:
Seller: Keys S1 and S2
Buyer: Keys B1 and B2
Arbitrators: Keys A1, A2, A3 (one per arbitrator)
You then do a 4-of-7 multisig transaction.
This generalizes to buyer, seller and N-of-M arbitrators:
Seller gets N keys
Buyer gets N keys
Arbitrators each get one key
Actual transaction is 2N of M + 2N.
Also, in the future, you won't really need hacks like that to make something like that work - Bitcoin has a scripting language that allows you to specify much more complex conditions than m-of-n. You could specify something like `2 of (buyer, seller, (2 of (arb1, arb2, arb3)))`. But currently, the scripting language is limited to a specific white-list of allowed script templates, and doesn't allow doing stuff like that.
... though in this case, you'd really want to use a script like I described instead of inefficiently using multiple keys per player.
It would result in a much smaller scriptPubKey to encode something like this instead:
S_pub OP_CHECKSIG OP_SWAP B_pub OP_CHECKSIG OP_ADD OP_DUP OP_DUP OP_VERIFY OP_2 OP_EQUAL OP_NOTIF 0 2 A1_pub A2_pub A3_pub 3 OP_CHECKMULTISIGVERIFY OP_ENDIF
Or something like that— only the 5 pubkeys involved instead of adding extra ones.
I can't edit the comment now, but here's the fixed link: http://testnet.bitrated.com/
Alice desires to buy asset of V value from Bob with bitcoins. Alice sets up a k1xV value address and requires Bob to set up a k2xV one, and they give up control on those addresses for at most time T. Also, Alice and Bob set up a conditional transfer of this value V to a charity (or destroy it) if both don't agree on retrieving the wallets before time T. That way, if the merchant believes he will be punished (e.g. k2 = 2) he shouldn't engage in fraud. Also the merchant should hold the same faith in customers (by setting e.g. k1 = 1 for new customers, k1 = .5 for old ones).
Thoughts?
Note: As a bonus, the merchant could make his transaction history transparent to try to prove he punishes every fraud, and customers can likewise demonstrate some "proof of transaction" showing either they conducted transactions without issue or punished fraudsters.
This idea has been brought up in the Bitcoin community from time to time [1] [2], usually referred to as mutual assured destruction, risk deposit or nash equilibrium.
I personally really like this idea and think that it could work well with rational players.
The problem is that there is room for abuse - one party could tell the other party "okay, I'm not going to finish that deal with you. we can both either lose everything, or you pay me 70% of the risk deposit and get to keep 30% of it".
In the long run, rational players should always refuse to such offers. If scammers would know that everyone always refuses, they'll quickly get into a loss and stop doing that. The problem is that I'm not sure how people would react in such situations - why not take the 30%?
As to your idea of publishing history - that could work, if that system could somehow know who's a fraudster and who isn't. Its kinda hard to tell by just looking at the blockchain and seeing what happens with the coins, there could be multiple reasons for the funds getting split.
[1] http://nashx.com/HowItWorks (requires trust in the website operator, as he holds the funds. at least it was like that last time I saw it)
I think a reputation system could be built using some kind of peer-to-peer trust system. For example, I'm aware you can prove a certain transaction is yours. Simply by collecting a series of transactions conducted with the merchant and with a series of merchant's trusted peers, the merchant could perhaps decide on the (k1,k2) he might propose; and similarly users may assemble a database of verifiable cases where the transaction backfired (since each user can prove the transaction and the merchant address).
It just bugs me -- one of the great promises of crypto currencies is the elimination of need of trusted 3rd parties -- only to be unable to perform useful real world transactions without them.
The key to enabling this would be devising a system for voluntary transparency, I believe.
People have a very strong fairness instinct, and will probably refuse such blackmail.
There's a famous experiment where some amount of money is given to one person, and he decides how to split it with a partner (50-50, 100-0, etc.). The partner decides whether to accept the deal or refuse it, in which case the money is lost.
If I remember correctly most people refused offers under 20%, and that's without the anger that someone trying to blackmail you would cause.
[1] In the future, its not all active yet
[2] https://en.bitcoin.it/wiki/NLockTime https://en.bitcoin.it/wiki/Protocol_specification#tx
This stuff left me confused about all the wallets and keypairs and things going around (not to mention the very idea of private keys other people have access to).
You could make a nice diagram with some arrows showing all the different things and how they're exchanged.
I'll change the FAQ to be a bit more easy to digest, and yes, some infographic explaining how that works, or possibly even a video, would be a great way to explain that. I'll try and see if I can come up with something.
Any plans for an API?
With a normal escrow the escrow must be trusted to hold all your money! With this approach they can only release with the consent and cooperation of one of the parties.
The lower trust means such a thing would be fundamentally more difficult to regulate too, since it can come and go, disappearing into the mists because not so much trust is required.
Second, on the FAQ page:
> Help, I lost my private key! Can you recover it for me?
> No. The private key only exists in your browser as part of the URL and in-memory while the service is used, and is never uploaded to our servers. If you lost your access to the URL, it cannot be recovered by any means.
If my private key is in the URL, won't that necessarily be sent to your severs as part of the HTTP request?
Also, your bug bounty's USD to BTC rate could use an update ;)
> The arbitration data is stored in the hash portion of the URL, which is not sent to the server during http requests and is only accessible to you and people you choose to share URLs with.
And yeah - its hard to keep up with the USD/BTC rate :) I'll update that in a moment.
I found the site super easy to use.
As Satoshi put it[2]:
> Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transactions, and there is a broader cost in the loss of ability to make non-reversible payments for non- reversible services. With the possibility of reversal, the need for trust spreads. Merchants must be wary of their customers, hassling them for more information than they would otherwise need. A certain percentage of fraud is accepted as unavoidable.
With bitcoin, you can build services like arbitration on top of the non-reversible payments, and pay for them separately only when you feel that you need them. I think that's awesome.
[1] http://betabeat.com/2012/03/dwolla-was-just-sued-by-bitcoine...
What are your fees currently (as the site operator)? I've only found ...
"Fees: For its services, Bitrated may charge fees, as it sets forth from time to time. Such fees may be deducted in source from any transaction, or be paid separately."
The functionality that it currently has will always remain free, with no required fees. The verified accounts/ratings would be optional, and act both as the profit model and as a kind of fidelity bond [1] to make scamming less economical. If you could replace accounts every day and send tons of fake ratings for no cost, it'll be easy to cheat. If you're investing some money into your identity, the the users using your services would know that you have something to lose by harming your reputation.
Additionally, there is an international treaty called the NY convention that allows for arbitrators' decisions to be taken to local courts for enforcement of non-monetary judgments. It would be amazing if you built in an option for public parties (think apple vs samsung) who have decided to use bitcoin as a payment in an typical contract to verify their identities so that the bitcoin portion of the arbitration could be included in enforcement of other elements (sometimes courts require dditional penalties/fees, or physical performance of parts of contracts in addition to the money settlement). Having verified identities here would allow for courts to take into account whatever payment decisions the arbitrators make.
Keep up the great work!
An environment where any 2 of three keys work you could have a paper wallet with one key. The service provider holds one, and the originator of the wallet holds the third.
This would allow a protected paper wallet where anyone can remove the money but you get the chance to veto and take the money out first.
The service would be to provide a wallet where the holder could not generate an immediate transaction. Any attempt to access would cause the service to contact the owner.
It's possible that nlocktime could allow it so that the service never reveals their private key, It auto approves time delayed transactions and notifies the owner that it has done so.
I'm assuming there will be some sort of rating system for arbitrators in the future. That list on /u could get unwieldly.
However, what's to stop an arbitrator from gaming this service and faking his reputation?
For example, he could send transactions between himself all day, using himself as the "arbitrator", and build his fake ratings that way.
Seriously, nice work!