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.

MagicFab commented 3 years ago

Why close the other issues ? They all depend on this discussion then, but don't close them.

Implementing all crypto currencies at once (or even "too many") is not realistic, it only makes sense to work on this progressively, instead of just declaring them all as equals and just hoping everyone would agree here. What is "implementing" ? In some cases it's just the ability to publish an address, a QR code, a URL, not much more.

Surely you'd want the discussion to start on good terms. Let's start with transparency and not closing issues arbitrarily.

lullis commented 3 years ago

Hey @Changaco, thanks for clearing things up here.

I think that it's easy to make the argument that liberapay should support cryptocurrencies. It would vastly simplify the story for people that want to make small contributions to many different people, it will be a huge differential of Liberabay vs other patronage/sponsorships platforms and it can reduce friction for a lot of developers seeking funding to work on side-projects but do not have the time/resources to comply with all the requirements from Stripe/Paypal.

Also, +1 on the idea that the system should not be specific to one currency. There might be some different implementation details depending on project (e.g, Bitcoin does provide a way for untrusted parties to generate addresses without having direct access to the funds or wallet private keys, while Ethereum does not), but the mechanism for both patrons and members should be similar.

If I were to start working on this, how should I go about it? I envision a system where:

MagicFab commented 3 years ago

@lullis you mean like I suggested almost 2y ago ? This will go nowhere, meanwhile at least we can all add links/QR codes to whatever we need in our own websites. I submit it's a waste of time going into endless discussions here but I predict it will continue.

lullis commented 3 years ago

Two years is a looooong time in crypto. Also, it seems to me that the most important thing that lp is not even about being able to process the payments, but only to be able to track the payments that happened between users.

They don't even need to setup an instance of BTCPayServer. They could simply allow users to provide a list of addresses that belong to them, and then to setup a set of block explorer that looks for transfers between users so that it can be included in the stats. This way they can say they "support" crypto payments without any major work and still contribute to the network effects.

revi commented 3 years ago

I believe cryptocurrency is waste of electricity (and thus harm to the Earth) and computing resources, and should be deprecated (or simply forgotten). I do not support any coin addition. Just my 2 cents.

EDIT: I am not willing to change my opinion whatever comment you leave to me, so don't waste your time writing something to me.

lullis commented 3 years ago

@revi, this kind of argument is counter-productive. Lots of cryptocurrency projects do not involve blockchain based on proof-of-work consensus algorithms and Ethereum is on track with their work to move to a more energy-efficient system in the next two years. Cryptocurrencies are being used by millions of people worldwide to escape corrupt institutions, protect their wealth from being inflated away by bad monetary policy or simply don't have access to the global economy via the existing banks. Being against cryptocurrency in general is being against freedom.

Back to the discussion at hand: @Changaco, I am starting to believe that maybe an easier and more general approach would be to have a third-party service that can do the tracking of payments in the blockchain and Liberapay would integrate this, just like it is currently done with Paypal with Stripe. That would be an alternative that would add "cryptocurrency support" to the feature-list of liberapay and keep it free from any potential liability. The main issue is that such a service, AFAIK, does not yet exist in a currency-agnostic way.

This is also an alternative that I'd be interested in contributing, but I'd like to know if there is significant interest on your part to integrate this service once it is usable. Would Liberapay be interested in co-sponsoring this somehow? No big commitment requirement, but just something to put some skin in the game. If LP agreed to fund at cover at least the hosting costs (~50€/month), I'd take that as a signal of interest and would start working on this service.

trebmuh commented 3 years ago

I think revi's argument is a valid one which need to be thought/discussed/assessed.

Being against cryptocurrency in general is being against freedom.

This type of argument is very wrong if your goal is to discuss. By making this statement, you're pushing all people who are against cryptocurrencies, or people who are not 100% sided about this topic, to the "you're against freedom" corner. This is definitely not a good way to open and accept discussions. Not to mention it doesn't deserve the cause of crypto-currencies adoption.

By the way, another argument to be taken into consideration is that as far as of now, cryptocurrencies have been and are used a lot for currencies speculation (which create another "web bubble"). It's still to be proven that crypto currencies are improving significantly the real economies.

lullis commented 3 years ago

