Documentation
Security model and limitations
What the design protects, what it does not, and where it is still unfinished.
Test network: the coins have no value
What is hidden
- The sender, the recipient and the amount of a payment.
- The memo.
- Which notes a payment spends: spent notes show only a nullifier.
What is public
- That a payment happened, and when it was included in a block.
- The fee each transaction pays, and therefore roughly how many actions it has.
- The total supply of each coin.
- For a swap, the two amounts that pass through the pool, and the pool's reserves.
- On the bridge, everything on the Ethereum side: tokens, amounts, addresses.
- Timing: a block's time and its position in the chain.
What a node operator can learn
A node receives a finished payment over HTTPS and sees the network address it came from. Someone watching the node's network, or the node itself, could link that address to the time a payment was sent. Tint does not hide your IP address. If that matters, reach the node through a network you trust.
The public node's proxy keeps no access log. That is a choice of the operator, not something you can verify from outside.
On the phone
- Keys come from a 24-word recovery phrase made on the device. The phrase and keys are never sent to a node.
- Entry is guarded by a passcode and, if you turn it on, Face ID or Touch ID.
- The built-in browser shows pages in an isolated web view with no access to the wallet. Its data lives in memory and is dropped when it closes.
- The browser's phishing check judges addresses only. It can miss a new scam site and it does not hide your IP address from sites.
A wallet that is faulty or hostile can only produce payments that the ledger rejects: wallet code is not consensus-critical. But a malicious app can steal the keys it holds, so install the app only from the TestFlight invitation you were given.
Consensus and decentralisation
- Consensus is BFT proof-of-stake with a validator set fixed at genesis.
- On the public test network all four validators run on one server. Whoever controls that server controls the chain.
- Payments are not relayed between nodes yet: a payment is included when the node that received it leads a block.
- The ledger state is kept in memory and rebuilt from stored blocks on restart.
- The network can be reset: the first block can be replaced, and every wallet then reads a new chain.
Cryptography
Privacy rests on the Orchard protocol and Halo 2 proofs, which need no trusted setup. Tint's use of them, including its multi-coin extension, the exchange pool and the code around them, is new and has not been reviewed by outsiders. A bug there could break privacy or allow coins to be created or lost.
The bridge
The bridge is custodial: its signers decide what is released, and the contract's owner picks the signers and can pause it. Per-payment and per-day limits cap the damage of a mistake. See Bridge.
What to do
- Treat every coin on this network as worthless, and every balance as temporary.
- Keep the recovery phrase on paper and show it to no one.
- Do not use your real recovery phrase from another wallet here.
- Use the public networks in the wallet with the care you would use anywhere else: they hold real money and their transactions cannot be undone.