Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1VnrBY-0006Ti-9l for bitcoin-development@lists.sourceforge.net; Tue, 03 Dec 2013 14:42:48 +0000 Received-SPF: pass (sog-mx-1.v43.ch3.sourceforge.com: domain of quinnharris.me designates 67.223.164.214 as permitted sender) client-ip=67.223.164.214; envelope-from=btcdev@quinnharris.me; helo=fza.durangomail.com; Received: from fza.durangomail.com ([67.223.164.214]) by sog-mx-1.v43.ch3.sourceforge.com with esmtp (Exim 4.76) id 1VnrBV-0007Gm-P4 for bitcoin-development@lists.sourceforge.net; Tue, 03 Dec 2013 14:42:48 +0000 Received: from localhost (localhost [127.0.0.1]) by fza.durangomail.com (Postfix) with ESMTP id A702B1E2240 for ; Tue, 3 Dec 2013 07:42:39 -0700 (MST) Received: from fza.durangomail.com ([127.0.0.1]) by localhost (fza.durangomail.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id z21cfgmAtPfT for ; Tue, 3 Dec 2013 07:42:38 -0700 (MST) Received: from localhost (localhost [127.0.0.1]) by fza.durangomail.com (Postfix) with ESMTP id D7B921E2242 for ; Tue, 3 Dec 2013 07:42:37 -0700 (MST) DKIM-Filter: OpenDKIM Filter v2.8.4 fza.durangomail.com D7B921E2242 X-Virus-Scanned: amavisd-new at fza.durangomail.com Received: from fza.durangomail.com ([127.0.0.1]) by localhost (fza.durangomail.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 2I-sb-cf_ZNs for ; Tue, 3 Dec 2013 07:42:37 -0700 (MST) Received: from [192.168.1.200] (186-107-99-134.baf.movistar.cl [186.107.99.134]) by fza.durangomail.com (Postfix) with ESMTPSA id 3B2F91E2240 for ; Tue, 3 Dec 2013 07:42:37 -0700 (MST) Message-ID: <529DEDDB.1090108@quinnharris.me> Date: Tue, 03 Dec 2013 11:42:35 -0300 From: Quinn Harris User-Agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: bitcoin-development@lists.sourceforge.net References: <5E4597E4-C1C7-4536-8CF0-82EDD7715DAB@plan99.net> <39921E12-B411-4430-9D56-04F53906B109@plan99.net> <05CEDEB4-BA29-4ED3-8CFC-D3504727DB4D@gmail.com> In-Reply-To: Content-Type: multipart/alternative; boundary="------------060805030306030803070402" X-Spam-Score: -0.6 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain -0.0 SPF_PASS SPF: sender matches SPF record 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: doubleclick.net] 1.0 HTML_MESSAGE BODY: HTML included in message -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-Headers-End: 1VnrBV-0007Gm-P4 Subject: Re: [Bitcoin-development] Floating fees and SPV clients X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Dec 2013 14:42:48 -0000 This is a multi-part message in MIME format. --------------060805030306030803070402 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit The merchant wants to include a fee to ensure the transaction is confirmed which is dependent on the fee per kilobyte, but they don't want to pay unexpectedly high fees. So what about including a min_fee_per_kilobyte and a max_fee in PaymentDetails describing what fees the merchant will pay. The sender would be expected to respect the min_fee_per_kilobyte but if the result exceeds max_fee the sender would be agreeing to pay the extra fee (exterior fees). The sender might also agree to pay fees in excess of min_fee_per_kilobyte. The sender would deduct the interior or merchant fees from the first output. The UI could show the payment "price" which would match the sum of original outputs. It would show the merchant fees (interior) and sender fees (exterior) if there are any. The UI should always show fees so users learn to expect them for all transactions. This should allow the merchant to pay fees in most cases while not having to pay excessive fees if the sender wants to use some large transaction. If max_fee is 0 the sender would be expected to pay all fees. On 12/03/2013 10:20 AM, Mike Hearn wrote: > On Tue, Dec 3, 2013 at 12:57 PM, Taylor Gerring > > wrote: > > Why should there be two classes of transactions? Where does paying > a local business at a farmer's stand lie in that realm? > Transactions should work the same regardless of who is on the > receiving end. > > > Lots and lots of people are psychologically trained to expect that > they pay the sticker price for things. Yes in recent times some places > have started to show additional fees for using credit cards, but only > as a way to try and push people onto cheaper forms of payment, not > because customers love surcharges. It's for that reason that many > merchants don't do this, even when they could - I pay for things with > Maestro Debit all the time and I don't think I've ever seen a > surcharge. That system obviously has costs, but they're included. > > This is just a basic cultural thing - when I buy something from a > shop, the social expectation is that the seller should be grateful for > receiving my money. "The customer is always right". When I send money > to a friend, the social expectation is different. If my friend said, > hey Mike, could you send me that 10 bucks you owe me from last weekend > and what he receives is less than 10 bucks, he would probably feel > annoyed - if I owe him 10 bucks then I owe him 10 bucks and it's my > job the cover the fees. That's why PayPal makes sender pay fees in > that case. > > Maybe we need new terminology for this. /Interior fees/ for included > in the price/receiver pays and /exterior fees/ for excluded from the > price/sender pays? > > Fees are only confusing because existing clients do a terrible job > of presenting the information to the user. In Hive Wallet, I'm of > the opinion that we should inform the user in an intuitive way to > let them make an informed decision. > > > Have you thought through the UI for that in detail? How exactly are > you going to explain the fee structure? Let the user pick the number > of blocks they need to wait for? What's a block? Why should I care? > Why shouldn't I just set the slider all the way to the other end and > pay no fees at all? Is the merchant going to refuse to take my > payment? Gavin just said that's not possible with Bitcoin-Qt. I'm > thinking for bitcoinj I might go in a slightly different direction and > not broadcast payments submitted via the payment protocol (and > definitely not have one wire tx pay multiple payment requests > simultaneously, at least not for consumer wallets). > > > > > ------------------------------------------------------------------------------ > Rapidly troubleshoot problems before they affect your business. Most IT > organizations don't have a clear picture of how application performance > affects their revenue. With AppDynamics, you get 100% visibility into your > Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! > http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk > > > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development --------------060805030306030803070402 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit
The merchant wants to include a fee to ensure the transaction is confirmed which is dependent on the fee per kilobyte, but they don't want to pay unexpectedly high fees.  So what about including a min_fee_per_kilobyte and a max_fee in PaymentDetails describing what fees the merchant will pay.  The sender would be expected to respect the min_fee_per_kilobyte but if the result exceeds max_fee the sender would be agreeing to pay the extra fee (exterior fees).  The sender might also agree to pay fees in excess of min_fee_per_kilobyte.

The sender would deduct the interior or merchant fees from the first output.

The UI could show the payment "price" which would match the sum of original outputs.  It would show the merchant fees (interior) and sender fees (exterior) if there are any.  The UI should always show fees so users learn to expect them for all transactions. 

This should allow the merchant to pay fees in most cases while not having to pay excessive fees if the sender wants to use some large transaction.  If max_fee is 0 the sender would be expected to pay all fees.

On 12/03/2013 10:20 AM, Mike Hearn wrote:
On Tue, Dec 3, 2013 at 12:57 PM, Taylor Gerring <taylor.gerring@gmail.com> wrote:
Why should there be two classes of transactions? Where does paying a local business at a farmer’s stand lie in that realm? Transactions should work the same regardless of who is on the receiving end.

Lots and lots of people are psychologically trained to expect that they pay the sticker price for things. Yes in recent times some places have started to show additional fees for using credit cards, but only as a way to try and push people onto cheaper forms of payment, not because customers love surcharges. It's for that reason that many merchants don't do this, even when they could - I pay for things with Maestro Debit all the time and I don't think I've ever seen a surcharge. That system obviously has costs, but they're included.

This is just a basic cultural thing - when I buy something from a shop, the social expectation is that the seller should be grateful for receiving my money. "The customer is always right". When I send money to a friend, the social expectation is different. If my friend said, hey Mike, could you send me that 10 bucks you owe me from last weekend and what he receives is less than 10 bucks, he would probably feel annoyed - if I owe him 10 bucks then I owe him 10 bucks and it's my job the cover the fees. That's why PayPal makes sender pay fees in that case.

Maybe we need new terminology for this. Interior fees for included in the price/receiver pays and exterior fees for excluded from the price/sender pays?

Fees are only confusing because existing clients do a terrible job of presenting the information to the user. In Hive Wallet, I’m of the opinion that we should inform the user in an intuitive way to let them make an informed decision.

Have you thought through the UI for that in detail? How exactly are you going to explain the fee structure? Let the user pick the number of blocks they need to wait for? What's a block? Why should I care? Why shouldn't I just set the slider all the way to the other end and pay no fees at all? Is the merchant going to refuse to take my payment? Gavin just said that's not possible with Bitcoin-Qt. I'm thinking for bitcoinj I might go in a slightly different direction and not broadcast payments submitted via the payment protocol (and definitely not have one wire tx pay multiple payment requests simultaneously, at least not for consumer wallets).




------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk


_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development

--------------060805030306030803070402--