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

Decisions of Polkadot Update (for JAM) #1047

Merged
merged 7 commits into from
Jun 16, 2024
Merged
Show file tree
Hide file tree
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
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
145 changes: 101 additions & 44 deletions syllabus/7-Polkadot/1-decisions-of-polkadot-slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,37 +152,27 @@ What are the type 1 decisions which define Polkadot?

---

## Wasm
## Parallel Execution

<div class="grid grid-cols-3">

<div>
Polkadot scales through parallelization.

<img style="width: 400px;" src="../../assets/img/0-Shared/logo/webassembly-blue.png" />

</div>
Polkadot provides parallelized execution using parallel execution cores.

<div class="col-span-2">

WebAssembly is the backbone of Polkadot. It is a fast, safe, and open meta-protocol which powers all of the state transitions of our ecosystem.

It standardizes how chains execute, sandboxes that execution for improved security, and allows teams to build on Polkadot using any language that can be compiled into Wasm.

</div>
<img style="width: 1000px;" src="../../assets/img/7-Polkadot/decisions/exotic-scheduling.png" />

</div>
Execution cores allows Polkadot to provide blockspace-as-a-service, and are designed to work with any kind of Web3 application.

---

## Sharding
## Data Sharding

<div class="grid grid-cols-2">

<div>

Polkadot scales primarily by parallelizing execution on separate data shards.
Polkadot is able to do parallel execution because it splits up data on its network into separate data shards.

These parallel chains (shards) are called Parachains.
Today, parallel chains (shards) are called Parachains.

</div>

Expand Down Expand Up @@ -218,23 +208,25 @@ Specialized solutions for problems are more performant than generalized solution

---

## Interoperability
## Execution Meta-Protocol

<div class="grid grid-cols-2">
<div class="grid grid-cols-3">

<div>

Individual application chains will inherently lack the ability to provide a full suite of optimized solutions for end users.

Interoperability allows parachains to work together to complete, complex end-to-end scenarios.
<img style="width: 400px;" src="../../assets/img/0-Shared/logo/webassembly-blue.png" />

</div>

<div>
<div class="col-span-2">

<img style="height: 500px;" src="../../assets/img/7-Polkadot/xcmp-2.svg" />
To provide heterogenous sharded execution we need a fast, safe, and open meta-protocol to power all of the state transitions in our ecosystem.

A visual of XCMP channels between Parachains.
Today we use Wasm.

It standardizes how Web3 applications execute and sandboxes that execution for improved security.

It also allows teams to build on Polkadot using any language that can be compiled into Wasm.

</div>

Expand All @@ -248,9 +240,11 @@ A visual of XCMP channels between Parachains.

<div>

An often overlooked problem is economic scaling of the entire blockchain ecosystem.
Blockspace is the capacity of a blockchain to commit and finalize operations.

An often overlooked problem is the economic scaling need to provide high quality blockspace.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I get this point. Can you elaborate?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

uhh, i guess the best point of elaboration is to read:

https://www.rob.tech/blog/polkadot-blockspace-over-blockchains/

Blockspace is not a commodity but rather a class of commodities. Blockspace produced by different systems will vary in quality, availability, and flexibility. The quality of blockspace can be judged by the security guarantees that the blockchain provides - the more secure, the higher the quality. Without a supply of blockspace, applications run into congestion or downtime, leading users to experience high fees, long wait times, or front-running. Without high-quality blockspace, applications are hacked and drained: low-quality blockspace is vulnerable to 51% attacks and toxic shock. Both types of occurrences will be familiar to readers who have spent time observing the blockchain ecosystem. These characteristics of blockspace are the key factors application developers must consider when choosing where to deploy.

My point in the slide is that shared security is what makes polkadot's blockspace "high quality" versus many other chains providing lots of blockspace too, but low quality.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think see your point but I feel like there's something wrong with the way this is worded in the slides. Economic scaling is a but undefined to me

Based my understanding what you are saying is that blockspace quality is often sacrificed or diminished to gain more scalability, right?

Would you be okay with:

Suggested change
An often overlooked problem is the economic scaling need to provide high quality blockspace.
An often overlooked problem is that when pursuing scalability it is very easy to significantly diminish the quality of blockspace.


Polkadot is unique in that it provides all connected parachains with the same security guarantees as the Relay Chain itself.
Polkadot is unique in that it provides blockspace to other Web3 applications with the same security guarantees as Polkadot itself.

</div>

