기술 문서
대금을 먼저 예치하고, 판정 규칙을 해시로 고정하고, 성과가 확인되면 컨트랙트가 지급을 실행한다.
v0.1 · 2026-08-27
확인된 성과만큼만 지급하는 광고 정산 레이어#
광고주가 대금을 먼저 컨트랙트에 예치한다. 판정 규칙은 예치와 동시에 해시로 고정되어 이후 변경할 수 없다. 성과가 확인되면 컨트랙트가 지급을 실행하며, 광고주의 별도 승인 절차는 없다.
성과형 계약이 자리잡지 못한 이유#
인플루언서 마케팅에서 성과형 계약이 자리잡지 못한 원인은 측정이 아니라 이행에 있다. 조건을 측정할 수는 있어도, 그 조건대로 지급되도록 강제할 수단이 없었다.
| 상황 | 실제로 일어나는 일 |
|---|---|
| 광고주 → 크리에이터 | 선불로 주면 게시하지 않을 위험. 그래서 후불을 고집한다 |
| 크리에이터 → 광고주 | 만들고 게시했는데 “마음에 안 든다”며 지급을 거부당한다 |
| 국경을 넘으면 | 계약서가 있어도 소송이 사실상 불가능하다. 회수 비용이 계약 금액을 넘는다 |
계약서는 분쟁이 발생한 뒤에 작동하는 장치라 위 세 경우 모두에 대응하지 못한다. NARU 는 자금을 사전에 예치하고, 조건이 충족되면 별도 승인 없이 지급되는 방식을 택했다.
예치에서 지급까지#
캠페인 한 건이 시작해서 끝날 때까지 실제로 일어나는 일이다. 각 단계는 온체인에 기록이 남는다.
- 01예치광고주가 캠페인을 열면서 전액을 컨트랙트로 옮긴다. 예치 없이는 캠페인이 열리지 않는다.
- 02공개제목·규칙·지급 항목이 광고주 지갑으로 서명한 공개 기록(어테스테이션)으로 체인에 올라간다. 읽는 쪽이 우리 서버를 믿지 않고도 대조할 수 있다.
- 03참여크리에이터가 자격을 확인받고 참여한다. 자격 조건은 예치 때 정해져 이후 바뀌지 않는다.
- 04검수게시 전에 원고가 규칙에 맞는지 확인한다. 통과한 원고는 게시 후에 번복되지 않는다.
- 05관측게시물을 서버가 직접 읽고, 체인에 고정된 규칙으로 다시 판정한다.
- 06지급오라클이 판정 결과를 체인에 올리고 컨트랙트가 금액을 계산해 보낸다. 크리에이터는 가스를 내지 않는다.
누구의 차례인가
지급액 계산#
컨트랙트는 앱 설치나 리포스트 500회가 무엇인지 알지 못한다. 조건 충족 여부는 컨트랙트 바깥에서 판정하고, 컨트랙트는 그 결과를 금액으로 환산한다.
지급액 = min(검증된 수량, 남은 상한) × 단가
그래서 새 캠페인 유형을 추가해도 컨트랙트를 다시 배포하지 않는다. 어테스테이션 스키마만 등록하면 된다.
지급 판정 순서
- 01캠페인 유효성 — 취소되지 않았고, 마감 + 정산 유예기간 안이고, 항목이 존재하는가
- 02검증 경로 분기
- 03참여 자격 — 자격 조건이 걸린 캠페인일 때만
- 04동결 여부
- 05수량 상한 — 한 사람에게 남은 만큼까지만
- 06금액 계산
- 07예산 상한 — 항목에 남은 만큼까지만
- 08상태 변경 — 누적 수량·집행액·어테스테이션 사용 표시
- 09자금 이체
2번 — 검증 경로 분기
5번과 7번 — 상한에 두 번 걸린다
캠페인 생성#
광고주가 캠페인을 만들 때 무엇을 정하고, 그중 무엇이 이후 바뀌지 않는지다. 마지막 단계에서 서명 두 번으로 예치가 끝나고, 그 순간 판정 기준이 확정된다.
일곱 단계
- 01목표무엇을 얻고 싶은지 먼저 고른다. 고르면 뒤 단계의 지급 항목·단가·확인 경로가 초안으로 채워진다.
- 02캠페인 정보이름·제품·모집 기간·모집 인원. 이름과 소개는 체인에 공개돼 크리에이터가 대조할 수 있다.
- 03타겟전체 공개로 열지, 참여 조건을 걸지 정한다. 조건은 이 단계에서만 정할 수 있다.
- 04정산 수단어느 토큰으로 지급할지. 시세가 움직이는 토큰은 예치하는 순간 수량이 고정된다.
- 05지급 항목어떤 성과에 얼마를 지급할지 고른다. 항목 예산의 합이 곧 예치 금액이다.
- 06브리프필수 문구·금지 표현·톤·유지 의무를 적는다. 검수와 지급 판정이 모두 이 글을 기준으로 이뤄진다.
- 07검토와 예치서명 두 번 — 토큰 사용 승인과 캠페인 생성. 두 번째가 끝나면 전액이 컨트랙트로 옮겨진다.
예치와 동시에 확정되는 것
광고주가 사후에 조건을 변경하는 경로가 구조적으로 차단된다. 원문은 체인 밖에 두고 해시만 올리므로, 당사자는 원문을 받아 해시를 다시 계산해 대조할 수 있다.
| 값 | 확정 시점 | 이후 변경 |
|---|---|---|
| 판정 규칙 | 캠페인을 열 때 | 불가 |
| 참여 자격 조건 | 캠페인을 열 때 | 불가 — 바꾸는 함수 자체가 없다 |
| 예산 | 캠페인을 열 때 | 증액만 가능 |
| 지급 항목별 원고 기준 | 항목을 추가할 때 | 불가 |
정산 유예기간
마감이 지나도 즉시 회수할 수 없다. 전환을 30일까지 성과로 인정하는 캠페인이라면 마감 직전에 일어난 전환은 판정이 늦게 나온다. 유예기간이 없으면 광고주가 마감 직후 미지급분을 회수해 크리에이터가 이행하고도 받지 못하는 경우가 생긴다. 그래서 유예기간은 성과를 인정하는 기간보다 길게 둔다(권장 30일 이상).
검증 방식과 신뢰 구조#
오프체인 사실을 온체인으로 옮기는 이상 누군가는 보고 주장해야 한다. 그래서 질문은 신뢰를 없앨 수 있나가 아니라 항목마다 신뢰를 어디까지 줄일 수 있나다. NARU 는 검증 방식을 지급 항목마다 교체할 수 있게 설계했다.
컨트랙트가 보장하는 것
- 예치 없이는 캠페인이 열리지 않는다
- 규칙은 생성 후 변경 불가
- 광고주는 유예기간 전에 회수할 수 없다
- 같은 판정 기록을 두 번 쓸 수 없다
검증 방식은 항목마다 교체된다
지급 항목마다 검증자를 지정한다. 지정하지 않으면 기본 경로를 쓴다. 검증자를 바꾸는 데 컨트랙트 재배포가 필요 없다. 항목의 필드 하나만 바꾸면 된다.
기본 경로에서 판정을 검증하는 방법
남는 신뢰
구현에서는 이 역할을 어테스터라고 부른다. 판정 결과를 EAS 어테스테이션으로 발급하고, 컨트랙트가 그 어테스테이션을 아홉 항목으로 검증한 뒤에만 지급한다.
컨트랙트와 네트워크#
전부 소스가 공개돼 있다. 익스플로러에서 바로 확인할 수 있다.
검증 가능한 항목#
캠페인에 걸 수 있는 지급 항목과, 그 성과를 NARU 가 어디서 확인하는지다. 아직 확인 경로가 없는 항목은 추후 지원으로 표시한다.
| 항목 | 단위 | 확인 경로 | 지원 |
|---|---|---|---|
콘텐츠 게시 브리프대로 올리면 정액 지급 | 건 | 게시물 원문 | 현재 가능 |
구매 전환 할인코드로 들어온 주문 1건당 지급 | 건 | Shopify 주문 데이터 | 추후 지원 |
게시물 유지 정해진 기간 지우지 않으면 잔금 지급 | 건 | 공개 URL 정기 확인 | 추후 지원 |
앱 설치 설치가 확인된 1건당 지급 | 설치 | 앱 어트리뷰션 | 추후 지원 |
신규 지갑 유입 새로 만든 뒤 일정 기간 남아 있는 지갑당 지급 | 지갑 | 온체인 | 추후 지원 |
예치금 유치 레퍼럴로 들어온 예치액 기준 | 천 USD | 온체인 | 추후 지원 |
거래량 데려온 사용자가 쌓은 누적 거래량 | 천 USD | 온체인 | 추후 지원 |
방문자 유입 링크를 타고 들어온 세션 | 천 세션 | NARU 링크 서버 | 추후 지원 |
팔로워 증가 캠페인 기간에 늘고 유지된 팔로워당 지급 | 명 | X 프로필 · 기간 대조 | 추후 지원 |
도달·저장 게시물 도달과 저장 수 | 천 도달 | X 게시물 지표 | 추후 지원 |