---
# System prepended metadata

title: '**Smart Contract Research <br> Summer 2022**'

---

# **Smart Contract Research <br> Summer 2022**


```
Tyler Lewis
tylewis@chapman.edu
Chapman University
```



[toc]
# <b>DAO</b> <br/>Decentralized Autonomous Organization
## Q&A
### Q: What is a DAO?
:::warning
**A means for decentralized group decision making** 

DAOs enable a transparent and trustworthy method for a group to make decisions. They live on-blockchain and operate independent of a central authority.
:::

### Q: What is the purpose of a DAO?
:::warning
**There are two primary use cases which I've determined:**

 - control a source of funds
 - oversight and improvement of an applications source code

:::

### Q: How are decisions in the DAO made?
:::warning
**Decisions within the DAO typically undergo a proposition and voting process** 

I say "typically" because the actual inner-workings of how these sort of things work are fully up to the contract designer. However, keep in mind that whatever the chosen implementation is will be fully transparent to everybody. So, an unfair decision making method will prove an unlikely user adoption. 

The most common type of DAO decision process includes a proposition, which anybody in the organization can propose. Followed by a voting period with a set strike time. `the voting period is usually consistent` The proposition either passes or fails and is implemented accordingly. `such proposition could be a transfer of funds or a change in the contract`

Sometimes a DAO will implement a period after the voting period, before implementation, for an additional whitelisted voting, a time for people to change their vote, or even have users with veto capabilities. It's all up to the contract...
:::

### Q: Who gets to participate in the DAO?
:::warning
**It is up to the DAO creator to choose how power is delegated** 

Typically a DAO issues a supply-capped token which acts as a share of the DAO and provdes proportional voting power to its holders. 

However, like I mentioned above, there is not any one method written in stone to determine DAO participants. There are cases where you may just simply want a whitelist of participants, the voting power of individuals would also be up to the DAO contract writer. `As for building Nomic on-chain, a whitelisted DAO may prove usefull. I can see possible rule changes in regard to the whitelist, voting weight, proposer order, etc.`



---


In an [article by Vitalik on coin-based voting](https://vitalik.ca/general/2021/08/16/voting3.html), he discusses his opinions on such governance method. Some interesting alternatives he proposes as well.
:::

### Q: I thought smart contracts were immutable?
:::warning
**Smart contracts <u>are</u> immutable. However, there is a work around...**

Despite the fact that the code of a deployed contract can never be changed, the metadata can be. Essentially, in the case of a code-changing smart contract, a user will be interacting with whats called a "proxy contract" which then forwards transactions to and from the currently active contract. Whenever changes to the code are made, the proxy is notified, metadata is changed, and interactions are forwarded to the most current contract. 

["Proxy Upgrading"](https://docs.openzeppelin.com/upgrades-plugins/1.x/proxies) (OpenZepplin)
[Guide to making upgradeable smart contracts](https://moralis.io/what-are-upgradable-smart-contracts-full-guide/)
:::

<!-- ## Helpful Links

1. ["Proxy Upgrading"](https://docs.openzeppelin.com/upgrades-plugins/1.x/proxies) (OpenZepplin) -->

## Code examples

Lol. you think I know how to code???