Layer 2 blockchain

기존 레이어1 의 트랜잭션 fee 및 속도 문제를 최적화 하기 위해 off-chain으로 작동하는 또다른 계층. 레이어1의 합의 알고리즘과 보안시스템에 의존하기 때문에 레이어1에서 독립적으로 수행할 수 있음.

1.state channel 모든 state을 on-chain상에 기록하지 않고, off-chain 상의 별도의 state machine을 스마트 컨트랙트로 정의함. 이 off-chain 상에서 gas fee없이 state 변경이 일어나고, 시작 state과 최종 state만을 blockchain에 기록하고 해당 변경에 대해서 트랜잭션이 일어남.(예를 들어 게임) payment channel이라고 하기도 함. 예를 들어 월초에 스마트 컨트랙트를 실행하여 payment channel을 열고, 한 달 동안의 요금 집계를 거쳐 월말에 payment channel을 닫은 뒤 요금만큼을 ETH 트랜잭션으로 정산. state channel의 시작과 끝을 제외한 중간 변경 사항은 private, 혹은 스마트 컨트랙트 당사자만 아는 off-chain이기 때문에 프라이버시의 장점도 있음. 다만 이는 state channel 당사자들 사이의 신뢰 trust가 담보되어야 하는, 블록체인의 untrusted와는 다른 성질을 가짐. 당사자들이 state channel을 열고 닫을 때, 함께 available 해야 하기 때문. (중간에 나가지 않아야 함) 따라서 스마트 컨트랙트상에 담보 장치 등을 사용.

사이드 체인

사이드 체인은 레이어1에 채널로 연결되어 있지만, 별도의 합의알고리즘과 검증을 통해 병렬적으로 실행되는 별도 체인. 트랜잭션을 빠르게 수행하여 레이어1에 전달하는 등.

롤업

롤업은 레이어2에서 트랜잭션을 실행한뒤 이를 묶음, 압축하여 레이어1에 쓰는 것을 말함. 일반적인 레이어2 트랜잭션은 중간 트랜잭션을 모두 off-chain을 돌려서, 상태 검증 등을 생략하고 trusted 환경, 신뢰가 담보된 환경에서 실행한 뒤 시작과 끝 상태만을 기록하는 것. 반면 롤업은 레이어2에서 실행한 트랜잭션을 모두 ‘묶어서’ 이를 레이어1에서 ‘한번에’ 검증. 즉 untrusted로 작동 가능. 온체인 상에서 레이어2로 옮긴 데이터 만큼의 공간이 확보되기 때문에, 롤업 트랜잭션을 더 수월하게 검증할 수 있음. 데이터 베이스의 트랜잭션과 유사. 레이어1 상에 롤업 검증 및 실행하기 위한 스마트 컨트랙트 묶음을 배포함.

두가지 분류

  1. 낙관적 롤업 롤업에 대해 기본적으로 유효하다 고 가정하고 특정 기간 텀을 두고 레이어1의 노드가 이의제기 challenge를 할 수 있도록 함. 이 기간 동안 누군가 이의를 제기하면 레이어1에서 검증함. 이의제기 하지 않으면 그대로 받아들여짐. 롤업 트랜잭션에 대한 검증은 세가지 플레이어가 있음
    1. asserter - 롤업을 체인상에 기록하려는, 롤업 실행자
    2. challenger - 롤업에 대해 이의를 제기한 유저
    3. verifier - 롤업을 실제로 검증하는 스마트 컨트랙트 asserter와 challenger가 모두 일정 ETH를 담보한 뒤, 롤업을 검증했을 때 유효하면 challenger의 담보금을 asserter와 verifier가 나눠가짐. 유효하지 않으면 asserter의 담보금을 challenger와 verifier가 나눠가짐
  2. ZK(Zero-Knowledge) 롤업 영지식 증명이라는 암호학의 프로토콜을 사용해서 롤업 실행자(증명자)가 검증자(레이어1의 검증 스마트 컨트랙트)에게 롤업 트랜잭션의 어떠한 세부사항도 노출하지 않은채 그것이 유효하다는 것을 증명함. 따라서 이의제기를 하는 challenger 역할이 필요없고, 레이어1에 롤업을 쓸 시에 바로 유효한지 판단해서 이를 취소하거나 승인함. 문제는, ZK 증명을 실제로 만들어내는 것이 어렵고 모든 롤업마다 암호학적 증명을 찾아내야 함. 롤업 사이즈가 커질 수록 더 어려워지고 증명비용이 더 높아짐. 증명에 필요한 연산이 많아져서 스마트 컨트랙트의 크기를 넘기면 검증 불가.

