From Ethereum's website (emphasis mine):

Using Ethereum, you can create a contract that will hold a contributor's money until any given date or goal is reached. Depending on the outcome, the funds will either be released to the project owners or safely returned back to the contributors. All of this is possible without requiring a centralized arbitrator, clearing house or having to trust anyone.

Taken literally, this of course is not possible. A toy example may have computationally verifiable goals, but almost all real projects have ambiguous goals. Who's to say whether a goal has been reached or not? Are contributors the eventual judges on that? In that case, doesn't the project owners need to trust the contributors?

Can someone explain the central idea behind this trust-less kickstarter concept?


Generally with crowdfunding projects on places like Kickstarter, the "goal" is the amount of money they're trying to raise. On Kickstarter, if a project makes its goal it gets the money, otherwise the pledgers keep their money. That way pledgers know that they won't be sending money to a project that ends up doomed for not raising enough.

So obviously it's trivial to handle this on smart contracts.

Verifying whether a funded project actually delivers on its promises is another matter. But it's no better on Kickstarter and other platforms, which pretty much ignore the issue. The FTC is starting to get involved in cases where recipients spend the money on hookers and blow, but not in cases where the project makes an honest effort and just fails to deliver.

| improve this answer | |
  • So "not having to trust anyone" is only in reference to removing the third party. The contributors and project owners still need to trust each other. – Atte Juvonen Jul 5 '16 at 15:45
  • Correct, in this case. There's no way the blockchain can enforce actions in the physical world. However, there are all sorts of things that might improve matters; maybe a reputation system, or using Augur to bet on project success, which would give some information to funders and also let them bet against the project's success to hedge. – Dennis Peterson Jul 5 '16 at 23:15

Describing the crowdfunding process as trustless is a descriptive shorthand.

To give an example of The DAO, Token Holders could vote on proposals. The minimum quorum was 20% consensus before a proposal could be acted upon.

For projects with ambiguous goals, you are relying on some computationally measurable outcome of human judgment, such as votes and opinion of the programmer creating the contract. There are probably ways you could make this more objective- for example, "fail to reach a turnover of $X within 1 years, funding cancelled".

It's important to know where the idea of trustlessness applies and where it doesn't. Ethereum can be conceived as a "trust machine" where perfect strangers can use it as an objective witness and arbiter. So instead of using a bank, you can hold the funds in a contract and create rules how it is used and under what conditions. The inputs might require human judgement, but the methodology is objective and trustless. So in a crowdfunding contract, the contract is an objective witness and arbiter of subjective human inputs.

| improve this answer | |

You could link your contract to an oracle which computes a lot of data from the world out of the chain and say if the goal is reached.

For instance, if your goal is to fund a software you could make the oracle watch a code repository and once you reached a stable release and the backlog is empty and no more issues are open you consider the goal is reached.

Oracles can bring any data to the blockchain smart contract.

Of course, this has to be objective goals that can be measured, but this is also the case with standard crowd funded projects. But even if the goal is to make something "nice" wich is mostly opinion based, you still can create an AI using deep learning that would deliver it's appreciation through an oracle.

| improve this answer | |
  • The code repository is managed by the project owners, who are able to close issues and create releases at their discretion. Therefore, an oracle watching the repository is no better than a project owner saying "it's done". – Atte Juvonen Jul 5 '16 at 15:43
  • It was just an example. It's up to you to create distributed code repository where closing issues would require the founders to vote for it in a smart contract. But if you don't trust the project developers, just don't invest in their project. – Nicolas Massart Jul 5 '16 at 16:17
  • I can imagine oracles removing some need for trust in some projects/systems. Thanks for the answer. – Atte Juvonen Jul 5 '16 at 19:17
  • 1
    One simple thing you can do is to add a delay between the moment when the last issue is closed and the moment the funds are released. Two weeks looks nice. During this time if you consider that the project is not finished, just fill a new bug and the timer will start again. It think that some imagination is needed to have a good system but possibilities are endless. – Nicolas Massart Jul 5 '16 at 19:24
  • By the way, DAO showed us that such timers are very welcome to delay withdraw from contract. So I think it's a good practice even if no delay is really needed. – Nicolas Massart Jul 5 '16 at 20:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.