Re: Smart contracts working group

Silas Davis

That would be good Dan.... I was just looking at the Ergo compiler today in fact :)

On Thu, 24 Jan 2019 at 10:49, Dan Selman <dan@...> wrote:
Sound good Silas. I’d be happy to contribute and to represent Accord Project.


On Thu, 24 Jan 2019 at 10:35, Silas Davis via Lists.Hyperledger.Org <> wrote:
Hi Sofia,

I took a look at your proposal. My immediate reaction to the idea of a smart contracts working group is that it is a good idea. Smart contracts are the thing that attracted me to blockchain personally, but there remains a level of equivocation about what they are. The pragmatic model more favoured in Hyperledger seems to be 'they are just code that runs on a blockchain', the straw man model (since I think few people think this way post-DAO) is 'code is law', in fact probably the concept could be usefully unbundled, so I like the suggestion of a taxonomy as a primary output of a Smart Contract WG.

I also think, as with many proposals to the TSC, I think it would be useful to understand where the boundaries of such a group lie. A working group based in the model smart contracts as 'just code' seems like it would be far too general so I wonder how we could structure the mission of the group to have some focus. In terms of use cases, stories, and scenarios - whilst these are clearly a background to the usage of smart contracts I feel these topics are better covered in other groups and are general in the way code is general.

Some research topics and separation I would be interested in are:

- Models of and mechanism for computation, such as:
  - Stack machines vs automata vs manipulating algebraic types embedded in a another language
  - Scope for less expressive languages (that may have more tractability for formal methods)
  - Execution determinism, and sources of non-determinism in existing languages
  - Cost models for metering computation (e.g. gas)
  - Paradigms for smart contracts - e.g. 'identity-oriented', functional, process-oriented - extent to which smart contracts benefit from special purpose languages
  - Parallelism of execution, state independence (i.e. parallel processing in a single block)
- Formal guarantees on outputs of smart contracts
- Smart contract packaging, code reuse, and dependency auditing
- Smart contracts as representatives of obligations and fulfilment (i.e. 'law')
  - What properties should smart contracts with 'legal charge' have?
  - What relations can smart contracts have with actual contracts and agreements?
  - At what scale to smart contracts best contribute to certainty and execution of agreement?
  - What relationship do legal smart contracts have to models of computation?
- Generation of smart contracts from existing artefacts (natural language, business process, state machines, non smart-contract code)
- Data structures and state
  - Verifiable and authenticated data structures - e.g. merkle dags, log-backed maps,
  - How best to expose through smart contract languages/libraries
  - Sharing state backends across execution engines
  - Conflict-free and additive data structures
- Privacy
  - Multi-party secure computation
  - Differential privacy
  - Zero knowledge and practical building blocks - types of commitments and witnesses
- Tooling and compilers for existing virtual machines
  - EVM
  - WebIDL

I think for a Hyperledger working group a good output would be to find practical ways to connect stuff 'out there' with things we could use within our implementations. I'd like to see a group that could survey the state of the art and academic content and produce 'Requests To Build' that could feed into feature planning on the frameworks.


On Wed, 23 Jan 2019 at 23:24, Sofia Terzi <sterzi@...> wrote:


I have made a proposal for the smart contracts working group and send an email before a couple of days. I wanted to know if there is going to be a meeting tomorrow in order to present it to the committee as it is described in the process. Thank you


Sofia Terzi

Send from android Sony Xperia


Dan Selman


Email: dan@...

Mobile: +44 7785-792717


This message is confidential and its contents shall not be distributed to any third parties without the permission of the sender. Similarly any documents that are marked as private and confidential or similar are strictly not for distribution or disclosure to any unaddressed parties, without exception. It may also be privileged or otherwise protected by work product immunity or other legal rules. If you have received it by mistake, please let us know by e-mail reply and delete it from your system. You may not copy this message or disclose its contents to anyone. The integrity and security of this message cannot be guaranteed on the Internet.

Join to automatically receive all group messages.