Rand Protocol
웹

웹에서 사용하는 Rand Wallet

일반 브라우저 탭에서 사용하는 동일한 지갑으로, 루프백 전용의 작은 서버가 사용자의 컴퓨터에서 서비스합니다. 의도적으로 어디에도 호스팅되지 않습니다. 웹 지갑의 신뢰도는 이를 서비스하는 출처(origin)에 좌우되는데, 이 지갑은 사용자 본인이 서비스하기 때문입니다.

어디에서도 호스팅되지 않습니다. 아래의 clients 저장소 체크아웃 또는 소스 아카이브에서 실행하십시오.

Rand Wallet 아이콘
빌드 환경
JavaScript · WebAssembly 코어
배포 경로
clients 저장소의 체크아웃을 사용자의 컴퓨터에서 직접 서비스하는 방식
요구 사항
Node 20 이상, 최신 브라우저
전송
RandProtocol prover 또는 사용자가 지정한 prover를 통해 전송합니다
다운로드

버전 0.8.0

파일은 GitHub의 v0.8.0 릴리스에 첨부되어 있습니다. 여기의 버튼은 해당 파일로 연결되는 링크이며, 이 사이트에서는 아무것도 제공하지 않습니다.

  1. 압축을 풀고 git 체크아웃에서와 똑같이 그 안에서 web/wallet/serve.sh를 실행합니다. 이 아카이브에는 full node 서브모듈이 포함되어 있으나, GitHub의 자체 “Source code” 아카이브에는 포함되어 있지 않습니다.
소스 (.tar.gz)
clients 저장소와 그 서브모듈을 하나의 아카이브로 묶은 것 · 13.2 MB
다운로드
rand-wallet-0.8.0-source.tar.gz
SHA-256 91f765f8cb6853914b49b26c1ba76d467c6e02d63a3f590acac3a155b977328d
다운로드한 파일 확인
SHA256SUMS
# SHA256SUMS를 파일과 같은 폴더에 내려받은 상태에서
shasum -a 256 -c SHA256SUMS --ignore-missing     # macOS
sha256sum -c SHA256SUMS --ignore-missing         # Linux

# 또는 파일 하나의 해시 합계를 출력하여 위의 값과 비교하십시오
shasum -a 256 rand-wallet-0.8.0-source.tar.gz

합계가 일치하면 해당 파일이 게시된 파일과 같다는 뜻입니다. 그 파일이 소스에서 빌드되었다는 뜻은 아닙니다. 아직은 빌드가 비트 단위로 재현되지 않으므로, 이를 확인해야 한다면 직접 빌드하십시오.

전송

RandProtocol prover 또는 사용자가 지정한 prover를 통해 전송합니다

번들 증명은 메모리 사용량이 최대 약 6.2 GB에 이르는 반면 브라우저가 WebAssembly에 허용하는 용량은 4 GiB이므로, 웹 지갑은 스스로 증명을 생성하지 않습니다. 웹 지갑은 전송을 구성하고, prover가 증명을 생성하도록 한 뒤(기본값은 RandProtocol prover이며, 사용자가 페어링한 prover도 사용할 수 있습니다), 그 증명을 로컬에서 검증하고 제출합니다.

RandProtocol prover에 내역이 노출되지 않게 하려면, 같은 컴퓨터의 Rand Wallet 데스크톱 앱(설정 → Prove for my other devices) 또는 사용자 본인의 rand-prover를 페어링하십시오. 진행 중인 증명은 탭의 메모리에만 존재하므로, 증명 도중에 페이지를 새로 고치면 해당 증명은 사라지고 아무것도 전송되지 않습니다.

