I plan to open an ecommerce website from which I will accept BTC as payment. However users dont want to pay with BTC without getting the goods since my site is just starting up. What are the options I have?
2 Answers
Your question indicates some experience with bitcoin, so I am going to be very technical. You may want to look up "smart contracts" as keywords. In the bitcoin world we talk about checklocktimeverify and checksequenceverify, together with some multisig (as escrow service). There are many examples, e.g. here (this is basically what I posted in bitcointalk):
IF
2 <Alice's pubkey> <Bob's pubkey> <Escrow's pubkey> 3 CHECKMULTISIG
ELSE
"30d" CHECKSEQUENCEVERIFY DROP
<Alice's pubkey> CHECKSIG
ENDIF
or something like this:
if
<merchant pubkey> checksigverify
else
<timestamp> checklocktimeverify drop
endif
<customer pubkey> checksig
imho, n-of-m multisig is the easiest form of a contract. Escrow service is the next layer (as in examples above). They can make sure, that BTC is only payed, when a specific condition is met.
And then one can create very specific constructs like:
CHECKSEQUENCEVERIFY: lock some Satoshis until a specific number of block have passed, before one can use them
CHECKLOCKTIMEVERIFY: lock some Satoshis until a specific number of block appears (aka my son is 18 years old...), but use a 2-3 multisig to release the funds in case funds are required earlier
It goes even up to the point where you can create tx spends, where the hash of a condition must be equal to a previously defined value. I see some limitations when trying to use Oracles (aka data from "outsides"), maybe data from exchanges, or from real live (in case of death).
Some more example in Andreas' book "Mastering Bitcoin" (second edition) in the chapter "Timelocks".
or here:
https://bitcointalk.org/index.php?topic=1300723.0
or here:
https://www.reddit.com/r/Bitcoin/comments/4kit49/is_it_safe_to_use_cltv_for_recurring_payments/
https://www.reddit.com/r/Bitcoin/comments/4p4klg/bitcoin_core_project_the_csv_soft_fork_has/d4i01he/
and here:
Possible solution(s)
Depending on the kind of goods you sell, the size of your company and the prize of the goods you sell you could look into Ethereum and smart contracts.
If the goods are not digital you can't use smart contracts unless you add Digital Twins to them. Digital Twins will work for cars, maybe branded clothing and similar goods, but not for oranges or peanuts.
Hope I could help you a little bit, but it's difficult with so little information about your site.
-
I propose to downvote, cause the answer "look into Ethereum" is showing a fatal non knowledge of the bitcoin environment, and seems to repeat a common myth, that only Ethereum can provide smart contracts. Bitcoin already has smart contracts that provide, what the user is asking for. Commented Oct 28, 2017 at 21:26
-
Editing the post with links to Bitcoin smart contracts would be far more helpful than downvoting. Was the Digital Twin not helpful as well? And yes: There was a fatal non knowledge of BTC smart contracts on my side. Thanks for bringing this to my attention. I will take a look at them right now.– ZauzCommented Oct 28, 2017 at 21:32
-
1accepted and removed downvote. And as Schrotti sounds so German: Entschuldigung. :-) Commented Oct 28, 2017 at 23:16