지금까지는 트랜잭션 실행에 대한 여러가지 솔루션과 트레이트오프에 대해서 얘기했다. 그렇다면 데이터 availability 에 대한 솔루션을 알아보자.

플라스마 프레임워크

스케일러블한 레이어2 앱을 위한 프레임워크. 사이드체인 처럼 자체 합의 알고리즘을 가지고 블럭을 생성하며, 이를 머클 트리 해싱으로 레이어1 체인에 해시를 추가함 (주기적). 따라서 아무리 많은 수의 트랜잭션 / 블럭을 생성하더라도 압축된 하나의 블럭해시로 부모 블럭에 전달할 수 있어 매우 효율적. 레이어1과 상태를 커밋하기 위해서/ 혹은 레이어2 진입/ 종료를 위해서만 통신함. 낙관적 롤업 방식처럼 이의제기 방식을 사용하고, 자체 토큰 으로 ETH를 래핑한 wETH를 사용하기 때문에, 금액 이체에 시일이 걸리는 단점있음 . 토큰을 wETH로 교환하는 오버헤드 / 낙관적 롤업에 따른 의무 대기 기간. 플라즈마 프레임워크는 레이어1에 트랜잭션을 그대로 보내지 않고 해시된 머클 트리만을 보내기 때문에, 데이터가 오프체인에 저장되어있고, 이의제기 시에만 오프체인 데이터를 레이어1 체인과 상호작용함. 이의제기가 없다면 해시 스냅샷만을 보냄. 기본적으로 모든 트랜잭션에 대해 레이어1의 검증을 거치지 않는,사이드 체인의 일종

Validium

레이어2의 data availability 유형으로 ZK Rollup이지만 데이터를 오프체인에 저장함. 따라서 유저가 데이터가 필요할 때 레이어2 참여자가 이를 제공할 것이라는 trust가 필요하며, 이를 위해 신뢰성있는 데이터 제공을 할 수 있다는 비즈니스 평판을 담보로 하는 위원회를 구성하고, 레이어2 노드가 요청에 응답하지 않으면 위원회가 해당 데이터의 사본을 공개함.

Volition

Volition 체인은 Validium과 Rollup의 하이브리드 체인이다. Validium처럼 데이터를 오프체인에 저장하지만 유저가 온체인에 데이터를 가져올 시점을 정할 수 있다. 예를 들어, 일주일 단위의 전체 거래액의 손실 / 이익 만을 온체인에 저장하고 나머지개별 트랜잭션은 오프 체인에 저장하는 식이다.

ETH의 업그레이드와 함께, 기존의 하나의 단일 상태 네트워크를 여러 데이터셋으로 샤딩된 분산 네트워크로 변경하는 조치가 실행됐다. 이는, 기존에 단일 상태 네트워크에서 트랜잭션에 대한 수요가 높을 경우 가스 비용이 급등할 수 있었던 것을 보완하기 위한 조치로, 데이터를 온체인에 저장하는 비용을 줄이고 더 쉽게 만들기 위함이다.

롤업 등의 레이어2 솔루션은 기본적으로 오프체인에서 트랜잭션을 실행하는 대신 암호학적 트랜잭션 증명을 다시 메인(레이어1) 체인에 제공함으로써 레이어1의 보안 혜택을 그대로 사용하면서 가스 비용을 줄일 수 있었다. 이번 ETH 업그레이드는, 이러한 트랜잭션 증명과 레이어1과의 통신비용 또한 대폭 낮추는 효과가 있으므로 레이어2 솔루션은 기존보다 더 낮은 비용을 제공할 수 있게 되었다. 즉 ETH 업그레이드로 인해 레이어2도 동반 혜택을 볼 것으로 기대된다.

ENS

ENS는 이더리움 네트워크 상의 도메인 서비스이다. 도메인 서비스와 다른 점은 중앙 집중적인 도메인 서비스에 의존하지 않고 자동화된 스마트 컨트랙트로 운영되며 검열이 없이 도메인을 부여할 수 있다. 뿐만 아니라 , 단순 문자열이 아니라 이미지 링크, 텍스트, 소셜 미디어 링크 등의 커스텀 데이터를 이더리움 지갑 주송 매핑할 수 있다.

Radicle

