Bitcoin Forum
September 30, 2024, 12:32:56 AM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 [146] 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 »
2901  Bitcoin / Armory / Re: Armory - Discussion Thread on: April 13, 2012, 04:20:07 PM
i have a question for you.

if i import one private key with 100 BTC into a fresh, new Armory wallet that has no deterministic addresses/keys generated yet and then immediately spend 1 BTC to a vendor, where do the remaining 99 BTC go?  i think you said there were some keys pre-generated?  if so how many and when would they run out before i have to generate more?

i actually think i remember you discussing this a way back.

Armory wallets should always be thought of a "deterministic wallets", and imported keys basically being a bonus feature.  If you spend money from any one of your keys (imported or not), its change gets sent to the next unused address of your deterministic wallet. 

I don't know what you mean by "run out" and "generate more".  The wallet is deterministic meaning that your paper backup provides the seed that allows you to generate an infinite number of keys, and that whole process is transparent to you (and repeatable).  You never "run out", and "generating keys" simply means retrieving the next key in the sequence based on the information on your paper backup. 
2902  Bitcoin / Armory / Re: Armory - Discussion Thread on: April 13, 2012, 03:03:04 PM
i just have to ask this even tho i trust Alan implicitly otherwise i wouldn't have given him so much money.

has any other coder looked to verify that private keys are in fact not being transferred to the online watching wallet by mistake or something?

i only bring this up b/c i did my first offline tx last nite and it worked perfectly but then realized i really am trusting that the watching wallet is in fact just that; a watching wallet.

don't take offense Alan.  this is just part of my paranoia and due diligence since i can't do it myself.

No offense taken.  I would like others to look at it and sanity check things.  I've done quite a bit of it during unit testing, but I wouldn't mind having some others vouch for it, too.

I have documented my wallet files which should make it easy to spawn a watching-only copy of one of your wallets and examine the binary of the *.wallet file.  The 32 bytes where each private key is stored should be all zeros. 

In a PyBtcAddress serialization, the private key starts 108 bytes into the 237-byte field.  In your wallet file, the root key starts 846 bytes from the beginning of the file, meaning bytes 954 to 954+32 should be zeros in your watching-only wallet. 





2903  Bitcoin / Development & Technical Discussion / Re: TX replacement and nLockTime on: April 12, 2012, 07:34:20 PM
I see three options for who should get the double spent amount:

1. The first transaction - Currently working OK, although imperfect incentive for miners, and double spending still possible with race attack.

2. The highest fee double spender - Aligned with miner incentive, but rewards double-spending even more.

3. Neither, the miner gets it automatically - Aligned with miner incentive, trumps fee bribe, and removes all incentive to double spend. See https://bitcointalk.org/index.php?topic=76276.0


Can you remind me how "the miner gets it automatically"?  I think it would be a totally unacceptable change to allow coins to be transferred to a party/script that was not signed by the originator.  i.e. AddrA signed a tx to go to AddrB, but instead the network allows it to be awarded to AddrC.   I don't see how there's even a hint of feasibility in this idea, unless I'm misunderstanding the proposal...

There's also some legit reasons a tx might end up appearing to be a double spend, even though it's not.  Programmatically, it would be impossible to distinguish those cases, and miners would have free reign to eat up any such transactions anyway.


2904  Bitcoin / Development & Technical Discussion / Re: TX replacement and nLockTime on: April 10, 2012, 07:25:34 PM
FWIW, I completely agree with Gavin on this. As long as a transaction is valid, the rules should be ones that maximize miner profit so that miners play by the rules and transaction participants can know what to expect. If there's a conflict between rules and miner profit, transaction acceptance is not deterministic because you don't know whether a miner is playing by the official rules or the profit maximizing rules.

My concern is that we need to make sure people know not to trust unconfirmed non-multisignature transactions. If even some miners are taking final transactions in their memory pools and replacing them with double spend transactions having bigger fees, transactions have a significant chance of being reversed before they're confirmed.

This further cements Bitcoin's position as a settlement network, creating the necessity to create clearing mechanisms on top of it as recently mentioned by genjix. But enabling transaction replacement in this way can also make it easier to create such clearing mechanisms.

