But if I lived in a non first world country, I don’t see how I could use cryptocurrency to do things like buy goods and services I need every day.

“Hey, can I give you some numbers in exchange for bread?”

Seems like the answer is going to be, “gtfo”.

Just because it can’t do what you define as useful, doesn’t mean it isn’t useful.

I am somewhat challenged to understand how public cryptos will continue to be relevant once Central Bank Digital Currencies enter the space in a big way.

When currencies aren’t very liquid and cross-border banking services are basic at best, just paying someone, or taking payment, is prohibitively difficult. So there are several services that use crypto as the medium of exchange. I pay in my currency, you receive your currency, and somewhere in the middle some Bitcoin transactions happened which we don’t really care about.

What is this “software-as-law” / “software-is-law” concept he refers to in several of his posts? I tried googling it but my Google Fu isn’t good enough and even with quotes and dashes all that comes up is legal practices around software nothing Crypto related.

CBDCs seem to be a solution in search of a problem (outside of authoritarian countries like China that want total central control of their financial system). In the West, the only reason for a consumer to use a CBDC instead of some other cryptocurrency would be because the cryptocurrency has been made illegal or such a hassle to use it might as well be illegal.

That’s Ethereum smart contracts.

I had to bank shop quite a bit until I could make this true. HSBC has become my go to for international currency transactions. It’s seamless for me.

That’s not the point.

The point is I live in the US, I want to send money to family in Mexico, Iran, Kenya, wherever. I Log into my Coinbase account, deposit $x, turn that money into USDC (or some other stablecoin), then send those coins to a wallet my family has. They log into their account on the crypto exchange in their local country and convert the money into local cash and deposit it into their bank account, or go to a local vendor who can exchange them (these do exist in third world countries).

The fees on this end up not being 10 cents, but still much much much cheaper than western union (and more reliable).

Software as law is the (dumb) notion that we can write contracts that via code. The idea being that there’s no subject to interpretation, everything is black and white. Either the contract fulfills the coded conditions or it doesn’t.

An example of this is me stating that if you put coins into wallet X, in 5 days you will automatically be sent back X + Y (e.g. an interest bearing account). The blockchain itself enforces this, which means there’s no way for me to back out of X + Y amount not being sent in 5 days.

That being said, the whole idea is pie in the sky bullshit for several reasons:

  1. Software engineers don’t write flawless code, and even audited software ends up having bugs. If I write a smart contract that says it will pay you X + Y in 5 days, but then someone finds a bug that allows them to change what address the resulting funds get sent to. Now the funds get sent to them and not you and you have no recourse because in the “software as law” concept that’s how the contract was written and you accepted that. This is not a made up scenario.

  2. It pretends like the whole concept of interpretation of written contracts (and enforcing the intent of the contract rather than the specificity of it) is an accident in our legal system. In reality, if the scenario in #1 happens in a real world legal contract, you usually have legal recourse because it’s obvious the intent of the contract wasn’t to give it to a random third party.

  3. It pretends like all conditions that can satisfy a contract can be encoded in the blockchain. In reality only a very small set of contractual conditions can be satisfied without external systems. Lets say you make a smart contract that bets on which team will win the next Super Bowl, and the contract specifies that all wallets with the correct pick will get a share of all the money that gets contributed. The problem is how does the blockchain know who won the superbowl? Well it has to reach out to an external system called an “oracle”, which is literally just a server that says “X won the superbowl”. It has to trust that the oracle is reporting true data and hasn’t been tampered with. If someone makes the oracle report false info and it pays out incorrectly, you have no recourse because of #1 and #2.

I clearly don’t understand something here. If I want to send money to someone in Mexico…I can just do that via normal means. People do it every day.

What is preventing pelt from using normal banking processes to move this money, that isn’t preventing then from doing the stuff where they convert crypto into their local currency?

That was my first though after reading Mark_Weston’s link. On the one hand the general idea kind of makes sense, but on the other hand, unless the programs are super-super simple they will have bugs and then you’re screwed.

I don’t know what pelt is, but I used to live in Australia but had debt in the US. Despite signing up for an HSBC bank account in the US and Australia transferring money between those accounts was not free. They are considered separate banks and thus they had to be wired, which is an average of $15-35 fee and not instantaneous.

It also requires the banking networks to have good connections to each other. Many banks don’t have networks and good pipelines setup to El Salvatore, Kenya, and other countries. Those countries do still have crappy mobile phones with payment systems that work on them though, and that infrastructure can be used for handling converting crypto to your bank account via an exchange.

So:

  1. You are trusting exchanges at both ends. Which are less well regulated than banks.
  2. There will be a bid/ask spread. Not entirely to my surprise, it’s not easy to discover how large the spreads are.

