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