[BlockChain] RollUp

91Savage·2022년 9월 8일
1

블록체인 정리

목록 보기
6/9

확장성 문제 (Scalability)

초당 14~16개의 tx르 처리하는 이더리움은 초당 2만4000개를 처리하는 비자카드 같은 시스템을 구현 하는게 불가능하다.

거래 처리 역량의 부재로 인해 네트워크 과부하현상이 일어나면서 사용자들은 어쩔 수 없이
자신의 거래를 먼저 처리하기 위해 비싼 수수료를 지불하고 이더리움 네트워크를 이용해야 했다.

이러한 확장성 문제는 전부터 블록체인 트릴레마(BlockChain Trilemma) 라는 이름으로 많이 사람들 입에 오르내렸다.

블록체인 트릴레마(Blockchain Trilemma)

  • Decentralization (탈중앙화)

  • Security (보안)

  • Scalability (확장성)

위 세가지를 모두 만족 시킬 수없다.

트릴레마의 확장성 문제를 해결하려는 접근법 중 하나가 바로 롤업(Rollup) 이다.

롤업(Rollup)

롤업은 이더리움의 확장성 문제를 해결하기 위해 외부에서 트랜잭션을 실행하고 그 결과값만 이더리움에 기록하는 솔루션이다. 심지어 효율성을 위해 모든 데이터를 기록하지도 않음.

컴퓨팅 파워를 들여 처리해야하는 기존방식이 아닌, 외부에서 하기 때문에 기존보다 많은 트랜잭션을 처리 할 수 있음.

롤업방식

  • 우선 Smart Contract로 코인을 보낸다.

  • 롤업 Contract에는 계속해서 롤업을 사용자들의 코인이 쌓이게 되고 머클트리 형식으로 관리 된다. (사용자들의 잔고를 이용해 만든 머클트리의 상태 루트값을 롤업 컨트랙트에 기록하여 관리)

  • 트랜잭션을 처리한 후 각 계정의 잔고 상태를 바꾸고, 그 결과로 바뀐 루트의 최종값을 롤업 Contract에 올림.

  • 만약 다시 Ethereum Network로 코인을 보내고 싶으면, 롤업 외부로 코인을 출금하는 계약함수를 실행시키면 된다.

이 과정에서 트랜잭션 처리가 제대로 되었는지에 대한 문제를 가용성문제(Data Availability Problem) 라고 한다. 이 데이터 가용성 문제를 해결하는 방식에 따라 롤업을 Optimistic Rollup / ZK Rollup 으로 분류한다.

Optimistic RollUp

  • 트랜잭션을 제대로 처리했는지에 대한 문제를 간단한 방식으로 해결하는데, 그 방식은 진위 확인을 위한 모든 트랜잭션을 이더리움에 전송한다.

  • 모든 트랜잭션을 사실이라고 가정하고 처리한다.

  • 만약 의심가는 거래가 발생하면 롤업에 있는 검증자가 이더리움에 있는 트랜잭션들을 모두 재실행하여 값을 하나하나 대조한다.

  • 이 과정을 사기 증명(Fraud Proof) 이라고 하는데, 사기를 밝혀낸 검증자에게는 보상이 주어지고 그 트랜잭션을 문제없다고 처리했던 참여자는 처벌을 받게 됩니다. 옵티미스틱 롤업 네트워크에 사기를 적발하려는 참여자가 1명이라도 있다면 이 시스템은 제대로 작동하게 된다.

단점

  • 블록체인의 저장 공간을 절약하는 효과는 상대적으로 크지 않다.
  • 특정 데이터가 사기라는 것을 증명할 수 있는 기간이 정해져 있고 트랜잭션이 확정되기까지도 시간이 꽤 필요하다

ZK RollUp

  • 수백 개의 트랜잭션을 하나의 트랜잭션으로 묶은 후 이더리움 네트워크에 올리는 것은 동일하지만, 이더리움 네트워크에 올라가는 각 트랜잭션에는 영지식 증명 방식인 zk-SNARK 증명이 함께 제공된다.

  • 이더리움 네트워크에 보내기지 전에 트랜잭션이 유효한지 검증이 완료되기 때문에, 모든 트랜잭션을 그대로 올리는것이 아니라 최적화를 통해 트랜잭션의 크기를 줄인 후 이더리움 네트워크에 전송한다.

  • 예를 들어, 암호화폐를 주고받은 주소를 그대로 보내는 것이 아니라 머클 트리에 주소를 기록한 후 이 주소가 있는 위치의 인덱스를 대신 이더리움 네트워크에 보내게 됩니다. 원래라면 트랜잭션에 32Byte를 기록해야 하지만 4Byte 수준으로 대폭 줄이는 것입니다.

  • ZK Rollup 에는 두 종류의 참여자가 있다. (Transactor 와 Relayer)

  • Transactor는 롤업을 사용하는 주소와 그 주소의 잔고에 대해 각각 머클트리 형태로 데이터를 새로 기록한다.

  • Relayer는 Transactor에게 받은 데이터들을 모아 하나의 트랜잭션으로 합친다. 이 과정에서 Relayer는 zk-SNARK를 이용한 영지식 증명을 트랜잭션에 포함하게 되며, 이더리움 위의 스마트 컨트랙트에서 검증 된다.

ZK Rollup은 거래가 맞다는 증명을 트랜잭션마다 함께 보내기 떄문에

0개의 댓글