gm을 VP-0001 생성자로 등록

VP-0004

요약

이 제안은 gm을 VP-0001에 따른 생성자로 등록하고 일일 쿼터 256 KiB를 부여합니다. Greymass는 iOS 및 Android용 Anchor와 Web Authenticator의 계정 생성 서비스인 Sextant를 통해 gm을 운영하며, Google 또는 Apple 로그인 후 신규 사용자에게 무료 계정을 제공하는 데 사용합니다. gm은 이미 자신이 생성하는 모든 무료 계정에 RAM을 기증하고 있으며, 기금이 마련되면 그 RAM은 네트워크에서 나오고, 쿼터를 초과하는 계정은 Greymass 자체 RAM으로 충당합니다.

신원

등록할 계정은 Greymass Inc.가 운영하는 gm입니다. 프로듀서는 support@greymass.com으로 Greymass에 연락할 수 있습니다.

용도와 쿼터

Greymass의 무료 계정 제품만 giftacct를 호출합니다. 이 제품들은 모든 플랫폼에서 동일하며, iOS용 Anchor, Android용 Anchor, Web Authenticator 모두 이 제품을 통해 계정을 생성합니다. Greymass의 유료 제품은 계속 자체 RAM 비용을 부담하므로, 기증되는 계정은 모두 무료 계정입니다.

각 무료 계정은 4,000바이트를 받습니다. RAM을 보유한 모든 계정에 시스템이 제공하는 1,400바이트를 더하면 계정은 5,400바이트를 가지며, 그중 최소 구성 계정이 2,996바이트를 사용하므로 소유자에게는 토큰 잔액과 기타 행을 위한 약 2,400바이트가 남습니다. 이는 VP-0001이 권장하는 3,000바이트보다 많습니다. 각 기증은 136바이트 오버헤드를 포함해 쿼터에서 4,136바이트를 차감하므로, 쿼터는 하루 약 63개 계정을 충당합니다.

요청하는 쿼터는 VP-0001의 기본값인 하루 262,144바이트(256 KiB)입니다. 2026-10-17까지 90일 동안 gm은 1,331개 계정을 생성했으며, 이는 하루 평균 14.8개, 최대 29개이고, 그중 91%가 3,000바이트 giftram을 받았습니다. 이 수치는 무료 계정과 유료 계정을 합한 것이므로 무료 계정 생성량의 상한입니다. 계정당 4,136바이트로 계산하면 최대치를 기록한 날에는 119,944바이트를 사용했을 것이며, 이는 쿼터의 절반에 못 미칩니다.

실제 사용자

gm은 무료 계정에만 RAM을 기증합니다. iOS 및 Android용 Anchor와 Web Authenticator는 Google 또는 Apple 로그인 후 무료 계정을 발급하며, 이 로그인을 통해 Greymass는 계정의 이메일 주소를 받습니다. Greymass의 서버는 주소 자체가 아닌 그 주소의 SHA-256 해시만 보관하며, 이미 무료 계정을 생성한 해시에 대해서는 두 번째 무료 계정을 거부합니다. 주소는 신원 제공자로부터 오므로 두 번째 무료 계정에는 두 번째 Google 또는 Apple 계정이 필요하며, 따라서 이메일 주소가 상한의 기준이 되는 식별자이고 클라이언트가 이를 위조할 수 없습니다. Greymass는 IP 주소 제한이나 캡차를 적용하지 않습니다.

계정 이름은 12자이거나 .gm으로 끝납니다. Sextant는 eosio로 시작하는 이름, 비속어 목록에 있는 이름, 그리고 vaulta를 포함한 약 40개의 예약 이름을 거부합니다. 유사성 검사나 대량 패턴 검사는 실행하지 않습니다.

트랜잭션 구조

Sextant는 각 계정을 하나의 트랜잭션으로 생성합니다. gm이 서명한 최상위 eosio::newaccount 다음에, 역시 gm이 서명한 최상위 gift.vaulta::giftacct(gm, account, 4000, "")가 이어집니다. gm은 자신이 직접 생성하는 계정에만 자금을 대며, 다른 당사자가 서명한 newaccount에 대해서는 giftacct에 서명하지 않습니다.