Having said that international money transfer has been a cozy overpriced oligopoly for a long time (Transferwise and similar are trying to challenge it, but are still pretty small scale), and I imagine there can be quite a large regulatory burden, especially in countries with less well established banking systems, which crypto lets you opt out of.

(I do wonder to what extent the international transfer aspect of crypto is free riding on the infrastructure built to make money out of the ponzi scheme…)

Just be aware that there’s no guarantee that they are stable, other than whoever’s funding willingness to cover wild fluctuations that will happen, because they eventually happen to everything, and the stability requirements pretty much assure that it’s stable until it collapses, with no one to save it.
Otherwise, yeah, with small enough transfers, I can see it as not much of a gamble for some cases if you consider the banking fees. Whatever small enough is. And don’t even think of holding it.

  1. Anybody who has ever had to translate client requirements to code knows it’s highly likely there’s going to be a mismatch between what the client means, what he says he wants, what the developer understands, etc. This might not be apparent with a big enough, multilayer, team, or a big issue with a small requirements, but it’s always a thing.

And, HSBC is exiting the US market for regular retail banking to focus only on high wealth private banking. Good luck!

Edit: @John_Doyle was the intended reply target…

But doesn’t this happen with whoever is exchanging your Bitcoin for real money?

And this, likewise… Don’t these same problems exist with whatever corporation is doing the Bitcoin stuff? It seems like they are even less likely to have any kind of effective infrastructure in place in less developed countries.

I don’t know what specific part you are referring to. When I get money in my Coinbase account and want to move it to my bank account no wire transfer occurs. It either does an ACH transaction or a transaction over the SWIFT network. ACH isn’t necessarily faster, but both are much, much cheaper. There are ways that financial institutions can transfer money instantly (I know Vanguard and paypal both give that option) but I have been out of the financial sector for a good bit.

More to the point though, US is an oddity in first world countries in terms of bank to bank transfers. The US Fed is working on a new instant transfer system but I don’t remember the details. Most other first world countries have free instant transfers from one bank account to another bank account in the same state.

So point being, in a large number of countries, transfers from one financial account to another (up to $10-20k or so) are free and instant. Therefore, if I receive money from another country I can have that money exchanged from crypto and in my bank account in very little time, with little to no fees.

Inside the US we can fake that with Venmo and Zelle, but there’s a third party escrow that’s papering over some of the delay in there, and these options are not available internationally.

No it doesn’t, because the scale of the issue is different. Doing international transfers requires your bank to have an established network setup with the other international bank, with all the regulatory differences that entails. Even if the bank is the same logical entity (e.g. HSBC) they are still actual different entities due to regulatory issues, and thus there is still a barrier in between them. So sending money from Country A to Country B involves lots of various clearing houses and intermediaries.

When transferring bitcoin, my bank has an established channel to the local exchange I want to use (in my case coinbase) that provides instant deposits (with some limitations). I then exchange my USD for Bitcoin and transfer them out to your wallet or an exchange that you trust. That exchange that you trust then only needs to have a channel to your digital payment system (bank or w/e).

That’s the fundamental difference. Outside the blockchain, only local payment channels are required. Local bank<->exchange channels are much easier to create than international bank<->bank channels.

My crypto exchange doesn’t have to know or care who it’s sending the bitcoin to, because the channel is globally established (the blockchain).

Ethereum lets you define different transactions on the blockchain besides just buying and selling ETH tokens. You can describe transactions involving the exchange of different goods at specified prices and dates, and the terms of the transaction are enforced by the blockchain. So you can make a futures contract: at this date, these tokens will move from wallet X to wallet Y in exchange for these other tokens, where the tokens are any digital asset that can be described by a unique hash. Incorporating the description of the transaction into the blockchain enforces the execution of the transaction, and I believe prevents things like one party cleaning out their wallet so they don’t have to make good on deal. This is how NFTs are implemented, and probably a lot of speculative transactions with other crypto-coins. You don’t need a legal enforcement framework because the blockchain is the sole arbiter of truth.

Except, as KallDrexx said above, you do. Normal contracts don’t generally need a legal enforcement framework because they’re not “self-executing”, they need it because drafters are imperfect and they make mistakes, or something happens which wasn’t accounted for in the contract and it’s ambiguous what should happen. To take the Superbowl bet example above, what happens if the Superbowl is cancelled and your smart contract doesn’t have that as a possible outcome? The courts will still have to decide.
Or what happens if this

turns out not to be true, as it often isn’t? People are going to be happy with “the blockchain is the ultimate arbiter of truth” in all circumstances, and because we live in a world of laws, the legal system will end up settling those disputes.