@trebmuh , the one sentence you picked out of the whole paragraph was more rhetorical than argumentative. The actual core of paragraph that does provide an argument, you chose to ignore. This is also not the way to have a constructive discussion.

You pointing out about speculative uses of crypto projects is also a strawman. There are many blockchain projects that aim to provide stablecoins, i.e, tokens that are pegged to the American Dollar or the Euro while allowing anyone in the world to have a source of income in stronger currency without being interested in speculation.

Furthermore, you being against the adoption of cryptocurrency by Liberapay on the basis of "it's used only for speculation" is a sort of catch-22. If no one is willing to adopt crypto for more "legitimate" use-cases, then of course all it will be used by is speculators. The best way to have better use cases for cryptocurrencies beyond speculation is by adopting it in projects which can give it more utility, not by dismissing it entirely.

In any case, I really don't want to be dragged into a discussion about the merits of cryptocurrencies, as it would be beyond pointless. I'm here to discuss about the feasibility of its adoption by liberapay and the potential paths for its implementation.

As one data point, I'm a software developer that would like to work on open source projects and I would welcome any sort of contributions made with crypto as well as the more traditional methods. Right now there is no such service that provides that. You have either patreon-style systems which involve credit cards (and hefty fees) or you have gitcoin-style (work-for-crypto) systems. I believe that Liberapay has what it takes to make a successful blend of these two models and would gain a lot from it.

trebmuh commented 3 years ago

So, we disagree.

It looks to be hopeless to try to discuss with you more than that here since you seems to try to engage in a rhetorical fight. I've got no time to spend for that. Sorry.

My point of view is already written here and the 2 of the main arguments of why that are explained also (too much electricity and too much speculative).

PS :

@trebmuh , the one sentence you picked out of the whole paragraph was more rhetorical than argumentative.

Yes, absolutely, because from what I'm concern of, this one sentence only (quote: Being against cryptocurrency in general is being against freedom) does disqualify the whole of it by itself.

lullis commented 3 years ago

I am failing to see where I didn't address your raised concerns:

trebmuh commented 3 years ago
  1. which cryptocurrency(ies) is(are)n't using much electricity? (link(s) please)
  2. same about non-speculative(s) one(s)
lullis commented 3 years ago

which cryptocurrency(ies) is(are)n't using much electricity?

Any project that is not based on Proof-of-Work for its consensus algorithm: Stellar is already running, Cardano also already has its own coin with a multi-billion market cap, and Ethereum is on its way to move to Proof-of-Stake

same about non-speculative(s) one(s)

I sent the link already already DAI, which is a project from MakerDao, but there are also USDC, Synthetic USD and Synthetic Euro from Synthetix, as well as EURS. I can also point you to projects that have cryptotokens pegged to the Brazilian Real if you want...

Changaco commented 3 years ago

I am starting to believe that maybe an easier and more general approach would be to have a third-party service that can do the tracking of payments in the blockchain and Liberapay would integrate this, just like it is currently done with Paypal with Stripe.

Integrating Coinbase as a third payment processor is indeed a possibility.

I believe that Liberapay has what it takes to make a successful blend of these two models and would gain a lot from it.

I don't share these beliefs. All the evidence I'm aware of supports the opposite conclusion: adding support for cryptocurrencies doesn't generate any significant gain. Stripe used to support Bitcoin, but they dropped it. Open Collective added support for Bitcoin several years ago, but if I remember correctly they later admitted that it wasn't a success, and I don't know if they still support it. Bountysource was acquired by a crypto company and added support for crypto bounties, but that hasn't helped it grow.

ghost commented 3 years ago

I like to add this to the discussion. Let's think of this (hypothetical!) scenario:

I am privacy and liberty seeking person, who is oppressed by an authoritative regime. In my situation Bitcoin brings salvation to me. It allows me to preserve my economical power and to preserve my basic human rights.


I think adding Bitcoin is not about "grow". It is about helping to liberate the oppressed. I also think this view is well aligned with FOSS principles.

I also warn against adding every shitcoin. They rather die quickly and I think it is a waste of resources to try to support them. Bitcoin is the only real store-of-value in this space and its ecosystem provides tooling (Lightning Network) for fast and cheap transactions.


