Bitcoin Forum
July 07, 2024, 08:19:32 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Automatic Monthly Payment  (Read 792 times)
Nicolas Dorier (OP)
Hero Member
*****
Offline Offline

Activity: 714
Merit: 661


View Profile
April 27, 2014, 12:26:56 AM
 #1

I want that my customer pays me automatically every month.
I thought about asking him to give its private key to an address where he will deposit the money.

This is not so much a security problem since he controls how much to put on the address (that is, the minimum), as well as, the ability to remove the money from the shared address if he wants to stop payments.
But sharing a private key does not seems very secure.

I was thinking about another solution : Asking him to spend and making an output with a multi sig that require only one of our public key.
He will not have to think about making the payment while always having the right to withdrawl the money.
However, this is a hard solution to explain to people, and I guess most wallet client does not support such thing.

What are current best practices for automatic monthly payment ?

Bitcoin address 15sYbVpRh6dyWycZMwPdxJWD4xbfxReeHe
poordeveloper
Hero Member
*****
Offline Offline

Activity: 896
Merit: 527


₿₿₿₿₿₿₿


View Profile WWW
April 27, 2014, 01:20:39 AM
 #2

The only easy solution is prepayment. That would also be true when using a wallet like Coinbase which accepts subscriptions - they require the Bitcoins to be deposited upfront.
If they give you the private key, they might as well just send you all the Bitcoins.

Anyway, if you give anyone your card no., they can charge you what they want (up to your limit), so I guess your private key idea is not bad. But definitely not easy to explain - and not something I'd agree to.

🎰 Bitcoin Casinos ⭐⭐⭐⭐⭐
.
🔵 Buy Bitcoin (Visa / Mastercard / SEPA / Bank Transfer / Western Union / MoneyGram / RIA)
Peter R
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
April 27, 2014, 01:23:44 AM
 #3

A Coinbase user can give a 3rd party permission to direct debit his account.  The user can easily revoke this permission with the push of a button.  For example, the Pounce App allows for "1 touch" ordering of merchandise by scanning a flyer and pressing "buy"; it directly debits the cost from you Coinbase account and then orders the product shipped to the address it has on file for you.  

A second method may be a m-of-n wallet where m=1 and n=2.  The user would retain 1 private key and the 3rd party would retain the other.  The user could deposit coins whenever necessary, and both parties could spend them.  I thought this might be useful for some kind of bitcoin debit card.  

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
poordeveloper
Hero Member
*****
Offline Offline

Activity: 896
Merit: 527


₿₿₿₿₿₿₿


View Profile WWW
April 27, 2014, 01:25:42 AM
 #4

A Coinbase user can give a 3rd party permission to direct debit his account.  The user can easily revoke this permission with the push of a button.  For example, the Pounce App allows for "1 touch" ordering of merchandise by scanning a flyer and pressing "buy"; it directly debits the cost from you Coinbase account and then orders the product shipped to the address it has on file for you. 

A second method may be a m-of-n wallet where m=1 and n=2.  The user would retain 1 private key and the 3rd party would retain the other.  The user could deposit coins whenever necessary, and both parties could spend them.  I thought this might be useful for some kind of bitcoin debit card. 
However I think the 2nd method would be basically the same as sharing the private key directly (the merchant would have access to all the funds at any time).

🎰 Bitcoin Casinos ⭐⭐⭐⭐⭐
.
🔵 Buy Bitcoin (Visa / Mastercard / SEPA / Bank Transfer / Western Union / MoneyGram / RIA)
Nicolas Dorier (OP)
Hero Member
*****
Offline Offline

Activity: 714
Merit: 661


View Profile
April 27, 2014, 02:20:48 AM
 #5

Peter R., I don't believe in web wallet, because I have no way to verify that I actually possess the bitcoins they say I have on my account. (They could just give a number and possess only 1% of all bitcoins they say they possess, as the current banking system does)
That's why I was more searching for a 100% bitcoin solution,