I am swayed.  Otherwise we're trying to swim upstream.  I just didn't like the idea that anyone can replace their not-in-the-blockchain-yet tx (final or not) just by submitting one with a bigger fee.  It seems to make the zero-conf tx even more useless than before.  On the other hand, maybe it's a good idea to do that and cement zero-conf tx as totally useless outside of the pure-trust tx (at least before, the person has to inject a replacement into the blockchain, not just broadcast it). 

2905  Bitcoin / Development & Technical Discussion / Re: TX replacement and nLockTime on: April 10, 2012, 04:49:54 PM
Either way will work. Just make sure they can't do this, like with 4 inputs:
0xfffffffe-0xfffffffe-0xfffffffe-0xfffffffe
0xfffffffe-0xfffffffe-0xfffffffe-0xffffffff
0xfffffffe-0xfffffffe-0xffffffff-0xffffffff
0xfffffffe-0xffffffff-0xffffffff-0xffffffff
0xffffffff-0xffffffff-0xffffffff-0xffffffff

Final replaces non-final is simple to implement, just add to the replacement conditions:
  if (!IsFinal())
      return false;

In other words, replacement is only allowed if you're replacing with this:
0xffffffff-0xffffffff-0xffffffff-0xffffffff

The only difference between this and blueadept's way is whether the lockTime transaction can get into the pool ahead of time, or they have to wait until lockTime to broadcast it (if they're still around by then).


Good point about the multi-input seq numbers.  I forgot they are per-TxIn, not per-Tx (like nLockTime).

Gavin and I debated your last point the other day, because we were determining if it was possible to have a "Seller automatically gets payment after 31 days" in escrow transactions, in case the buyer is too lazy to sign the escrowed Bitcoins to the seller.   What we determined is that if the locktime is in the future and any one sequence number is non-maxxed, then the tx will be accepted to the memory pool but not included in a block.

What this gives is you a very inconvenient implementation of what you have already proposed.  It is replaceable but only if you get a miner to agree to drop the locked tx in their memory pool and accept your final replacement tx.  If they have enough mining power and there is enough time, your tx will eventually make it into a block and invalidate the locked tx in all nodes' memory pools.

The issue, of course, is that it's not really feasible to have regular users contacting miners to help them replace tx like this (in the event that the seller broadcasts the 31-day tx right away, hoping the buyer can't figure out how to replace it).  Also, I didn't like the idea that anyone would be able to bribe a miner to replace their 0-confirmation tx.  But that's a whole 'nother story...
2906  Bitcoin / Armory / Re: Armory - Discussion Thread on: April 09, 2012, 04:29:59 PM
Is there any way to add public keys to a watching-only wallet?

I want to monitor some addresses on a web wallet from inside Armory.  For now, I imported the private key, turned the wallet into a watching-only wallet, and then flagged it as owned by someone else.  This works fine for now, but is a bit too many steps and a pain to do again if I add more keys.

Red Emerald,

I had some reservations about enabling this.  While it's possible under the hood, there's risk of users adding watching-only addresses to the wallet, in a variety of ways.  The most important is that someone sneaks their own address into your wallet then sends you money to it making you believe that it's yours.  This is normally prevented due to requiring an encryption password to inject keys into your regular full wallets.

Also, mixing regular wallets with foreign keys can create lots of confusion the same way:  users add addresses on their own for a variety of reason, and then forget or don't realize what they're doing, and trick themselves into believing they have more money than they do.  it can be a mess, later, to figure out what keys are "legit" and which aren't (without comparing the WO wallet with the full wallet addr list).

This way, the only way to add an address to a wallet is by the person that has the private key for that address.  It's quite inconvenient (as you determined), but adds a certain robustness for users that are less knowledgeable.

I'll spend some time thinking about how to enable this responsibly.  Perhaps only in Dev mode...?   (though it doesn't solve the problem of someone sneaking a key into your wallet)
2907  Bitcoin / Development & Technical Discussion / Re: TX replacement and nLockTime on: April 09, 2012, 04:10:15 PM
Another possible temporary fix would be to enable only a single replacement: final replaces non-final. That would allow a single lockTime transaction for expiration default, and is only one line of code without getting into all the issues. It's stupid that a lockTime transaction can sit in the pool and block a final transaction that trumps it.

For that, you just set sequence numbers to 0xfffffffe.  The maximum value is 0xffffffff, which means that there's only room for one replacement before the tx becomes actually-final.