Technically, there are some issues to be considered:

  1. on-chain Bitcoin can have really high fees (can be solved by using 2nd Layer like Lightning Network)
  2. there are no automatic recurring payments (can be workaround-ed by generating invoices and regularly send them to the donors email to fulfill)
t-900-a commented 3 years ago

Better off forking and developing a cryptocurrency only version of liberapay.

From what I've seen of the liberapay team; their political leanings impact their ability to think rationally about this topic.

Magess commented 3 years ago

I think integrating with Stellar could help with your cross-country payments issue. The more anchors that get added to Stellar, which are on-off ramps for fiat currencies, the more currencies you can naturally support. Stellar has something called path payments, where you can specify the start and end currencies for a transaction and the network will figure out the best path there. Stellar uses less electricity per transaction that Visa, and theoretically you could limit payments to only using fiat stablecoins. The fees are negligible (and paid in XLM. One XLM is currently $.40 and enough to fuel hundreds of transactions.)

Today there are anchors for: USD, EUR, Tanzania Shilling, Nigerian Naira, Argentine Peso, Chinese Yuan, South African Rand, and Cuban Pesos,

I've only used the USD one, but cross-border transactions is literally the reason Stellar exists, so I would imagine it would only get better with time. Could be worth looking into.

Other blockchains that could be interesting because they are actively carbon negative: Algorand and Celo. But then you'd be looking at more normal cryptos that fluctuate with market values and not just stablecoins.

12people commented 3 years ago

With regard to Algorand, it's worth noting that it's patent-encumbered, with the patents only being provided for those that use its original code or that pay up. (Kind of like how Oracle lets you use Java APIs only if you use their GPL-licensed code, but sues those making alternative implementations.) This goes against free software principles.

That said, there are other proof-of-stake projects with massive followings that would be suitable here, like Cardano or Ethereum 2.0. While both are works in progress, the final result is estimated to be 100x+ more energy efficient than Bitcoin.

12people commented 3 years ago

As for stability, if the developer gets the power to determine whether they receive crypto payments and for which currencies (just like now with regular fiat), then I don't see the issue. The potential risk is up to the developer to decide.

I would personally prefer to get donations in my crypto of choice.

12people commented 3 years ago

Lastly, it's worth noting that a big use case for cryptocurrencies are third world countries.

They're being increasingly used in countries like Venezuela (where even local businesses like Pizza Hut support them!). The local inflation and the sanctions are so bad that crypto tends to be a good stable choice in comparison.

And there are initiatives to bring crypto to places that don't have traditional banking services. That's one of the goals behind the growing field of decentralized finance (or "defi" for short) — providing these services to those who otherwise couldn't access them. Going forward, adding crypto support could be a huge boon for developers from these third world countries.

I agree that ecological harm is absolutely an issue that should't be taken lightly. Fortunately, the cryptocurrencies that defi runs on generally either use the efficient proof-of-stake mechanism or are planning to migrate to it. (Currently, defi services are largely built on top of Ethereum, which is undergoing this migration right now.)

Changaco commented 3 years ago

Open Collective is trying crypto again. Quote from Open Collective Roadmap Update (Mid-May to July):

Priorities for Mid-May to July

Accepting Crypto Contributions

Open Collective supports contributions in all fiat currencies through our payment providers Stripe and Paypal, but we have been conservative with our support for cryptocurrencies.

A lot is happening in the cryptocurrency market at the moment and we understand that crypto' can be a polarising subject. So we wanted to make our rationale clear: Open Collective exists to provide communities with a way to access the financial system and we believe that cryptocurrencies are a part of that financial system.

That said, we are concerned about both the impact of some cryptocurrencies on the climate and the risk of using cryptocurrencies as a store of value. For now we will not add support for holding a balance in cryptocurrencies, nor will we add support for paying expenses and invoices using cryptocurrencies. Instead we will immediately settle contributions made to Collectives in the fiat currency of the Collective.

Goal: implement a checkout in BTC or ETH for all collectives on OSC, preferably settling immediately into the host currency.

proudmuslim-dev commented 3 years ago

I believe cryptocurrency is waste of electricity (and thus harm to the Earth) and computing resources, and should be deprecated (or simply forgotten). I do not support any coin addition. Just my 2 cents.

