Git Product home page Git Product logo

Comments (3)

DavidVorick avatar DavidVorick commented on August 12, 2024

I'm going to hijack this and make it about transactions in general instead of just the miner fee.

Transactions are weirdly complicated b/c there's so many ways to build them and so many ways for things to go wrong.

We could just make them dirt simple, which might be the best idea. This would remove the fee, and you sign inputs and outputs but don't have an option to sign all of them.

The things that we really want though:

  • Adjustable miner fees, but only up
  • assurance contracts

Assurance contracts are potentially useful to us because you can sign a contribution to a contract, and know that your funds are going directly to the contract. Without signing all potential outputs though, you can't be certain that the target goal won't be overshot and some malicious guy will run away with the spillover.

If you do sign all outputs, it means that people can't add refund outputs, which is annoying but not fatal. I think that the only time it's a real problem is when you have multiple people adding inputs to a contract without adding new outputs that weren't previously specified. Idk it seems like a really complicated problem so I'm going to make the potentially-fatal mistake of keeping things simple and not allowing you to sign all outputs.

But I think that I will add multiple miner fees because that's the only way that people can arbitrarily add to the miner fee without screwing up others who have signed the miner fee.

from sia.

DavidVorick avatar DavidVorick commented on August 12, 2024

The ultra simple thing to do is just get rid of CoveredFields entirely and just have every single signature sign the entire transaction - which means everyone has to agree on the final state of the txn including the fees before making any signatures. More of a pain for people trying to make transactions... but makes implementation a lot simpler. Also potentially a lot safer.

The only dangers I can think of from having malleability that prevents you from signing all outputs and all inputs is that if multiple people are adding funds to the same contract, but don't know that each other exist, then they could be duped and some middle-guy could take whatever funds overlap.

So I guess the solution is to avoid situations where you are adding funds to a transaction along with unknown other parties. If you do that, then you should be safe even though you can't sign every output and guarantee that someone isn't adding more.

from sia.

DavidVorick avatar DavidVorick commented on August 12, 2024

I guess we just need to make sure that the flexibility justifies the complexity, since the vast majority of transactions would be just fine without a CoveredFields object.

from sia.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.