git 프로토콜 위에서 동작하는 github는 코드 협업 툴로써 수많은 소프트웨어가 탄생한, 소프트웨어가 작성되고 유지보수되는 방식을 바꾼 플랫폼이지만 중앙집중형이라는 한계가 남아있다. 일련의 예시로, 오픈 소스 프로젝트를 폐쇄한다던가, 미국정부의 요청으로 적대국 ip의 계정을 밴한 사례가 있다. 보다 자유롭고 탈중앙화된 코드 협업을 위해서 블록체인 기술을 사용한 플랫폼이 radicle이다. radicle을 유저 친화적, 보안 중시, 오프라인 우선(인터넷 연결성이 불필요한), 검열이 없고 접근이 자유로움을 규칙으로 삼았다. radicle은 Radicle Link라는 gossip 프로토콜의 일종인 p2p 프로토콜을 사용하는데, 이는 노드들이 서로 무작위로 통신하여 정보를 요청/ 공유 및 전파함으로써 실제 정보가 이를 필요한 노드에게 전달될 수 있도록 하는 특성을 가진다. 각 노드들이 로컬 사본을 유지하고 공유함으로써 참여자들이 원하는 데이터를 전파 및 공유한다는 점에서 IPFS와 매우 유사함. 깃 프로토콜을 확장한 것이므로 기존 깃의 데이터 전송 프로토콜의 효율성도 가지고 있음. 레포지토리를 프로젝트라고 부르며 피어 노드에 의해서 복제/공유됨. 피어노드들은 정보를 요청하는 노드/ 이미 가지고 있는 로컬 정보를 공개하는 노드들 2개를 전부 일컬음. (토렌트와 유사) Radicle은 중앙집중형 서버가 있는 Github와는 달리 글로벌하지 않다. 즉 하나의 노드가 모든 프로젝트의 상태를 저장 및 공유할 수 없다. Radicle에서 어떤 피어노드는 다른 피어노드/ 프로젝트르 추적함으로써 해당 노드가 상호작용할 수 있는 프로젝트를 알 수 있다. Radicle은 커뮤니티 네트워크이며 이더리움상의 RAD 토큰에 의해 탈중앙화된 자율조직으로 동작한다. matser/main 브랜치 같은 하나의 정식 브랜치가 없이 복수의 업스트림을 갖는다. (여러 다른 버전의 포크). 이는 피어노드/ 프로젝트 컨트리뷰터들에 의해 유지관리된다. 이러한 컨트리뷰터/피어노드들을 remote로 등록하면 자동으로 추적하며, 새로운 코드 변경사항들을 구독할 수 있다. radicle은 이더리움과 통합되어 ENS 서비스를 사용할 수 있으며 이더리움 지갑과 연동하여 DAO 그룹(탈중앙화 자치 그룹)에 멤버를 초대할 수 있다. 또한 이더리움으로 기부를 받을 수도 있다.

이더스캔

이더스캔은 스마트 컨트랙트를 블록체인에 배포된 상태대로 외부로부터 검증받을 수 있도록 해준다.

IPFS

데이터를 식별하는 데에는 주소 기반 지정 / 컨텐트 기반 지정 두 가지 방법이 있다. 기존 웹에서 사용하던 url 방식이 주소 기반 지정 방식이다. url의 DNS 조회를 통해 데이터가 위치한 ip를 조회하는 것이다. 물론 이때 해당 url에 등록된 데이터가 다른 어디엔가로 이전하지 않았다는 상호 신뢰 trust가 기반이 된다. 해당 주소가 전혀 다른 데이터를 호스팅하고 있지 않다는 보장은 없다. 주소와 호스팅된 데이터를 연관지을 방법도 없다.단지 도메인명에 근거해 추측할 뿐이다. IPFS는 이러한 주소 기반 접근 방식 대신, 데이터 컨텐츠에 기반한 고유 식별자를 통해 데이터를 하나의 주소가 아니라 여러가지 소스로부터 가져올 수 있게 한다. 주소기반 접근 방식의 약점이 바로 피싱이나 멀웨어 다운로드 같은 허점을 유발한다. 또한 동일한 데이터가 여러 다른 주소에 저장되어 있더라도, 일단 주소로 접근하면 아무 소용이 없다. 동일한 데이터가 여러다른 주소에 중복되어 있는 상태 - 또한 어떤 두 주소가 동일한 데이터를 가지는지 식별할 수 없는 상태가 기존의 웹 이다. 탈중앙화된 웹에서는 다운로드하는 데이터가 위변조/악의적 데이터가 아니길 ‘기도하는’ 행위를 멈출 수 있다. 컨텐츠 기반 지정을 위해서는 해싱을 사용한다. 해싱은 하나의 해싱 함수에 대해 비가역적, 고유성, input과 관계없이 항상 정해진 사이즈의 출력물 이라는 특성을 가진다. 물론 이는 확률적으로 보장하는 것이지만, 이 확률은 거의 100%이다. 만약 하나의 해시값에 대해 서로 다른 두개의 입력값이 있음을 증명해낼 수 있다면 전체 블록체인 / 비트코인 네트워크를 뚫을 수 있다. 이러한 해싱의 고유성을 이용해, 하나의 데이터에 하나의 해시값만이 있음을 보장할 수 있다. 만약 해시값이 변경되었다면 해당 데이터는 변경된 것이다. 이제 어떤 데이터의 해시값이 있다면 블록체인 p2p 네트워크를 사용해 해당 해시값을 로컬에 가지는 노드를 모두 확인할 수 있다. 노드가 오프라인이더라도, 다른 피어노드들 중에 하나라도 데이터를 유지할 수 있다면 해시를 비교하고 데이터를 가져올 수 있다. 중요한 데이터에 대해서는 하나의 IPFS 노드 내에서 복제를 하여 가용성을 유지할 수도 있기 때문에, 데이터 가용성의 문제도 해결할 수 있다. IPFS의 해시값은 Contedt ID, CID라고 불린다. IPFS 불변 스토리지로, 한 번 업로드된 데이터는 수정할 수 없고, 업데이트 된 새로운 CID를 가지는 파일을 새롭게 업로드 한다. 직접 IPFS 노드를 운영하기 보단 노드 프로바이더 서비스등을 사용하는 것이 간편하다. IPFS 전용 노드 프로바이더가 있다.(Pianata, Textile) IPFS는 퍼블릭 게이트웨이를 사용해 웹2에서도 접근할 수 있다. public labs에서 운용하는 https://ipfs.io 게이트웨이가 유명하다. 물론 퍼블릭 게이트웨이를 유지하면 노드의 네트워크 트래픽이 증가하기 때문에 잘 판단해야 한다.

