Coder Social home page Coder Social logo

Comments (6)

csuwildcat avatar csuwildcat commented on July 20, 2024

I'm seriously leaning towards a basic proof variant: Proof of Bump - a simple algo that transaction anchoring nodes can use to pay more in fees for more ops. This is a far more benefitial strategy than Proof of Burn, and doesn't preclude later additions to operation-level proofing schemes.

from sidetree.

OR13 avatar OR13 commented on July 20, 2024

The first objective of the PoW is to prevent spamming, here is a simple article regarding a naive implementation, I think it would be helpful to name a simple naive approach and complete the integration and tests using that algo before attempting a more complicated one.

I don't understand the comment regarding fees.

As I understand it, PoW in sidetree is only about spam protection, there is no block reward or transaction fees for the miner (batch writer).

Is there a relationship between the blockchain native tokens (BTC, ETH) and sidetree PoW?

Or is the proof a pure function of powAlgo, lastTransactionTimeHash , operationHash, and nonce ?

Will the PoW algorithm be geared towards existing hardware / miners or is it desirable for it to be asic resistant?

See also: https://swende.se/blog/Progpow.html

https://github.com/ifdefelse/ProgPOW

^ this complexity seems like a terrible idea for sidetree.

https://lhartikk.github.io/jekyll/update/2017/07/13/chapter2.html

^ this seems like a much better starting point.

I keep thinking about the case where a client wants to anchor their own operations, it costs them ETH or BTC to do this as well as compute time for PoW, additionally if their operations are invalid this is wasted.

The case is the same for sidetree nodes, but they are handling many operations, and doing much more work, so there is more chance for their work to become invalid while they try to complete a batch.

Can we walk through a simple case with block difficulty?

from sidetree.

csuwildcat avatar csuwildcat commented on July 20, 2024

from sidetree.

OR13 avatar OR13 commented on July 20, 2024

from sidetree.

csuwildcat avatar csuwildcat commented on July 20, 2024

@OR13 a few follow-ons to your response:

  1. It is true that this does not prevent an attacker from anchoring a large batch of ops without paying the right corresponding fee, but nodes will know the correct fee before fetching and be able to cut off the processing if the file exceeds the expected size or is malformed after it is fully received. But as you mentioned, this is not introducing any new issue, given Writers can always attempt to violate the rules and observing nodes always need to apply them to minimize resource use and ensure they don't.

  2. This does mean that at least this method of proof/anti-spam would need to be committed by the batch writer. However, this does not entirely preclude sender of an op from 'proving' the value of their included op by paying the writer through some out-of-band means. I had always hoped the long-run plan for Batch Writer cost deferral would be to integrate Lightning/Raiden, given repeated commits of small micropayments to a set of peer-writers you choose is a perfect use case for L2 payment channel utilities/protocols.

  3. After thinking about the client POW, there just doesn't seem to be any feasible way to do it at this time that doesn't burden the user who must deal with the implied POW experience degradation on-device vs an attacker who has no such UX issue to manage. At this time, it seems like a better idea to just stack the chips against attackers economically and let them bang their head on the table.

from sidetree.

AlexITC avatar AlexITC commented on July 20, 2024

Another idea for not downloading a possibly invalid huge file is:

  • The IPFS file has a maximum allowed size, if we can abort the download if that size is exceeded.
  • A single ION transaction can likely have a maximum size (possibly an estimation?), using the transaction fee can allows to estimate the maximum number of ION transactions in the file, the download from IPFS can be aborted if that's exceeded.

If there is a reliable/trusted way to get the size of an IPFS file, aborting the download should not be necessary.

from sidetree.

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.