# Nullmask

> Nullmask는 새로운 시드 구문이나 전용 지갑 앱 없이도 표준 EVM 지갑에 통합되어 여러 체인에서 보호된 입금, 전송, 출금 및 스왑을 가능하게 하는 프라이버시 프로토콜입니다.

- Canonical URL: https://iq.wiki/kr/wiki/nullmask
- Categories: Projects & Protocols
- Tags: Ethereum, DeFi, Identity, Infrastructure, Privacy
- Created: 2026-10-09T02:04:00.263Z
- Last updated: 2026-10-09T02:04:00.263Z
- Source: IQ.wiki — the world's largest blockchain and crypto encyclopedia (https://iq.wiki)

---

**Nullmask**는 사용자가 자산을 풀(pool)에 보호하고 입금과 출금 사이의 온체인 연결을 남기지 않고 그 내부에서 거래함으로써 [Ethereum Virtual Machine (EVM)](https://iq.wiki/wiki/ethereum-virtual-machine-evm) [blockchains](https://iq.wiki/wiki/blockchain)에서의 거래를 비공개로 만들 수 있게 해주는 영지식(ZK) 프라이버시 프로토콜입니다.[\[1\]](#cite-id-b9xwt6asdl)​[\[2\]](#cite-id-xcnyvw2b0a) 2026년 3월 17일 암호학자 Tomas Krnak이 설계하고 저술한 프로토콜로 도입되었으며, 그 암호화 아키텍처와 기술 문서는 법인명이 아닌 그의 이름으로 발표되었습니다.[\[8\]](#cite-id-duyy5p48hj) 이 프로토콜은 별도의 애플리케이션, 전용 지갑 또는 새로운 [seed phrase](https://iq.wiki/wiki/seed-phrase)를 요구하는 대신 사용자의 기존 지갑 내부에 "가상 네트워크"로 설치된다는 점이 특징입니다.[\[1\]](#cite-id-b9xwt6asdl) 핵심 설계 주장은 보호된 작업이 표준 [Ethereum](https://iq.wiki/wiki/ethereum) 트랜잭션으로 승인되기 때문에 지출 권한이 사용자의 지갑을 절대 떠나지 않는다는 것입니다.[\[3\]](#cite-id-544e20pe42) 이 프로젝트는 자신의 목적을 "클릭 한 번으로 모든 지갑과 모든 거래를 비공개로 만드세요"라는 문구로 요약합니다.[\[4\]](#cite-id-m89t8z89i7)​



## Overview

Nullmask는 [EVM](https://iq.wiki/wiki/ethereum-virtual-machine-evm) 호환 [blockchains](https://iq.wiki/wiki/blockchain)을 위한 프라이버시 레이어입니다. 사용자는 자산을 영지식(zero-knowledge) 풀에 예치하거나 "차폐(shield)"하고, 그 안에서 비공개로 전송 및 스왑을 수행한 후, 나중에 임의의 주소로 자금을 "해제(unshield)"할 수 있습니다. 이 프로토콜은 원래의 예치와 최종 출금 사이에 관찰 가능한 온체인 관계가 존재하지 않도록 설계되었습니다.[\[1\]](#cite-id-b9xwt6asdl)​[\[2\]](#cite-id-xcnyvw2b0a) 이 프로토콜은 네 가지 비공개 작업을 지원합니다: 차폐 예치(shielded deposits), 차폐 전송(shielded transfers), 차폐 출금(shielded withdrawals), 그리고 차폐 스왑(shielded swaps)입니다.[\[6\]](#cite-id-fxpp8ee4yn)​

이 프로토콜은 자체 [blockchain](https://iq.wiki/wiki/blockchain)을 운영하지 않습니다. 대신 기존의 [layer 2](https://iq.wiki/wiki/layer-2) (L2) 인프라를 기반으로 구축되어 사용자의 지갑에 차폐 계정을 연결하며, 자체 네트워크에서의 작업을 궁극적으로 기본 [EVM](https://iq.wiki/wiki/ethereum-virtual-machine-evm) 체인에서 실행되는 "차폐 작업을 위한 의도(intents for shielded actions)"로 처리합니다.[\[3\]](#cite-id-544e20pe42) 이 프로젝트는 제3자 트래커에 의해 "zk" 및 "Privacy" 카테고리로 분류되어 있습니다.[\[1\]](#cite-id-b9xwt6asdl)​[\[5\]](#cite-id-ytaaf9vyt9)​



## Design and Architecture

### Privacy Pool and Proofs

Nullmask로 보호된(shielded) 자금은 UTXO 기반 프라이버시 풀에 보관됩니다. 이는 잔액이 단일 가변 계정 잔액이 아닌 개별적인 미사용 출력값(unspent outputs)으로 표시되는 모델입니다. 이 풀은 Poseidon2 커밋먼트와 머클 멤버십 증명(Merkle membership proofs)을 사용하여 보안을 유지합니다. 이러한 암호화 구조를 통해 프로토콜은 특정 예치금이 무엇인지 밝히지 않고도 해당 예치금이 풀에 속해 있음을 확인할 수 있습니다.[\[6\]](#cite-id-fxpp8ee4yn) 사용자가 작업을 시작하면 프로토콜은 트랜잭션을 가로채 클라이언트 측에서 [영지식 증명(zero-knowledge proof)](https://iq.wiki/wiki/zero-knowledge-proofs-zkps)을 생성하고, 이를 릴레이어(relayer)를 통해 제출합니다. 릴레이어는 트랜잭션을 브로드캐스트하여 원래 발신자의 신원이 온체인에 노출되지 않도록 하는 중개자 역할을 합니다.[\[6\]](#cite-id-fxpp8ee4yn)​

보호된 전송(Shielded Transfers)을 통해 발신자, 수신자 또는 금액을 온체인에 공개하지 않고 토큰을 보낼 수 있습니다. 보호된 스왑(Shielded Swaps)은 사용자의 신원을 노출하지 않고 [Uniswap](https://iq.wiki/wiki/uniswap) V2 거래를 실행하며, 비공개 예치 및 출금은 각각 [영지식 증명](https://iq.wiki/wiki/zero-knowledge-proofs-zkps)에 의해 검증됩니다.[\[6\]](#cite-id-fxpp8ee4yn) 비공개 전송 금액은 설계상 숨겨져 있으며, 프로젝트의 분석 방법론에 따르면 이는 보고된 거래량 수치에 포함되지 않음을 의미합니다.[\[2\]](#cite-id-xcnyvw2b0a)​

### Virtual Network and Wallet Integration

Nullmask는 독립형 애플리케이션으로 작동하는 대신 사용자의 지갑에 가상 네트워크로 설치됩니다. 프로젝트 측은 이 일회성 설정에 약 20초가 소요된다고 설명합니다.[\[3\]](#cite-id-544e20pe42) 가상 네트워크는 Nullmask RPC 미들웨어를 사용하여 보호된 잔액을 복호화하고 나가는 트랜잭션을 그에 상응하는 보호된 형태로 변환합니다. 이 미들웨어는 빠른 온보딩을 위해 원격으로 실행하거나, 프로젝트가 설명하는 최대의 프라이버시를 위해 로컬에서 실행할 수 있습니다.[\[3\]](#cite-id-544e20pe42) 일단 설치되면, 사용자는 별도의 앱 없이 기존 [web3](https://iq.wiki/wiki/web3) 지갑에서 직접 전송, 출금 및 탈중앙화 애플리케이션과의 상호작용을 수행할 수 있다고 프로토콜은 명시하고 있습니다.[\[3\]](#cite-id-544e20pe42)​

이 프로토콜은 [MetaMask](https://iq.wiki/wiki/metamask) 및 [Ethereum](https://iq.wiki/wiki/ethereum) 트랜잭션 수수료 표준인 EIP-1559와 호환되는 모든 지갑과 작동하도록 설계되었으며, 표준 지갑 사용자 경험을 유지합니다.[\[6\]](#cite-id-fxpp8ee4yn) Nullmask는 별도의 보호된 주소 체계 대신 표준 0x 주소와 [Ethereum Name Service (ENS)](https://iq.wiki/wiki/ens) 이름을 사용하며, 지갑의 기존 시드를 기반으로 하기 때문에 추가적인 [시드 구문(seed phrase)](https://iq.wiki/wiki/seed-phrase)을 저장할 필요가 없다고 프로젝트 측은 밝히고 있습니다.[\[3\]](#cite-id-544e20pe42) 또한 [하드웨어 지갑(hardware wallets)](https://iq.wiki/wiki/hardware-wallet)을 지원하며, 장치에서 지출 권한을 추출하지 않고도 완전한 보안을 제공한다고 명시합니다.[\[6\]](#cite-id-fxpp8ee4yn)​

### Approach to Spending Authority

Nullmask가 자체 발행한 설계 문서에서 반복되는 주제는 지출 권한(spending authority)의 처리 방식입니다. 이 프로젝트는 [Railgun](https://iq.wiki/wiki/railgun), [0xbow](https://iq.wiki/wiki/0xbow), [Hinkal](https://iq.wiki/wiki/hinkal), zERC20, [Zcash](https://iq.wiki/wiki/zcash) 등 실명을 거론한 다른 프라이버시 솔루션들이 지갑에서 지출 권한을 추출하는 방식에 의존한다고 주장하며 자사의 방식과 대조합니다.[\[3\]](#cite-id-544e20pe42) 문서에 따르면, 지출 권한을 추출하는 것은 해당 방식들을 피싱 공격에 취약하게 만들며, 지출 권한이 장치를 절대 떠나지 않아야 한다는 [하드웨어 지갑](https://iq.wiki/wiki/hardware-wallet)의 근본적인 원칙을 위반하는 것이라고 설명합니다.[\[3\]](#cite-id-544e20pe42)​

문서에 따르면 [Railgun](https://iq.wiki/wiki/railgun)과 [Zcash](https://iq.wiki/wiki/zcash)는 실드 트랜잭션(shielded transaction)에 추가 서명을 요구함으로써 이 문제를 해결했지만, 두 방식 모두 커스텀 해시 함수(Zcash Orchard의 Sinsemilla 및 Railgun의 "various-rate Poseidon")에 의존한다고 명시되어 있습니다. 이러한 함수들은 [하드웨어 지갑](https://iq.wiki/wiki/hardware-wallet)의 제한된 환경에서는 비실용적인 대규모 사전 계산 룩업 테이블을 필요로 한다고 주장합니다.[\[3\]](#cite-id-544e20pe42) 반면 Nullmask는 모든 하드웨어 지갑에 이미 구현되어 있는 표준 EIP-1559 트랜잭션으로 실드 트랜잭션을 승인하므로, 지갑 코드의 변경 없이도 하드웨어 지갑에서 실드 트랜잭션을 수행할 수 있게 합니다. 이 프로젝트는 "프라이버시가 더 이상 절충안처럼 느껴지지 않을 때 승리한다"라는 문장으로 자신의 입장을 요약합니다.[\[3\]](#cite-id-544e20pe42)​

### Compliance Features

Nullmask에는 프라이버시 풀의 남용을 제한하기 위한 내장형 규제 준수 도구가 포함되어 있습니다. 프로토콜은 예치금 스크리닝을 수행하고 취소 키(revocation keys)를 통한 소급적 오염 회복(retrospective taint recovery) 기능을 제공합니다. 문서는 이 메커니즘을 통해 이전에 수락된 예치금이 나중에 불법으로 판명될 경우 추적할 수 있게 해준다고 설명합니다.[\[6\]](#cite-id-fxpp8ee4yn) 프로젝트의 분석 방법론에 따르면, 스크리닝 대기 중인 자금은 보고된 총 예치 자산(TVL)에서 제외됩니다.[\[2\]](#cite-id-xcnyvw2b0a)​

### Governance and Control

Nullmask의 풀 컨트랙트는 UUPS 프록시 패턴을 사용하는 ERC1967 래퍼 뒤에 배포되므로, 사용자는 프록시 주소와 상호작용하는 반면 컨트랙트 로직은 승인된 업그레이드 컨트롤러를 통해 업그레이드될 수 있습니다.[\[9\]](#cite-id-567rgxvdjr) 출시 시점에 업그레이드 권한은 단일 업그레이드 관리자 역할을 하는 `AdminUpgradeController` 컨트랙트가 보유하며, 이는 초기 배포자에 의해 제어됩니다.[\[9\]](#cite-id-567rgxvdjr) 업그레이드 권한 자체는 `setUpgradeController()` 함수를 통해 업그레이드 가능하며, 이를 통해 `upgradeController` 역할을 타임락 컨트랙트, 멀티시그 지갑 또는 DAO 거버넌스 컨트랙트와 같은 대체 구조로 이전할 수 있습니다. 오직 현재의 `upgradeController`만이 이러한 마이그레이션을 수행할 권한을 가집니다.[\[9\]](#cite-id-567rgxvdjr)​

규제 준수 관련 매개변수 또한 이 업그레이드 컨트롤러와 연결되어 있습니다. 특권 컨트랙트 상태 변수인 가드(guard) 주소는 기존 가드 또는 업그레이드 컨트롤러가 `setGuard()`를 통해 변경할 수 있으며, 검증자(verifier) 컨트랙트와 화이트리스트 관리자는 업그레이드 컨트롤러의 승인이 필요한 함수를 통해 업데이트됩니다.[\[9\]](#cite-id-567rgxvdjr)​[\[10\]](#cite-id-d1hha4rbk6) 가드는 프라이버시 풀로의 예치금을 모니터링하는 백엔드 서비스로 작동하며, `approveDeposit()` 및 `rejectDeposit()`을 호출할 수 있는 유일한 주소입니다. 승인된 각 예치금에 대해 가드는 취소 키 쌍을 발행하며, 이 키의 공개 구성 요소와 해시는 예치 이벤트 및 커밋먼트(commitment)에 포함됩니다.[\[10\]](#cite-id-d1hha4rbk6)​[\[11\]](#cite-id-huhkcj0mgs) 이러한 취소 키는 참여자가 자신의 노트(note)가 나중에 플래그가 지정된 예치금으로부터 자금이 조달되었는지 감지하고, 오염된 자금과의 비연관성을 증명하거나, 영향을 받은 잔액을 선택적으로 정화할 수 있게 함으로써 소급적 오염 회복을 가능하게 합니다. 취소 메커니즘에 대한 제어는 가드 서비스와 스마트 컨트랙트 사양에 기술된 업그레이드 컨트롤러를 통해 조정됩니다.[\[11\]](#cite-id-huhkcj0mgs)​[\[9\]](#cite-id-567rgxvdjr)​

## Supported Chains and Assets

Nullmask의 문서에 따르면 [Ethereum](https://iq.wiki/wiki/ethereum), [Arbitrum](https://iq.wiki/wiki/arbitrum), [MegaETH](https://iq.wiki/wiki/megaeth), [Base](https://iq.wiki/wiki/base), 그리고 BSC (BNB Smart Chain)에 배포되어 있으며, 이 프로토콜은 네이티브 ETH와 함께 모든 지원되는 [ERC-20](https://iq.wiki/wiki/erc-20) 토큰을 지원합니다.[\[6\]](#cite-id-fxpp8ee4yn) 실시간 운영 현황을 반영하는 프로젝트의 분석 대시보드에 따르면, [privacy pools](https://iq.wiki/wiki/privacy-pools)는 현재 두 개의 체인에서 활성화되어 있습니다: 2026년 10월 1일부터 운영 중이며 ETH와 [USDT](https://iq.wiki/wiki/tether)를 지원하는 Ethereum, 그리고 2026년 10월 7일부터 운영 중이며 [ETH](https://iq.wiki/wiki/ether-eth)와 [USDC](https://iq.wiki/wiki/usdc)를 지원하는 [Base](https://iq.wiki/wiki/base)입니다.[\[2\]](#cite-id-xcnyvw2b0a) 풀 컨트랙트는 두 체인 모두 동일한 주소에 배포되어 있으며, 활동 내역은 [Etherscan](https://iq.wiki/wiki/etherscan) 및 Basescan [block explorers](https://iq.wiki/wiki/block-explorer)를 통해 확인할 수 있습니다.[\[2\]](#cite-id-xcnyvw2b0a)​



## MASK Token

MASK 토큰은 [Solana](https://iq.wiki/wiki/solana) [blockchain](https://iq.wiki/wiki/blockchain)에서 발행되며, 솔라나 생태계 내의 데이터 애그리게이터들에 의해 추적됩니다.[\[5\]](#cite-id-ytaaf9vyt9)​[\[2\]](#cite-id-xcnyvw2b0a) 데이터 제공업체들이 보고한 공급량 수치는 약간의 차이가 있습니다. [CoinMarketCap](https://iq.wiki/wiki/coinmarketcap)은 총 공급량 및 최대 공급량을 990,994,347 MASK로 기재하고 있으며, 프로젝트 측은 이를 전량 [circulating supply](https://iq.wiki/wiki/circulating-supply)(유통 공급량)라고 자체 보고하고 있습니다. 반면 [CoinGecko](https://iq.wiki/wiki/coingecko)는 최대 공급량 10억 개 대비 총 공급량을 약 9억 8,630만 개로 기재하고 있습니다.[\[7\]](#cite-id-rlvy8ucfio)​[\[5\]](#cite-id-ytaaf9vyt9) 이 토큰은 [Meteora](https://iq.wiki/wiki/meteora), [Raydium](https://iq.wiki/wiki/raydium), Manifest를 포함한 [decentralized exchanges](https://iq.wiki/wiki/decentralized-exchange)(탈중앙화 거래소)와 [LBank](https://iq.wiki/wiki/lbank), [MEXC](https://iq.wiki/wiki/mexc), KCEX와 같은 [centralized exchanges](https://iq.wiki/wiki/cex-centralized-exchange)(중앙화 거래소)에서 거래되며, SOL, [USDC](https://iq.wiki/wiki/usdc), [USDT](https://iq.wiki/wiki/tether)를 페어로 하는 [liquidity pools](https://iq.wiki/wiki/liquidity-pool)(유동성 풀)이 형성되어 있습니다.[\[5\]](#cite-id-ytaaf9vyt9)​[\[7\]](#cite-id-rlvy8ucfio)​

이 토큰은 [Zcash](https://iq.wiki/wiki/zcash) (ZEC)와 연계된 보상 및 바이백 시스템을 통해 프로토콜의 경제 구조와 연결됩니다. 프로젝트 대시보드에 따르면, StonkFun에 의해 MASK 홀더들에게 ZEC가 배분되며, 2026년 10월 초 기준으로 기록된 누적 홀더 보상은 약 101만 달러에 달합니다.[\[2\]](#cite-id-xcnyvw2b0a) 이와 별도로, 개발 지갑에서 확보한 ZEC(일일 ZEC 가격 기준 총 약 514,000달러 가치)는 MASK를 바이백하는 데 사용됩니다. 대시보드 보고에 따르면 온체인에서 소각된 MASK는 초기 공급량 10억 개의 약 1.22%에 해당합니다.[\[2\]](#cite-id-xcnyvw2b0a)​

2026년 10월 현재, 공개된 프로토콜 문서 및 스마트 컨트랙트 참조 자료에는 Nullmask 풀 컨트랙트에 대한 MASK의 온체인 거버넌스 권한이 명시되어 있지 않습니다. 대신 업그레이드 권한은 [EVM](https://iq.wiki/wiki/ethereum-virtual-machine-evm) 측의 업그레이드 컨트롤러 컨트랙트에 귀속되어 있습니다.[\[9\]](#cite-id-567rgxvdjr) 공개 자료들은 MASK의 경제적 역할을 수수료 공유 메커니즘이나 프로토콜 파라미터에 대한 [staking](https://iq.wiki/wiki/staking) 기반 거버넌스가 아닌, 주로 홀더를 위한 ZEC 표시 보상 및 토큰을 영구적으로 소각하는 ZEC 기반 바이백과의 연계성을 통해 규정하고 있습니다.[\[2\]](#cite-id-xcnyvw2b0a)​



## Usage and Metrics

이 프로젝트는 [Dune](https://iq.wiki/wiki/dune)에서 공개 분석 대시보드를 운영하며, 출시 이후 각 체인의 풀 컨트랙트 온체인 이벤트를 디코딩하여 수치를 도출합니다. 이 대시보드는 두 체인의 합계와 체인별 세부 내역을 모두 보여줍니다. 대시보드 데이터는 실시간이 아니며, 위젯은 30분에서 6시간 간격으로 업데이트됩니다.[\[2\]](#cite-id-xcnyvw2b0a) 방법론에 따르면, 거래량(Volume)은 각 트랜잭션 시점의 분 단위 가격으로 산정된 모든 실드(shield) 및 언실드(unshield)의 미국 달러 가치로 정의됩니다. [총 예치 자산(TVL)](https://iq.wiki/wiki/tvl)은 현재 풀에 실딩된 자금으로, 아직 청구되지 않은 프로토콜 수수료와 심사 대기 중인 예치금은 제외됩니다. 총 전송 횟수(Total transfers)는 예치, 출금, 프라이빗 전송 및 스왑을 포함한 모든 풀 운영 횟수를 집계합니다.[\[2\]](#cite-id-xcnyvw2b0a)​

프로토콜은 각 예치 및 출금 시 0.5%의 수수료를 부과하며, 릴레이어 [gas](https://iq.wiki/wiki/gas) 보상은 프로토콜 수수료에 포함되지 않는다고 명시하고 있습니다.[\[2\]](#cite-id-xcnyvw2b0a) 2026년 10월 1일 [Ethereum](https://iq.wiki/wiki/ethereum) 출시부터 2026년 10월 8일까지 대시보드에 기록된 누적 거래량은 첫날 약 107만 달러에서 약 1,597만 달러로 증가했으며, 약 79,800달러의 누적 수수료를 창출했습니다.[\[2\]](#cite-id-xcnyvw2b0a) 일일 활동은 2026년 10월 4일에 약 364만 달러의 거래량과 1,000건의 총 전송 횟수로 정점을 찍은 후 주 후반에 감소했습니다. [Base](https://iq.wiki/wiki/base) 활동은 2026년 10월 7일 수치에 처음 등장하여 당일 약 256,000달러의 거래량을 기록했습니다.[\[2\]](#cite-id-xcnyvw2b0a) 두 체인을 합산하여 대시보드는 약 1,603만 달러의 총 플랫폼 거래량과 약 80,100달러의 총 플랫폼 수수료를 보고했습니다.[\[2\]](#cite-id-xcnyvw2b0a)​



## Technology Stack

Nullmask는 여러 구성 요소를 아우르는 모노레포(monorepo)로 구축되었습니다. 이 프로토콜의 영지식 회로는 ZK 프로그램 작성을 위한 언어인 Noir를 Barretenberg 증명 백엔드와 함께 사용합니다.[\[6\]](#cite-id-fxpp8ee4yn) [스마트 컨트랙트](https://iq.wiki/wiki/smart-contract)는 [Solidity](https://iq.wiki/wiki/solidity) 0.8.28로 작성되었으며 Hardhat v3 프레임워크와 [OpenZeppelin](https://iq.wiki/wiki/openzeppelin) v5 라이브러리를 사용하여 개발되었습니다.[\[6\]](#cite-id-fxpp8ee4yn) 프론트엔드는 Next.js 15, React 19, TailwindCSS 4를 사용하며, 백엔드 서비스는 Fastify 5와 Node.js 24에서 실행됩니다. [web3](https://iq.wiki/wiki/web3) 통합 레이어는 Viem 및 Wagmi 라이브러리를 사용하고, 영구 저장소는 LMDB를 사용합니다. 모노레포 관리는 Turborepo와 pnpm 패키지 매니저를 통해 이루어지며, Biome, TypeScript 5.9, knip 등의 코드 품질 도구가 함께 사용됩니다.[\[6\]](#cite-id-fxpp8ee4yn)​

프로토콜의 문서는 GitBook을 통해 게시되며 프로토콜 소개, 작동 원리, 암호화 알고리즘 및 증명을 상세히 설명하는 프로토콜 사양, 예치, 이체 및 스왑을 위한 [Solidity](https://iq.wiki/wiki/solidity) API를 제공하는 [Smart Contract](https://iq.wiki/wiki/smart-contract) 참조서, 프록시에서 노출하는 JSON-RPC 메서드를 설명하는 RPC API 참조서, 프로토콜을 로컬에서 빌드하고 실행하기 위한 개발자 가이드, 그리고 단계별 지침이 포함된 사용자 가이드 섹션으로 구성되어 있습니다.[\[6\]](#cite-id-fxpp8ee4yn) 각 페이지는 마크다운 형식으로 제공되며, 문서는 GitBook API를 통해 프로그래밍 방식으로 쿼리할 수 있어 문서에서 추출한 발췌문 및 출처와 함께 직접적인 답변을 반환받을 수 있습니다.[\[6\]](#cite-id-fxpp8ee4yn)​
