encrypt solana pre-alpha (솔라나 사전 알파 암호화 통합)
규범: Encrypt 개발자 가이드 · encrypt-pre-alpha 저장소 docs/ 디렉토리의 mdbook. gRPC, 명령어(ix), 흐름 등을 위해 references/를 로드하세요.
문서 개정: references/docs-revision.md — 만약 main 브랜치의 docs/가 추적된 커밋보다 앞서 있다면 사용자에게 스킬이 오래되었을 수 있음을 알리고, 스킬 파일을 자동으로 덮어쓰지 마세요.
사전 알파 면책 조항
- 탐색 전용 — 프로덕션 기밀성 용도가 아닙니다.
- 실제 암호화 보장 없음 — 데이터는 온체인에서 평문(plaintext)으로 처리될 수 있습니다; 민감하거나 실제 데이터를 제출하지 마세요.
- 키/신뢰 모델이 최종 상태가 아님; devnet은 초기화(reset)됨; 보증 없음. 최종 사용자에게 프로덕션 FHE 또는 개인 보관(private custody)으로 마케팅하지 마세요.
참조 (온디맨드 로드)
| 파일 | 로드 시점 |
|---|---|
references/developer-guide-map.md | 책 목차 + URL — 추측 전에 로드 |
references/book-snapshots.md | references/ 아래 모든 책 복사본 md 파일 목록 |
references/fee-and-state-reference.md | ENC/SOL 수수료, 7가지 계정 종류, 5가지 이벤트 유형 |
references/docs-revision.md | docs/ vs main |
references/grpc-api.md | EncryptService, 프로토, 클라이언트 |
references/instructions.md | 식별자(discriminator), 명령어 그룹(ix groups) |
references/frameworks.md | 크레이트, EncryptCpi, 도구 체인 |
references/flows.md | 생명주기, 테스트, CPI vs 서명자 |
references/dsl-types.md | EUint* / EVector* / EBitVector* / PUint* 테이블 |
references/gotchas.md | 현장 검증된 버그, 무음 실패, BPF 제한, CPI 레이아웃 |
references/performance-caveats.md | 타이밍, REFHE vs TFHE, 부트스트랩 비용 미지수 |
설치 및 도구
TS: @encrypt.xyz/pre-alpha-solana-client + createEncryptClient — grpc-api.md. Rust 2024, Solana CLI 3.x (build-sbf), Bun, just test-unit / test-examples — frameworks.md, flows.md. 상위 Cargo.toml에 따라 git 크레이트를 고정(pin)하세요.
환경 (사전 알파)
| 리소스 | 값 |
|---|---|
| Encrypt gRPC (TLS) | https://pre-alpha-dev-1.encrypt.ika-network.net:443 |
| Solana RPC | https://api.devnet.solana.com (일반적) |
| Encrypt 프로그램 ID | 4ebfzWdKnrnGseuQpezXdG8yCdHqwQ1SSBHD3bWArND8 |
| 소스 저장소 | https://github.com/dwallet-labs/encrypt-pre-alpha |
표준: 프로그램 ID, gRPC URL, Solana RPC, git 원격 — 허브만 사용; 샘플과 일치시킬 것.
빠른 포인터
온체인: 첫 번째 명령어 바이트 = 식별자(discriminator); 22개의 사용자 명령어 + emit_event 228 — instructions.md. 일반적인 경로: disc 1–4 (create_input_ciphertext … execute_graph); 전체 메타데이터: 명령어 참조.
gRPC: encrypt.v1.EncryptService — CreateInput, ReadCiphertext — grpc-api.md.
모델: #[encrypt_fn] (스칼라) 또는 #[encrypt_fn_graph] (스칼라 + 벡터) → 그래프 → 온체인 execute_graph / 암호문 계정 → 실행자(executor) + commit_ciphertext; 게이트웨이 명령어를 통해 복호화 — flows.md, 소개. 현장 검증된 주의사항 (실행자 버그, 무음 실패, BPF 제한, CPI 레이아웃): gotchas.md. 성능 (REFHE vs TFHE, 타이밍 주의사항): performance-caveats.md. 책 전용 (DSL, EVector* / EBitVector* 포함, 튜토리얼, PC-토큰/스왑, 수수료, 스키마): developer-guide-map.md, book-snapshots.md, fee-and-state-reference.md.
일반적인 실수
| 실수 | 대신 |
|---|---|
| 사전 알파 암호문이 비밀이라고 가정 | 공개/평문 가능으로 처리 (책 + 저장소). |
벡터 타입과 함께 #[encrypt_fn] 사용 | 벡터는 HasFheTypeId가 없음 — #[encrypt_fn_graph] (encrypt-dsl에서) 사용하고 CPI를 수동으로 호출. gotchas.md 참조. |
| devnet 커밋 시간을 FHE 벤치마크로 간주 | 사전 알파는 실제 FHE를 실행하지 않음 — 모든 타이밍은 모의 오버헤드. performance-caveats.md 참조. |
잘못된 CreateInput authorized / network_encryption_public_key | NetworkEncryptionKey + 접근 규칙과 일치 — grpc-api.md. |
| Encrypt vs ika dWallet 혼동 | ika 서명 / approve_message → ika-solana-prealpha 스킬, 이 스킬 아님. |
상위 docs/가 변경되었을 때 스킬 패치 | 사용자에게 알림 — docs-revision.md. |
| Encrypt 수수료 / 예치금 / 이벤트 잊음 | ika 형식이 아님 — fee-and-state-reference.md + book-snapshots.md. |