@revi You seem to be uneducated on the topic; while I certainly agree that the energy consumption of many currencies out there is a problem, steps are being taken by various currencies to remedy this. As for computing resources, I can hardly agree that crypto wastes those. Verifiable, fast transactions on a public ledger with no intermediary? Find me a better system. As for your comment on how you believe that they should just be forgotten, that's a pipe dream at this point- just look at the interest around the globe from individuals, governments, and institutions. El Salvador has made Bitcoin legal tender, for God's sake.

tl;dr: Energy consumption is a solvable issue, the computing resources are not wasted, and it doesn't matter if you think it should be forgotten, because it won't.

Apologies if I offended you at any point, I just felt the need to point these things out to you

ZelphirKaltstahl commented 3 years ago

It is funny, how there is always a next thing, that will "fix crypto currencies", but so far nothing has, while energy usage is through the roof. We actually got real problems to solve, which directly depend on saving energy wherever we can. All the while crypto fanboys step forward to defend crypto currencies. El Salvador! 😆 Oh my, …. Notify me, when crypto currencies have switched to being low energy usage, when all the "get rich quick" ideas about crypto have disappeared, when crypto currencies are designed in such a way, that they make money laundering difficult and when they support the required amount of required transactions per second, to keep up with a normal currency.

Magess commented 3 years ago

It is funny, how there is always a next thing, that will "fix crypto currencies", but so far nothing has, while energy usage is through the roof. We actually got real problems to solve, which directly depend on saving energy wherever we can. All the while crypto fanboys step forward to defend crypto currencies. El Salvador! 😆 Oh my, …. Notify me, when crypto currencies have switched to being low energy usage, when all the "get rich quick" ideas about crypto have disappeared, when crypto currencies are designed in such a way, that they make money laundering difficult and when they support the required amount of required transactions per second, to keep up with a normal currency.

What's the required amount of transactions per second?

toastal commented 3 years ago

Crypto(currency) wastes energy

Yes, and that's bad, but not all of them will nor does the future have to have cryptos that waste so much green or non-green energy. Does maintaining militaries to back governments to back fiat also waste energy? Of course. Both are flawed in hard-to-compare ways.

Crypto is speculative

Definitely, and that causes a lot of issues as people don't want to use it as currency in hopes that the value may rise and defeats the purpose of using it as currency. When a tipping point breaks, it may finally stabilize, but ain't a single coin stable right now. But also with so few places to spend crypto, it's hard to use it even if you wanted. You also don't have to opt in to crypto payment if you don't want to (just like I have opted to no longer use PayPal after getting locked out of my account and not wanting to give up more personal info to get in (and laughably support for authentication requires that you are first authenticated)).

Crypto is used for money laundering

Probably less so than the standard of cash which is less traceable. Specifically Bitcoin having a public history has let orgs like the FBI to just follow the history if they want to catch certain criminals. It's better for digital crime, but sounds like a tossup and not a good argument for or against crypto vs. fiat. However, on the flipside, anonymous coins like Zcash and Monero can be used just as much to fund an guerilla anarchist group or counter-dictatorship movement for oppressed people without fear of being hunted down. In US politics, anonymous donors fund Super PACs with fiat to push climate denial propaganda and other nonsense that can legally damage the planet so it's not like anonymous payments are good or evil.

Crypto has slow transactions

Waiting 15 minutes to buy a latte may seem absurd, but comparing that to wiring funds internationally for legitimate purchase (which I've done) is both very slow and expensive, probably on par with the cost of crypto (and would likely cheaper if you didn't have pay fees going from fiat -> crypto -> transfer fee to foreign wallet crypto -> fiat). But also some cryptos are faster, and other slower. Seems like another neutral argument, and more an argument of picking the best crypto option that does the least harm while still having a better shot at legitimacy (I have no clue what that would be though).


Why do these ethical/philosophical discussions need to happen when transferring funds from entity A to entity B? Is the issue that supporting a crypto payment option would be an implicit endorsement. Doesn't have to be an endorsement? There may be people that prefer crypto and those that don't. Likely people that accept it would merely cash out to fiat immediately to not deal with the price fluctuation and would be happy to be paid close to the price if not exact (and foreign fiat -> local fiat has the same issue, just a lot less swing). With analogous arguments for both sides, arguments seem pointless. Can crypto be used to transfer funds? If the answer is yes, it's neutrally as useful as other methods.