EDIT: The point was, that you could make a or node-acceptance rule that only allows replacement on seq=0xfffffffe instead of any value
2908  Bitcoin / Development & Technical Discussion / Re: Bounty proposal for a Bitcoin-based email to fight spam. on: April 09, 2012, 04:08:20 PM
The problem of fighting spam is not an economic one, it's about segregating and classifying mail streams correctly.

I work on the Gmail abuse (outbound spam) team. Forcing people to pay with money or resources to send spam will not work. The bulk of spam leaving Gmail these days comes from compromised accounts that are being accessed from compromised computers. At no point does the spammer ever use their own resources. Your scheme would just push even more pain onto victims of poor security practices.


When attackers get a hold of a normal CPU they can use it to send email or (I guess) sell it to someone who will use it to send email. When they get a hold of Bitcoins they can use them for tons of other things, they won't squander the coins they find/steal on something worth less than the coins because they didn't pay for them. Just set the price above value and almost all spam would stop.

But still 99.999% of people don't have coins so you'll have to see and whitelist all unknown address email anyway... so not workable now I think.


A straight proof-of-work system would actually be usable if Mike Hearn hadn't pointed out that spammers frequently are not limited by resources.      It would be very easy to make a email plugin that calculates a PoW for all outgoing mail and verifies it on all incoming mail.  And, it would only unblock incoming mail instead of rejecting stuff that didn't use it.  It could sit mostly-usused until it is widespread enough that people could start scaling down their regular spam filters knowing that all their legit mail will have a PoW.

The other advantage of PoW is that it doesn't require money.  My concern with a micropayment scheme is the ease with which people will figure out how to empty your email wallet and thus not let you send mail, or the complication of typing in your password in just to send an email, because you want to avoid the previous inconvenience.

I'm personally starting to believe that this is theoretically a great idea, but fails in practice.  In many ways...
2909  Bitcoin / Development & Technical Discussion / Re: Bounty proposal for a Bitcoin-based email to fight spam. on: April 09, 2012, 01:29:21 PM
On the micropayment issue there already are non-payment proposals to prevent spam involving PROOF OF WORK.  Essentially when someone emails you then need to performs a certain amount of work (few seconds of CPU time on avg computer) and sign the email.  The main problem is the network effect.  If only 1% of your legit emails are using such a system it isn't effective.

Most spam solutions would work if they had a large enough network effect.  By using Bitcoins you are simply swapping coins = manifestation of work already completed with direct proof of work.  The same network effect limit exists.  So even if you accept that generally speaking PROOF OF WORK is a valid defense against spam you have to look carefully at the INCREMENTAL BENEFIT and INCREMENTAL COST of using bitcoins vs native proof of work.

Many years ago I was a proponent of the pay-for-email scheme, and thought it was a brilliant idea.  I never thought of it again since Bitcoin became real, so I was excited to see cbeast's recommendation.  But I do agree:

(1) That's a lot of transaction volume on the network.  I think Bitcoin clients needs to have better blockchain management/pruning schemes before anything like this could ever be attempted.  Or find a way to aggregate the payments (like the hashcoin solution involving locktimes and replacement, so that you can make thousands of micropayments off network, as long as both parties have a persistent financial relationship...)

(2) DeathAndTaxes is absolutely right.  The Bitcoins are kind of an roundabout way to solve the problem:  might as well just use proof-of-work directly.  I like the idea of requiring emails (with sender, recipient and date) to require a nonce that gives the hash of the email X leading zero bytes.  In Bitcoin, X=4 is the same as difficulty-1 calculation.  Even if it was just X=2 or 3, most computers and devices can do that computation very quickly.    

Either way, users would need to make sure that their ISP or email server supports this.  I could see many midstream providers implementing this, then selling out to allow a single proof-of-work to distribute multiple emails for some BS reason that doesn't make sense to anyone but the spammers.

Actually, I can think of one legitimate reason:  if you write a lot of emails on your smartphone, having any proof of work acceptable for desktop computers would probably take a few seconds and quite a bit of battery life.  So perhaps, the data service provider skips the check or performs proof of work for you for a fee?  But then that would quickly turn into a game of making exceptions to the PoW rules that spammers will learn to exploit.