증명을 생성할 수 없는 기기는 기본적으로 RandProtocol prover를 사용합니다. 이는 validator가 운영하는 몇 대의 머신(현재 네 대, https://prover.randprotocol.org 하위)이며 수수료는 없습니다. 0.6.9부터 각 prover는 고유한 키를 가지며 지갑이 이를 고정(pin)하고, 지갑은 첫 전송에 앞서 이를 안내합니다. 전송의 증명을 생성하는 머신은 지갑의 viewing key와 일회용 salt를 받습니다. 따라서 해당 운영자는 받은 결제와 보낸 결제를 모두 포함한 지갑의 전체 내역을 읽을 수 있으나, 자금을 사용할 수는 없습니다. 지출 키(spend key)는 기기를 떠나지 않으며, 작은 승인 증명은 기기가 직접 생성합니다. 더 높은 프라이버시가 필요하면 설정 → Prover에서 사용자 본인의 prover를 선택하십시오. 이 prover가 항상 우선 사용되며, 지갑은 제출하기 전에 모든 증명을 검증합니다.

prover 페어링 단계별 안내: docs/prover.md.

내 키

키가 보관되는 위치

지출 키는 지갑의 유일한 비밀입니다. 계정도 없고 사본을 보관하는 서버도 없습니다. 키를 잃으면 아무도 복구할 수 없으므로, 지갑이 키를 보여 줄 때 저장해 두십시오.

지출 키
IndexedDB에 암호화되어 저장됩니다. PBKDF2-SHA256(반복 600,000회)로 유도한 키 아래의 AES-256-GCM을 사용합니다. 잠금 해제 상태에서는 페이지의 메모리에만 존재하므로, 새로 고치면 지갑이 잠깁니다. localStorage, URL, 오류 메시지에는 결코 나타나지 않습니다.
잠금 해제
잘못된 비밀번호를 입력하면 시도할 때마다 대기 시간이 늘어나며, 시도 횟수는 새로 고침 후에도 유지됩니다.
서버
127.0.0.1에만 바인딩하고, 그 외의 Host 헤더는 거부하며, 정적 파일만 서비스하고 그 밖의 것은 일절 서비스하지 않습니다. 엄격한 Content-Security-Policy가 적용되어 인라인 스크립트와 원격 스크립트는 허용되지 않습니다.
탭
지갑의 두 탭은 하나의 저장소를 안전하게 공유합니다. 한 번에 한 탭만 스캔하고, 나머지 탭은 그 탭이 기록한 내용을 읽습니다.
실행

체크아웃에서 실행하기

  1. clients 저장소를 클론하고 web/wallet/serve.sh를 실행한 다음 http://127.0.0.1:8787/ 을 엽니다. 처음 실행할 때는 WebAssembly 코어를 빌드하므로 몇 분이 걸리며, 이후의 시작은 파일 복사에 불과합니다.
  2. 원격 URL에서 Rand Wallet을 발견했다면, 그 서버를 운영하는 주체를 신뢰하는 만큼만 신뢰하십시오. 중요한 용도에는 데스크톱 앱 또는 브라우저 확장 프로그램을 사용하십시오.

툴체인: Rust 1.98.1, 저장소에 고정되어 있으며 rustup이 설치합니다. 빌드 가이드는 클린 머신에서 시작하여 모든 클라이언트를 다룹니다. 소스 디렉터리: web/wallet/, ui/, core/.

웹에서 사용하는 Rand Wallet
bash
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients
git checkout v0.8.0 && git submodule update --init   # 릴리스 버전; core/vendor/fullnode @ v0.8.0 (c0878c3)
web/wallet/serve.sh   # 빌드한 다음 http://127.0.0.1:8787/ 에서 서비스
RAND_WALLET_PORT=9000 web/wallet/serve.sh   # 다른 포트에서
모든 클라이언트

모든 플랫폼에서 지원하는 기능

지갑 만들기
기기에서 생성한 지출 키는 저장할 수 있도록 한 번만 표시되며, 이 키에서 rand1… 주소가 파생됩니다. 기존 키를 가져올 수도 있고 rand CLI의 wallet.key.json을 가져올 수도 있습니다. 모든 클라이언트가 동일한 파일을 내보냅니다.
받기와 보내기
잔액은 사용자의 키로만 열 수 있는 note의 집합입니다. 지갑은 커밋먼트 트리를 스캔하여 이를 찾습니다. RAND 또는 등록된 모든 RPL 토큰의 전송은 증명으로 승인되는 4-in-4-out 번들 하나로 이루어집니다. 송신자, 수신자, 금액, 이동한 자산이 무엇인지 아무도 알 수 없습니다.
Faucet
공개 faucet이 열려 있는 testnet에서는 한 번의 탭으로 100 RAND가 사용자만 열 수 있는 note로 발행됩니다.
공개할 내용만 직접 선택
viewing key를 복사하여 RandScan의 My history를 열면 보내거나 받은 모든 note를 볼 수 있으며, 개별 결제의 트랜잭션 키를 복사하면 해당 결제만 정확히 공개할 수 있습니다. 탐색기는 브라우저에서 복호화하며 키를 어디로도 전송하지 않습니다.

조회 키와 트랜잭션 키는 randscan.org에서 열립니다.

testnet 안내

전송하기 전에

체인
공개 엔드포인트는 2026년 10월 12일 10:31 UTC부터 운영 중인 chain 21을 제공합니다(fullnode v0.8.0 기준으로 생성). 지갑 코어는 fullnode v0.8.0 (c0878c3)을 벤더링하며 다른 체인은 거부합니다. chain 21은 constraint set 9를 실행하므로 0.7.x 지갑은 이 체인에서 전송할 수 없고, 이 릴리스는 chain 20에서 전송할 수 없습니다. 키와 주소는 그대로 이어집니다. chain 20을 스캔한 지갑은 다른 체인 배너를 한 번 표시하며, chain 21의 제네시스부터 다시 스캔합니다. 브리지 입금과 출금에는 zUSD로 0.1% 수수료가 부과되며, 지갑은 출금 전에 이 금액을 표시합니다.
RPC 엔드포인트
설정 → 네트워크. 기본값은 https://rpc.randprotocol.org이며, 접근할 수 있는 모든 rand-node RPC를 사용할 수 있고 저장된 URL은 유지되기 전에 검증됩니다
증명 생성
번들 증명은 메모리 사용량이 최대 약 6.2 GB에 이르며 노트북 CPU에서 약 1분이 걸립니다
상태
실험적인 testnet 소프트웨어입니다. 감사를 받지 않았습니다. testnet의 RAND는 실질 가치가 없습니다
라이선스
GPL-3.0-only이며, 모든 클라이언트가 링크하는 full node 크레이트와 동일합니다
다른 클라이언트

하나의 지갑, 모든 플랫폼

어디서나 동일한 키 파일, 주소 형식, 규칙을 사용합니다. 여기서 만든 지갑은 다른 어떤 클라이언트와 rand CLI에서도 가져올 수 있습니다.