For me, what would be nice about crypto payments is that the barrier to entry could be lower. Right now you essentially have 2 options on Liberapay: megacorp PayPal and megacorp Stripe. Both services require address and phone numbers (which is a "screw you" to homeless people, people that don't have or want a cell plan, or people that want to maintain their privacy online). Both are a part of Big Data. Both have currency limitations. Both are US-based which has privacy concerns. With cryptocurrencies, whether good or evil or neutral, a traveling busker, a resistance journalist, or an online nude model, could create a wallet and use Liberapay to verify the owner of the wallet without all of that overhead and leaking of personal data. Both entities still owe taxes and payments are still being made, regardless if it's through one of these megacorps or crypto.

proudmuslim-dev commented 3 years ago

It is funny, how there is always a next thing, that will "fix crypto currencies", but so far nothing has, while energy usage is through the roof. We actually got real problems to solve, which directly depend on saving energy wherever we can. All the while crypto fanboys step forward to defend crypto currencies. El Salvador! 😆 Oh my, …. Notify me, when crypto currencies have switched to being low energy usage, when all the "get rich quick" ideas about crypto have disappeared, when crypto currencies are designed in such a way, that they make money laundering difficult and when they support the required amount of required transactions per second, to keep up with a normal currency.

Another uneducated comment!

  1. I'm not here to talk about any stupid "get rich quick" ideas
  2. To be frank, you can't fight money laundering. Bitcoin is a privacy nightmare with an entirely open ledger, yet things like mixers and atomic swaps still allow criminals to launder "tainted" coins. The same can be said of the banking system. Money laundering can't be made difficult enough in this day and age, particularly when you factor in the high reward that it offers. Any attempt to solve this problem immediately throws privacy in the trash, and there's a point where the tradeoff just isn't worth it.

Comments like this from people like you just serve to display your own lack of education on a topic you clearly have no interest in.

proudmuslim-dev commented 3 years ago

As for the "required amount of transactions per second", the Ethereum network is planning to be able to handle 100k TPS through layer 2 rollups, and there are altcoins out there that can already handle this. I've listed a few below:

Compare this to a standard payment processor, like Visa. Visa currently processes around 1700 TPS, and they claim they can handle up to 24K. There's simply no competition.

proudmuslim-dev commented 3 years ago

Given how you refuse to answer questions on your stance and refuse to respond to me outside of slight mockery, I'm going to assume that you're a troll

hermann-san commented 3 years ago

Stripe is basically founded by big tec and big tec is far from "libera", I would say. Similarly Paypal. "In 2011, the company (Stripe) received investment of $2 million including from PayPal co-founders Elon Musk and Peter Thiel, Irish entrepreneur Liam Casey,[5] and venture capital firms Sequoia Capital, Andreessen Horowitz, and SV Angel"

I would let the users decide which payment method they want to choose. I would also rather choose a cryptocurrency that is doesn't waste too much energy, but if it takes a while until that coin is available , I would rather choose Bitcoin over Paypal or Stripe. But i believe that good, popular coins do exist. I would be in favour of Monero, Faircoin or Bitcoin if needed be. Also, I'm not investing in Bitcoin (hoarding). I only have some of it in my wallet and want to pay with it. So that shouldn't waste energy. Bitcoin users with very little energy consumption vs. Bitcoin investors/miners with high energy consumption

12people commented 3 years ago

@hermann-san Actually, it can be argued that Bitcoin users contribute just as much to energy waste as miners do. The reason why mining as a concept exists in the first place is because it's the way transactions are secured. It's these transactions that are creating a demand for miners.

As for decentralized popular cryptocurrencies that don't waste too much energy, those are already out there. Cardano, Elrond, Polkadot, and more all already run on a much more energy-efficient Proof of Stake system. Ethereum, the second most popular cryptocurrency, is in the process of moving to PoS.

There's really no reason to support a wasteful proof-of-work crypto other than to appease those already heavily invested in Bitcoin.

hermann-san commented 3 years ago

@12people I'm not an expert in Crypto's , but when I compare the development in the number of daily transactions (or monthly) vs. the development in the total energy consumption, then it's not correlating anymore. Energy consumption is sky rocketing whereas the number of transactions are stable or even decreasing since 2017. But maybe I'm wrong on this one. Anyways, as I said, I'm not an expert in crypto's. It should be possible, though to get this info from the experts. In 2020 there were 65% of the bitcoin not moved, which implies that it's an investment and I guess this number has risen in 2021 to 80% or so. So there are many who only buy and hold. That was not the intended way of using Bitcoin. BTC was intended to be a payment method or currency.

12people commented 3 years ago

@hermann-san

The argument I was making is that transactions are, in fact, the primary reason why mining exists in the first place. Those making transactions are therefore responsible for mining taking place as well as any environmental damage it incurs.

There are a plethora of decentralized coins that use orders of magnitude less energy than Bitcoin. If the environment is important to the Liberapay community, the focus should be on supporting those coins instead.

hermann-san commented 3 years ago

@12people I understand. I'm not a big fan of Bitcoin anyways but many people are having it and it's probably the coin that is currently used most for online and offline (in a store) payments .

numeropi commented 3 years ago

Not sure if mixing all cryptocurrencies in the same bag/issue was a good idea... since the only thing in common is that they run over a blockchain but the design(technical and social can be 180º diferent in some cases). The debate would turn into the most scandalous characterisitc of the most famous ones, like bitcoin, eth (mining, etc)... fiat speculation, etc etc...

I'm still in favour for accepting Libre Currency https://github.com/liberapay/liberapay.com/issues/567 since it's not FIAT convertible, it is based in the GNU movement and it has no mining or ecological footprint whatsoever since it is forged by a web of trust and I think it is the closest to Libera principles of the liberaypay platform.

caryoscelus commented 2 years ago

my two satoshis on this :

Talkless commented 2 years ago

I will avoid discussing power usages and all other stuff, but I will leave simple suggestion that LP could just use CoinGate, CoinPayments, Gloobee, OpenNode, or any other specialized payment processor that would immediately convert any "crypto" to Euros.

This is definitely not "idiomatic" from "maximalist" point-of-view, but to be realistic, this is at least achievable without too much problem, or "controversy", IMO. There's already PayPal integration, just add CoinGate (or whatever) in addition.

The advantages for the donors? MUTCH improved privacy compared to current alternatives. Just imagine (bitcoin-centric example):

  1. You have sats on Bitcoin Lightning Network (later "LN") private channel in your mobile app wallet.
  2. That app connects to the LN network via tor, and transfers funds to CoinGate. That transfer is initiated via LP website, that redirects to CoinGate (or other processors) website that shows QR-Code (LN "invoice"). Web interface also accessible via Tor.
  3. Off-chain transaction occurs, without on-chain trace (for that particular LN transaction).
  4. LP gets euros into account, without actually touching "crypto".
  5. Nor CoinGate, nor LP can know who did the donation to "maybe" "controversial" FOSS project (like Tor/Tais or whatever). In addition, you can use Protonmail account (or other email provider with Tor hidden service, or at least Tor-tolerant) for LP profile for privacy too.
caryoscelus commented 2 years ago

@Talkless this sounds good to those who prefer fiat, but it's pretty offensive to those who prefer (or at least can deal with) crypto. A supporter sends crypto and you have to pay the processor fee for fiat you don't even want.

Talkless commented 2 years ago

@caryoscelus these who "can deal with crypto" can put QRCode on their website or even launch self-hosted BTCPay server or whatever sovereign solution exists for crypto that they use.

As I said, this is privacy improvement for the donators, compared to what we currently have now in LP.

There's might be small improvement for donation recipients too, as "crazy crypto people" :) will have, although not perfect I agree, a way to vote with their crypto wallets, meaning possibly a little bit more donators, even if recipient does not care or want "crypto" (as processor will provide fiat) at all.

We can strive for perfect solution which might never come, or have at least some improvement.

toastal commented 2 years ago

can put QRCode on their website

There's two things Liberapay offers in this scenario. 1) it is a "hub" of payment options like it is today (albeit only two offerings and not all fiats are covered and the barrier to entry on the current two platforms may be too much for some people) so this seems like a logical place to put alternatives and 2) like how Keybase can verify the identity of the wallet, Liberapay can verify the owner of the wallet is who you say the owner is. To many it feels a bit sketchy to send currency to an unverified address and this verification would give payees the confidence to know it's going to the right place. A bad actor could stealth hack a QR code onto a website and people may send without knowing.

caryoscelus commented 2 years ago

@caryoscelus these who "can deal with crypto" can put QRCode on their website or even launch self-hosted BTCPay server or whatever sovereign solution exists for crypto that they use.

those who can deal with paypal can just put email on their site. those who can deal with stripe can just put stripe button on their site.

if we are here talking about liberapay we all think that it's worth having that as a platform. sending people elsewhere isn't helping the project

jivanpal commented 2 years ago

For any currency that endorses/supports the (purpose, coin, account) BIP-32 address derivation scheme originally described in BIP-44 (which is the vast majority of cryptocurrencies, including BTC), the solution is simple: have donation-receiving users provide an extended public key in an accepted serialisation format for each cryptocurrency "account" (in the sense described in BIP-44) that they wish to accept donations for. LP can then generate addresses controlled by the user, display these to donors, and monitor them for incoming transactions to generate donation stats. Accepted key serialisation formats include:

Accepting Lightning payments is a different matter, since Lightning invoices need to be generated on-the-fly. IMO, the easiest way to implement this would be for LP to act as a middleman, generating Lightning invoices for donors to pay to, and then allowing donation recipients to send LP a Lightning invoice to withdraw funds, perhaps even forcing them to do so at a minimum frequency, e.g. every 30 days. As @Changaco mentions, holding funds in this way may present legal issues, which is unfortunate, but it is what it is. Having said that, I am curious as to what legal issues actually exist for you in this regard.

Donors who wish to make recurring donations can opt-in to an email reminder.

Talkless commented 2 years ago

1) it is a "hub" of payment options like it is today