I don't know, but there's a lot of possibilities here.  Whether you're paying in computation time or money, it's very easy to find a threshold that is basically transparent to the majority of legitimate users sending <20 emails a day, but is prohibitive to the spammers sending millions.

EDIT:  Hell, we don't even need Bitcoin or anything else to sign onto the idea of using proof of work.  Your email client could do it all for you (since verifying PoW is super-fast, and a scrypt-like CPU "hasher" is easy to implement in arbitrary software).  Once a certain level of adoption is reached, you could just turn off your ISP spam filter entirely and your email client filters out everything that doesn't have PoW.
2910  Bitcoin / Armory / Re: Armory - Discussion Thread on: April 09, 2012, 04:07:18 AM
Foxpup, thanks for the feedback.

Certain things like color schemes and layouts, and certain robustness features, were overlooked in the first [major] release of Armory, I didn't even know if I'd ever finish the damned thing -- so I didn't spend much time polishing things.  This is definitely something that will be addressed after beta...

Not to mention that the color scheme stuff is not actually that hard.  I don't think I have a need to deviate much from the user's palette, which is available pretty easily within PyQt.  I just have to study up on what all the palette colors are and try to match (and probably slightly modify per your suggestion) to my application design. 

Similarly, the two-Armories-open-at-once thing can be fixed, but it's something I didn't even think about until now.  It is definitely high priority... it's actually already done in my dev code, and it will make it into the next minor release.

I'll see what I can do about changing the behavior for offline mode:  for now you can test it yourself:  https://github.com/etotheipi/BitcoinArmory/blob/master/ArmoryQt.py#L535 .  Look for "timeout" and change it to 5 or 10, or whatever seems appropriate. 
2911  Bitcoin / Development & Technical Discussion / Re: Buyer-Seller Escrow Transactions (with or without 3rd-party) on: April 08, 2012, 04:09:06 PM
I just realized one complication -- the 2-of-2 tx (or 2-of-3) has to be created and fully signed before any of the spending tx can be created -- because they need the tx-hash for the 2-of-2 txout, which won't be available until all signatures are collected.
Yes, if Bob puts in a deposit it adds a step internally.

I think for this to have a reasonable user-interface Alice and Bob's bitcoin clients will need to communicate in real time.

My inclination is to add JSON-RPC methods to bitcoin-qt/bitcoind to support this, and not build it into bitcoin-qt's GUI (or at least not right away). I'm imagining Armory or little "let's make a deal" 2-party-escrow-apps that... Do The Right Thing.

Random UI thoughts:

Alice could be asked "How much do you trust Bob?"  and "How much do you think Bob trusts you?"  If an answer is "not at all" then propose an escrow that requires a substantial deposit.  If the answer is "a lot" then maybe no deposit is required. It'd be way spiffy cool if it was automagically tied into the #bitcoin-otc web of trust sytem...

(... more random thoughts: would IRC as the communication mechanism under the covers be a good or bad idea?  might be a convenient way to prototype...)

I'm imagining Bob gets the details of the proposed escrow and can either agree or disagree (maybe with a message to let Alice know what he WOULD agree to).

As for Bob's deposit adding a step:  I guess Bob-zero-deposit could remove a step if Bob posts his public key as part of his advertisement.  But Alice has to send Bob a message and receive confirmation from Bob that he's still selling the item, anyway.  Even if she expects 0 deposit from Bob, she doesn't want to dump her money into a 2-of-2 or 2-of-3 until she's sure that Bob hasn't already sold the item.

