logoStephen's 기술블로그

포스트 검색

제목, 태그로 포스트를 검색해보세요

[Midnight] 미드나잇과 카르다노 아키텍처 관계 분석

[Midnight] 미드나잇과 카르다노 아키텍처 관계 분석
BlockchainMidnightCardano
성훈 김
2026년 8월 23일
목차
 

개요

이번에 아이덴티티 Web3모임에서 미드나잇 세션에 발표할 수 있는 기회가 생겼었어요.
 
notion image
 
발표에서 나누었던 내용을 블로그로 다시 정리하면서 공유하려고 해요 🙂
 

미드나잇에 흥미를 가지게 된 이유

사실 카르다노는 제가 코로나 불장 때부터 많은 관심을 가지고 찰스 호스킨슨 AMA도 자주듣고, 지금은 운영하지는 않지만 Stake Pool도 운영 해보았었는데요. 당시 저의 욕심으로 인해 선물 트레이딩에 손대지만 않았으면 많은 양을 보유했을 텐데, 현재는 아주 소량의 ADA를 보유하고 있습니다. ㅎ
 
카르다노는 현재 모든 블록 생산을 커뮤니티 SPO가 담당하고 있는데요. 개인적으로는 탈중앙화를 위한 첫번째 걸음이 블록생산을 전세계 흩어진 커뮤니티가 담당하는 것이 출발점이라고 생각하는데, 그런 의미에서 카르다노는 탈중앙화의 첫 단추를 잘 끼웠다고 생각해요.
 
 
그래서 미드나잇을 들었을 때, 카르다노 파트너 체인으로 해당 인프라를 공유하고 그리고 ZK서비스를 제공하며, Typescript와 비슷한 Compact를 사용하고 있다는 것에 흥미를 가지게 되었어요. (사실 배울 것도 많은데, Haskell까지 배우기가 저에겐 장벽이였어요. ㅠ)
 
그럼 본격적으로 미드나잇에 대해서 이야기를 나누어볼게요.
 

미드나잇은 카르다노의 L2체인인가?

미드나잇과 카르다노는 도대체 어떤 관계 일까요? 카르다노 위에서 돌아가는 L2체인이라고 봐야할까요?
 
일반적으로 L1체인은 보안과 동기화 때문에 노드가 검증하는 데 많은 시간이 걸려요. 따라서 블록 확정 속도가 느리고 가스비 또한 저렴하지 않습니다. 이를 해결하기 위해서 L2레이어가 등장했죠. L2는 롤업이라는 기술로 많은 트랜잭션을 빠르게 확정하고, 확정된 트랜잭션을 묶어서 L1에 제출하게 되는데, 이렇게 속도를 높이고 가스비를 줄이는 대안이 될 수 있었죠.
 
notion image
 
그래서 통상적으로 롤업 L2는 L1과 아래표처럼 상호 작용을 이루고 있습니다.
 
롤업 L2
미드나잇
L1에 state root 제출
O
X
L1이 유효성 검증
O
X
L1 데이터로 체인 재구성 가능
O
X
 
쉽게 말해서, L2가 L1에게 “내 계산이 맞는지 확인 해줘”라고 요청한다면, 미드나잇은 카르다노에 그런 요청을 하지 않아요. 미드나잇은 자신의 상태를 올리지도, 검증을 받지도 않아요.
 
그래서, 미드나잇은 카르다노의 L2가 아닙니다. L2가 아니라면 왜 굳이 파트너 체인이라고 부르는 것 일까요?
 
notion image
 
카르다노에서 파트너 체인을 이렇게 정의하고 있어요. "카르다노와 병렬로 실행되면서, 카르다노의 보안을 활용하며 독자적인 기능을 구현하는 블록체인"
 

카르다노의 보안이란?

그럼 카르다노의 보안이란 무엇일까요? 공식 문서에서는 카르다노의 보안을 이렇게 말하고 있네요.
 
notion image
 
카르다노에는 카르다노 네트워크의 보안을 지켜온 검증된 이력(proven history)을 가진 탄탄한 SPO 네트워크가 있다.
 

SPO 네트워크란?