Sextant는 각 계정을 생성하기 전에 gift.vaulta의 config와 creators에 있는 gm의 행을 읽고, 프로그램이 활성화되어 있고 기증이 윈도우에 남은 쿼터 안에 들어갈 때에만 giftacct를 사용합니다. 그렇지 않은 경우, 그리고 체인이 기증 트랜잭션을 거부한 경우에는 gm 자체의 giftram으로 계정을 생성하므로, 쿼터가 소진되거나 프로그램이 비활성화되거나 gm이 정지된 후에도 사용자는 가입할 수 있습니다.

하나의 요청이 쿼터를 두 번 소비하는 일은 없습니다. 기증과 계정이 같은 트랜잭션에서 생성되므로 쿼터는 그 이름이 생성될 때에만 차감되고, 하나의 이름은 한 번만 생성될 수 있습니다. Sextant는 각 계정을 대기 상태부터 비가역 상태까지 추적하고, 푸시가 실패하면 되돌리며, 계정이 연결된 후에만 사용자의 티켓을 소진합니다. 최종성 작업은 동일한 서명된 트랜잭션을 재전송하며, 이미 존재하는 계정을 성공으로 처리합니다.

자기거래

Greymass는 자사, 직원, 파트너의 계정을 gift 컨트랙트를 사용하지 않는 제품으로 생성하므로, 이 계정들은 기금을 전혀 사용하지 않습니다. Greymass는 무료 제품에 대해 이메일 주소 없이 티켓을 발급하지 않습니다.

책임성

Sextant가 생성하는 모든 계정은 Greymass 직원이 읽는 Slack 채널에 게시되며, 매시간 실행되는 감시 작업이 gm의 토큰 잔액이나 RAM이 부족해지면 Greymass에 경보를 보냅니다. 생성 속도에 대해서는 경보가 발생하지 않습니다. 일일 쿼터가 급증을 256 KiB로 제한합니다.

Greymass는 무료 제품의 gift 컨트랙트 설정을 해제하여 프로듀서를 기다리지 않고 기증을 중지하며, 그 후 Sextant는 다음 계정부터 gm 자체의 RAM으로 비용을 지불합니다. gm에 서명하는 키가 탈취되면 Greymass는 gm@owner가 서명한 updateauth 한 번으로 키를 교체하고 같은 설정을 해제하며, 이 작업에는 몇 분이 걸립니다.

테스트넷 시연

Sextant의 프로덕션 흐름은 Jungle 4 테스트넷에서 트랜잭션 a9c6c2b5323b67fe9d415d0d4dad433b888db69db97f788a2a4f28c1fbc4b3d0(블록 292,934,156, 2026-10-19)으로 foijhpiz3.gm을 생성했습니다. 이 트랜잭션에는 최상위 newaccount와 최상위 gift.gm::giftacct(gm, foijhpiz3.gm, 4000, "")가 들어 있으며, 둘 다 gm@active가 서명했습니다. 컨트랙트는 4,000바이트의 인라인 giftram을 전송하고 gm의 쿼터에서 4,136바이트를 차감했습니다. Jungle 4에서 gift 컨트랙트는 gift.gm에서 실행되며, 두 번째 보안 검토가 검토한 커밋으로 빌드되었고, 이 커밋은 VP-0001이 고정한 커밋과 동일한 gift.wasm을 생성합니다.

gm이 정지된 상태에서 Sextant가 생성한 다음 계정 phkfktgax.gm은 트랜잭션 3fe180b02f57a0c263341f5f5d9eeeb11feeb0a73e28cf09c538d10e19754d83에서 gm 자체 RAM으로부터 4,000바이트 giftram을 받았으며, gm의 쿼터 사용량은 변하지 않았습니다.

미해결 질문

없음.

다음 단계

  1. 프로듀서가 이 신청서를 검토합니다.
  2. Greymass가 gift.vaulta에 대한 addcreator(gm, 262144)를 담은 msig를 브로드캐스트하며, 이 제안을 첫 번째 액션으로 인용합니다. 두 번째 액션인 eosio.assert::require는 gift.vaulta에 gift 컨트랙트의 ABI가 설치되어 있지 않으면 실패하므로, VP-0001의 시행이 컨트랙트를 배포하기 전에 실행을 시도하면 실패하고 msig는 열린 상태로 남습니다. msig가 실행되기 전에 gm은 그 액션이 요구하는 eosio.assert 매니페스트를 등록합니다.
  3. 프로듀서가 승인하며, 21명 중 15명이 승인하면 누구나 실행할 수 있습니다.
  4. Greymass가 무료 제품에 gift 컨트랙트를 설정하고, gm이 기증을 시작합니다.