IPFS는 탈중앙화의 장점을 그대로 가진다. 검열 없는 파일 스토리지가 가능하다. 중앙 관리형 파일 시스템 각 노드가 파일을 로컬에 유지하므로, IPFS miner에게 자체 FIL토큰을 인센티브로 지급한다. IPFS의 운용 예시로는 NFT 메타데이터 스토리지가 있다. 기존에는 opensea 등 메타데이터를 호스팅하는 별도의 중앙서버가 있었는데, IPFS를 사용하면 서비스가 중단되거나 개발자가 메타데이터를 마음대로 변경하여 사용자가 접근할 수 없는 상황을 변경할 수 있다. 웹사이트를 호스팅할 수도 있다 IPFS는 p2p 프로토콜 이기 때문에 인터넷이나 http 프로토콜이 아닌 어떤 통신 프로토콜을 기반해도 운용할 수 있다. 블루투스나 라디오 시그널로도 가능하다. 재난 지역 등에서 유용하게 사용될 수 있다.

Ceramic

웹 2에서 어플리케이션은 일종의 데이터 격납고로써 역할하였다. 서로 다른 어플리케이션 간에 데이터를 마음대로 옮길 수는 없었다.세라믹은 웹3 데이터베이스로써 이러한 문제를 해결한다.세라믹을 사용하면 특정 체인에 의존하지 않고 여러 체인에 분산된, 탈중앙화된 데이터를 사용할 수 있다. 이러한 데이터는 특정 단체/ 회사/ 비즈니스의 앱에 국한되지 않으므로 누구나 사용할 수 있고(대신 데이터를 유지하는 노드에게 금전적으로 보상을 줌으로써 데이터 공개를 독려), 특정 체인에 귀속된 레이어2를 유지하는 것보다 더 범용적인, 표준화된 멀티 체인 범용의 명성 시스템(좋아요, 팔로워), 소셜 그래프(SNS 친구관계)를 사용할 수 있다. 시작은 우선 체인에 범용적인 신원을 부여하는 것으로 시작된다. 이를 3ID라고 하며 3ID는 세라믹 네트워크 상에서 Stream이라 불리는 데이터를 소유할 수 있다

퍼블릭하고 결정적인 (deterministic) 블록체인 상에서는 무작위성을 구현하는 것이 어렵다. 체인링크의 VRF는 무작위 값을 생성하는 oracle로 암호학 증명을 통해 위/변조 되지않음을 증명된 뒤 온체인에 기록/검증되고 컨트랙트가 이를 사용할 수 있게 한다. 이를 위해서는 컨트랙트가 VRFConsumerBase를 상속해 인터페이스의 requestRandomness를 호출하고, requestRandomness는 VRF Coordinator 컨트랙트를 호출해 외부세계에서 무작위 값을 생성하고 ,VRFCoordinator는 VRFConsumerBase의 fullfillRandomness 함수를 호출하여 다시 VRFConsumerBase에 값을 전달한다.