Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update overview.md #547

Merged
merged 1 commit into from
Mar 9, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions docs/smart-contracts/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,18 @@ image: ./img/og-developer-portal.png
![Smart Contracts](../../static/img/card-smart-contracts-title.svg)

## What are smart contracts?
Smart contracts are automated digital agreements that are programmed. They are self-executing, incorruptible, and unalterable. They do not require any actions or the presence of third parties.
Smart contracts are pre-programmed, automatic digital agreements. They are self-executing, unalterable, and incorruptible. They don't necessitate any acts or the presence of others.

## Two worlds of smart contracts
We can break smart contracts and financial transactions down into two worlds:

In one world, you want to send some notion of value between one actor (or group of actors) to another actor (or a group of actors). There has to be a representation of that value, the terms and conditions behind it, and an event to trigger it. This is what we call a financial contract and best implemented with a domain-specific language. This world has nothing to do with replacing a big company or this common notion that we might have with dapps.
In one world, you wish to communicate a sense of worth from one actor (or group of actors) to another (or a group of actors). There must be a representation of that value, as well as the rules and circumstances that govern it, as well as a trigger event. A financial contract is what we call it, and it's best done with a domain-specific language. This world has nothing to do with replacing a big company or this common notion that we might have with dapps.

In the other world, you want to write programs, maybe even replace a large company, perhaps solve something smaller. Those applications consist of a triangle:
In another world, you'd like to build programs, possibly even replace a major corporation, or address a smaller problem. A triangle is formed by these applications:

- The client - this is what runs on your computer.
- The server - this is what runs on someone's server (or multiple servers).
- The smart contract - the piece of the code that actually runs decentralized.
- The client is the portion of the program that runs on your computer.
- A server is a computer that operates on someone else's computer (or multiple servers).
- The smart contract is a piece of code that allows a decentralized system to operate.

## Programming languages
- [Marlowe](marlowe) - a domain-specific language, it covers the world of financial contracts.
Expand Down