Page tree
Skip to end of metadata
Go to start of metadata
  1. The main presentation was from Nathan Mathews of Digital Asset
  2. Video of the slides and talk can be found here
  3. Key points were;
    1. Digital Asset was founded in 2015 and DAML (Digital Asset Modelling Language) has always been part of their offering
    2. DAML was opensourced under the Apache II license earlier this year
    3. You can write DAML as an opensource language and deploy it on any ledger
    4. The history of Digital Asset has been in financial services but they are expanding into all markets including start ups
    5. The aim of DAML is reduce the amount of coding that is required to deliver business applications, while avoiding lock-in on the technology stack. Their aim is a 10x improvement in productivity, but Nathan believes that this may be a conservative estimate.
    6. DAML is a smart contract that has its own IDE. 
    7. Digital Asset have integrated with a number of ledgers including Fabric, and there is an integration kit which users can use to integrate to any ledger, and can even interact with database products as well.
  4. Key features of DAML are;
    1. It separates business logic from the system code (e.g. keys).  This makes the code far more readable
  5. A bit of contract theory;
    1. Contracts cover the rights and duties of parties (plural)
    2. It is legally enforceable and it covers the exchange of something
    3. Contracts come into being because someone offers it and someone else agrees, and there is mutual intent to be bound
    4. They should not be forgeable and are covered by law
  6. DAML Smart contracts
    1. Start with a template, which is similar to a class in OO programming
    2. The template defines how the contract is going to work and defines properties like;
      1. Issuer
      2. Owner
      3. Observer
    3. DAML enforces strict rules about who can see what.  These are defined by the observers
    4. You can also add rules e.g. a value cannot be less than zero
    5. Parties
      1. A party in DAML is someone with signatory authority. This is a required field
      2. A contract cant come into existence unless its signed by the issuer and the owner
      3. Different named people have different rights.  For example the issuer cannot transfer the contract.
      4. The controller block controls the rights that the different parties have
    6. The ledger model means that each contract is immutable. 
  7. Comparison with the Libra "Move" language
    1. Move prevents the inadvertent creation or destruction of assets through poorly written code.  How does DAML address this?
      1. DAML achieves the same thing by limiting the options that the named people in the controller can have.
      2. By making the code as small and concise as possible it reduced the "surface area" that problems can be introduced.
      3. Move is a lower level language more similar to "C" rather than a business modelling language
    2. Where is the contract formed from a legal perspective?
      1. The smart contract is written by a smart contract writer
      2. The smart contract writer will be in a particular jurisdiction, the contract execution will depend upon the ledger upon which the contract exists
      3. Specifics about parties or enforceability will depend upon the contract itself
      4. It's possible (but not mandatory) to include what the governing law is going to apply
  8. Trade Finance demo
    1. There is a demo on the website (link to come)
    2. You can watch the video here;  (link to come)
    3. Questions
    4. What is the onboarding process for companies?
      1. There are a set of templates which act as a starting point.  The critical point is being able to understand the business domain that you are modelling, and who can do what, rather than being a language expert
      2. The company also has consulting services
    5. How would you integrate into Hyperledger fabric?
      1. DAML code is blockchain independent.  The development is the same irrespective of which chain you use.  Integrating therefore becomes a deployment issue.
  • No labels