I agree, but people suggest "perfect" highly technical solutions for implementing crypto donations, decreasing possibility for it ever happening. I suggested not perfect, but much more implementable solution.

A bad actor could stealth hack a QR code onto a website and people may send without knowing.

Both developers website and LP can be hacked. I would prefer original source instead of intermediary. The more intermediaries, the more points of failure (like publishing outdated QR code, etc).

those who can deal with paypal can just put email on their site

Unfair comparison. No everyone lives in "western" world where PayPal, Stripe, SEPA etc is available. Bitcoin, in comparison, is completely borderless, neutral, etc.

originally described in BIP-44

Do you actually expect LP developers to go deep into BIP's, cryptography, etc? Just small mistake and some funds bill we lost, unspendable, and what not.

Again, I'm suggesting something more implementable, less scary, actually, reasonably "doable". Simply add crypto payment processor as there are other processors already added. This will work "today", meanwhile maybe someone will implement more advanced, HD-based solution (or whatever) as time goes (if ever).

jivanpal commented 2 years ago

@Talkless

Unfair comparison. No everyone lives in "western" world where PayPal, Stripe, SEPA etc is available. Bitcoin, in comparison, is completely borderless, neutral, etc.

You misunderstood @caryoscelus's rhetoric, they are being sarcastic: if you're saying that people who wish to accept Bitcoin should just give instructions somewhere besides on LP on how to donate Bitcoin to them, then the argument can just as easily be made that those currently accepting donations via PayPal etc. on LP should do the same, i.e. put a PayPal button on their personal site rather than use LP at all.

