Data availability solution in plasma
for global state
: Continuous Rebase
박정원(Aiden)
aiden.p@onther.io�19/03/28
<외부자료 활용 시 출처 명시 부탁드립니다.>
Prerequisite
2
Tokamak Network: Plasma for global state
3
Tokamak Network
이더리움과 완전히 동일한 기능 및 구조
Why is EVM-on-Plasma hard?
4
Why is EVM-on-Plasma hard?
5
Data availability!
Old idea: UAF(User Activated Fork)
6
UAF: Critical Drawback
7
Cost!!!
New solution: Continuous Rebase
8
Continuous Rebase 모델은 플라즈마 체인의 정상적인 작동과정에 Rebase를 포함시킨다. 따라서 지속적이고 주기적인 Rebase를 통해 사용자들의 Escape Request를 반영할 수 있게 한다.
이를 통해 사용자들은 DA문제가 있을 경우 Escape Request를 제출하여 안전하게 탈출할 수 있다. 또한 제출된 블록이 올바르지 않을 경우 Computation Challenge를 통해 해당 블록들이 Finalize 되는 것을 막을 수 있다.
Keyword: Rebase, Escape Request
What is Escape Request?
플라즈마 체인의 Data availability에 문제가 생겼을 경우에 사용자가 제출하는 긴급탈출 요청
*구조적으로 Exit Request와 동일하다.
What is Rebase?
9
Rebase란?
기존 블록을 다른 블록을 기준으로 마이닝하는 것
그 결과 stateRoot와 receiptRoot는 변경되지만 transactionRoot는 변경되지 않음
Rebase - simple example
10
#1 Block
A: 100 PETH, B: 0 PETH
#2 Block
tx1: send 100 PETH from A to B (Success)
A: 0 PETH, B: 100 PETH
#1 Block
A: 100 PETH, B: 0 PETH
Escape Block
escape req: exit 100 PETH from A
A: 0 PETH, B: 0 PETH
#2 Block’
tx1: send 100 PETH from A to B (Revert)
A: 0 PETH, B: 0 PETH
Rebase!!!
Continuous Rebase: 1 Cycle - 4 steps
11
3-1. Process Escape: 1,2 에서 제출된 Escape Request를 포함한 Escape Block 마이닝 후 제출
3-2. Rebase: Escape Block을 기준으로 Pre-commit된 블록 Rebase
Continuous Rebase: 1 Cycle - 4 steps
12
Step period
Pre-commit: Epoch Length
DA check, Commit, Challenge: Time
Step 1: Pre-Commit
13
Q) 왜 txRoot만을 제출하나요?
Pre-commit 에서 제출된 블록들은 Rebase로 인해 StateRoot와 ReceiptRoot가 변경될 수 있기 때문. 또한 해당 블록 안에 포함될 트랜잭션이 무엇인지만 알면 해당 블록의 StateRoot와 ReceiptRoot가 어떻게 연산될지에 대해서 알 수 있음(DA 해결)
Step 2: DA check
14
Step 3: Commit - Process Escape
15
(If not, 챌린지)
Step 3: Commit - Rebase
16
Step 4: Challenge
17
Don’t stop me now
18
=> Pre-commit 의 period가 길수록 DA check~Commit period도 길어질 수 있다.
Scenario 1: Data unavailable in Pre-commit
19
Scenario 2: Operator doesn’t commit
20
- Cycle #2 의 Escape Block을 제출하지 않는 경우
- Cycle #3 의 Rebase 단계를 수행하지 않는 경우
Scenario 2: Operator doesn’t commit
21
- Escape Block을 T동안 제출하지 않는 경우
- Rebase 단계를 T동안 수행하지 않는 경우
2-1. 추가 Rebase 단계 수행할 경우, Cycle #2의 Challenge 단계 및 Cycle #3의 Pre-commit 단계 재개
2-2. 추가 Rebase 단계 N번 수행 X, Chain Shutdown
Q) Shutdown?
플라즈마 체인 폐쇄 절차. DA check - Process Escape - Challenge 단계를 통해 안전하게 모든 사용자 Exit
Scenario 3: Operator doesn’t pre-commit for T
22
- #2 Cycle에 대한 Commit 과정은 제대로 수행했을 경우
- #2 Cycle에 대한 Commit 과정 또한 제대로 수행하지 않은 경우
=> Scenario 2와 동일
Scenario 3: Operator doesn’t pre-commit for T
23
- Cycle #2에 대한 Commit 과정은 제대로 수행했을 경우
Scenario 4: Pre-Cycle is on challenge
24
Scenario 5: Challenge success
25
- 챌린지 대상이 Escape Block이었을 경우
- 챌린지 대상이 Rebase Block이었을 경우
Scenario 5: Challenge success
26
- 챌린지 대상이 Escape Block이었을 경우
*챌린저는 챌린지 시 본인이 마이닝한 Escape Block 또한 제출해야 한다.
- 챌린지 대상이 Rebase Block이었을 경우
Continuous Rebase: Dis/Advantages
27
- Advantages
(EVM 사용가능, 현재 이더리움 구조 그대로 사용가능)
- Disadvantages
What’s next?
28
Thank you
29