SPO는 Stake Pool Operator의 약자로서 블록을 만드는 풀 운영자입니다. 업비트에 로그인해보시면 업비트 역시 SPO로서 스테이킹 서비스를 제공하고 있죠. 업비트에서 우리가 에이다를 스테이킹하면 우리는 위임자가 되고, 업비트는 위임자의 지분으로 풀 운영을 할 수 있습니다. 즉 위임량의 크기에 따라 블록을 생성할 수 있는 확률을 높일 수 있어요.
 
notion image
 
업비트는 어떻게 보면 기업화된 SPO이지만 하나의 풀에는 보상상한이 있기 때문에, 풀이 가득차면 위임자들의 보상은 자연스레 줄어듭니다. 그리고 카르다노에서는 락업이란 개념이 없기 때문에, 위임자들은 자연스레 다른 풀로 위임을 손쉽게 변경할 수 있고, 그렇게 지분은 분산 되어져요.
 
그리고 최근 카르다노 Metric을 살펴보면 전세계에 흩어져있는 SPO는 2680개이고, 여기에 위임한 지갑의 수는 134만개 정도입니다.
 
notion image
 
이 데이터가 왜 안전지표가 될 수 있을까요?
 

블록체인이 “안전하다”라는 것,

학술적으로 블록체인이 “안전하다”라는 것은 결국 두 약속이 지켜진다는 뜻입니다. 한 번 확정된 거래는 뒤집히지 않는 다는 것, 그리고 정직한 사용자의 유효한 거래는 반드시 원장에 포함이 되어야 한다는 것 (Persistence & Liveness).
 
notion image
 
카르다노의 합의 프로토콜 Ouroboros는 이 “블록을 만드는 지분의 과반이 정직하게 행동하는 한”, 이 두 약속이 지켜진다고 수학적으로 보장합니다.
 
그래서 질문이 바뀝니다. 카르다노의 보안이란 “정직한 과반을 어떻게 유지할 것인가?” 이고, 그 과반을 이루는 게 SPO들입니다. 그리고 SPO는 블록을 만드는 사람이죠. 따라서 이들이 정직하게 블록을 생산할 수 있는 구조가 필요하고, 이는 공격자 입장에서 비용이 됩니다. 그리고 그 비용이 클수록 안전해 집니다.
 

SPO네트워크가 정직한 과반을 유지하는 방식

notion image
 
  1. 개인 풀 운영자로 활동하기 쉬운 구조
    1. 카르다노는 블록을 만드는 풀이 수천 개이고, 대부분 개인이나 소규모 팀이 세계 각지에서 운영합니다. 그래서 공격자가 이들을 담합하기가 매우 어렵죠. 상대적으로 비트코인은 블록 생산이 기업화 되었고, 이더리움 역시 거래소 스테이킹으로 지분이 쏠리고 있는 것에 비하면, 카르다노는 일반 서버로 누구나 풀을 열 수 있어 상대적으로 쉽게 이 분포가 유지됩니다.
  1. 위임자가 감시 역할을 합니다.
    1. SPO 수입은 위임자에서 나오고, 위임에는 락업이 없습니다. 운영자가 이상 행동을 하면 위임자는 다른 풀로 자연스레 떠나게 되죠. 그럼 그 풀의 블록 생산 확률이 떨어집니다. 앞서 말한 “스테이킹 주권”이 여기서 보안 장치로 작동하게 되는 것이죠. — 돈을 주는 쪽이 곧 감시하는 쪽인 것이죠.
  1. SPO 평판 구조
    1. 2020년 셀리 하드포크 이후 자기 이름과 평판을 걸고 24/7 노드를 돌려온 운영자들입니다. 이 평판 자체가 수입이라, 하루 아침에 버리기 어렵죠.
 
이 세 가지가 겹쳐서 “정직한 과반이 깨지지 않는 구조”를 만든 것, 그게 카르다노의 보안이죠. Ouroboros 증명 프로토콜은 “정직한 과반이 있다면”이라는 조건으로 시작하는데, 그 조건을 실제로 채우고 있는 게 바로 이 SPO네트워크인 것이죠.
 
물론 처음엔 세계 각지에 있는 개인들을 참여시키는 것이 매우 어렵기 때문에 초기엔 카르다노의 재단 노드가 모든 블록을 만들었었습니다. 그리고 그 비율을 나타내는 것이 D파라메터 고 불립니다.
 
