Differences Between Ethereum and Thanos
Last updated
Last updated
Thanos 는 EVM 과 동등하도록 설계되었습니다. 그리고 Ethereum 프로토콜에 가능한 한 적은 변경 사항을 도입합니다. 하지만, Ethereum 과 Thanos 의 동작에는 개발자가 알아야 할 몇 가지 차이점이 있습니다.
Opcode | Solidity Equivalent | Behavior |
---|---|---|
주소 별칭은 스마트 계약에서 L1에서 L2로 전송된 거래의 동작에 영향을 미치는 중요한 보안 기능입니다. 크로스 체인 거래를 사용하는 경우 이 섹션을 주의 깊게 읽어보세요. 계약이 CrossChainMessenger
내부적으로 주소 별칭을 처리한다는 점에 유의하세요.
EOA 를 사용하여 L1에서 L2로 트랜잭션을 보내는 경우, L2 에서 트랜잭션을 보낸 사람의 주소는 L1 에서 트랜잭션을 보낸 사람의 주소로 설정됩니다. 그러나 트랜잭션이 L1에서 스마트 계약에 의해 트리거된 경우 L2에서 트랜잭션을 보낸 사람의 주소는 다릅니다.
CREATE
opcode 의 동작으로 인해 L1 과 L2 모두에서 동일한 주소를 공유하지만 Smart Contract 의 bytecode
가 달라질 수 있습니다. 이러한 계약은 동일한 주소를 공유하지만 근본적으로 두 개의 다른 스마트 계약이며 동일한 계약으로 취급할 수 없습니다. 결과적으로 스마트 계약에 의해 L1에서 L2로 전송된 트랜잭션의 발신자는 L1 의 스마트 계약 주소가 될 수 없으며 L1 의 스마트 계약은 L2의 스마트 계약인 것처럼 작동할 수 있습니다. (두 계약이 동일한 주소를 공유하기 때문에)
이런 종류의 사칭을 방지하기 위해 스마트 계약에 의해 L1에서 L2로 거래가 전송될 때 거래 발신자는 약간 수정됩니다. 실제 L1 계약 주소에서 전송된 것처럼 보이는 대신, L2 거래는 L1 계약 주소의 "별칭" 버전에서 전송된 것처럼 보입니다. 이 별칭 주소는 실제 L1 계약 주소에서 일정한 오프셋이므로 별칭 주소는 L2의 다른 주소와 충돌하지 않으며 원래 L1 주소는 별칭 주소에서 쉽게 복구할 수 있습니다.
발신자 주소의 이 변경은 L1 스마트 계약에서 보낸 L2 거래에만 적용됩니다. 다른 모든 경우에는 거래 발신자 주소가 Ethereum에서 사용하는 것과 동일한 규칙에 따라 설정됩니다.
Transaction Source | Sender Address |
---|---|
Thanos 에서의 Transaction 은 Ethereum 에서 예상하는 표준 Execution Gas Fee
외에 L1 Data Fee
를 지불해야 합니다. 자세한 내용은 Transaction Fee 가이드를 참조하세요.
Thanos 의 기본 수수료는 Ethereum 과 마찬가지로 EIP-1559를 통해 계산됩니다. Thanos 에서 사용하는 EIP-1559 매개변수는 다음과 같이 Ethereum에서 사용하는 매개변수와 다릅니다.
Ethereum 과 달리 Thanos 에는 public mempool 이 없습니다. Thanos mempool 은 Sequencer 만 볼 수 있습니다. Sequencer 는 멤풀에서 priority fee(가장 높은 수수료가 먼저) 순서대로 트랜잭션을 실행합니다.
Parameter | Thanos value | Ethereum value (for reference) |
---|---|---|
COINBASE
block.coinbase
현재 Sequencer 의 수수료 지갑 주소를 반환합니다. Ethereum 과 실질적으로 동일하지만 값은 일반적으로 블록마다 변경되지 않습니다.
PREVRANDAO
block.prevrandao
Ethereum 에서 RANDAO 가 제공하는 강력한 보장과 달리 Sequencer 는 각 블록에 대해 의사 난수를 설정합니다.
ORIGIN
tx.origin
거래가 L1 의 Smart Contract 에 에 의해 시작된 L1 ⇒ L2 거래인 경우, L1 ⇒ L2 거래를 시작한 주소(tx.origin
) 의 Address Alias 로 설정됩니다 . 그렇지 않으면 이 명령어는 정상적으로 작동합니다.
CALLER
msg.sender
거래가 L1 의 Smart Contract 에 의해 시작된 L1 ⇒ L2 거래이고, 이것이 L2 에서 첫 번째로 호출된 Contract 인 경우, Address Alias 가 적용됩니다.
L2 user (Externally Owned Account)
The user's address (same as in Ethereum)
L1 user (Externally Owned Account)
The user's address (same as in Ethereum)
L1 contract (using OptimismPortal.depositTransaction
)
L1_contract_address + 0x1111000000000000000000000000000000001111
Block gas limit
30,000,000 gas
30,000,000 gas
Block gas target
5,000,000 gas
15,000,000 gas
EIP-1559 elasticity multiplier
6
2
EIP-1559 denominator
250
8
Maximum base fee increase (per block)
2%
12.5%
Maximum base fee decrease (per block)
0.4%
12.5%
Block time in seconds
12
12