Created
January 12, 2026 13:31
-
-
Save hewigovens/de344a4a9a109cb7a66a0b67b14afddf to your computer and use it in GitHub Desktop.
GCIP review notes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| • The overall “separate Signer app” concept is clear and aligns with WebAuthn/FIDO-style separation of concerns; it’s a reasonable direction for reducing hot-wallet attack surface. | |
| • The CAIP positioning may benefit from clarification: today it reads like a CAIP-style draft, but it does not yet leverage common CAIP interoperability primitives (e.g., chain/account identifiers, scoped authorization). It might be better to either explicitly scope it as “CAIP-inspired,” or introduce CAIP-2/CAIP-10 objects plus a simple scopes model (chains/accounts/methods/expiry). | |
| • For ecosystem adoption, the current encoding stack is somewhat multi-layered (custom big-endian header + CBOR wrapper + COSE + AEAD/AAD). This is feasible in-house, but can be harder for third parties to implement consistently across languages. | |
| • The Method field being int8 (with response codes in 128–255 potentially appearing negative) could be a portability footgun; using unsigned types (uint8) is often simpler for cross-language SDKs. | |
| • The benefit of maintaining a bespoke binary header in addition to CBOR is not fully obvious. If compactness is the goal, it might be simpler to express version/status/method/request-id/length as a single CBOR envelope (small integer keys) and reduce parsing/offset rules. | |
| • The spec would likely be easier to implement consistently with a machine-verifiable schema (e.g., CDDL for CBOR or an IDL like Protobuf/FlatBuffers) plus a small set of conformance test vectors. | |
| • Replay/correlation semantics could be tightened: a 16-bit rolling Nonce is small and its role is a bit ambiguous. It might be better to add an explicit requestId (e.g., uint64 or 16-byte random ID) and recommend keeping a recent-window cache to reject replays. | |
| • Session key derivation appears correct at a high level, but could be strengthened by binding more handshake context into the KDF (e.g., both ephemeral public keys, selected suite/curve, protocol version, roles), and optionally deriving directional keys (client→signer / signer→client). | |
| • Transport guidance is helpful, and the iOS limitations are accurately called out; it may be worth adding UX guidance that “origin/caller is unverified” on platforms where cryptographic attestation is not available, to avoid false trust signals. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment