Blockchain Layer 2

· 16분 읽기

L2에서 트랜잭션을 처리하는데, 왜 다시 L1에 기록하는 걸까? L2는 확장성 트릴레마를 정말 해결한 걸까?

L2 아키텍처: 핵심 컴포넌트

L2의 동작을 이해하려면 네 가지 핵심 컴포넌트를 먼저 알아야 한다.

시퀀서(Sequencer)

L2에서 트랜잭션의 순서를 결정하고 배치를 구성하는 핵심 컴포넌트다. L1의 mempool + 블록 생성자 역할을 L2에서 대신한다.

사용자가 L2에 트랜잭션을 전송하면, 시퀀서는 이를 수신하여 즉시 실행 결과를 반환한다. 이것이 Soft Confirmation이다.

아직 L1에 기록되지 않았지만, 시퀀서가 “이 트랜잭션을 포함하겠다”고 약속한 상태다.

현재 대부분의 L2는 단일 시퀀서를 운영한다. 빠르고 효율적이지만, 이것이 L2 생태계에서 가장 큰 중앙화 이슈이기도 하다. 이 문제는 뒤에서 다시 다룬다.

프루버(Prover)

ZK Rollup 전용 컴포넌트다. 트랜잭션 배치의 정확성을 증명하는 유효성 증명(Validity Proof)을 생성한다. “이 1000개의 트랜잭션을 모두 올바르게 실행했다”는 것을 각 트랜잭션을 일일이 보여주지 않고 수학적으로 증명하는 것이다.

증명 생성은 연산 집약적이어서 L2 운영 비용의 주요 요인이다.

데이터 가용성(Data Availability)

이건 컴포넌트는 아니고, 트랜잭션 데이터가 누구나 접근하고 검증할 수 있는 상태인지를 의미한다.

왜 중요한가? L2의 상태를 독립적으로 재구성하려면 원본 트랜잭션 데이터가 필요하다.

데이터가 없으면 Fraud Proof를 생성할 수 없고(Optimistic Rollup), 사용자가 자산을 증명할 수 없다.

DA 전략데이터 위치보안비용대표 사례
On-chain (L1)이더리움 Blob이더리움 수준높음Arbitrum, Optimism
DAC오프체인 위원회위원회 신뢰 필요낮음Arbitrum Nova
Alt-DACelestia, EigenDA 등별도 합의중간일부 L3

탈출 해치(Escape Hatch)

시퀀서가 검열하거나 오프라인이 될 때, 사용자가 L1을 통해 직접 트랜잭션을 강제 포함(force inclusion)하거나 자산을 강제 출금(force withdrawal)할 수 있는 안전장치다.

이것이 “진정한 L2”와 사이드체인을 구분하는 핵심 요건이다. 사이드체인(예: 과거의 Polygon PoS)은 자체 합의 메커니즘에 의존하므로, 검증자가 담합하면 사용자 자산이 위험해진다. L2는 최악의 경우에도 L1으로 탈출할 수 있어야 한다.


트랜잭션 라이프사이클

사용자가 L2에 트랜잭션을 제출하면 무슨 일이 벌어지는가?

Optimistic Rollup(Arbitrum)을 기준으로 전체 라이프사이클을 추적한다.

sequenceDiagram
    participant User as 사용자
    participant Seq as 시퀀서
    participant L1 as Ethereum L1
    participant V as 검증자

    User->>Seq: 1. 트랜잭션 전송
    Seq->>User: 2. Soft Confirmation (~200ms)
    Seq->>Seq: 3. 배치 구성 (수백~수천 tx)
    Seq->>L1: 4. 배치 데이터 + 상태 루트 게시
    Note over L1: 5. 챌린지 윈도우 (7일)
    V-->>L1: 6. (이상 시) Fraud Proof 제출
    Note over L1: 7. 상태 최종 확정 (Finality)

1단계: 트랜잭션 전송

사용자는 MetaMask 등 지갑에서 L2 네트워크를 선택하고 트랜잭션을 전송한다. 이 트랜잭션은 L1이 아닌 L2 시퀀서의 RPC 엔드포인트로 전달된다.

2단계: Soft Confirmation (~200ms)

시퀀서가 트랜잭션을 수신하고 오프체인에서 즉시 실행한다. 실행 결과를 사용자에게 반환하며, 이것이 Soft Confirmation이다. 사용자는 수백 밀리초 만에 “트랜잭션 성공”을 확인할 수 있다.

Soft Confirmation은 시퀀서의 “약속”이지 L1의 보장이 아니다. 시퀀서가 정직하다면(그리고 현실적으로 대부분 그렇다면) 이 약속은 지켜진다. 하지만 이론적으로는 시퀀서가 이 트랜잭션을 최종 배치에서 제외할 가능성이 있다.

3단계: 배치 구성

시퀀서는 수백~수천 개의 트랜잭션을 모아 하나의 배치(batch)로 구성한다. 여러 트랜잭션을 하나로 “말아서(roll up)” 압축하는 것이 Rollup이라는 이름의 유래다.

4단계: L1 게시

시퀀서는 배치 데이터와 실행 후 상태 루트(state root)를 이더리움 L1에 트랜잭션으로 게시한다. 이 시점부터 배치 데이터는 이더리움 네트워크에 기록되며, 누구나 접근할 수 있다.

5단계: 챌린지 윈도우 (Optimistic Rollup)

약 7일 동안 누구든 배치의 정당성에 이의를 제기할 수 있다. 검증자는 L1에 게시된 배치 데이터를 다운로드하여 직접 재실행하고, 결과가 시퀀서가 게시한 상태 루트와 다르면 Fraud Proof를 제출한다.

ZK Rollup의 경우 이 단계가 다르다. 챌린지 윈도우 대신, 프루버가 유효성 증명을 생성하여 L1에 제출한다. L1의 검증 컨트랙트가 증명을 확인하면 상태가 즉시 확정된다.

6~7단계: 최종 확정(Finality)

7일간 유효한 이의 제기가 없으면 배치가 최종 확정된다. 이 시점에서 L2의 상태는 L1의 보안에 의해 보장된다.

확정성(Finality)의 단계

단계시점보장 수준되돌림 가능성
Soft Confirmation~200ms시퀀서의 약속시퀀서가 배제 가능 (이론적)
L1 게시수 분~수 시간데이터 불변챌린지 시 되돌림 가능
최종 확정7일 (Optimistic) / 수 시간 (ZK)L1 보안 수준사실상 불가능

왜 L1에 다시 기록하는가?

L2에서 이미 트랜잭션을 실행했는데, 왜 굳이 L1에 다시 기록하는 걸까?

”L1에 기록한다”는 것의 실체

“L1에 기록한다”는 표현은 추상적으로 들릴 수 있다. 구체적으로 무슨 일이 일어나는지 보자.

모든 Rollup은 이더리움 L1에 스마트 컨트랙트 세트를 배포하고 운영한다. 이 컨트랙트들이 L2와 L1을 연결하는 신뢰 앵커(trust anchor) 역할을 한다.

flowchart TB
    subgraph "Ethereum L1 Rollup 컨트랙트"
        RC["Rollup Contract<br/>(상태 루트 관리)"]
        DA["Data Availability<br/>(배치 데이터 저장)"]
        BR["Bridge Contract<br/>(입출금 처리)"]
        VP["Verification<br/>(Fraud Proof 또는 ZK Verifier)"]
    end
    subgraph "L2"
        SEQ["시퀀서"]
    end
    SEQ -->|"배치 데이터 + 상태 루트"| RC
    SEQ -->|"트랜잭션 원본 (Blob)"| DA
    RC <--> VP
    RC <--> BR

Rollup Contract — L2의 최신 상태 루트(state root)를 저장한다. 상태 루트란 L2의 모든 계정 잔액, 컨트랙트 스토리지, 논스 등 전체 상태를 하나의 해시값으로 압축한 것이다. 시퀀서가 배치를 제출할 때마다 이 상태 루트가 갱신된다.

Data Availability — 배치에 포함된 트랜잭션 원본 데이터를 Blob(EIP-4844) 형태로 L1에 게시한다. 이 데이터가 있어야 누구나 L2 상태를 처음부터 독립적으로 재구성할 수 있다.

Bridge Contract — L1 ↔ L2 간 자산 이동을 처리한다. 사용자가 L1에서 ETH를 입금하면 이 컨트랙트에 잠기고, L2에서 동일한 양이 발행된다. 출금 시에는 반대 과정을 거친다.