Do you actually expect LP developers to go deep into BIP's, cryptography, etc?

No, I expect them to use widely used and accessible libraries for developers such as bitcoinj or existing solutions such as BTCPay Server that implement some of the standards; or remix such projects as they deem necessary. I merely mention the standards explicitly so that the devs know what precise functionality they need their backend to have. When one gives someone specific detail about an internet protocol like HTTP, one makes reference to standards documents like the RFCs likewise. Just as in that situation I wouldn't expect the devs to implement their own HTTP server, I don't here expect the devs to implement their own analogue of something like BTCPay Server. It's ultimately up to them what functionality they do/don't decide to implement, I'm merely spelling out what would need to be done.

caryoscelus commented 2 years ago

to further @jivanpal 's point: core developers don't even need to get into details of implementation. if they agree to have the implementation of crypto payments, any other developer could do the actual coding (of course, core devs would still have to review it, but if impl is well-written and well-documented, it's not that insurmountable of a work)

Talkless commented 2 years ago

No, I expect them to use widely used and accessible libraries for developers such as bitcoinj or existing solutions such as BTCPay Server that implement some of the standards; or remix such projects as they deem necessary.

Fair enough, but maintaining BTCPay server still needs much more involvement than adding another payment processor together to already existing.

I don't know what is "official" LP developers stance on "crypto", though I simply suggest to avoid being too naiive, to see this issues in a bit more sceptical/realistic way. Don't get me wrong, it would be amazing to see self-hosted BTCPay server running, and I would be happen to be proven wrong.

It would be useful to get LP developers "official" views on alternatives (from simplest to hardest?):

  1. Implement "Crypto" payments using whatever crypto-payment processor.
  2. Running own BTCPay server (Bitcoin only solution though).
  3. Implementing custom donation solution by hand, with bitcoinj (as suggested) or any available other library.

Otherwise we can run in circles uselessly discussing :)

