Monero is striving to be a currency that everyone can use, the growth of the blockchain is starting to hamper this goal IMO.

I think we should consider dropping blocks off of the chain tail once we reach block height of 4000000. This will give us 10 years of storage capacity, more than enough IMO.

Similar to how you have to exchange bills of cash once they get worn, you would simply churn your coins to get your outputs into younger blocks.

We are trying to be digital cash not an inheritance vault. If we had this feature from the start 99% of the community would agree with it.

Please consider this.🙂

*Edit: @4KB/tx * 100,000tx/day we are looking at ~400MB chain growth daily, this is not sustainable, let’s take care of this now before it becomes a big problem

**Edit: A possible solution could be that nodes would have the option to set chain retention duration. So when syncing a new node you can select that you would like to retain 5 years of chain data, with a minimum boundary enforced that retains sufficient security. This way the network decides in a fair way how much chain data is useful to store.

  • pedroapero@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    8 months ago

    Hi, indeed this is not possible with Monero for various reasons (coinbase verification; can’t identify spent TX outputs). In case you don’t know, the Mina cryptocurrency has solved this blockchain storage issue. A fixed-size (<30KB) cryptographic proof is enough to validate the entirety of the current state (the latest block).

    It requires a network of proof generators with incentives in addition to the block producers. Scalability is not great (similar to BTC) and does not provide anonymity (not a priority either). Checking the state is computationally intensive too (not suitable for smartphones; requires around 10GB of RAM).
    It is improving on relatively new cryptography techniques (ZKSnarks), likely to evolve (less stable protocol than BTC; security not battle-tested).

    • tusker@monero.townOP
      link
      fedilink
      arrow-up
      1
      ·
      8 months ago

      This is pretty exciting. I hope as this kind of technology develops we can integrate it into Monero. It would be great to not have to worry about spam attacks bloating the chain and making it more difficult for everyone to use Monero.

  • silverpill@mitra.social
    link
    fedilink
    arrow-up
    1
    ·
    8 months ago

    @tusker @monero Chain growth is a real problem that is often dismissed because storage prices are falling. This makes sense when you’re small and there is not much activity, but that could change in the future.

    However, I don’t think you can simply drop old blocks without burning someone’s savings? One probably should look into what Ethereum people are doing with their state expiry proposals.

  • mister_monster@monero.town
    link
    fedilink
    English
    arrow-up
    1
    ·
    8 months ago

    You can’t just do that. First of all, you can’t even tell what outputs are spent in Monero. Trying to remove spent outputs to prune the chain is very difficult.

    People pay to have their funds stored indefinitely in monero, via debasement with the tail emission. Unlike bitcoin, where holders free ride, in Monero we lose some value over time as compensation to the network for storing our unspent outputs forever.

    The security model with blocks missing from the beginning of the chain is not the same as with them. You might think this is no big deal, but it does fundamentally change the model.

    These sorts of schemes have been proposed before, even before Monero. We didn’t have this feature from the start because people didn’t agree with it.

    Dropping whole blocks globally is no good. Locally dropping blocks that a user doesn’t have transactions in is fine, and we already do that (pruned nodes keep some subset of the rest of the blocks to ensure that a complete copy of the chain is out there, distributed among the nodes). So we already do something like what you’re proposing, except nobody is forced to do it. If you’ve got the space for the whole thing, good, if not, run a pruned node.

    Chain growth is a problem, but it’s not such a big problem that taking a hammer to the protocol and consensus is worthwhile. What you’re proposing is a drastic, not well thought out thing. We are better off chugging along until we can figure out some way to get full privacy without having to store spent outputs. We are very close to it, already MW exists that gets us ~80% of the way there.

    • monerobull@monero.town
      link
      fedilink
      arrow-up
      0
      ·
      8 months ago

      Agreed. Currently we are at ~190 GB with ~8.5 GB growth over the last 3 months. This is just 34 GB per year and a 500 GB SSD would last another 7 years at the current growth-rate. You can already get 2 TB SSDs for less than 150€. Storage really isn’t the issue, the biggest limitation is bandwidth.

      • tusker@monero.townOP
        link
        fedilink
        arrow-up
        0
        ·
        8 months ago

        Recently we saw transactions spike to 100k per day, that is ~400MB per day, 146GB per year of data.

        If this tx volume were to be sustained it already makes the chain growth concerning and adoption is just starting.

        • monerobull@monero.town
          link
          fedilink
          arrow-up
          0
          ·
          8 months ago

          I don’t actually think 150GB per year is an issue. This still gives you +5 years on a 1TB SSD. That’s half a decade of time, Monero is only 10 years old. Plenty of time for storage to advance.

          • Mario@liberdon.com
            link
            fedilink
            arrow-up
            0
            ·
            8 months ago

            @monerobull @tusker is not only an issue, it is awful. Some people barely afford a storage drive of half a TB. Many nodes are actually ran on raspberry PIs.

            And that 150gb is growing exponentially according to adoption. We could easily exceed 2TB every 10years.

            Now, someone has to wait hours to sync the block chain already.

            • monerobull@monero.town
              link
              fedilink
              arrow-up
              1
              ·
              8 months ago

              So what? It takes 3 days to sync an ETH node, 10 days for a chia node. These aren’t lightwallets, this is network infrastructure.

              Many nodes are actually ran on raspberry PIs.

              I very much doubt that considering how raspberries don’t have physical AES and already took +3 weeks to sync before the transaction spike.

              We could easily exceed 2TB every 10years.

              I’d be perfectly fine with that. Right now you can get 2 TB SSDs for about 1 XMR. At the current rate (and it’s been similar for decades) they will be worth less than 20$ in a couple of years. Monero turns 10 this April and we are currently at only ~200 GB. And we still have pruning!

              Storage isn’t the limiting factor, it’s bandwidth.

              • tusker@monero.townOP
                link
                fedilink
                arrow-up
                1
                ·
                8 months ago

                The size of the chain also affects bandwidth. Many people have bandwidth caps so trying to sync 200GB could take 3+ months.

                I hope we can at least have a higher pruning factor where the chain could be cut down to at least 1/10th the size as the amount of nodes continues to grow there would still be more than enough copies of the chain out there.