But arguably, if this all has to get dumped into a bunch of opaque binary transfers between clients.  At that point, I guess it doesn't really matter.  3 vs 4 is immaterial (right?). Unfortunately, networking is not my forte.  There's a reason I rewrote everything in Armory except for the networking (and of course, because it's big and scary).  I will have to defer the creation of the protocol to others, and then follow the implementation in Armory.  (like verifying a mathematical proof instead of proving it myself)

So, I think we're in agreement that the clients will have to communicate in some fashion.  How difficult will it be to setup the communication?  Will it require extra steps, such as one person sending the other their IP address?  Or an IRC name?    Then it sounds like the method we define in this thread will not be so sensitive to the number of "hops" unless each hop requires confirmation from the user.  But I think the client can be made to have the user click once what their preferences are, and then the client apply all operations in sequence as long as each step completes/verifies successfully.  If Bob doesn't sign the DISPUTE/MAD tx, the client will not broadcast the multi-sig, etc.    However, that comes with the risk that the client handshakes and processing sequence have a vuln in them...

So there's still questions about whether deposits are necessary (sound like yes, but may be 0% in some cases) and whether there is a LAZY_ALICE tx (sounds like yes, but need to have a dumb-user-capable way for Alice to MAD the money after Bob prematurely broadcasts it).






2912  Bitcoin / Armory / Re: Armory - Discussion Thread on: April 08, 2012, 02:36:52 PM
I knew this was going to bite me some day.  My PyQt book spends a lot of time setting colors based on the user's palette, but it's a lot of extra work!  

Once I get Beta out, I'll switch to development on a 1280x768 screen with a dark user-theme.  That will force me to fix colors and layout.

therefore, to properly make a paper backup of an imported wallet or a wallet with individual imported keys, one needs to do both a Make Paper Backup AND Backup Individual Keys.
the only way to make a complete backup in one step currently in Armory is to Make Digital Backup which backs up everything, both the deterministic and imported.

Per cypherdoc's suggestion (via PM) I will merge these both into a single backup interface and have a single print option, so that you can print both root/chain data, and imported keys.  It definitely makes sense to put it in one place, and reduce user confusion about what they are actually accomplishing.

Ugh, so much to do!


P.S. -   amincd:  I don't even have a twitter account!  I like the btctip idea, but I'm just not one of those people.  Please use the donation address in my sig.  Thanks!
2913  Bitcoin / Armory / Re: Armory - Discussion Thread on: April 08, 2012, 04:17:43 AM
Please please please do not open Armory twice!  All my super-fancy corruption-resistant, auto-error-correcting wallet files were *not* designed to be accessed simultaneously by two processes.
This is irony right? I can never remember what is irony and what is just sad and funny.

Is it?   The fancy anti-corruption features were intended to guarantee against corruption due to process crashes or power outtages.  No matter what nano-second your computer loses power, your wallet will either not be corrupted, or will be automatically restored from a non-corrupt backup.  And it's been pretty thoroughly tested.  The thought never entered my mind that someone would have two instances of it open! (maybe I should've...)
So you put in a bunch of code to protect the wallets from corruption, but if you open Armory twice, that fancy code can actually lead to corruption. I think irony is the right word.

Any file that is constantly modified by two processes at once is at risk of being corrupted in unpredictable ways.   I'm not sure there's anything special about my code that does it.  It's more the fact that I never put in any extra code/locks to protect against this situation.

I'm looking into file locks right now to see if I can prevent Armory from opening twice.  Looks like it needs some OS-specific code....
2914  Bitcoin / Armory / Re: Armory - Discussion Thread on: April 08, 2012, 04:12:09 AM
Please please please do not open Armory twice!  All my super-fancy corruption-resistant, auto-error-correcting wallet files were *not* designed to be accessed simultaneously by two processes.
This is irony right? I can never remember what is irony and what is just sad and funny.

Is it?   The fancy anti-corruption features were intended to guarantee against corruption due to process crashes or power outtages.  No matter what nano-second your computer loses power, your wallet will either not be corrupted, or will be automatically restored from a non-corrupt backup.  And it's been pretty thoroughly tested.  The thought never entered my mind that someone would have two instances of it open! (maybe I should've...)
2915  Bitcoin / Armory / Re: Armory - Discussion Thread on: April 08, 2012, 01:10:05 AM
all the bugs i mentioned to you last night were in 0.61 (alpha) Ubuntu version namely:

1.  multiple instances of Armory open simultaneously.
2.  truncated displays in fund balances like psy mentioned.
3.  freeze when multiple instances of Armory are open.
4.  -0.00000001 balance displayed (nothing in wallet)


Please please please do not open Armory twice!  All my super-fancy corruption-resistant, auto-error-correcting wallet files were *not* designed to be accessed simultaneously by two processes.  It's on my list for BETA, to make the application a "singleton" which means that it will detect other instances of Armory being open when you try to start it and refuse, if necessary.

And along with all the 0.70+offline bugs I have mentioned, I have fixed the -0.00000001 balances in offline mode.  It should now display nothing when in offline mode.

