Trusting Ethereum Contracts

cointoncointon Member Posts: 9
Will anyone with Ether be able to write a contract, or will there only be certified libraries of contracts? Wondering how the average person entering into a contract will be expected to trust it without understanding the underlying code.


  • TuskTusk Member Posts: 33
    edited February 2014
    I'm not sure if I understood the question, if we write a contact on paper we don't have to understand how the paper was produced, we need to be confident it will accurately record and preserve its content. I think the big difference is we are no longer restricted to static contracts, a math based contracts can be interactive or autonomous comprise of multimedia etc.

    In the past contacts had limited duration, for good reason, because unforeseen circumstances arise. So he terms would be renegotiated and then a new contract would be dawn. With math based contracts this is much easier instead of it expiring they may just keep evolving with our old concept of expiry date becoming milestones
  • ctindallctindall Member Posts: 18
    I think he means that, to the average layman, there's no way for them to audit the code and figure out what it does. Even many programmers may find it cumbersome/impractical to read the raw ES of a complex contract (have you reviewed every byte of the web browser binary you're using?).

    The answer is: you can't, as a layman, trust the contract based on full knowledge, but I think that a big part of making trustable contracts will mean publishing source code, which programmers can easily audit, and then check that it's really what the contract is running by compiling it and comparing it to what's on the block chain. Essentially, it'll work the same way that open source projects work now. I haven't read (and don't have the capability to understand) the Linux kernel source, but I know any anybody who wants to can, I know Linus in particular does. Because I both trust Linus, and am reasonably sure that any big mistakes, oversights, or malicious injections that he makes will be uncovered by someone somewhere who is smart enough to understand it.
  • cointoncointon Member Posts: 9
    edited February 2014
    Thanks ctindall, that is what I meant. The layman will try to understand the contract from the plain english of the contract's title, but the code could do something completely different that they are unable to understand. Also, a coder might not understand the complex legal nature of a contract, so they may have trouble approving it even though they understand the code. How to keep them from approving a contract that has sound code but is technically illegal? This could create a backlog of unapproved contracts. Seems like who will be certified to approve contracts is going to be a very important issue.
    Even the layman's ability to understand the plain english of a contract is an issue. Think of the many Hollywood writers and actors that signed on for a percentage of the net income from a film instead of a percentage of the film's gross income. They ended up getting nothing even when films made hundreds of millions of dollars due to creative accounting.
  • TuskTusk Member Posts: 33
    edited February 2014
    Sure there are always some who try take advantage of others, but over time the bad will be exposed and those who develop a positive reputation will be in higher demand. I don't think this will prevent users from using the contacts, they will just need to be more careful in the beginning and test the code to see if the results are what is claimed.
  • mids106mids106 Member Posts: 188 ✭✭✭
    Decentralized Autonomous Contract Coder will be an important job in the future, same goes for DAC Analyst, Auditor and Tester.

    While the contracts themselves will be stored in raw ES, using deterministic compilation you can verify yourself that the published source code belongs to the same contract in the blockchain. Most likely a lot of contracts will be open sourced, to promote independent analysis and interpretation. Those contracts that won't be open sourced will be decompiled and reverse engineered.

    It is important to have a good understanding how a contract will react under all kinds of conditions. Expect a whole range of tools to be created for this purpose; statistic code analysis, fuzzers and of course contract simulators (such as, shameless plug, cll-sim).
Sign In or Register to comment.