Verification — Optimistic Rollup에서는 Fraud Proof를 검증하는 챌린지 로직이, ZK Rollup에서는 유효성 증명을 검증하는 Verifier 컨트랙트가 여기에 해당한다.

“L1에 기록한다”는 것은, 시퀀서가 이 스마트 컨트랙트들의 함수를 호출하여 배치 데이터와 상태 루트를 이더리움 트랜잭션으로 제출하는 것이다. 한번 제출되면 이더리움의 합의에 의해 보호되므로 변조가 불가능하다.

악의적 시퀀서는 어떻게 검증되는가?

구체적 시나리오로 살펴보자. 시퀀서가 존재하지 않는 1,000 ETH를 자신의 주소에 발행하는 악의적 트랜잭션을 배치에 포함시킨다고 하자.

Optimistic Rollup의 경우:

sequenceDiagram
    participant Seq as 악의적 시퀀서
    participant L1 as Rollup Contract (L1)
    participant V as 검증자 (누구나)

    Seq->>L1: 배치 제출: 상태 루트 S' + 트랜잭션 데이터
    Note over L1: 트랜잭션 데이터에 "시퀀서에게 1000 ETH 발행" 포함
    V->>V: L1에서 배치 데이터 다운로드
    V->>V: 트랜잭션을 처음부터 재실행
    V->>V: 재실행 결과 상태 루트 S ≠ S' (불일치 발견)
    V->>L1: Fraud Proof 제출 (S'가 잘못되었음을 증명)
    L1->>L1: Fraud Proof 검증 → 배치 되돌림
    L1->>L1: 시퀀서 담보금 슬래싱
  1. 시퀀서가 배치 데이터와 조작된 상태 루트 S’를 L1 Rollup Contract에 제출한다
  2. 검증자가 L1에 게시된 배치 데이터를 다운로드하여 트랜잭션을 처음부터 재실행한다
  3. 정직하게 재실행한 결과 상태 루트 S와 시퀀서가 제출한 S’가 다르다는 것을 발견한다
  4. 검증자가 Fraud Proof를 L1 Verification 컨트랙트에 제출한다
  5. L1 컨트랙트가 Fraud Proof를 검증하고, 유효하면 해당 배치를 되돌리고 시퀀서의 담보금을 슬래싱한다

핵심은 검증자가 시퀀서를 신뢰할 필요가 없다는 점이다. 배치 데이터가 L1에 공개되어 있으므로, 누구나 독립적으로 재실행하여 부정행위를 발견하고 증명할 수 있다.

ZK Rollup의 경우:

ZK Rollup에서는 이 시나리오가 애초에 불가능하다. 시퀀서가 조작된 배치를 제출하려면, 그 조작된 상태 전이가 올바르다는 유효성 증명을 함께 제출해야 한다. 하지만 거짓인 상태 전이에 대해 유효한 증명을 생성하는 것은 수학적으로 불가능하다. L1의 Verifier 컨트랙트가 증명을 검증하는 시점에서 즉시 거부된다.

“L1에 기록한다”의 핵심은 결국 L2 자체를 신뢰하지 않아도 되게 하기 위해서다. 스마트 컨트랙트가 L1에서 검증 로직을 강제하므로, 시퀀서가 아무리 악의적이어도 부정한 상태를 확정시킬 수 없다. 이것이 L2와 사이드체인의 근본적 차이이며, “이더리움의 보안을 상속받는다”는 표현의 실체다.


L2는 확장성 트릴레마를 어떻게 우회하는가?

확장성 트릴레마는 탈중앙화, 보안, 확장성을 동시에 달성할 수 없다는 제약이다. L2는 이 트릴레마를 “해결”한 것이 아니라 계층을 분리하여 우회한다.

L1 (이더리움)L2 (Rollup)
탈중앙화수십만 검증자단일 시퀀서 (대부분)
보안자체 합의L1에서 상속
확장성~15 TPS수천 TPS

L2 자체만 보면 시퀀서가 중앙화되어 있으므로 탈중앙화를 포기한 것처럼 보인다. 하지만 핵심은 L2의 정당성을 L1이 보증한다는 점이다.

  • 실행은 중앙화: 단일 시퀀서가 빠르게 트랜잭션을 처리한다 → 확장성 확보
  • 검증은 탈중앙화: L1에 데이터를 게시하여 누구나 검증할 수 있다 → 보안 + 탈중앙화 유지

이 구조에서 시퀀서는 트랜잭션을 빠르게 실행할 수 있지만, 위조할 수는 없다. 위조하면 L1의 검증 메커니즘에 의해 적발되고 되돌려지기 때문이다.

“실행은 중앙화하되, 검증은 탈중앙화한다”가 L2의 핵심 전략이다. 트릴레마의 세 축을 하나의 레이어에서 해결하는 대신, 역할을 분리하여 각 레이어가 자신에게 유리한 축을 담당하게 한 것이다.


L2 트랜잭션을 L1에서 확인할 수 있는가?

결론부터 말하면, 간접적으로 가능하다.

L2 트랜잭션은 개별적으로 L1에 기록되지 않는다. L1에 기록되는 것은 배치 데이터와 실행 후 상태 루트다. 하지만 이 배치 데이터에 모든 트랜잭션의 원본이 포함되어 있으므로, 누구나 다음과 같이 특정 트랜잭션을 검증할 수 있다.

  1. L1에 게시된 배치 데이터를 다운로드한다
  2. 배치에 포함된 트랜잭션들을 순서대로 재실행한다
  3. 특정 트랜잭션이 포함되어 있는지, 실행 결과가 올바른지 확인한다

L2 블록 익스플로러(Arbiscan, Optimistic Etherscan 등)에서 트랜잭션을 조회하면, 해당 트랜잭션이 포함된 L1 배치 트랜잭션의 해시를 함께 확인할 수 있다.

이 L1 트랜잭션 해시를 Etherscan에서 조회하면 배치가 L1에 실제로 기록되었음을 확인할 수 있다.

Validium은 예외다. 트랜잭션 데이터를 오프체인에 저장하므로, L1에서 개별 트랜잭션을 재구성할 수 없다. 대신 상태 루트와 유효성 증명만 L1에 게시된다.


L2 솔루션 유형 개관

모든 L2는 “오프체인에서 실행하고 L1에 기록한다”는 원칙을 공유하지만, 무엇을 L1에 기록하는지, 어떻게 정당성을 보장하는지에서 갈린다.

유형검증 방식데이터 가용성최종성범용성
Optimistic RollupFraud Proof (이의 제기)On-chain7일 (챌린지 윈도우)높음
ZK RollupValidity Proof (수학적 증명)On-chain증명 제출 즉시높음
ValidiumValidity ProofOff-chain (DAC)증명 제출 즉시높음
VolitionValidity Proof사용자 선택증명 제출 즉시높음
State Channel서명 교환당사자 보관채널 종료 시낮음 (결제 특화)
PlasmaFraud ProofOff-chain7일+낮음

Plasma는 범용 스마트 컨트랙트 지원의 한계와 데이터 가용성 문제로 사실상 퇴장했다. State Channel은 Lightning Network를 제외하면 주류에서 밀려났다. 현재 L2 논의의 중심은 Rollup이다.


Optimistic Rollup

Fraud Proof 메커니즘

Optimistic Rollup은 트랜잭션 배치가 기본적으로 유효하다고 낙관적으로 가정한다. 7일의 챌린지 윈도우 동안 누구든 이의를 제기할 수 있으며, 아무도 이의를 제기하지 않으면 상태가 확정된다.

Fraud Proof의 구현 방식은 프로젝트마다 다르다.

Arbitrum — 다중 라운드 이분법(Bisection)

도전자와 제안자가 불일치하는 첫 번째 연산 단계를 찾을 때까지 범위를 반복적으로 절반으로 나눈다. 최종적으로 단일 WASM 명령어를 온체인에서 재실행하여 검증한다. 온체인 연산 비용이 극도로 낮다는 장점이 있다.

2025년 BoLD(Bounded Liquidity Delay) 프로토콜 도입으로 permissionless validation을 달성했다. 누구나 어설션을 게시하고 도전할 수 있으며, 검증자 허가 목록이 폐지되었다.

Optimism — 단일 라운드 증명(MIPS VM 기반)

전체 상태 전이를 MIPS VM 위에서 단일 라운드로 재실행하여 검증한다. 구현이 상대적으로 단순하지만, 온체인 연산 비용이 더 높다.

Arbitrum (BoLD)Optimism (Fault Proofs)
증명 방식다중 라운드 이분법단일 라운드 재실행
실행 환경WASMMIPS VM
온체인 비용매우 낮음상대적으로 높음
복잡도높음낮음
PermissionlessBoLD로 달성Fault Proofs로 달성

주요 프로젝트

Arbitrum One — TVL ~$18.2B로 L2 최대 규모(전체의 약 42%). DeFi 생태계가 가장 두텁다.

Optimism — TVL ~$9.5B. OP Stack을 오픈소스로 공개하여 Superchain 생태계를 구축 중이다. Base, Zora, Mode 등이 OP Stack 기반이다.

Base — Coinbase가 운영하는 OP Stack 기반 L2. 수수료가 $0.01 미만으로 극도로 저렴하며, Dencun 이후 트랜잭션 볼륨이 224% 증가했다.


ZK Rollup

Validity Proof

ZK Rollup은 Optimistic Rollup과 정반대 철학을 취한다. “올바르다고 가정”하는 대신, 매 배치마다 수학적 유효성 증명을 생성하여 L1에 제출한다. L1의 검증 컨트랙트가 증명을 확인하면 상태가 즉시 확정된다.

sequenceDiagram
    participant Seq as 시퀀서
    participant Prv as 프루버
    participant L1 as Ethereum L1

    Seq->>Seq: 트랜잭션 배치 실행
    Seq->>Prv: 배치 전달
    Prv->>Prv: ZK 증명 생성 (연산 집약적)
    Prv->>L1: 상태 루트 + 유효성 증명 제출
    L1->>L1: 증명 검증 → 상태 즉시 확정

7일 대기가 필요 없으므로 최종성이 빠르다. 이것이 ZK Rollup의 가장 큰 구조적 장점이다. 보안 모델도 다르다. Optimistic Rollup은 “최소 1명의 정직한 검증자”가 감시해야 하지만, ZK Rollup은 수학적으로 무결성을 보장한다.

zk-SNARK vs zk-STARK

ZK Rollup이 사용하는 증명 체계는 크게 두 가지로 나뉜다.

zk-SNARKzk-STARK
정식 명칭Succinct Non-Interactive Argument of KnowledgeScalable Transparent Argument of Knowledge
증명 크기수백 바이트 (작음)수십~수백 KB (큼)
암호학 기반타원 곡선 암호학해시 함수
Trusted Setup필요불필요 (Transparent)
양자 내성없음있음
검증 속도매우 빠름상대적으로 느림
대규모 확장성witness 크기에 선형대규모에서도 효율적

Trusted Setup은 초기 파라미터 생성 시 비밀값(toxic waste)이 관여하는 과정이다. 이 비밀값이 유출되면 위조 증명 생성이 가능하므로 보안 리스크가 된다. zk-STARK는 이 과정이 불필요하다는 점에서 구조적으로 더 신뢰 모델이 단순하다.

zkEVM 유형 분류

Vitalik Buterin이 제안한 zkEVM 유형 분류는 EVM 호환성과 증명 효율성 사이의 트레이드오프를 정리한다.

유형호환성 수준증명 비용대표 프로젝트
Type 1완전한 Ethereum 동등성매우 높음Taiko
Type 2EVM 동등 (일부 차이)높음Scroll(전환 예정), Linea(전환 예정)
Type 3거의 EVM 호환중간Scroll(현재), Polygon zkEVM
Type 4고수준 언어 호환낮음zkSync Era, StarkNet(Cairo)

Type 숫자가 낮을수록 기존 Solidity 코드를 그대로 배포할 수 있지만 증명 생성 비용이 높다. Type 4는 별도 언어나 컴파일러가 필요하지만 증명 효율이 좋다.

주요 프로젝트

zkSync Era — zk-SNARK 기반 Type 4 zkEVM. TVL ~$6.5B로 ZK Rollup 중 최대 규모. 2025년 말 탈중앙화 시퀀서 테스트넷을 시작했다.

StarkNet — zk-STARK 기반. Cairo 언어를 사용하는 Type 4. STARK의 양자 내성과 trusted setup 불필요가 장기적 강점이다. TVL ~$826M.

Scroll — Type 3 zkEVM으로, Type 1으로의 전환을 계획 중이다.

Polygon zkEVM — ZK counter 제한으로 복잡한 DeFi 프로토콜 지원이 어려워 2026년 메인넷 베타 종료를 발표했다. Polygon CDK 기반의 새로운 접근으로 전환 중이다.

Optimistic Rollup이 여전히 TVL과 트랜잭션 볼륨에서 압도적이다. ZK Rollup은 기술적 우위(빠른 최종성, 수학적 보안)에도 불구하고 EVM 호환성, 개발자 경험, 증명 비용에서 따라잡는 중이다.


Optimistic vs ZK: 구조적 비교

Optimistic RollupZK Rollup
검증 철학낙관적 가정 + 사후 이의 제기수학적 사전 증명
최종성7일 (챌린지 윈도우)증명 제출 즉시
L2→L1 출금7일 대기 (서드파티 브릿지로 우회 가능)수 시간 이내
연산 비용낮음 (증명 생성 불필요)높음 (ZK 증명 생성)
EVM 호환성네이티브 수준Type에 따라 상이
보안 모델최소 1명의 정직한 검증자 필요수학적 보장 (신뢰 가정 최소)
기술 성숙도높음급격히 발전 중

Rollup 너머의 L2: Validium과 Volition

Validium

Validium은 ZK Rollup과 동일하게 유효성 증명을 사용하지만, 트랜잭션 데이터를 오프체인에 저장한다. Data Availability Committee(DAC)가 데이터를 관리한다.

처리량이 9,000+ TPS까지 가능하고 수수료가 극도로 저렴하지만, DAC가 데이터 제공을 거부하면 사용자가 L1 탈출에 필요한 증명을 생성할 수 없다는 근본적 리스크가 있다. Arbitrum Nova(게이밍, 소셜)가 대표적이다.

Volition

Validium과 Rollup을 결합한 하이브리드다. 사용자가 트랜잭션 단위로 데이터 가용성 모드를 선택할 수 있다.

flowchart LR
    subgraph "Volition"
        TX1["DeFi 트랜잭션"]
        TX2["NFT 민팅"]
    end
    subgraph "데이터 저장"
        ON["On-chain<br/>(Rollup 모드)"]
        OFF["Off-chain DAC<br/>(Validium 모드)"]
    end
    TX1 -->|"높은 보안 필요"| ON
    TX2 -->|"낮은 비용 우선"| OFF
    ON --> L1["Ethereum L1"]
    OFF --> L1
  • DeFi 담보 관리 → Rollup 모드 (데이터 온체인, 높은 보안)
  • NFT 대량 민팅 → Validium 모드 (데이터 오프체인, 낮은 비용)

EIP-4844와 이더리움 로드맵

L2의 비용 구조는 이더리움 L1의 업그레이드에 직접적으로 영향을 받는다. 초기 Rollup들은 이더리움의 calldata를 사용하여 배치 데이터를 게시했는데, calldata는 영구 저장되므로 비용이 매우 높았고 Rollup 가스 비용의 90% 이상을 차지했다.

EIP-4844: Blob Transaction (2024년 3월, Dencun)

이 문제를 해결하기 위해 Blob Transaction이 도입되었다. EVM 실행 공간과 분리된 전용 데이터 저장소로, 기존 calldata보다 10100배 저렴하며 2090일 후 자동 삭제된다.

이 업그레이드 하나로 L2 트랜잭션 수수료가 $0.05 이하로 떨어졌고, L2 대중화의 전환점이 되었다.

Pectra 업그레이드 (2025년 2월)

슬롯당 타겟 blob 수를 3개에서 6개로, 최대를 6개에서 9개로 늘렸다. L2 전체의 데이터 처리 용량이 2배로 확대되었다.

로드맵

업그레이드시기핵심 변화
Dencun (EIP-4844)2024년 3월Blob 도입, L2 비용 10~100배 절감
Pectra2025년 2월Blob 용량 2배 확대
Fusaka (PeerDAS)2026년 예정Blob 용량 2~4배 추가 확대
Full Danksharding2027년 이후슬롯당 128 blobs, L2 비용 $0.001 목표

이더리움의 로드맵은 명확하다: L1은 합의와 데이터 가용성에 집중하고, 실행은 L2에 맡긴다. “Rollup 중심 로드맵”(Rollup-centric Roadmap)이라고 불리는 이 전략은 2020년 Vitalik이 제안한 이후 일관되게 추진되고 있다.

References