liberapay / liberapay.com

Source code of the recurrent donations platform Liberapay
https://liberapay.com/
1.67k stars 215 forks source link

Cryptocurrencies #1994

Open Changaco opened 3 years ago

Changaco commented 3 years ago

I think it's time to close the discussions about specific cryptocurrencies (#364, #567, #1375) and replace them with a discussion of cryptocurrencies in general, because I don't think adding support for only one cryptocurrency would be a good thing, and because there is a fundamental question that needs to be answered: should Liberapay support cryptocurrencies at all?


To avoid some of the confusion seen in previous issues, I want to clarify that adding support for cryptocurrencies means for example being able to donate a specific amount of (milli)bitcoins. It doesn't mean having an option to “Pay with Bitcoin” alongside “Pay by card” and “Pay with PayPal” as if Bitcoin was merely another payment method.

I also want to remind everyone that in order to avoid legal issues Liberapay can't hold any funds. Supporting cryptocurrencies doesn't mean getting involved in cryptocurrency networks, it only means facilitating cryptocurrency transfers, and confirming them by looking at the public ledger.

caryoscelus commented 2 years ago

Arguably not simpler, as you need to rely on the beneficiary to do something on a regular basis,

well, yeah, although nothing stops one from generating thousands of addresses and forgetting about it for a while

you assume that they are okay with receiving multiple payments to the same address,