notion image
 
d=1이면 재단이 전부 블록 생산을 하는 것이고, d=0 이면 커뮤니티들이 생산하는 것이에요. 카르다노는 이 값을 점진적으로 낮춰서 2021년 3월 d=0에 도달 했습니다. 그래서 저는 카르다노가 탈중앙을 위한 첫 단추를 잘 끼웠다고 생각합니다.
 
그렇다면 미드나잇은 이 SPO네트워크를 어떻게 사용하는 것일까요?
 

미드나잇은 카르다노 보안을 어떻게 활용하는 가?

일단 결론 부터 말씀 드리자면, 미드나잇은 이 SPO네트워크를 빌려옵니다. 카르다노가 파트너 체인을 위해서 만든 Tool-kit을 보면 그 구조를 확인할 수 있습니다.
 
notion image
 
이 표는 카르다노 문서에서 파트너 체인을 운영할 때 필요한 구조를 약식으로 보여준 구조입니다. 카르다노는 SPO는 그림에서 cardano node를 운영하면 되구요. 만약 미드나잇 SPO를 운영한다면 거기에 추가해서 다음과 같은 인프라를 구축해야해요.
 

미드나잇 인프라

미드나잇 노드는 블록을 만들기 전에 카르다노에게 물어봐야 합니다. “지금 누가 SPO를 등록했고, 그 풀에 위임된 ADA가 얼마냐?”라고 물어봐야 해요. 그래서 카르다노 노드를 읽는 인프라를 구성해야 됩니다. 도서관에 비유하면 다음과 같아요.
 
notion image
 
  • 카르다노 노드
    • 카르다노 네트워크와 동기화된 노드입니다. 모든 트랜잭션을 보관하는 도서관이라고 생각하면 되겠네요
  • DB-sync
    • 카르다노 노드를 읽고 상태 변화를 저장하는 indexer입니다. 도서관 책을 검색하기 쉽게 만드는 사서입니다.
  • PostgresSQL
    • 저장하는 하드디스크이고, 사서가 기록하는 노트라고 보면 되어요
  • ogmios
    • 카르다노 노드에게 요청을 전달하는 브릿지인데, SPO를 등록할 때 사용해요. 쉽게 생각해서 도서관 민원 창구 같은 역할이에요.
  • midnight node
    • 사서의 노트를 열람하고 블록 생산 위원회를 정하고 블록을 만드는 주체입니다.
       
그럼 정확하게 미드나잇 노드는 카르다노의 어떤 정보를 읽어야 하는 것일까요?
 

카르다노에 새겨진 미드나잇 운영 규칙

카르다노 원장에는 미드나잇의 운영 규칙 문서라고 할 수 있는 값들이 있습니다.
 
notion image
 
바로 registration, D-param, token-reserve, governance 이에요. 쉽게 명부, 의석표, 금고, 헌법이라고 생각하면 좋아요. 이 네 값은 카르다노 파트너 체인 툴킷에 정의되어 있는 값인데, 이 중 D-param은 미드나잇이 툴킷을 그대로 사용하지 않고, 자체 체인에 보관하고 있다는 차이점이 있더라구요.
 
  • Registration — 명부
    • 카르다노 SPO중 미드나잇 블록도 만들겠다고 등록한 SPO들의 명부에요.
  • D-param — 의석표
    • 블록 생성을 책임질 검증자 의석표라고 보면되요. permissioned / registered 두 값으로 이루어져 있어요. 아까 카르다노가 사용하던 D파라메터랑 비슷한 개념이에요. permissioned는 재단이 지정한 검증자 노드 의석수이고, registered는 Registration 명부의 SPO 중에서 추첨으로 뽑은 의석수에요.
  • Token reserve — 금고
    • 블록 생산 보상으로 풀릴 NIGHT 토큰을 카르다노 원장에 잠궈둔 컨트렉트입니다. NIGHT 토큰이 어떻게 풀리고 분배될지 정해둔 규칙이 새겨져 있어요.
  • Governance — 헌법
    • 위 셋을 바꿀 권한자 명단입니다. Council 6명과 Technical Committee 9명, 두 기구가 각각 3분의 2이상 찬성해야 변경할 수 있습니다.
 

