Giter Club home page Giter Club logo

compspec's People

Contributors

rbharath avatar robrobbins avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

compspec's Issues

Document race conditions on large buy orders

It is possible for attackers to front-run large calls to Reserve.support to take advantage of large in-bound patron fees. The attackers can buy them immediately sell via Reserve.withdraw. If the boost in price is larger than spread, this attack can be profitable. Suggest that patrons either:

  • Use a high gas fee to discourage front running
  • Break support calls into smaller chunks for security

Market decisions through delegated representation

From v0.3 of the protocol spec:

Major decisions in the Market are made by token holder vote...A threshold T_council will be imposed, and only MarketToken holders who hold more than T_council units of MarketToken will be allowed to vote.

Qualitatively, this creates two mechanisms for making decisions. When T_council is 0, the market functions like a direct democracy with all token holders able to cast decision making votes. When T_council > 0, the market functions like a private company with a class of active shareholders with decision making power and a class of passive shareholders without decision making power. The only mechanism to transition from passive to active is by increasing token ownership.

Some markets may benefit from a decision making system analogous to public companies and representative democracies, where decision making power is reversably pooled by token holders to rest in a small set of individuals who make decisions and are accountable to their token-holding "constituents". This "elected" group would be akin to a board of directors or legislature.

Such a scheme may be useful in markets with long tails of ownership (perhaps through long tails of crowdsourced data contribution) and / or diverse demand-side uses where a diverse and potentially competing set of goals for the data market co-exist.

Such a scheme may also be a powerful proposition to crowdsourcing data listers who desire equity and decision making power in proposition to token ownership but do not want to or does not have the ability to vote on every decision individually.

An example implementation could involve minting a token tuple (e, v) where the e token is held as ownership stake / equity, and the v token is used for voting. The v token can be reversibly lent to another address to allow that address to vote as a proxy.

Query Spike

There are a number of high level questions we should start answering about queries. This issue lays out a first spike to start getting some query support into computable backends:

  1. What does a query look like?
  • For now, this will probably just be a subset of SQL, but we need more detail on the specific subset. Is this the subset supported by Athena?
  1. How can we get a query from the user to the backend system?
  • For example, is this through an ORM? Or even simpler, does the user send a raw SQL file over? Is there a REST endpoint the user sends the file to?
  1. How do we validate the query?
  • Are there standard query sanitization tools? We should likely use Athena or SQLlite immutable or a similar system to make sure query isn't dangerous.
  1. How do we get Flex set-up?
  1. How can we compute privacy parameter epsilon for a given query?
  • Specifically, how do we run Flex on a given query
  1. How do we send results back to the user.

Document reparameterization race conditions on requestDelivery

It's possible for cost_per_byte to change between the time the user submits Datatrust.requestDelivery call and the time the call is confirmed. This means that the user could end up paying an unexpectedly high price for the data. Document this issue and suggest that the user offer high gas fees to enable rapid confirmation or break up orders into multiple smaller orders to avoid issues.

Fix EtherToken Description

Currently, the EtherToken chapter says:

You will need EtherToken for all your interactions with the Computable smart contracts

Comment by @robrobbins:
"not true. in almost all cases you need CMT. CET is only ever used to support or as an eventual exit"

Create Purchasing Data Page

We should add a page about purchasing data that explains the mechanics of the delivery process. The existing Datatrust page introduces the concept but doesn't really go into it in sufficient depth. This should explain how the bytes purchased from multiple deliveries pool together.

Council members can potentially gain more than one vote

From the protocol:

The votes here are not stake-weighted. All council members have precisely one vote. So a council member with 5*T_council and another council member with 1.1*T_council MarketTokens have the same voting power.

This allows for a sybil style attack where a council member with 5.5*T_council tokens distributes them to 5 separate addresses each with 1.1*T_council tokens and gains 5 votes in the council.

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.