not really . that is only one option (and it wouldn't require doing something on regular basis)

and you assume that the donor wants to donate e.g. a specific USD amount rather than BTC amount

i simply described how it can fit into current model . please don't nitpick , the currency switch would be easier to implement than debating it

Extended public keys are already widely understood by crypto users, easily obtained, and designed specifically for this use case, hence the method I suggested.

i don't really know much about them , but yeah , the idea sounds good . i'd still implement a choice rather than forcing users to get to know this tech

jivanpal commented 2 years ago

i simply described how it can fit into current model . please don't nitpick

Nitpicking is important when it concerns technical implementation details. What if the donor only has precisely 0.001 BTC, and wants to donate that whole amount? Under your scheme, you would add some dust that the user is unable to pay.

i don't really know much about them , but yeah , the idea sounds good . i'd still implement a choice rather than forcing users to get to know this tech

As I said, getting an xpub is simple. In the vast majority of wallets, it's just a matter of tapping something like "Account details" and being presented with an xpub string and corresponding QR code.

toastal commented 2 years ago

https://stripe.com/en-be/use-cases/crypto

It appears Stripe will support cryptocurrency. This avoids some of the issues. To me, this is still problematic because Stripe doesn't support my local currency.

1over137 commented 2 years ago

https://stripe.com/en-be/use-cases/crypto

It appears Stripe will support cryptocurrency. This avoids some of the issues. To me, this is still problematic because Stripe doesn't support my local currency.

Doesn't seem like they'll support Monero, which is the only real "cryptocurrency" that is mainly used for transactions rather than speculation/scams. It is also privacy-preserving, which can come handy for many people. I actually don't think lp need to "support it". However, they should make it possible for projects to list XMR addresses alongside the current payment methods to encourage its use.

toastal commented 2 years ago

which is the only real "cryptocurrency"

Zcash is occupying the similar space for privacy and regardless they aren't the only ones either. I agree that having them cryptocurrency ran alongside is good for visibility and showing you accept it just as equally, but XMR is not the only place you can look.

dv0vd commented 2 years ago

Hi, everyone! I'd like to share my views on this issue. I extremely love BTC and in general, will talk about it.

To begin with, I'm an IT specialist and I like Open Source, so, I strongly believe that our future will be based on Open Source projects. As a result, I support some of them. However, I'm from Russia and due to recent events, I'm no longer available to make payments. I don't support the Russian invasion of Ukraine, but despite the circumstances, my point is that no one has a right to restrict other people from using payment systems. Yeah, today it's Russia, but who knows, maybe tomorrow it will be another country? Closing accounts of Canadians who supported truckers is a great example of this. Why should some politicians in suits dictate their rules to other people?

The main reason to start accepting Bitcoin is the freedom that it gives to us. It's like Open Source - thanks to that we are not required to use WhatsApp which collects and sells a huge amount of personal information, we just can set up our own Matrix Server and connect to it via the Element client, and so on. Open Source is about freedom and globalization because a lot of programmers around the globe create beautiful projects. Why should we create artificial borders and restrict people from donating Bitcoin - the really global and decentralized cryptocurrency? I just don't get it. You use PayPal for accepting fiat currencies, but can't use, for instance, Coinbase, for accepting crypto? It's a bit silly. If you don't like to store crypto - just convert it right during the payment and receive fiat currency. There is no difference for you, but for some people, it's the only way to support Open Source.

Also, we shouldn't forget about privacy - some people don't like to share their personal information, not even with Liberapay, but with banks, and I completely understand them, they have a right for that.

Finally, the last point is fees. There are still some critics that live in the past and believe that Bitcoin fees are high. What an absurd! Of course, on-chain transactions are expensive, but on-chain payments are not for everyday transactions. Just use Lightning Network, with extremely low fees. People from different countries now have an opportunity to forget about borders and send money to each other without any limits. It's like phones - several years ago we use only mobile networks or wired phones to call people, and it was extremely expensive to call someone who lived in a different city or country. But now we have the Internet, and we can't imagine how we lived in the past, because today we don't care about calls and messages - we have the Internet - the global network, and we have access to cheap calls and messages despite our geolocation (here we won't discuss prices for the Internet traffic - in general, it's cheaper to call via the Internet rather than mobile networks). And now we have the same situation with the economy. We have lots of different banks, fiat currencies, payment systems, different providers, and other stuff. Everyone takes their own fees, and also due to a large number of intermediaries, our transactions are not fast - sometimes it takes several days or even weeks to complete. But with the Lightning Network it takes only several secs to complete the payment and I even won't speak about fees, because they are almost like dust - we don't even feel them. Thanks to that network, I'm available to support creators from the USA being in Russia without any problems. This is the future. Trust me, in several years we'll look back and say "How did we live without this clear, honest, and global system?" as I said in the previous example with phones.

To sum up, I strongly recommend you implement crypto payments. This will definitely make it easier for people to make donations, and as a result, the developers will receive more money and will create better projects. Hope you think about it. I'm looking forward starting donations again via the Lightning Network soon!

ZelphirKaltstahl commented 2 years ago

I don't support the Russian invasion of Ukraine, […]

Great!

[…] but despite the circumstances, my point is that no one has a right to restrict other people from using payment systems. Yeah, today it's Russia, but who knows, maybe tomorrow it will be another country?

Most other countries are not currently invading foreign countries, spreading terror, shelling civilians, pillaging and raping people. Some other countries (not all) have learned from second world war. Putin's Russia has not, as is evident now. Too bad we did not listen, when 2014 some people warned us, what would happen.

Closing accounts of Canadians who supported truckers is a great example of this. Why should some politicians in suits dictate their rules to other people?

Are we really making comparisons now between state organized terrorism in a foreign country and a few truckers? Really? Maybe you don't mean it that way, but you are stepping on extremely thin ice with that analogy.

If you are against what happens in Ukraine, you could consider trying to change things in Russia. But that is of course highly dangerous and could earn you life in prison. So the masses in Russia are silent and do nothing, which allows the dictator to continue to do as he wants. Many even are so brainwashed, that they want this to continue. A better alternative than silence would be to vote with your feet and leave.

biskwikman commented 2 years ago

I think this topic can get pretty heated. But telling someone to emigrate to show they have the right politics strikes me as unhelpful and unserious. Not to mention it would be completely ineffective. I think dv0vd's makes the best case for supporting cryptocurrency there is. It has the potential to help regular people who are living in financially sanctioned countries and are suffering unfairly. And to get political for just a minute. It's not like Russia is the only country to have done this. People in the US were able to receive and send payments when the US invaded Iraq, for example. I can't see how punishing regular people in Russia helps a single Ukrainian.

However I still personally don't think supporting crypto is a good idea overall because it would be a lot of effort for currencies that have extreme price fluctuation and the and some of which seem to be blatant scams.

dv0vd commented 2 years ago

Too bad we did not listen, when 2014 some people warned us, what would happen.

I'm half Georgian, so, actually, the bell rang back in 2008.

Are we really making comparisons now between state organized terrorism in a foreign country and a few truckers? Really?

What are you talking about, of course, we can't compare these things. It was just an example that happened recently and I remembered, about the extreme power of governments that can destroy your life just by clicking fingers.

If you are against what happens in Ukraine, you could consider trying to change things in Russia. But that is of course highly dangerous and could earn you life in prison. So the masses in Russia are silent and do nothing, which allows the dictator to continue to do as he wants. Many even are so brainwashed, that they want this to continue. A better alternative than silence would be to vote with your feet and leave.

Yeah, unfortunately, the majority of the population lives in the alternative reality and supports these cruel actions - Pulter's propaganda has been constantly working 24/7 for more than 20 years. In Ukraine, there are about 150,000 Russian bastards, but inside Russia - almost 2 million (army, police, and other force structures) that nip dissent in the bud and have unlimited authority. People who understand what's going on can't change things, because they have absolutely no rights and, more importantly, don't have weapons to fight with this regime, so, it's impossible to change things from the inside. You can destroy fascism only from the outside, or from the inside, but the huge help from the outside. Regarding changing location - I successfully applied for the MS in the USA, but I can't go there, because my salary simply doesn't allow me to do that. In addition, we shouldn't forget about the tightening of visa issuance, so even if people want to make this personal protest, they just can't do this, because other countries don't allow them to do that. Actually, on the one hand, it's not a bad idea, due to the large amount of Russians who live in civilized countries, but support the Russian dictator and impose his narratives. But on the other hand, due to this policy normal people in Russia are being held hostage and just hiding from this regime.

However I still personally don't think supporting crypto is a good idea overall because it would be a lot of effort for currencies that have extreme price fluctuation and the and some of which seem to be blatant scams.

Yeah, indeed, the majority of cryptocurrencies (but for me all, except Bitcoin) are scams, but I don't see any problems to filter this list and start accepting the most popular and stable ones. Anyway, some people don't understand or don't want to understand crypto and, of course, we shouldn't make global changes, we should do it step by step. And that is why let me reformulate my request - please, add another payment provider. Look, you use PayPal or Stripe. Let's consider these systems as the black box:

If you don't want to store crypto - just convert it right during the payment. For instance, let's discuss Coingate:

So, the only difference here is that PayPal or Stripe works on the traditional system via banks, whereas Coingate works on cryptocurrencies. But the output of these systems is the same. There is no difference for Liberapay. Regarding price fluctuations - if you don't store crypto - it's not even a problem for you. The probability that prices change significantly during the 1 minute payment is extremely low. And even if prices change - I just pay another amount of crypto (so, it's my problem), and the receptionist gets the same amount. I rent VPS using vp2day.com - just look at these photos and how it's convenient and fast to pay with Bitcoin! Screenshot from 2022-09-02 22-24-14 Screenshot from 2022-09-02 22-25-21 Screenshot from 2022-09-02 22-25-43 You see, the price doesn't matter, vp2day converts it automatically to fiat and gets it! Fees are extremely low, and it takes to me about 10 sec to pay! I'm still hoping that in the future Liberapay implement this feature ASAP...

Killercat103 commented 1 year ago

Would really hope for Monero specifically. It's more of a currency than an investment compared to many. It's PoW but compared to the infrastructure required by fiat i wouldn't consider Monero so bad. Especially when it fights the efficiency of ASIC devices which is specialized hardware for the rich that cant be repurposed.

jorgesumle commented 9 months ago

You don't need a third-party like Liberapay to send or receive donations via cryptocurrencies. If I you want people to know you accept cryptocurrency donations, you can add your public wallet address to your Liberapay description. The less people and platforms know you donated to someone, the more privacy you have.

What Liberapay could do is provide a section called "Cryptocurrencies", and there you could add the public wallet address. Liberapay could show a QR code when you click or hover that currency, and maybe show a logo of the currency on the left. Something like this is enough for people to easily send you crypto (of course, we would use Liberapay colors, this is just an example):

Captura de pantalla de 2024-02-11 18-28-46

should Liberapay support cryptocurrencies at all?

If it's implemented in a simple way, showing a nice interface like I described below for people who want to add their address, I think that's OK.

it only means facilitating cryptocurrency transfers, and confirming them by looking at the public ledger.

I don't like the idea of looking them at the public ledger, it just adds more complexity and it means less privacy. Besides, you can't do that with privacy coins like Monero. Let's keep it simple.

Killercat103 commented 9 months ago

You don't need a third-party like Liberapay to send or receive donations via cryptocurrencies. If I you want people to know you accept cryptocurrency donations, you can add your public wallet address to your Liberapay description. The less people and platforms know you donated to someone, the more privacy you have.

What Liberapay could do is provide a section called "Cryptocurrencies", and there you could add the public wallet address. Liberapay could show a QR code when you click or hover that currency, and maybe show a logo of the currency on the left. Something like this is enough for people to easily send you crypto (of course, we would use Liberapay colors, this is just an example):

Captura de pantalla de 2024-02-11 18-28-46

should Liberapay support cryptocurrencies at all?

If it's implemented in a simple way, showing a nice interface like I described below for people who want to add their address, I think that's OK.

it only means facilitating cryptocurrency transfers, and confirming them by looking at the public ledger.

I don't like the idea of looking them at the public ledger, it just adds more complexity and it means less privacy. Besides, you can't do that with privacy coins like Monero. Let's keep it simple.

Can't say I agree. I think people wish to avoid the hastle of working with multiple currencies in general and ideally get paid in one. Besides raw crypto is usually for single time donations whereas liberapay is at the moment exclusively for recurring ones. (Even if i'd like a 1 time option myself) And for clients uncomfortable paying in fiat would not be exhausted for options if the receiving person in question has yet to hear of these alternatives.

jorgesumle commented 6 months ago

@Changaco, I suggest closing this issue as "not planned". Let's not get into this legal shithole. If someone wants to implement it in a way that we don't hold any crypto I think it's fine.

toastal commented 6 months ago

I still think there is value to add minimal support + UX. I mentioned it years ago, but I think verifying the owner of the wallet is the owner of this Liberapay account would be helpful. I think there is no value in bothering to actually handle that transaction or log… that’s what those networks literally do independently & there are tons of applications that already do this. If to showing how much donations you you receive is the goal, then you have the wrong goals compared to being grateful for the donation (like measuring if software is good by its Microsoft GitHub stars instead of the actual code). Currency conversation should be out of scope & it doesn’t need to be recurring payments--require it be one-time & off-platform only.

The furthest front-end UX should go IMO would be to link some $XMR_ADDRESS as <a href="monero://$XMR_ADDRESS"><svg>$MONERO_LOGO</svg> $XMR_ADDRESS</a> next to “Donate” whose URI would open the proper external application for the transaction (or as a part of the “Donate” page, don’t overthink it 😂). And if it is not much extra work, have a button that opens a <dialog> with a QR code generated from that href for easier UX for those that use a mobile device for payments reading on a desktop. The back-end if it wanted to be nice would have a way to read a UUID message on the blockchain to verify ownership--but even this could be considered too much infrastructure or out of scope meaning… Alternatively, allow established cryptocurrencies under “Linked Accounts” with the aforementioned UX for the currency’s URI (& don’t bother with all the small, obscure ‘shitcoins’).

That isn’t an endorsement of crypto--but a recognition of its existence & value for donation purposes that can’t be covered by the existing proprietary options. This suggestion isn’t processing payments or logging anything--but a link to something that can. This suggestion is just a way to aggregate & verify payment options to an individual or organization in one place. If the individual or organization doesn’t want to accept crypto, then they don’t create (& verify) an external wallet.