Search

Search for projects by name or address

Privacy

STRK-20 logo
STRK-20

Real-time monitoring for this project is not supported.

About

A privacy pool on Starknet for arbitrary-amount private transfers and DeFi actions, using Cairo execution proofs and auditor-accessible compliance data.


  • Total Value Locked
    $925.95 K7.77%
    across 7 assets and 7 buckets
  • TVL
    $925.95 K7.77%
  • Assets tracked
    7
  • Buckets tracked
    7
  • Deposits 7D
    1542.53%
  • Deposits 30D
    735
  • Deposits Total
    17.02 K

  • Trusted setup
  • Exit window
  • Privacy
    Link privacy
  • Reproducibility

  • Tracked on
    Starknet logo
  • Attributes
    ZKTransfersDeFiAny amount

  • About

    A privacy pool on Starknet for arbitrary-amount private transfers and DeFi actions, using Cairo execution proofs and auditor-accessible compliance data.

    STRK-20 is a privacy pool deployed as a smart contract on starknet. It uses a UTXO-style note model: users deposit ERC20 tokens into the pool, create encrypted notes, spend notes by publishing nullifiers, and withdraw to public Starknet addresses.

    The pool contract source code was reviewed for this entry. Other parts of the protocol stack are open source in the starknet-privacy repository — the Cairo pool contract, TypeScript SDK, discovery service, audit reports, and Lean formal verification — and StarkWare published instructions to run a local transaction prover. Users can therefore audit what is actually proven and generate ZK proofs themselves without revealing private data to the proving service run by Starkware, although proving is compute-intensive (a ~48 vCPU / 96 GB machine is recommended).

    Note that the proven (L1Layer 1 (L1) is a blockchain that is self-reliant on its validator set for its security and consensus properties. Ethereum is an example of a layer 1. Blockchains started receiving the moniker of layer 1 once layer 2 became a meaningful area of development.-verified) Starknet OS only checks that submitted proof facts are well-formed, reference a real recent blockAn ordered list of transactions and chain-related metadata that gets bundled together and published to the L1/DA layer. Nodes execute the transactions contained within blocks to change the rollup chain’s state. Protocol rules dictate what constitutes a valid block, and invalid blocks are skipped over., and claim an allowlisted virtual OS program hashA fixed-length fingerprint of variable-size input, produced by a hash function. — the clientSometimes labelled interchangeably as a “node”, they are tasked with processing transactions and managing the blockchains's state. They run the computations for each transaction according to the rollup's virtual machine and protocol rules. If comparing to Ethereum clients, these would be execution clients such as Geth, as opposed to consensus clients.’s STARKShort for "scalable transparent argument of knowledge", a STARK is a type of zero-knowledge proof that resolves one of the primary weaknesses of ZK-SNARKs, its reliance on a "trusted setup”. STARKs also come with much simpler cryptographic assumptions, avoiding the need for elliptic curves, pairings, and the knowledge-of-exponent assumption and instead relying purely on hashes and information theory. This means that they are secure even against attackers with quantum computers. proof itself is verified by the permissioned Starknet sequencerA party responsible for ordering and executing transactions on the rollup. The sequencer verifies transactions, compresses the data into a block, and submits the data related to it to enable state reconstruction to Ethereum L1 as a single transaction. The data can be either transaction data or state diffs. before transaction inclusion and is not re-verified on L2Layer 2 (L2) is a category of technical solutions aimed to scale the base layer in a trust minimized way. This category includes solutions like rollups as well as state channels and plasma. Other solutions are able to scale further, but with the introduction of additional trust assumptions, which are therefore not trust minimized. Sometimes the term Layer 2 is used to refer to include these solutions too, like validiums and optimiums, but to distinguish between trust minimized and non trust minimized solutions they are often referred to as "light" L2s, opposed to "strong" L2s like rollups. or L1. As a consequence, the protocol would accept forged withdrawals from the Sequencer as valid.

    Privacy considerations

    The protocol supports private transfers, arbitrary amounts, partial withdrawals through private change notes, and DeFi actions through external helper contracts. DeFi integrations use open notes: the pool creates a note whose final amount is filled after an external helper, such as a swap or lending adapter, measures the onchain output.

    Fees

    The pool currently charges a flat fee of 6 STRK plus gasA virtual fuel used to execute smart contracts on a rollup. The EVM (or other VM within the rollup) uses an accounting mechanism to correspond the consumption of gas to the consumption of computing resources, and to limit the consumption of computing resources. for any action that uses the privacy pool, including deposits, swaps, and withdrawals.

    Compliance

    The compliance model relies on an ‘auditor’ public key. Users register an encrypted private viewing key, but all ‘private’ actions must include auditor-encrypted metadata. Whoever controls the auditor private key can decrypt user metadata offchain from onchain-emitted cyphertexts; this does not grant spending authority, but it can centrally remove any user’s privacy, even retroactively.

    Anonymity setIn privacy protocols, anonymity set denotes all users, to which a particular withdrawal could be plausibly attributed. Anonymity set depends on a particular withdrawal, the size of the anonymity set is a metric for level of user's privacy.

    The anonymity set, in the best case, corresponds to the set of all users of the privacy pool. But metadata leaks and the centralized auditor reduce the anonymity set in practice.

    What the protocol promises: Hides amounts, senders and the link between deposit and withdrawal inside the pool. The first payment to each new contact is public.

    On public blockchains like Ethereum, all actions transparent by default. A privacy protocol can at best cut the link between addresses or offer privacy while deposited. The colour says whether a careful user can keep the link, amount or recipient private against that adversary: green yes, yellow only outside supported options or by accepting another leak, red no. Fields marked at risk stay private only under the condition in their note.

    Link at risk

    Transfers inside are encrypted, but the public part of every transaction lists the recipient address when you open a channel to a new contact, the token and amount of the fee you pay, and the target and calldata of any DeFi action. Deposits and withdrawals show address, token and amount. Submitting from your own wallet names you; a paymaster hides the submitter but shows the fee token and amount.

    Advice: Submit every pool action through a paymaster and pay its fee in the most common token. Treat the first payment to a new contact, and any DeFi action, as public.

    InsideSenderprivateRecipientexposedAmountprivateAssetat riskLinkprivate
    Link at risk

    The set of registered users is small and split further by token and by fee token. A channel opened in the same transaction as a deposit ties the two together, and most withdrawal addresses have also deposited. Paying gas from your own wallet instead of a paymaster exposes that wallet's fingerprint, its account implementation and fee habits, even from a fresh address.

    Advice: Open channels in a transaction without a deposit, pay fees in the most common token, and withdraw uneven amounts that match no deposit. Wait before exiting and pick a different time of day than the deposit. Exit to a fresh address every time and spend from it with a different wallet than the one that deposited.

    Compared with a public observer
    InsideSenderat riskRecipientexposedAssetat riskLinkat risk
    Link at risk

    The paymaster and the sequencer receive the client proof with every action. Stwo proofs are not zero-knowledge by default, and how much of the private execution they reveal is not established. Traffic to the proving and note-discovery services is encrypted, and both support an oblivious relay that hides your address, but it is off unless the client turns it on.

    Advice: Turn on the oblivious relay for the proving and discovery services, or run both yourself.

    Compared with a public observer
    InsideSenderunverifiableRecipientunverifiableAmountunverifiableAssetat riskLinkunverifiable
    Link exposed

    Every user's viewing key is escrowed onchain, encrypted to one auditor key that a role holder can replace at any time with no delay; that key decrypts everything the protocol hides. The default proving service receives your address, viewing key and actions in the clear, the note-discovery service receives the viewing key on every sync, and deposits need a fresh attestation from a screening provider that sees and can block every depositor.

    Advice: Run the prover and note discovery yourself, or read the pool directly from chain. Nothing you do removes the auditor key.

    Compared with a public observer
    InsideSenderexposedRecipientexposedAmountexposedAssetexposedLinkexposed
    Link exposed

    The proofs are post-quantum, the encryption is not. Channel keys, note contents and the auditor escrow use elliptic-curve key exchange, and the auditor public key sits onchain. A quantum computer recovers that one key and with it every escrowed viewing key, and so the whole history.

    Compared with a public observer
    InsideSenderexposedRecipientexposedAmountexposedAssetexposedLinkexposed
    Asset
    Deposits 7D
    Deposits 30D
    Deposits Total
    Value Locked
    XSTRKXSTRK
    1
    $3.65
    3
    $50.33 K
    14
    $66.61 K
    $450.33 K
    USDCUSDC
    45
    $10.82 K
    179
    $64.50 K
    6.25 K
    $836.23 K
    $209.36 K
    STRKSTRK
    60
    $26.14 K
    421
    $74.06 K
    9.11 K
    $1.28 M
    $153.42 K
    ETHETH
    8
    $1.74 K
    34
    $13.08 K
    201
    $195.23 K
    $50.44 K
    WBTCWBTC
    2
    $10.75
    7
    $8.72 K
    75
    $77.07 K
    $30.32 K
    strkBTCstrkBTC
    38
    $219.91
    91
    $35.09 K
    1.36 K
    $456.89 K
    $21.73 K
    USDTUSDT
    0
    $0.00
    0
    $0.00
    10
    $15.14 K
    $10.31 K
    Total
    154
    $38.94 K
    735
    $245.80 K
    17.02 K
    $2.93 M
    $925.95 K

    Funds can be stolen if

    1. the proof systemThe infrastructure that allows projects to verify their state transitions. It is composed by onchain verifiers and offchain provers. The main two flavors are optimistic and ZK proof systems, but they can be combined in a hybrid model. In general though, if a system is able to accept state roots optimistically, even if it has a ZK component, it is considered an optimistic proof system. or virtual Starknet execution model is broken or backdoored, allowing invalid server actions to be applied.
    2. the Starknet sequencerA party responsible for ordering and executing transactions on the rollup. The sequencer verifies transactions, compresses the data into a block, and submits the data related to it to enable state reconstruction to Ethereum L1 as a single transaction. The data can be either transaction data or state diffs. includes a transaction with fabricated proof facts.
    3. the escrow smart contract is maliciously upgraded (no delay).
    4. an external DeFi helper or target protocol invoked by the user mishandles assets.

    Funds can be lost if

    1. a user loses the Starknet account key or private viewing key required to spend their notes.
    2. the pool is paused or upgraded in a way that prevents users from applying valid actions.

    Privacy can be lost if

    1. the auditor private key holder decrypts registered users’ viewing keys or withdrawal and metadata.
    2. a third-party-hosted proverAn entity that generates the cryptographic proof to convince the verifier that the statement is true. In a ZK-Rollup, the prover generates the ZK (validity) proof to submit to the verifier contract. or note discovery service leaks user secrets or metadata (both can be self-hosted).
    3. deposits, withdrawals, open-note fills, timing, unique amounts, or DeFi helper calldata make a user’s activity linkable.

    The pool uses StarkWare-style role components and an instantly upgradeable smart contract implementation.

    • APP_GOVERNOR can set the fee amount, fee collector, and proof validity window.
    • GOVERNANCE_ADMIN can grant governance and upgrade-governor roles.
    • SECURITY_ADMIN can grant pause, unpause, and auditor-key administration roles.
    • SECURITY_AGENT can pause the pool, if granted.
    • SECURITY_GOVERNOR can unpause the pool and change the auditor public key, if granted.
    • UPGRADE_GOVERNOR can approve and execute upgrades, if granted.
    • UPGRADE_AGENT can execute approved upgrades, if granted.

    The live role holders observed were:

    • APP_GOVERNOR: 0x2796da10aba2e1f445c38eba07e5a4393d6dab30d203d3432deb824e891619a (2/4 Multisig)
    • GOVERNANCE_ADMIN: 0x3103066e6c7037ba947ea9a7b5b8d110ae7f3d631fa5849435d0dc1fc5ef785 (EOA)
    • GOVERNANCE_ADMIN and SECURITY_ADMIN: 0x663cc699d9c51b7d4d434e06f5982692167546ce525d9155edb476ac9a117d6 (7/12 Multisig)

    Transparent setup

    Stwo

    Detailed description

    Transparent proving systems require no trusted setups and have no additional setup-related trust assumptions.