## Intro
- Formalland 2 years old
- Formal verification for code, proofs
- Find a way to fully specify smart contracts
- Formal verification as means of security (no bugs -> no stealing)
	- Alternatives include:
		- Testing (Unit, Value)
		- Human expertise
		- Quite niche in the field of computer science
- We can be sure that the program follows intended behavior after verification


## Smart contracts
- Notion of users
- Admin - owner
- We need to look through some examples [here](https://formal.land/docs/tools/coq-of-solidity/specification-project) to get a feel for them.
	- Motivated by bugs [listed here](https://github.com/kadenzipfel/smart-contract-vulnerabilities)

### Example of Smart Contract
- Stablecoins (USDC)
	- Possible specification(?) is to state that the amount of coins is fixed

## Work
- Solidity
- VSC online

### Questions during the meeting
- What is the difference between a user and an admin in the context of smart contracts?

- You mentioned that one possible specification is to state that the amount of coins is fixed. How does that relate to formal verification? To our project?

- Is the idea to design a DSL? Could you elaborate on the specifics? Do you have a write-up about it or do we need to come up with it?
> Yes. We want to simplify formal verification of smart contracts by creating a DSL.