Rand Protocol
문서
생태계

모든 기기의 클라이언트

iPhone, Android, 노트북, 데스크톱, 브라우저에서 사용하는 Rand Wallet - 모든 기기에서 풀 노드의 자체 크레이트로 구성된 하나의 Rust 코어를 사용하며, 어떤 기기가 전송을 직접 증명하고 어떤 기기가 번들 증명을 prover에게 맡기는지, 각 기기가 지출 키를 어디에 보관하는지, 그리고 모든 기기가 네트워크에 어떻게 접속하는지를 다룹니다.

이 페이지에서는 기기 종류별로 무엇이 실행되는지, 그리고 지갑마다 동작이 다른 이유를 설명합니다. 모든 Rand Wallet은 셸만 다른 동일한 지갑입니다. 풀 노드의 크레이트로 빌드한 하나의 Rust 코어가 모든 기기에서 키를 보관하고 암호 연산을 수행합니다. 실질적인 차이는 메모리 하나뿐입니다. 번들 증명은 최대 약 6 GB까지 메모리를 사용합니다. 데스크톱이나 대형 휴대폰은 그 자리에서 증명을 만들고, 그보다 작은 기기는 해당 증명 하나만 증명자에게 맡깁니다. 각 클라이언트의 다운로드와 빌드 절차는 /clients에 있습니다.

Rand Wallet clients and the network Five devices: iPhone, Android phone, laptop, desktop and browser. Each runs the same Rust core, packaged as an XCFramework, a native library, a linked crate in the desktop app, or WebAssembly. Phones prove on devices with about 8 GB of memory, laptops and desktops prove on the machine, and the browser always pairs a prover. When a device cannot prove, the bundle job goes to the desktop app, a rand-prover you run, or the validators' pool, which receive the viewing key and never the spend key. Every client submits to any RPC node, and the validators order and finalise the transaction. iPhone iOS app · Swift Android Android app · Java Laptop desktop app · Tauri Desktop macOS · Windows · Linux Browser Chrome · Firefox · web proves with ~8 GB else pairs a prover proves with ~8 GB else pairs a prover proves on the machine 8 GiB RAM or more proves on the machine and for your browser always pairs a prover 4 GiB WebAssembly cap XCFramework native library linked crate linked crate WebAssembly One Rust core, built from the full node's own crates spend key and rand1 address · ML-KEM-768 envelopes · the zkVM prover · one key file on every device bundle job: viewing key + salt signed transaction, two proofs Prover, when the device has no room the desktop app on the same computer a rand-prover you run the validators' pool · prover.randprotocol.org never sent the spend key; every proof is checked by the wallet The network any RPC node verifies and gossips validators order, vote, finalise wallets scan blocks with their keys see Validators, aggregators and provers
휴대폰에서는 그림을 좌우로 밀어서 보십시오. 하나의 코어 위에 다섯 개의 셸이 있습니다. 강조 배지가 붙은 것은 사용자가 가진 기기에서 전송 증명을 직접 만드는 클라이언트이며, 점선 상자는 기기가 만들 수 없을 때 번들 증명이 가는 곳입니다.

하나의 코어, 다섯 가지 형태

기기와 클라이언트내부의 코어전송 증명 방식지출 키 보관 위치
iPhone: iOS 앱, iOS 16 이상XCFramework메모리가 약 8 GB이면 기기에서 1~2분 안에 증명하고, 그렇지 않으면 페어링된 증명자를 통해 증명합니다Keychain, 기기가 잠금 해제된 동안에만 접근 가능하며 동기화되지 않음
Android: Android 앱, Android 8 이상네이티브 라이브러리메모리가 약 8 GB이면 포그라운드 서비스에서 증명하고, 그렇지 않으면 페어링된 증명자를 통해 증명합니다Android Keystore가 보관하는 키로 암호화
노트북과 데스크톱: macOS, Windows, Linux용 데스크톱 앱링크된 Rust 크레이트기기에서 직접 증명하며 노트북 CPU에서 약 1분이 걸립니다. RAM이 8 GiB 미만이면 증명을 시작하지 않습니다비밀번호 보관함(AES-256-GCM, 600,000회 반복의 PBKDF2). 잠금 해제 상태에서는 앱의 메모리에만 존재
브라우저: Chrome 및 Firefox 확장 프로그램, 웹 지갑WebAssembly직접 증명하지 않음: WebAssembly에는 4 GiB가 주어지므로 번들 증명은 항상 페어링된 증명자가 만듭니다동일한 방식의 보관함. 잠금 해제 상태에서는 페이지의 메모리 또는 탭의 세션 스토리지에 존재

