[UDC2022] Mina Protocol, Smart Contract

Seokhun Yoon·2022년 10월 30일
0

UDC2022

목록 보기
6/9

“세상에서 가장 가벼운 블록체인을 꿈꾸다”

이번 세션의 연사는 미나 프로토콜의 프로덕트 책임자 브라이언 맥케나 였어요.

오언 랩스에서 개발된 미나 프로토콜은 레이어 1 블록체인 프로토콜로, 2020년 3월에 메인넷을 출시했어요.

미나 프로토콜에서 가장 큰 특징은 경량화무신뢰에요. 특히 블록의 크기가 22KB로 일정하게 유지되기 때문에, 세상에서 가장 가벼운 블록체인이라는 자신감을 드러냈어요.

이게 어떻게 가능할까요? 내용을 자세히 살펴보겠습니다!

Contents

다른 블록체인은 시간이 지날수록 데이터의 크기가 증가해요. 비트코인은 400GB 이상이 되며, 이더리움은 이미 테라바이트 급으로 방대한 데이터의 크기를 가져요. 데이터의 크기가 너무 커지다 보면 모든 블록을 동기화해야 하는 경우, 유저가 감당할 수 없게 된다는 문제점이 있어요.

반면에 Mina는 영지식 증명을 활용하여 22KB라는 고정된 크기를 갖게 됩니다. 가벼운 데이터 크기 덕분에, 모든 참여 노드는 체인의 모든 히스토리를 갖고 있지 않더라도 참여가 가능해요.

이렇게 아무나 풀노드로 참여할 수 있기 때문에 확장성이 높고, 체인에 참여하거나 상호작용할 때 제 3자를 이용할 필요가 없다는 특징이 있어요.

Mina에서 정의한 Web3에서의 프라이버시란, 우리가 어떤걸 누구에게 공유할지 정할 수 있는 능력을 의미해요. Web2에서는 중앙에서 데이터를 관리했다면, Web3에서는 데이터의 권한을 유저가 가져가는 탈중앙화가 이루어져요.

현재 우리는 Web3를 만들 툴은 준비가 됐지만 대중 시장과는 아직 관련이 없고, 규제가 생겨남에 따라 그 균형을 찾아가는 시기라고 봐요.

이제 미나의 스마트 컨트랙트(zkApps)를 자세하게 살펴볼게요!

이더리움에서 개발된 대부분의 디앱 같은 경우는 온체인 연산을 사용하고 있어요. 이 때문에 모든 노드가 모든 트랜잭션을 저장하고 검증해야 하죠. 엔드 유저 입장에서는 데이터가 모든 노드에 공개가 되기 때문에 프라이버시 및 데이터 보안에 취약하다고 느끼게 돼요.

반면에 미나의 zkApp은 오프체인에서 연산을 진행하고 온체인에서는 검증만을 진행해요.

즉, 유저가 상태 업데이트를 요청하면 트랜잭션을 유저 디바이스에서 실행합니다. 그리고 나서 영지식 증명만 노드로 저장해요.

이렇게 하면 온체인에서는 유저의 데이터를 확인할 수 없어서 개인의 프라이버시가 지켜질 수 있죠.

zkApp은 UI스마트 컨트랙트, 이렇게 두 가지 파트로 구성되어 있어요.

zkApp가 어떻게 작동하는지 이해하려면 Prover FunctionVerifier Function에 대해서 알아야 해요.

  • Prover Function: 사용자의 브라우저에서 로컬로 실행되며 스마트 컨트랙트의 로직을 실행
  • Verifier Function: Mina 블록체인에 저장되며 Prover 함수 실행의 정확성을 검증

사용자는 중요한 데이터를 블록체인에 공개적으로 공유할 필요가 없고, 대신 zkApp의 UI를 통해 공유할 수 있어요. 이때 Prover 함수는 사용자 데이터를 노출하지 않고 실행에 대한 영지식 증명을 생성해요. Verifier 함수는 이렇게 나온 증명을 검증하게 됩니다.

검증키(Verification Key)를 체인에 배포하면 zkApp account가 생성돼요. 개발자는 일반 사용자가 스마트 컨트랙트와 상호 작용할 수 있도록 UI를 빌드하고, 검증키는 UI에서 사용자가 보낸 트랜잭션을 검증하는데 사용돼요.

zkApp은 SnarkyJS라는 라이브러리를 통해 Typescript로 작성이 돼요.

이런 특징 덕분에 zkApp은 브라우저와 NodeJS에서 실행이 가능하고, 기존 JS/TS 라이브러리나 툴을 사용할 수 있어요. 게다가 VSCode가 완벽 지원해주고 있다고 해요!

또한, 이 과정에서 지식 증명을 사용하지 않기 때문에, 개발자 입장에서는 ZK에 대한 이해가 없어도 쉽게 사용할 수 있다고 해요. 이런 특징 때문에 진입장벽이 낮다는 장점이 있어요.

zkApp은 DAO 투표, DeFi 검증 등 다양한 분야에서 사용될 수 있어요.

그렇다면 다른 체인에서 zkApp에 접근할 수 있게 만들 수 있을까요?

영지식 증명은 이더리움 앱에서 유용하지만, 영지식 증명은 EVM에서 많은 가스를 발생시켜요. 이더리움에서 zkBridge로 zkApp을 사용한다면 영지식 증명을 비싼 수수료 없이 사용할 수 있어요.

미나 프로토콜은 얼마전 베타 테스트넷을 시작했고 곧 메인넷을 출시할 예정이라고 해요. 브릿지는 아직 데모 단계이지만 많은 기대가 됩니다.

만약에 미나 프로토콜에서 제시한 방법이 실제 사용성 측면에서 검증된다면, 앞으로 다른 유명한 체인들과 견줄만한 큰 잠재력이 있다고 느껴지네요!
(세션을 들을때도 정확한 이해가 안갔는데, 이 글을 쓰는 지금도 어떻게 데이터 크기가 일정하게 유지가 되는지 이해가 안되네요ㅠㅠ 나중에 한 번 좀 더 심도있게 공부해서 다시 적어서 올려드리도록 할게요.)

주요 Q&A

Q: 미나 프로토콜이 다른 영지식 프로토콜에 비해 갖는 큰 경쟁력은 무엇이라고 생각하시나요?

A: 우선 사용하기 쉬워요. 많은 개발자에게 친숙한 타입스크립트를 선택해서 개발을 손쉽게 하고 진입장벽을 최대한 낮췄어요.

profile
블록체인 개발자를 꿈꾸다

0개의 댓글