It seems to me that all defi boils down to these five apps:
  1. issuing NFTs and other altcoins, especially stablecoins
  2. trading the base currency against NFTs and altcoins, especially stablecoins
  3. lending out the base currency to obtain stablecoins (sometimes this is presented via a leveraged trading interface, but ultimately it's still just lending + trading)
  4. privacy pools like tornado cash
  5. rollups like arbitrum
Part of the reason why defi is almost entirely a bad idea is this:
  • notice that the first three options all involve altcoins
  • but altcoins are dumb, so defi is dumb too (except for the last two things)
  • notice that the first three all involve stablecoins
  • stablecoins are centralized so "de"fi isn't "de"-centralized (except for the last two things -- but keep reading because rollups aren't usually decentralized either)
    • stablecoins are usually issued via a custodian who holds an equivalent amount of fiat currency as collateral
    • this method has an obvious single point of failure who can steal user funds -- so it is centralized
    • the next most common issuance method is through user-generated collateralized debt positions e.g. Dai
    • this only works if auctions occasionally occur to sell the collateral to Dai holders if the price of Dai falls, which thus increases the price of Dai relative to the underlying collateral until it (hopefully) achieves stability again
    • but auctions cannot "know" the price of Dai without an oracle (e.g. Chainlink) to "tell" the blockchain the price
    • the oracle is less obvious as a single point of failure, but that's still what they are -- so it is centralized
    • moreover, oracles can abuse their trusted position to steal user funds by participating in the auctions and falsely reporting that the price of dai fell in order to obtain the underlying collateral at an unfair discount
  • privacy pools are, in my opinion, actually a good idea and I have no real criticisms of them except I think it was a mistake for tornado cash to have the main website use a governance token -- but that's not a requirement of privacy pools, it was just a dumb fiat-minded error made by that particular team
    • however, privacy pools are pretty similar to coinjoins, which do exist on bitcoin, so we "do" have this form of defi on bitcoin - except coinjoins require the participants to interact with one another, which imo is a major drawback compared to privacy pools
  • rollups are, in my opinion, also a good idea, though the "easy" way to do them involves a centralized sequencer who can withhold the data needed by users to withdraw their funds -- and thus hold user funds ransom -- and thus steal from their users
    • however, there are designs that mitigate this, including the "zk" variants of rollups, and there are also some models for where to put the data -- namely, spacechains -- that I think can solve the data availability problem and make rollups actually work in a decentralized manner
    • there are no rollups on bitcoin yet but I think bitvm and "brollups" demonstrate that we can get something roughly equivalent on bitcoin
Does the more expressive Solidity language actually enable DeFi to work as it should where Bitcoin Script can't?
The first three apps that "count" as defi (even though they aren't really decentralized) aren't even good ideas because they require the use of stablecoins and altcoins, which are bad ideas. But in fact they do not require anything that Bitcoin Script can't do:
  • issuance: the ordinals and runes people have created NFTs and altcoins (including stablecoins) on bitcoin and so have some lightning devs, e.g. see boardwalkcash.com which has a stablecoin that works on lightning -- and this all demonstrates that bitcoin script has everything we need to issue these things in a manner similar to how "defi" does it (but it's still a bad idea because altcoins are dumb)
  • trading: the ordinals and runes people have created auction websites which demonstrate that it's possible to trade NFTs and altcoins (including stablecoins) for bitcoin in a manner similar to how "defi" does it (but it's still a bad idea because altcoins are dumb)
  • lending: again, it's not a good idea because it involves potentially giving away your bitcoins to get altcoins (which are dumb), but you can do this on bitcoin -- which is why hodlhodl has a lending product. You might say "but that involves a trusted third party!" but so do ALL stablecoin-based loans -- because the collateral for the stablecoin is either custodied by a trusted third party (e.g. USDC and USDT) or relies on a trusted oracle to end up in the right person's hands (e.g. Dai). If you want to do loans without acquiring any altcoins you can use my Loan Shark protocol
The last two apps are privacy pools and rollups, and for those I say this:
  • the existence of coinjoin software demonstrates that privacy pools are possible on bitcoin in an interactive form (yes I do want to make them non-interactive and I think covenants can help here)
  • the existence of bitvm + brollups demonstrate that rollups (or something almost just as good) are possible on bitcoin too
So no, there is basically nothing in defi that bitcoin script can't do -- though most of it is a bad idea and some of it might have to remain interactive at least until we get a covenant soft fork.
The oracle issue has always seemed insurmountable to me, when it comes to smart contracts, which superficially seem like a really cool idea.
reply
Second time supertestnet comes up and blesses me with the ultimate answer. 100% clear now, thanks!
reply