As poordeveloper is pointing out, a 1 of 2 wallet is basically the same as giving a private key.

So that is the basically only two solutions there is : private key sharing and 1 of 2.

Maybe an alternative would be to use the lock time of a transaction ? https://en.bitcoin.it/wiki/NLockTime
For a 12 month payment, the user can emit 12 transaction up front with LockTimes that unlock one transaction every month.
I heard that the lock time is not so well respected for now. Is it true ?

Bitcoin address 15sYbVpRh6dyWycZMwPdxJWD4xbfxReeHe
gagalady
Legendary
*
Offline Offline

Activity: 938
Merit: 1000


View Profile
April 27, 2014, 07:21:58 AM
 #6

If i understand It right what you want, you may ask Ritzgrandcasino, he has automatic payments every month for Its workers.
Peter R
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
April 27, 2014, 03:25:37 PM
 #7

Peter R., I don't believe in web wallet, because I have no way to verify that I actually possess the bitcoins they say I have on my account. (They could just give a number and possess only 1% of all bitcoins they say they possess, as the current banking system does)
That's why I was more searching for a 100% bitcoin solution,

As poordeveloper is pointing out, a 1 of 2 wallet is basically the same as giving a private key.

So that is the basically only two solutions there is : private key sharing and 1 of 2.

Maybe an alternative would be to use the lock time of a transaction ? https://en.bitcoin.it/wiki/NLockTime
For a 12 month payment, the user can emit 12 transaction up front with LockTimes that unlock one transaction every month.
I heard that the lock time is not so well respected for now. Is it true ?

Nicolas, I do not personally have experience using NLockTime. 

However, I think a 1-of-2 wallet may be more useful than it initially appears.  The difference between a shared private key and a 1-of-2 wallet is that it becomes provable which party spent the coins. 

Imagine that I offer a Bitcoin Visa card for my customers.  My customers deposits coins to a 1-of-2 wallet whenever they like and I authorize Visa payments depending on whether their balance is sufficient.  If a customer tries to buy a new bike for $1,000 with his Bitcoin Visa card, I will get an authorization request.  If he has sufficient funds, I spend the appropriate amount of bitcoins to an address under my sole control, and then authorize the payment.  Meanwhile, my customers can remove their funds at their discretion (and without my permission).

The reason 1-of-2 is better, is because now my customer can't claim that I stole his bitcoins.  If there is only a single shared private key instead, he could spend the coins but claim that it was me who spent them.  With a 1-of-2 wallet, it is clear who actually spent the coins. 

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
poordeveloper
Hero Member
*****
Offline Offline

Activity: 896
Merit: 527


₿₿₿₿₿₿₿


View Profile WWW
April 27, 2014, 03:55:58 PM
 #8

Peter R., I don't believe in web wallet, because I have no way to verify that I actually possess the bitcoins they say I have on my account. (They could just give a number and possess only 1% of all bitcoins they say they possess, as the current banking system does)
That's why I was more searching for a 100% bitcoin solution,

As poordeveloper is pointing out, a 1 of 2 wallet is basically the same as giving a private key.

So that is the basically only two solutions there is : private key sharing and 1 of 2.

Maybe an alternative would be to use the lock time of a transaction ? https://en.bitcoin.it/wiki/NLockTime
For a 12 month payment, the user can emit 12 transaction up front with LockTimes that unlock one transaction every month.
I heard that the lock time is not so well respected for now. Is it true ?

Nicolas, I do not personally have experience using NLockTime.  

However, I think a 1-of-2 wallet may be more useful than it initially appears.  The difference between a shared private key and a 1-of-2 wallet is that it becomes provable which party spent the coins.  