미드나잇과 카르다노가 연동되는 순간

그럼 이 네가지 정보를 미드나잇 노드가 읽어오는 프로세스가 필요하겠죠? 그것이 Ariadne 알고리즘 이에요. 미드나잇은 Ariadne알고리즘으로 카르다노를 읽고, 미드나잇 블록 생산위원회를 확정하고 실제로 블록 생성 할 수 있게 되어요. 그래서 카르다노 에폭 5일 주기마다 이 두체인이 맞물리는 접점이 되는 거죠.
 
notion image
 
여기서 Ariadne 알고리즘이 하는 작업은 네 가지에요.
  1. 읽기
    1. 사서의 카드 목록에서 명부와 각 풀이 위임받은 ADA총량을 확인하고, 헌법 구성원 명단을 읽어요.
  1. 검증
    1. 명부를 하나하나 확인해서, 적힌 SPO가 진짜 풀 주인이 서명했고 카르다노 위임 장부에 실제로 있는 풀인지 검증해요
  1. 추첨
    1. 의석표를 읽거 값에 따라 재단이 선출하는 의석과, SPO 의석을 추첨해요.
  1. 확정
    1. 선춫ㄹ된 목록을 다음 에폭의 블록 생산 위원회로 미드나잇 체인에 저장하는 일을 해요.
 
이 과정 내내 미드나잇은 카르다노를 읽기만 할뿐, 아무것도 쓰지 않아요. 누가 후보인지, 누가 얼마나 위임받았는지, 누가 규칙을 바꿀 수 있는지 전부 카르다노에 적혀있고, 미드나잇 노드는 5일마다 그걸 꺼내보는 일만 할 뿐이죠. 그래서 카르다노가 멈춰도 미드나잇은 L2처럼 멈추지 않습니다. 다음 위원회 추천을 못할 뿐, 이미 뽑힌 위원회가 이어서 블록을 생산하게 되어요.
 
그래서 미드나잇은 L2가 아니라고 한 이유가 여기서 확실하게 드러납니다. L2는 L1에게 검증을 부탁하는 방식이라면, 카르다노는 미드나잇의 존재를 모르고, 미드나잇은 카르다노를 읽기만 하는 느슨한 의존관계에요.
 

결론: 초기 블록체인의 페인포인트를 해결한 미드나잇

오늘 나온 이야기들을 토대로 어떻게 미드나잇이 초기 블록체인의 페인포인트를 해결한 것인지 다시 한 번 정리해보겠습니다.
 
앞서 말씀 드렸다시피, 카르다노에서는 보안을 “정직한 과반을 유지하는 것”이라고 했고, 그 과반을 다음과 같이 유지한다고 했어요.
  • 전 세계에 흩어진 개인화된 풀 분포도
  • 위임자의 감시
  • 풀 운영자의 평판
 
하지만 새 블록체인은 이러한 네트워크 없이 시작해야하니 보안에 취약할 수 밖에 없죠. 미드나잇은 결국 그 문제를 다음과 같이 해결한 것이에요.
 
notion image
 
이걸 보면 카르다노 파트너 체인으로서 초기 POS체인이 겪어야 할 페인포인트를 잘 해결하면서 카르다노의 보완이 될 수 있는 privacy 기능을 쌓는다는게 현명한 판단과 좋은 파트너쉽이라고 생각이 듭니다.
 

마치며,

예전 아무것도 모를때 풀을 잠시 운영해보고 접었엇지만, 저는 이 SPO네트워크가 탈중앙화에 중요한 포인트라고 생각했고 지금도 그렇게 생각하고 있습니다. 그래서 미드나잇이 이 구조를 그대로 차용한다는 것이 좀 반가웠던 것 같습니다.
 
오늘은 이번에 제가 알아본 미드나잇은 여기까지이구, 앞으로 영지식 기능을 활용하는 Dapp들을 만들어보고 싶다는 호기심이 많이 생기는 것 같습니다.
 
현재는 구글이 만든 AP2 에이전트 결제 프로토콜에 미드나잇을 결합할 무엇인가가 있지 않을까 계속 조사중이고요. 다음에 다른 내용으로 또 나눌수 있는 기회가 있었으면 좋겠네요. 감사합니다.
 
 

참고