12people commented 2 years ago

It's also a question of what the goal behind implementing crypto payments is.

I like proof-of-stake crypto for its decentralization — no matter what country one is from, they can use crypto without discrimination. Adding yet another centralized payment processor would not meet that need for decentralization for me.

It'd be useful to know what reasons people here have for wanting crypto support in Liberapay, so that developers don't end up putting hard work into something that wouldn't be used much at all in the end.

caryoscelus commented 2 years ago

It would be useful to get LP developers "official" views on alternatives (from simplest to hardest?): Implement "Crypto" payments using whatever crypto-payment processor. Running own BTCPay server (Bitcoin only solution though). Implementing custom donation solution by hand, with bitcoinj (as suggested) or any available other library.

there's an easier method . use existing blockchain-reading apis . e.g. https://blockchain.info/rawaddr/1NoaWahAZJ38mkzJRNHWYnt7U19MkXtfUy . then if there would be transactions , you'd check income amount and time , then multiply amount by exchange rate at the time . then you get that the transaction was done and record amount in usd . now , you might ask , how to distinguish between two users donating at around the same time ? two easy methods are possible :

jivanpal commented 2 years ago

I like proof-of-stake crypto for its decentralization

@12people What decentralisation? I ask at the risk of this thread devolving into another half-baked discussion about the merits/demerits of different cryptos, which I don't think is relevant to the question of how crypto support itself should/could be implemented; but really, you consider POS to be decentralised compared to other models?

Adding yet another centralized payment processor would not meet that need for decentralization for me. It'd be useful to know what reasons people here have for wanting crypto support in Liberapay, so that developers don't end up putting hard work into something that wouldn't be used much at all in the end.

I agree that a centralised payment processor / middleman would defeat the purpose. I assume that the vast majority of people who would like to pay using crypto want to do so because they want the funds to go directly to the beneficiary in an anonymous/pseudonymous fashion.

caryoscelus commented 2 years ago

I like proof-of-stake crypto for its decentralization — no matter what country one is from, they can use crypto without discrimination

i don't differentiate between PoS or PoW in this question , both provide lack of discrimination or excessive fees for "cross-country" transactions (i don't know which one exactly is best for "micropayments" , that can be figured out)

jivanpal commented 2 years ago

there's an easier method ... how to distinguish between two users donating at around the same time ?

@caryoscelus Arguably not simpler, as you need to rely on the beneficiary to do something on a regular basis, you assume that they are okay with receiving multiple payments to the same address, and you assume that the donor wants to donate e.g. a specific USD amount rather than BTC amount. Extended public keys are already widely understood by crypto users, easily obtained, and designed specifically for this use case, hence the method I suggested.

Talkless commented 2 years ago

@12people

It'd be useful to know what reasons people here have for wanting crypto support in Liberapay, so that developers don't end up putting hard work into something that wouldn't be used much at all in the end.

Check my previous post with "The advantages for the donors? MUTCH improved privacy compared to current alternatives. Just imagine (bitcoin-centric example)...".

Privacy is better EVEN if we use centralized payment processors like CoinGate. I did payments via onion-routed Bitcoin Lighning Network, while browsing via Tor Browser - it works.