3 ms·
Pretty much everything is more complicated than people (including engineers) think. Take a simple example: selling clothing in a retail store. Sounds simple ri
by cletus 4y ago
Pretty much everything is more complicated than people (including engineers) think.
Take a simple example: selling clothing in a retail store. Sounds simple right? You have an inventory of items and someone pays for it. Should be a simple transaction, right? Well, now you're dealing with:
- How do you determine the price? There might be a retail price but there are sales, discounts, overrides for various reasons (eg defective goods), etc;
- You have to handle different payment options eg cash, credit card, debit card, gift cards, store credit. Payment methods can be mixed;
- You have to handle returns. These generally have to go back to the original form of payment. Some goods might not be eligible for a return. What if the payment is split between store credit and a credit card? Where does the balance go?
- Identity of the person making the sale or handling the return;
- Authorization procedures for returns and price overrides.
Everything is complicated.
As an aside, this is one reason why I'm so bearish on Web3 and smart contracts in general. The edge cases are so complex and possibly unknowable that codifying these, particularly on an immutable blockchain, to remove the need for human intervention seems doomed to failure.
Take Web3 identity. If you lose your password there are methods for recovering your account. The first is a reset password option. That may be insufficient and there'll sometimes be a human avenue to recover your account. Now consider a Web3 identity. I've seen various incarnations of these such as authorizing other identities who with consensus can recover your account. Well, those identities can be compromises so you've just added an attack vector. Alterantively that recovery mechanism may become insufficient as people lose identities themselves.
If these problems weren't complex they'd be solved problems.
- AnhTho_FR 4y agoHey Cletus! I'm Anh-Tho, one of the cofounders of Lago. Totally agree with you on web3 identity and its edge cases, it's just billing ^10000 in terms of complexity. I think for 'billing', usually people (especially non-tech people), don't understand the different blocks of the pricing stack: authorization, pricing grid, billing itself, invoicing (they often only see end-result: a receipt or invoice), payment gateways, dunnings, accounting etc). This post barely scratches the surface of it, but we intend to write and deep-dive more on each of these building blocks.
- deleted 4y ago[deleted]
- logicalmonster 4y ago> As an aside, this is one reason why I'm so bearish on Web3 and smart contracts in general. The edge cases are so complex and possibly unknowable that codifying these, particularly on an immutable blockchain, to remove the need for human intervention seems doomed to failure. I do think the potential for errors is currently real (people mess up simple wallet transfers all of the time) but it's reasonable to assume that big things and making them easy for normal people to use is going to take time. It's easy to forget how ridiculously early into crypto humans still are. We're only about 14 years into the invention of crypto. We're only about 7 years since the release of Ethereum. The general public barely understands what crypto is other than having some conception of it as some kind of Internet money. Most people cannot discuss what a blockchain is, what smart contracts are, or why oracles are important. And forget the general public for a minute: even smart technical people on HN can barely give a good description of how all of these pieces work and fit together.
- trompetenaccoun 4y ago>If these problems weren't complex they'd be solved problems. That's an axiomatic and therefor meaningless statement. Knowing something is hard to solve doesn't mean new tech won't bring improvements regarding the problem. It doesn't follow that having an immutable ledger means it has to be used for every single application. That would be like claiming trains are useless because they can't climb stairs. They don't have to do that, we keep walking the stairs just like we've always done. Immutability is great in situations where you want to record that something has taken place and don't want disputes about this. Some of the things you mentioned can be automated to some degree. Take returns as an example: You sell the item with a unique token that makes it identifiable and everything else can be automated, including chargebacks. We already have this to some extent with bar codes and RFID tags, but it can be taken to the next level with a non-fungible and non-falsifiable token that's connected to a smart contract which automatically returns money, does the accounting, updates the inventory, reports the tax data and so forth if authorized by the right person. As the owner you can easier monitor and analyze the flow of money, better detect fraud and come up with a myriad of improvements. Let's assume we have autonomous delivery trucks soon, then the entire supply process could be automated, including the billing as soon as the product is accepted. With something like the Helium Network shipments can be tracked, so there can be no dispute over where they are located. For company owners who really doesn't want to spend much time at the office you could go a step further and even set conditions for disputes like contracts triggering a certain action after a suppliers products have been rejected too many times because of quality issues, or vice versa is a customer keeps ordering and returning products from a factory. The contract could switch to automatically ordering from a competitor.