노트북과 데스크톱은 같은 데스크톱 앱을 실행합니다. 차이는 기기가 증명에 쓸 수 있는 메모리뿐입니다. 어느 기기에서 만든 지갑이든 다른 기기와 rand 명령줄로 가져올 수 있고, 그 반대도 가능합니다. 키 파일, 주소 형식, 규칙이 모든 곳에서 동일하기 때문입니다.

체인 20에서 전송할 수 있는 지갑

2026-10-01 06:17 UTC부터 운영 중인 체인 20은 모든 증명과 서명된 메시지를 제네시스 해시에 결속하므로, 이 체인에서 전송하려면 지갑에 fullnode v0.6.8이 필요합니다. 2026-10-01에 출시된 Rand Wallet v0.6.8이 그 지갑입니다. 모든 앱의 코어가 fullnode v0.6.8을 포함하고 있으며, 번들 증명은 기본적으로 RandProtocol 증명자가 만들고, 프라이버시를 중시하는 선택지로는 직접 운영하는 증명자가 있습니다. 체인 19용으로 빌드된 0.6.7 앱은 체인 20에서 전송할 수 없으므로 업데이트하십시오. fullnode v0.6.8 릴리스의 rand 명령줄(명령줄)도 전송할 수 있으며, 같은 키 파일을 사용합니다.

모든 클라이언트가 하는 일

  • 지출 키를 기기에 보관합니다. 키는 운영체제의 난수로 생성되어 암호화된 상태로 저장됩니다. 어떤 클라이언트도 키를 외부로 보내지 않으며, 네트워크에는 키를 보낼 계정도 없습니다.
  • 자신의 노트를 직접 찾습니다. 뷰잉 키로 체인을 스캔하므로, 어느 노트가 누구의 것인지 아는 서버는 없습니다.
  • 인가 증명을 직접 만듭니다. 전송에는 두 개의 증명이 담깁니다. 지출 키에 대한 작은 증명은 몇 초면 만들어지며 항상 기기에서 만듭니다(밸리데이터, 어그리게이터, 증명자).
  • 번들 증명을 확보합니다. 메모리가 충분하면 기기에서 만들고, 그렇지 않으면 페어링된 증명자에게서 받습니다. 돌려받은 증명은 모두 검증한 뒤에야 제출합니다.
  • 아무 RPC 노드에나 제출합니다. 클라이언트가 보내는 내용은 모든 노드가 보는 내용과 같습니다. 커밋먼트, 널리파이어, 봉인된 봉투, 수수료, 증명입니다.

증명자 페어링

메모리가 부족한 휴대폰과 모든 브라우저 지갑은 번들 증명을 위해 증명자를 페어링합니다. 같은 컴퓨터에서는 데스크톱 앱이 이를 처리합니다(설정 → 다른 기기를 위해 증명하기에서 링크를 복사한 뒤, 브라우저 지갑의 설정 → 증명자에 붙여넣습니다). 그 밖의 경우에는 직접 운영하는 rand-prover(노드 운영)이거나, prover.randprotocol.org의 밸리데이터 풀입니다.

페어링된 증명자에게는 지갑의 뷰잉 키와 일회용 솔트가 전달되며, 지출 키는 전달되지 않습니다. 증명자는 해당 지갑의 과거와 미래의 전체 내역을 읽을 수 있지만 지출할 수는 없습니다. 그 내역을 보여 줘도 괜찮은 증명자만 페어링하십시오. 완전한 프라이버시를 원한다면 데스크톱이나 8 GB 휴대폰에서 증명하거나, 직접 증명자를 운영하십시오.

fullnode 커밋 c0878c3f(chain 21) 기준으로 2026-10-12에 마지막으로 검증되었습니다, 그리고 randprotocol.org `src/data/clients.ts` (the per-client pages under /clients), fullnode `749ca098`: `docs/prover.md` §§1, 9 (the spend key never leaves the wallet; the validators' prover pool), github.com/randprotocol/clients/releases on 2026-10-12: Rand Wallet v0.8.0 (12:24 UTC, tag `0926354`), whose core vendors fullnode v0.8.0 (`c0878c3`) and sends on chain 21 only; github.com/randprotocol/fullnode/releases: v0.8.0 with `rand`, `rand-node`, `rand-prover`, `msauth-vk-production.bin` (06:48 UTC), fullnode `c9c9bd3c`: `crates/randprotocol-core/src/types/binding.rs` (BIND-1). 코드와 이 페이지의 내용이 다를 경우 코드가 옳습니다. 알려 주시기 바랍니다.