Imagine that I offer a Bitcoin Visa card for my customers.  My customers deposits coins to a 1-of-2 wallet whenever they like and I authorize Visa payments depending on whether their balance is sufficient.  If a customer tries to buy a new bike for $1,000 with his Bitcoin Visa card, I will get an authorization request.  If he has sufficient funds, I spend the appropriate amount of bitcoins to an address under my sole control, and then authorize the payment.  Meanwhile, my customers can remove their funds at their discretion (and without my permission).

The reason 1-of-2 is better, is because now my customer can't claim that I stole his bitcoins.  If there is only a single shared private key instead, he could spend the coins but claim that it was me who spent them.  With a 1-of-2 wallet, it is clear who actually spent the coins.  
You are right - there are differences, and it's a better solution than directly giving the private key. But the customer will only see you have as much control of the coins as (s)he has - so I don't think many customers will accept this as a solution.

NLockTime combined with 1-of-2 might be the perfect solution.

🎰 Bitcoin Casinos ⭐⭐⭐⭐⭐
.
🔵 Buy Bitcoin (Visa / Mastercard / SEPA / Bank Transfer / Western Union / MoneyGram / RIA)
upal
Full Member
***
Offline Offline

Activity: 165
Merit: 102


View Profile
April 27, 2014, 08:41:29 PM
 #9

If i understand It right what you want, you may ask Ritzgrandcasino, he has automatic payments every month for Its workers.

What you are talking about is automation of outbound payment, which is very much possible. But the requirement here is automation of inbound payment, like a merchant have on credit card payments. This is something inherently not supported by Bitcoin protocol and counted as consumer's advantage. Hence, even if n-lock is used, due to fund unavailability the payment may not take place.
Nicolas Dorier (OP)
Hero Member
*****
Offline Offline

Activity: 714
Merit: 661


View Profile
April 28, 2014, 04:13:35 PM
 #10

What you are talking about is automation of outbound payment, which is very much possible. But the requirement here is automation of inbound payment, like a merchant have on credit card payments. This is something inherently not supported by Bitcoin protocol and counted as consumer's advantage. Hence, even if n-lock is used, due to fund unavailability the payment may not take place.

Well, I'm not worried about the customer making the fund unavailable (which could happen for a bank account too), I am more worried that the customer forget to pay if it is not automated. (Not a problem if you have one customer, but it does not scale)
If you ask him to spend a 12 month paiement on a 1 of 2, you know that, except if he decides it, the paiement will be done.
On the merchant side, if the paiement is not done, you can stop providing the service, it makes unsubscription from your service very easy.
You just know that he needs to consciously decide it.

However, I think a 1-of-2 wallet may be more useful than it initially appears.  The difference between a shared private key and a 1-of-2 wallet is that it becomes provable which party spent the coins. 

Imagine that I offer a Bitcoin Visa card for my customers.  My customers deposits coins to a 1-of-2 wallet whenever they like and I authorize Visa payments depending on whether their balance is sufficient.  If a customer tries to buy a new bike for $1,000 with his Bitcoin Visa card, I will get an authorization request.  If he has sufficient funds, I spend the appropriate amount of bitcoins to an address under my sole control, and then authorize the payment.  Meanwhile, my customers can remove their funds at their discretion (and without my permission).

The reason 1-of-2 is better, is because now my customer can't claim that I stole his bitcoins.  If there is only a single shared private key instead, he could spend the coins but claim that it was me who spent them.  With a 1-of-2 wallet, it is clear who actually spent the coins. 

Excellent reason, I did not think about that. Many thanks.

But the customer will only see you have as much control of the coins as (s)he has - so I don't think many customers will accept this as a solution.

I am not so much worried about that, the monthly paiement is just a convenience that the customer can use if he does not want to worry about paiement. In my case, the customer will still be able to pay himself.
Today, customers give their card number to companies quite easily. If they are stolen, they will be reimbursed. With bitcoin, the customer get the proof that the business with which he deals took the money without permission (thanks to the 1 of 2), so he can sue pretty easily and get money back.

Bitcoin address 15sYbVpRh6dyWycZMwPdxJWD4xbfxReeHe
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!