Oct 31, 2019

Algorand Smart Contracts at Layer 1

By: Silvio Micali

Algorand is the blockchain that enables the creation of frictionless financial assets. We are committed to providing our users the best and easiest-to-use tools to let them issue their financial products. And we do so at Layer 1!

As described in my previous blog post, tools implemented at Layer 1 avoid the complexities, expense, and security risks of smart contracts. Indeed, Layer-1 functionalities have the same security, efficiency, and atomicity as single-payment transactions. Part 1 of our Layer-1 Strategy consisted of creating both Algorand Standard Assets and Atomic Transactions (respectively, ASAs and ATs for short), both of which are implemented at Layer 1. Using these functionalities (which were called fungible tokens and AMPTs in the earlier blog post), Algorand users can, without relying on smart contracts, issue their own tokens (e.g., a new currency, points in a loyalty program, shares in an asset or a corporation, etc.). Moreover, they can realize any set of transfers, possibly involving multiple types of tokens, via a single transaction, thus preventing misbehaving users from refusing to go through with their transfers after getting what they wanted from other users. 

We now want to move to Part 2 of our strategy: Algorand Smart Contracts at Layer 1, ASC1s for short.

An ASC1 can be used for a host of valuable applications, including:

  • Post-and-sale transactions. You enable any other user to purchase an item of yours at a given price, without any further involvement from you.
  • Securitized Loans. You make a loan, secured by collateral of the borrower, so that you automatically get the collateral if the borrower fails to make payments according to a specified payment schedule.  
  • Crowdfunding. Without any further involvement of yours, you collect funds for a given project if a preset funding target is reached, and automatically return all money otherwise. 
  • Accredited-Only Transactions. You enable only qualified users to execute a certain kind of transaction, without having to approve each transaction separately.
  • Multi Multi-Sig Wallets. You create a wallet where not only any k out of the n public keys of a given set A can authorize transactions (an ordinary multi-sig wallet), but also any k' of the n' of the public keys of another set B, and so on.     

ASC1s can be applied to either individual transactions or accounts, respectively yielding ASC1-transactions and ASC-accounts.