Layouts on small screens... I'll devote some time to that after getting address books implemented.
2916  Bitcoin / Armory / Re: Armory - Discussion Thread on: April 07, 2012, 10:21:41 PM
ACK!  Heads up, I totally flaked on my quality control, and didn't do testing with the new RAM-Reduction + Offline mode.  Strictly speaking, you can execute offline transactions with 0.70, but any other wallet management is a disaster!!!   Like really bad!

I apologize to cypherdoc, who has been complaining endlessly of things not working in offline mode, and I just assumed he didn't know what he was doing!  Smiley  Sorry Cypher!

If you want to setup an offline system, us 0.60 or 0.61.  I'll be making a new release soon, though, fixing this along with (hopefully) bulk-address-import, and address books!  

2917  Bitcoin / Development & Technical Discussion / Re: Buyer-Seller Escrow Transactions (with or without 3rd-party) on: April 07, 2012, 08:42:43 PM
You're right -- these days, sellers have incentive not to do shady stuff because they have a reputation, and likely have some degree of legal accountability because someone (usually the third-party) knows their identity.  Most of that is because sending money over the internet has always required a third-party.  It just so happens that in this case the third-party can arbitrate.

But Bitcoin is different -- the third party to hold the money is no longer necessary (or rather, it's the Bitcoin network).  So if you can find a way to eliminate the chance of needing arbitration, then why bother paying a third-party at all?  That is the Bitcoin way.  Of course, you won't eliminate it entirely, but I bet there's a way to reduce it enough for the MAD option to be like real MAD:  no one really ever uses it, but the threat that a party could use it is enough to keep people playing fairly.  

I think some combination of things Gavin and I are discussing add a lot of value for knowledgeable users, even if it's awkward and different.  For users that can't grok it, they can always just do it through the third-party, as usual.  



Gavin,

I just realized one complication -- the 2-of-2 tx (or 2-of-3) has to be created and fully signed before any of the spending tx can be created -- because they need the tx-hash for the 2-of-2 txout, which won't be available until all signatures are collected. That means I see a minimum of 4 "hops" for tx data:

(1) Alice contacts Bob saying "I'll buy this, here's some public keys"
(2) Bob creates the 2-of-2 tx (with SIGHASH_ANYONECANPAY), signs it and sends to Alice  (Bob can't create any spending tx until he gets Alice's sig)
(3) Alice signs the 2-of-2 and doesn't broadcast -- Creates and signs REFUND && LAZY_ALICE, sends to Bob
(4) Bob stashes REFUND and LAZY_ALICE, creates and signs DISPUTE/MAD and SUCCESS, sends to Alice

That's a lot of hops.  The nice thing is, Alice (who has the most money at stake) can hold onto the 2-of-2 and not broadcast it until she gets DISPUTE and SUCCESS signed from Bob.  That gives her a way to avoid locking her money until she at least has the power to MAD the money.

Sounds like there has to either be a third-party server to post data for each other to exchange, or direct-connect.  I don't like either idea.  It's a shame we finally have a way to send money conveniently, but no easy way to exchange all the data for this.  All solutions so far seem to be 80% solutions...


2918  Bitcoin / Development & Technical Discussion / Re: Buyer-Seller Escrow Transactions (with or without 3rd-party) on: April 07, 2012, 03:04:16 AM
The asymmetry is that Alice is the only one with anything at risk.  Maybe Bob is just bored and wants to laugh about people losing money, so he starts advertising stuff he doesn't actually have.  When the person commits money, he delays a bit, then broadcasts LAZY_ALICE.  Worst case (for Bob), he doesn't get anything and gets his laugh.  Best-case, Alice can't figure out how to DISPUTE, and Bob actually gets some money!  Sweet game!  

Alice and Bob sign a contract, Bob is to ship good X, Alice is to provide money. Bob holds 'Lazy_Alice', and Alice holds 'Dispute'. Bob ships the item and forwards the tracking number to Alice. Alice uses 'Dispute' to get most of her money back. What does Bob do?

That's why Gavin suggests that DISPUTE is actually a send-100%-to-tx-fee.  Then no one gets the money, but it does get recycled.   And that's why I recommended deposits, so that both parties have a mutual incentive not to do shady stuff.  If it costs them money to be a dick, there will be a lot less dickery.


The part that you're missing is that the Bitcoin network is offering a dramatic improvement over something that happens all the time -- people trust completely random strangers over the internet, endlessly.   And for those people, one party has to assume all the risk: Alice sends money first, or Bob sends merchandise first.  

But now the Bitcoin network can act as very dumb-but-strict escrow and split some of the risk between the two parties that choose to trust each other anyway.  Perhaps because they wish to preserve their own privacy, or simply don't feel like registering with a third-party.   I agree that for "full 100% guarantee" you need a third-party. But that doesn't mean that there is 0% value in using the scripting capabilities of the network to improve the non-third-party case.



Gavin,

I still think a risk deposit is necessary here.  Even if DISPUTE goes to the miners, Alice may just be bitter that her new merchandise is crappy quality and issue DISPUTE to spite Bob.  She doesn't get any money back either way, so what does it matter to her whether Bob gets it or the miners get it?

By the way, another problem with it:  if Alice has a lot of mining power, it's very +EV for her to pull the DISPUTE trigger, since she's would get something back instead of nothing.
2919  Bitcoin / Development & Technical Discussion / Re: Buyer-Seller Escrow Transactions (with or without 3rd-party) on: April 07, 2012, 01:38:00 AM
Well, if DISPUTE is a fee-only transaction then miners have a VERY strong incentive to drop LAZY_ALICE and mine DISPUTE instead. I don't think we'd have trouble asking miners to support a code change that is something like:
I'm less concerned about miners not agreeing to it, than the complexity of making sure the arbitrary user has access to a miner that will do it for them.  Maybe it could just be a rule that most miners will adopt, but something doesn't sit right with me about most miners accepting conflicting zero-conf tx just by including a bigger fee.  Maybe zero-conf tx have very little value right now, but they'll have even less once anyone can start canceling their outgoing [zero-conf] tx on a whim...


etotheipi, I've been thinking about your comment "I don't like the asymmetry" ...
LAZY_ALICE and DISPUTE are, I think, symmetric-- Alice holds DISPUTE in case Bob doesn't hold up his end of the bargain, Bob holds LAZY_ALICE in case she doesn't.  I proposed that DISPUTE have an earlier lockTime than LAZY_ALICE, but maybe that's not necessary.

If Alice really doesn't trust Bob, then I think the whole scheme also works if Bob puts a "good faith security deposit" of bitcoins into the mix.

The asymmetry is that Alice is the only one with anything at risk.  Maybe Bob is just bored and wants to laugh about people losing money, so he starts advertising stuff he doesn't actually have.  When the person commits money, he delays a bit, then broadcasts LAZY_ALICE.  Worst case (for Bob), he doesn't get anything and gets his laugh.  Best-case, Alice can't figure out how to DISPUTE, and Bob actually gets some money!  Sweet game! 

I mean, people could do this now, though it would catch up to them eventually.  With Bitcoin, it's a lot easier to hide your identity, so there's almost no risk for Bob to do this. 

And so I'm coming around to your point about complexity and awkwardness of something like a Bob-deposit.  I agree, the further we deviate from what people are already used to, the stranger and more-confusing it will be.  At the very least, if we were to do something like risk-deposits, bitcoin.org could have an education section so users have some trusted place to go when they say "wait? I have to put in money as the seller?  sounds like a scam!"


The complexity of all this (5 possible transactions, different states the escrow can be in, initial communication to initiate the escrow) makes me nervous. Even just figuring out how Alice and Bob's clients talk to each to setup the escrow isn't obvious.

Yeah... I don't think anything is going to be easy about it, besides minimize the number of exchanges between parties.  Right now, I want to get anything that works, and let the knowledgeable users get their hands on it, play with it, break it, and figure out how it can be improved.   As you said, it'll be easier to know what people like when we see if they use it.
2920  Bitcoin / Development & Technical Discussion / Re: Buyer-Seller Escrow Transactions (with or without 3rd-party) on: April 06, 2012, 10:20:20 PM
I'm sorry guys:  it is not acceptable to have to share my personal information and transaction details with the entire Bitcoin network, or any subset thereof, just to have my transactions arbitrated.  If I'm going to pay anyway, I expect a privacy agreement and someone who will exercise due diligence in arbitration -- which may involve contacting both parties and collecting documentation.  I just don't think a random-user voting scheme is part of this solution.

There may be a place for it, but it's not a general solution to the problem we face here.  
Pages: « 1 ... 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 [146] 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!