Expand All @@ -264,19 +258,35 @@ Polkadot is unique in that it provides all connected parachains with the same se

Notes:

Learn more about blockspace: https://www.rob.tech/blog/polkadot-blockspace-over-blockchains/

Security in proof-of-stake networks depends on economics, so there can only exist a limited amount of security in the world because economic value is, by definition, limited. As the number of blockchains increases due to scaling issues on single chains, their economic value — and therefore their security — gets spread out over multiple chains, leaving each one weaker than before.

Polkadot introduces a shared security model so that chains can interact with others while knowing full well that their interlocutors have the same security guarantees as their own chain. Bridge-based solutions — where each chain handles its own security — force the receiver to trust the sender. Polkadot’s security model provides the necessary guarantees to make cross-chain messages meaningful without trusting the security of the sender.

---

## Execution Cores
## Interoperability

Polkadot's Shared Security is powered through the creation and allocation of execution cores.
<div class="grid grid-cols-2">

<img style="width: 1000px;" src="../../assets/img/7-Polkadot/decisions/exotic-scheduling.png" />
<div>

Execution cores provide blockspace-as-a-service, and are designed to work with any kind of consensus system.
Individual application chains will inherently lack the ability to provide a full suite of optimized solutions for end users.

Interoperability allows parachains to work together to complete, complex end-to-end scenarios.

</div>

<div>

<img style="height: 500px;" src="../../assets/img/7-Polkadot/xcmp-2.svg" />

A visual of XCMP channels between Parachains.

</div>

</div>

---

Expand Down Expand Up @@ -427,7 +437,7 @@ What are the type 2 decisions of Polkadot?

## Parachains

Polkadot was designed around Parachains, but the exact meaning and manifestation of a Parachain is evolving.
Polkadot was originally designed around Web3 applications in the form of Parachains, but this categorization is evolving.

<div class="grid grid-cols-2">

Expand All @@ -448,7 +458,7 @@ Polkadot was designed around Parachains, but the exact meaning and manifestation
<br />

- Originally, parachains would be long term applications-chains.
- On-Demand Parachains (formerly parathreads) changed that viewpoint to also include chains which can spin-up and spin-down at will.
- Services and Agile Coretime changed that viewpoint to also include applications that can spin-up and spin-down at will.
- The future protocol will have even more exotic core scheduling and even more agile core usage, all because the type 1 decision around parachains is actually **execution cores**.

Notes:
Expand Down Expand Up @@ -518,16 +528,6 @@ The protocol has been actively evolving over time, making it more performant and

---

## SASSAFRAS

While hybrid consensus is a type 1 decision, the underlying protocols can continue to evolve, such as from BABE to SASSAFRAS.

> Semi Anonymous Sortition of Staked Assignees For Fixed-time Rhythmic Assignment of Slots

An extension of BABE and acts as a constant-time block production protocol. This approach tries to address the shortcomings of BABE by ensuring that exactly one block is produced with time-constant intervals. The protocol utilizes zk-SNARKs to construct a ring-VRF and is a work in progress.

---

## OpenGov

The specifics of Polkadot's on-chain governance system has changed multiple times in its history.
Expand Down Expand Up @@ -556,6 +556,63 @@ An invention machine.

---

# JAM

---

## What is JAM?

JAM is the next evolution of the Polkadot protocol.

<img style="width: 600px;" src="../../assets/img/7-Polkadot/decisions/jam-pen-polkadot.png" />

The JAM chain will be the successor to the existing Polkadot Relay chain.

JAM will provide all the functionality of Polkadot v1, but also provide a more flexible foundation on which to build Web3 Applications.

---

## The Decisions of JAM

<div class="grid grid-cols-2">
<div>

**Unchanged**

- The Philosophies of Polkadot
- The Goals of Polkadot
- Parallel Execution and Heterogenous Sharding
- Shared Security
- Interoperability

</div>

<div>

**Changed**

- Upgradability of the Core Protocol
- Substrate -> JAM Chain
- Services (as a superset of Parachains)
- Wasm -> PolkaVM (RISC-V)
- Synchronous Communication Capabilities

</div>

---

## Is JAM a new protocol?

JAM is certainly the next evolution of the Polkadot protocol.

- Some things have explicitly changed.
- But the problem we are trying to solve is the same.
- And almost all of the same technology is being used to solve it.

### JAM is Polkadot.

---

# So what is Polkadot?

---
Expand Down
Loading