From 6d62258844f0b6c71858f83ddab8ce2733f94fab Mon Sep 17 00:00:00 2001 From: mj Date: Tue, 8 Apr 2025 12:20:05 -0400 Subject: [PATCH 1/2] Add confidential transfer docs --- content/learn/confidential-transfers.mdx | 446 +++++++++++++++++++ public/assets/confidential-transfer-flow.png | Bin 0 -> 159791 bytes 2 files changed, 446 insertions(+) create mode 100644 content/learn/confidential-transfers.mdx create mode 100644 public/assets/confidential-transfer-flow.png diff --git a/content/learn/confidential-transfers.mdx b/content/learn/confidential-transfers.mdx new file mode 100644 index 00000000..358efaa4 --- /dev/null +++ b/content/learn/confidential-transfers.mdx @@ -0,0 +1,446 @@ +import { Callout } from 'nextra/components'; +import { ImageWithCaption } from '../../src/components'; + +import ConfidentialTransferFlow from '../../public/assets/confidential-transfer-flow.png'; + +# Confidential Transfers (Beta) + +Sei’s Confidential Transfers module introduces a new way to send SEI privately on-chain. Unlike traditional token transfers where amounts and balances are publicly visible, this module allows users to transfer SEI with amounts that are hidden from the public — only the sender, recipient, and optionally some trusted auditors (designated by the sender) can see the details. + +With Confidential Transfers, you can: +- Keep your SEI token balances private +- Send tokens without revealing the exact amount +- Share view access with trusted auditors (like compliance teams or financial partners) + + +Important: Confidential Transfers hide the token amounts, not the fact that a transaction occurred. You’ll still see the sender and receiver on-chain, but not how much was sent. + + +As this module is still in Beta, this feature is only available for use with native Sei tokens. This will be expanded to include native denoms (IBC/Tokenfactory) in the future. + +--- + +## How it works + +Confidential Transfers on Sei allow users to send SEI tokens to each other without revealing the amount being transferred. Even validators processing the transaction can't see how much was sent — only the sender and recipient know the true value. + +### Confidential Balances +On Sei, confidential token balances are stored independently from your regular on-chain token balances. That means your confidential SEI (or any other native denom) is held in a separate encrypted account that operates under a different set of rules. This separation ensures that confidential operations remain private, while still allowing users to move freely between the confidential and public sides of the system. + +Before making or receiving confidential transfers, users must first initialize a confidential balance for the token (denom) they want to use. This step sets up an on-chain balance and generates a unique encryption public key that will be used to secure all future transactions. Each denom requires its own confidential balance. If you want to send or receive confidential transfers in multiple tokens, you’ll need to initialize a separate balance for each. + +### Lifecycle of a Transaction + + +#### 1. Create a Confidential Token Balance +Before using confidential transfers for a given denom (e.g. SEI), the user must first initialize a confidential token balance. +This creates a special account tied to their address, which includes a public encryption key that will be used for all private transfers involving that denom. + +You only need to initialize once per denom. + +#### 2. Deposit Public Tokens into the Confidential Balance +Once the confidential balance is set up, the user can deposit tokens from their regular balance into it. +This action moves the tokens into the confidential balance, but it is a public transaction — the deposited amount will be visible on-chain. + +#### 3. Apply Incoming Funds +Deposited tokens are first placed into the users `pending balance`, where they cannot yet be sent. +To make them usable, the user must `apply` the pending balance, which moves tokens into the `available balance`. +The separation of a user's `pending` (incoming) and `available` (outgoing) balances prevent front running attacks that would prevent a user from making transfers. + +#### 4. Transfer Tokens Confidentially +The user can now send tokens to another user’s confidential balance. +This process involves: + +- Encrypting the transfer amount using their own, as well as the recipient’s public key (off-chain) + +- Generating zero-knowledge proofs to prove validity. These are special cryptographic proofs that show they have enough balance to make the transfer and the transaction is consistent (e.g., no tokens are created or lost). All of this is done without revealing the transfer amount or the users balances. + +- Submitting a transfer transaction with the encrypted amount and proofs + +- The chain verifies the proofs and, if everything checks out, updates the confidential balances of the sender and the recipient — all without knowing how much was sent. + + +The recipient must already have initialized a confidential balance for this denom to receive tokens. + + +#### 5. Apply and Withdraw to Public Balance (Optional) +The recipient receives the funds into their pending confidential balance. To use them: + +They must first apply their pending balances to make their incoming balances available. + +Then, they can withdraw from their confidential balance back into their public balance, if needed. + + +Note: Withdrawals are public — the amount being moved back into the regular token balance is visible on-chain. + + +### Key Takeaways + +- Only the sender and recipient know the transferred amount. + +- All transactions are publicly visible, but the amounts remain hidden. + +- Zero-knowledge proofs ensure security and correctness without compromising privacy. + +Confidential Transfers combine strong privacy guarantees with the performance and transparency of Sei, making them ideal for users who want privacy without giving up the speed, atomicity and decentralization nature of transactions on Sei. + +# Tutorial +In this tutorial, we will walk through the steps of creating a confidential token balance, depositing funds, then confidentially transferring funds to another wallet. + +## Requirements + +Before you begin, ensure you have the following: + +- The `seid` CLI installed. +- 2 wallets with SEI tokens on testnet. + +> You can obtain testnet tokens [from the faucet](/learn/faucet) + +--- + + +For a smoother experience, set your variables in the terminal. For example: + +```bash copy +DENOM=usei +ACCOUNT=your_account_name +``` + +Replace `your_account_name` with your actual account name. You can then +reference `$DENOM` and `$ACCOUNT` throughout this guide. + + + +## 1. Initializing a confidential balance +The first step is to initialize our confidential token balances. We will need to do so for 2 accounts so we can transfer tokens confidentially between them for this tutorial +```bash copy +seid tx ct init-account $DENOM --from=$ACCOUNT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com \ + --broadcast-mode=block --fees=20000usei +``` + +Once done, you can verify instantiation by querying the account +```bash copy +seid q ct account $DENOM $(seid keys show -a $ACCOUNT) \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com +``` + +We should see our account details similar to this: +``` +available_balance: + c: ZBebe9bJYaaRmvNFT5i3/jBQATfsLsf7ZG5GRsE9ZNU= + d: 6n9vsQ5zujztKthV6rTr30qMuHUa3PN9zAM8T2I4sMQ= +decryptable_available_balance: rnGD68yPeDQG0NXf9/0dpiSaAy63yDkn2iJhpg== +pending_balance_credit_counter: 0 +pending_balance_hi: + c: NVsrH+9f1ODu6A3DWikQp+HJcBhX1z9cuVkC9J8oZl8= + d: O+AusWKG4lyMYNKOpAxMwYgq1JsZW6WBgHi719lsris= +pending_balance_lo: + c: XFYLktaYoxbE9KIPWrH0KSlpbMbzATqlp7ls1aUsf8k= + d: AF41D/aPWYuo1xIhpTEz0L/RxRB1HTzLv7N1eJB0yiQ= +public_key: m/v3e6OUm8BFyNVxcwjCdIzdqjOUslRJb+4jJg5EqUg= +``` +If you can't tell how much you have from this query, it's very much by design! These balances are encrypted so nobody can tell what those balances correspond to. +In order to decrypt the values, you can run the same query but with the decryptor flag +```bash copy +seid q ct account $DENOM $(seid keys show -a $ACCOUNT) --decryptor $ACCOUNT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com +``` + +This should show you the decrypted account state: +``` +available_balance: not decrypted +combined_pending_balance: "0" +decryptable_available_balance: "0" +pending_balance_credit_counter: 0 +pending_balance_hi: "0" +pending_balance_lo: "0" +public_key: m/v3e6OUm8BFyNVxcwjCdIzdqjOUslRJb+4jJg5EqUg= +``` + +The `combined_pending_balance` and `decryptable_available_balance` show the simplified pending balance and available balance of the account respectively. + +--- + +## 2. Deposit to the Confidential Balance + +The deposit command allows us to deposit funds into our account's confidential balance + +```bash copy +seid tx ct deposit 500000$DENOM --from=$ACCOUNT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com \ + --broadcast-mode=block --fees=20000usei +``` + +If we query the decrypted state of our account now, we should see that our pending balances have increased +```bash copy +seid q ct account $DENOM $(seid keys show -a $ACCOUNT) --decryptor $ACCOUNT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com +``` + +``` +available_balance: not decrypted +combined_pending_balance: "500000" +decryptable_available_balance: "0" +pending_balance_credit_counter: 1 +pending_balance_hi: "458752" +pending_balance_lo: "41248" +public_key: m/v3e6OUm8BFyNVxcwjCdIzdqjOUslRJb+4jJg5EqUg= +``` + +We should see that the `combined_pending_balance` has increased by the deposit amount. + +Additional Notes: +- `pending_balance_hi` and `pending_balance_lo` are the actual values stored on chain and denote the lo and hi bits of the pending balance +- `pending_balance_credit_counter` denotes the number of incoming transfers that have not been applied to the available balance. This has a maximum value of 65536 (at which point the pending balances must be applied before the account can receive more transfers or deposits). +- This transaction is not private - anyone can see the deposit amounts on chain. + +--- + +## 3. Apply Pending Balances + +The apply pending balances command transfers the pending balances of the account into the available balance, making the funds available for transfer or withdrawals. +The separation of pending and available balances help us avoid front running attacks - Making transfers or withdrawals require us to create proofs on the remaining amounts in the account. This means we need to know the exact amount we have in our balance at the time of transfer. Splitting the balances allows us to do that since we have full control over our available balance (while the pending balance can be increased by incoming transfers). + +```bash copy +seid tx ct apply-pending-balance $DENOM --from=$ACCOUNT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com \ + --broadcast-mode=block --fees=20000usei +``` + +If we query the decrypted state of our account now, we should see that our pending balances have been transferred to our available balance +```bash copy +seid q ct account $DENOM $(seid keys show -a $ACCOUNT) --decryptor $ACCOUNT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com +``` + +``` +available_balance: not decrypted +combined_pending_balance: "0" +decryptable_available_balance: "500000" +pending_balance_credit_counter: 0 +pending_balance_hi: "0" +pending_balance_lo: "0" +public_key: m/v3e6OUm8BFyNVxcwjCdIzdqjOUslRJb+4jJg5EqUg= +``` + +Additional Notes: +- Pending balances have been set to 0. `pending_balance_credit_counter` is also reset to 0 +- The `available_balance` field is encrypted using a homomorphic encryption scheme that allows us to add and subtract from it without decrypting it. The tradeoff is that it takes a long time to decrypt as the amount gets larger. Because of this, we refrain from decrypting this unless absolutely neccessary. +- To optimize things, we save a copy of the `available_balance` encrypted using a more efficient symmetric encryption scheme. This allows us to know our `available_balance` without spending time decrypting the actual encrypted value. + +## 4. Making a Transfer + +The Transfer instruction allows us to transfer tokens confidentially from one address to another. A pre-requisite is that both accounts should already have a confidential token balance set up for the specifeid denom. + +If you have not already done so, follow the instructions in step 1 to instantiate a confidential balance for the second account + +Set variables for the second wallet in the terminal +```bash copy +RECIPIENT=your_other_account_name +``` + +```bash copy +seid tx ct transfer $(seid keys show -a $RECIPIENT) 100000$DENOM --from=$ACCOUNT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com \ + --broadcast-mode=block --fees=60000usei --gas=3000000 +``` + +You should see the txhash resulting from this: +``` +txhash: CB740E398AC85D63CF413E1F0767BA7E37D9B79C0CDC42AD590629E460EED626 +``` + +Verify that your accounts available balance has decreased +```bash copy +seid q ct account $DENOM $(seid keys show -a $ACCOUNT) --decryptor $ACCOUNT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com +``` + +``` +available_balance: not decrypted +combined_pending_balance: "0" +decryptable_available_balance: "400000" +pending_balance_credit_counter: 0 +pending_balance_hi: "0" +pending_balance_lo: "0" +public_key: m/v3e6OUm8BFyNVxcwjCdIzdqjOUslRJb+4jJg5EqUg= +``` + +Also verify that the recipients pending balance has increased +```bash copy +seid q ct account $DENOM $(seid keys show -a $RECIPIENT) --decryptor $RECIPIENT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com +``` +Note: This is for the purpose of this tutorial only. You would not be able to decrypt the recipients account balances without access to their private keys +``` +available_balance: not decrypted +combined_pending_balance: "100000" +decryptable_available_balance: "0" +pending_balance_credit_counter: 1 +pending_balance_hi: "65536" +pending_balance_lo: "34464" +public_key: vco3RunNsTo6peTzBrJnVBYwsfXONCmnj8+rJQPGo+8= +``` + +### Confidentiality (Extra) +Since all transactions are on-chain, you will be able to query the tx hash normally. +```bash copy +seid q tx --type=hash CB740E398AC85D63CF413E1F0767BA7E37D9B79C0CDC42AD590629E460EED626 \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com +``` + +This should show you the encrypted transfer message. This provides a view into the encrypted fields and proofs that go into making a transfer. +``` + - '@type': /seiprotocol.seichain.confidentialtransfers.MsgTransfer + auditors: [] + decryptable_balance: GzRCoU5HiWbhUnneGLZQv59EOWfMtrY6Q59D27wrsQ== + denom: usei + from_address: sei146n0ggt0ylp05w8j8n59530jqhp959efkt0ad4 + from_amount_hi: + c: kD/9ukCJnLWRFYXjNisCwvl+FlT+nw7JG8rL6cGDBo4= + d: Y4cy6gTQuwNgxUY9qWp5P6vEjIIAK5ph4hZ7bGPK0SI= + from_amount_lo: + c: /hEIX+xIBfIAWvYkIRYxTKUE7SJmQWyNzv2otID0f0U= + d: Wpyxe6vu0gViCw9JCWRGVeF4eNTQ4yvpWOauE8MwRsk= + proofs: + recipient_transfer_amount_hi_validity_proof: + commitment_1: E2Oyc+HW7Ak3xNJmzBjKnkIpd0l6E02MS4ZiOvztXso= + commitment_2: YDWyvjqtIXZfRkQjnwmnAppR8+Rn/Ime5O04nfqwTGM= + response_1: Ow5sP72VMn2aBTLjODFbeOeOCEZ02AotplnvcCXEZwo= + response_2: j2nprIjmLOav7sefVjtdHvMs0jUc49iMeiwfOmL1dAw= + recipient_transfer_amount_lo_validity_proof: + commitment_1: hsZ1Bc7sVfhFFXmUi5+DyaQWjkfQhEBjrmanNBpre7A= + commitment_2: 4z9qPoZhDfi3Cy1En0qx7SB7K+TraXlKnAmn9DTZ6Gg= + response_1: GxVBmkHAn6rmsxtkCXyORi1Mt2w1SXOP0FNgNak8OAg= + response_2: JO3wRsSVY/auYyhEJe/93Xxrf0QDOrnPaGCz/NQesQk= + remaining_balance_commitment_validity_proof: + commitment_1: p1bvXzYNepkexiyXIp22KWL3MOGxc5IreTNgvmgbVws= + commitment_2: rWb10gugX/RPf1OeEmWWCrAtMoqxrOLH4Fl9TmUZuW8= + response_1: HIb/VrP7sLvlZkumbhwetl+yrKbu+RfTHG3SJgGW9QE= + response_2: yYKs6ClB0eD/4NJ76CTdBEjHzOzoTbiqW2MjZYZicgA= + remaining_balance_equality_proof: + y0: Gwiug0dJpjPYOOgR9fPEA+oYhFeaS11juckBSTc3EvE= + y1: vcDWhW054XVBvHphyF4d6Mk2as1+YgtoK5136J+p7hE= + y2: xFHpBfdleQeKlxGmlWmRtlBvqdvmbfBxK5LGiVeFrmw= + zr: eSFPVyfSfDQIq7LzU+4s7wACn4j5S6UXxemaDpRV4wQ= + zs: DN17krgbIlCykR+e3i7eal4mBH5vyuvfUbWFMYQw9Qk= + zx: g4mw/w8WDUWYvK++xsfG4HlDJyWZXyljjZJWaptNxwI= + remaining_balance_range_proof: + proof: TaDkf4U77Hr20LVX+mtIRqB007wcvQrO/DgBJddkGae3eFwQ7BUImX7fFUf2uYdUqvRdkGcnivBGtTf7D6vSoBTC7nIIwyuW1LwkWTxjPUcAgdAIL3TQ5ybQ4GBQQTJllhoNvQmYZ612VEfgus3DEVCjXmaOaLe5r5E8lB9mUksJ9q8vilbcw5BZ8N3AsP59jPNr8Ls8Y9vkhrRBX8YECNcdclkdbgUKA9L7v38ceMlQz7r2m9ZaaOyIlPHCJAsBh5fAICRSgVFkHxkl6q79ekpnT+iDvWnNpjO3Qs4IYAly6R14bnD6lao54A5ZxoykkYzcIcLZ+cz1qpueldWxAqEyos2LIgXVW5Rali59NE6ae41JvAYSBKMPRfgsYW8PIhqD3a2aZo1JKfuIbF14NwGJnY6Vq9ogpNefkpG4NK6jO0FIXXYxY9nUI8KIYS5PxTMSMTvUQBh2Z7BI2l7GaQYS+uHAOf/rhR0T3om6P6+V0rJIXJSZB/mnbTu8N/kTPjzP16miBBmr60OsRzqakatVe3b36XDPHaUsIqW5hLwzdXg676B50/AmvW0QyyVDu8Vc29q2QZEX0h/hSIObazeNNFhY1NgCtL9Vtlf+1pEyW67Fo8HOvx9edFYnGrP27cTWkxGrAlShwv6NtDoPWZ94JtiyH70O/QfkRnznvylz/j7O33Rw4RVD04iKsHK+xxsevOxrF0JrI/RUeIT5SgMdBkxkLXHgGLkmd5vArQBA6KnmAA6fe57LF5I2YLRIAqeTt8L4ebbF5EnRBznM17E4BTPiOMKt2lynvf6qbbmkuS8T2M4+rN4Xp44nFH7xjRmOMyCC0jlJwlGw/kxAYkn2f8A77G+ojved3vvFHryMg/DkigR0Ve5MxiDcz1Vp66eWMefbv2dcmWrvnk1c09HI2IjSkpi5Yudr/WclJTgoB2SP809X56McEOgIiPpffnY0R1iy2JkEWEETZYV9LA== + randomness: cLGQk88uYwSujtz0gAOuyQWpePZhPnNEMIFD+SnCdzw= + upper_bound: "128" + sender_transfer_amount_hi_validity_proof: + commitment_1: 4K5wdeXh81y8sSh1RtvySd1gcRsSSIu8mGJrhkdOLIw= + commitment_2: BkKowyB8QZflFVfM1vvRO4H/OlnD4bWISQZ2u4Kwo1M= + response_1: dMx0KXnaXRe9GOS25fkU23/oQroCm7xsGEmzfLSdqQk= + response_2: 5+QdFnOaHNtBTZlmiPg5VUPh/By66PWm513yFHmXZAA= + sender_transfer_amount_lo_validity_proof: + commitment_1: mdXCh9Tc3O9XJOewd7RH7OIP39iTK6pAzE12MXaU0KA= + commitment_2: WJrBRZSlUJvxntCppJKjdnlTfMrFq67DPQ/ghZ9Rw5U= + response_1: AutFOmepMurip8Lo7YgNrzW7rRTY2w6IxHbIYK6Q+wU= + response_2: L0xfH2p2QKjAhRxFplJnM33766sdTYkcf1AGQQchPwA= + transfer_amount_hi_equality_proof: + y0: lvSPSchC+TcfnjyGr91UnGZOD/UvXa1+ecfB3MJLzgU= + y1: cvipm1iqLJimZyfRXVq2I8/6mvzWi8H1J9ozSpHmwgw= + y2: oaHkoqUkzbckUvk1yfC4g8RLcGWnrG1Yz3g4NTUmlyc= + y3: drOqGsMZSyTxkDpYlEWMudfXovgrgz0SsYwrw8cMwHk= + zr: AHL7bf1bMCcWU8O1YoRcLcdWbtB2J7qjUYMrgoS/TwE= + zs: zKb7PW3tFeuWzaOcWOXvKl1MKDi0JvqVMIJgPWjDnQg= + zx: k2zWKIRM2fxP+fz74p2p/hBkpCL+tHitRVj5yN7lEAw= + transfer_amount_hi_range_proof: + proof: jUBRTQeUB+ASL2tlXuuyexnSSBGBm/uyBQhnO+O4qet9LRtJvupKKmdc7oqumcvPZqTGo4nfy3lfCFLCnwl+mlHWwWbvtf31nterUmlLacf+R0O1VOwsfbbWchnxHJ8UnEYKH6wmuAxVWg7OFysIqLfDEZdPQxk1IeJhB1pKKaLSwiuAlr71mK3jIvtJX/31zGax65aSXV+UngnsoL2SDyd/7C0cgqhwHHwJbHwb9tJfAIOX2UlE438CzrmhJQkLHXIGZaOaoYkulP6Nvx0to/HrUZCJf4rxIyFXiYpR2gM0V1Szu5QqIf9XUNgkJhakDiZYtfPU69/4yMOzmX7tD8EikzxS74A1uq2HSYMLj7Lt992z+z5GpPWG2iNvAXwDW/OlVuqQ0PCabBXx7PpFF6+G2j4jvg4AjeAgJKkZZtIglHKYaPMLjltvk78N6QVP0r+i7DUhJ6oPXB1kcUod9tEvDK41bfasWqRzltKjilU6nmc+jALU4QhsS47hVY+F4A3XAqXawRl8SNAWChTqppMApeY6BifcxbirpLNQQBKQR0uIo664BnlJ0DL1BvWnla08xVxePO1envLaSdgNttwF0JhNTHYSp2RwMDTW/5Z6d4YTU3y8ETFmlh0DtndeusrLwSZsATKf8OTDSb8cfshfDi4EcSzhDNkxNJEe4ecRqL9BexU5N5BypO3wLIi98LxzPhTTYWc0AX8c83jtifLEMnHdWt0UOKaV3uRBeoMaXFWF0TpukPxCa15a7RcUDzRT03BvtqB58bLrXuPCCCt+84gzWXEsC/Ge5xcgpmg= + randomness: gHp6c4JyipkVFG10hM6wiTaafwZLw3aY6VbdobsTbQM= + upper_bound: "32" + transfer_amount_lo_equality_proof: + y0: 8ShRYnT56QniEHGFgAT13aAw/r8mRjpYT8r5cr2CnlA= + y1: j6vJo9d4zHWj2IQON94g2w2Eiyy8ulUYtHJHrv28Y+A= + y2: MHn2bV8RX4rweHgq7y4go+xdGrV5ayCJgNBoAphBsOg= + y3: aRKsoSGmQjpCvAloiVUgoFQYfKnsC2S2AL4/QuaXbQ8= + zr: eBBZAXgL4mhC+l3Q5umZyQy2g1vmzxjpSPkWlGMSpAQ= + zs: i0Ee7oH4UrTev4UNrH9iyqByi47S7xXdVQZjifRvsQY= + zx: 0Mxyf7hGcZOF3xdeoEPna7CAHxCFzu291GpVXY4Gpgk= + transfer_amount_lo_range_proof: + proof: O+xdwmQqMTqsl/hkUsU1QU4SQugf8pfgxo7TWmazV39QjUEn+z+H9YK+jCw71YG/bG9uy6qjhRfk4yb053hkLcb/TyJr5seTlH71nKYkHIadkLkFYPOtpw32PvT+IAV8M4/CTu3BM11Uby8KnaZ5JJVbnZ8w1O07cWE5O4ZO0b4G2B7ID6nH7OYAhz3qElU3aWRufxKbAovjEB1+/D7aDJiPhhXQFWbBpHgEC8jBf9IFYxkQ5rnLxk8WYPg5dWUOW3zAxVUbZQ6hLLGbBxwTC+Aznm3gOwbjzgmxA2T3FgzXdUlJb8E4BRI7U75ucxvPEzon52zLGM34xCfSFP3rCOqNC5exk655Hb7X/M4ZtwjSsCQKge7Cvm/TdC6+zrQPEHDnjq5Qpqgp4f0TFOU0CxfZG8bWsGiqjkIxfMIIwMJttSGNaZ57sWtVIAqYDnZsk+ZzMgbFxPRrENGvyROu9i3uXWH0l29++8m0f6jPLSVk1RYpoTVV2IlOPD/FmKwmOGhq5Na0lAnGVdDEfy17+dX1r0jNx5pk4jjX3wrKYxTIuO/30KfWfmRQivwfZvfe5BS7ycbS1Ye123i6rFukJhHxHWhXcVH9XQ0nLqHud3oHn/4loqKaUZP/cDhO1fUjzXi7lpHwzsZDZz1t087kZwi87vcN52BxHTmlYRCSQkCxpBYNmYdOZGPnIiWntwXWJkiJwO8Hdo94xJ9whRmE2A== + randomness: /U2d6bdh9g/06VV/msEubS0bQ3zlM954Yc1kxj8yUxg= + upper_bound: "16" + remaining_balance: + c: W9mtTT9Dv5eSDc6UV8zSB84wQ8zHPpVorvmQAbXSAJs= + d: mY/iWiZnJnHT2Ag+jn0+//k2xG4LQZe3VfWVkfybMUQ= + to_address: sei12xc6tru0q3r6fg4tealjgxnwa7qvvax2my9c5s + to_amount_hi: + c: YX5LzZFa09CiOoyhY3r+spxLvQEGTpB90rDcxnUFxI4= + d: N4gZvEC1wYZrWM4VBmL0eEz8mBUi8Z6RAJziFVKBcRU= + to_amount_lo: + c: H7B6KRahohYrQprhDLtlCCNyYKP4ZOtM6oy034cqlXo= + d: 3dTLxjn44Ml0QkJP6ZHPVdhoqk99XV46p5P/DpoiRHs= +``` + +For debuggability, all senders, recipients and auditors on a transaction will be able to decrypt the transfer message using the `seid q ct tx` command +```bash copy +seid q ct tx CB740E398AC85D63CF413E1F0767BA7E37D9B79C0CDC42AD590629E460EED626 --decryptor $RECIPIENT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com +``` + +``` +auditors: [] +decryptable_balance: not decrypted +denom: usei +from_address: sei146n0ggt0ylp05w8j8n59530jqhp959efkt0ad4 +proofs: + ... +remaining_balance_commitment: not decrypted +to_address: sei12xc6tru0q3r6fg4tealjgxnwa7qvvax2my9c5s +total_transfer_amount: "100000" +transfer_amount_hi: 1 +transfer_amount_lo: 34464 +``` + +If the decryptor is valid, it provides the `total_transfer_amount` as plaintext. It also decrypts any other fields that should be visible to the decryptor, such as `decryptable_balance` + +## 5. Withdrawing +To withdraw funds from your confidential balance into your regular token balance, we can use the withdraw instruction. + +Note: We can only withdraw from the `available_balance`. If there is insufficient funds in the `available_balance`, try applying the pending balances first before attempting to withdraw. + +```bash copy +seid tx ct withdraw 21000$DENOM --from=$ACCOUNT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com \ + --broadcast-mode=block --fees=60000usei --gas=3000000 +``` + +Now we verify that the `available_balance` has been decreased: +```bash copy +seid q ct account $DENOM $(seid keys show -a $ACCOUNT) --decryptor $ACCOUNT \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com +``` + +``` +combined_pending_balance: "0" +decryptable_available_balance: "379000" +pending_balance_credit_counter: 0 +pending_balance_hi: "0" +pending_balance_lo: "0" +public_key: m/v3e6OUm8BFyNVxcwjCdIzdqjOUslRJb+4jJg5EqUg= +``` + +Also verify that your bank balances have increased +```bash copy +seid q bank balances $(seid keys show -a $ACCOUNT) \ + --chain-id=atlantic-2 --node=https://rpc-testnet.sei-apis.com +``` + +## Next Steps + +🎉 Congratulations on completing the Confidential Transfers tutorial! You've learned how +to: + +- Initialize a confidential token balance +- Deposit to your confidential token balance +- Apply your pending token balances +- Make a confidential transfer to another wallets confidential token balance +- Withdraw from your confidential token balance + +For complete technical details, refer to the +[Confidential Transfers Module](https://github.com/sei-protocol/sei-chain/tree/main/x/confidentialtransfers) +on github. diff --git a/public/assets/confidential-transfer-flow.png b/public/assets/confidential-transfer-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..484e3ec330ed6050c8cb3373f0654ed4b8bec1e5 GIT binary patch literal 159791 zcmeFZWn7fo`aeu5ARq`TA`(h>Ni&2f-HoKuE!{D&6%ix`2BcBCrMpDwkd{U%hpwT9 zc-DBfd!PS4=lA+~b6)uImYDlq>t5@+zO@WfQ;{XQcJ~?v1_qJ5++z(4jH@yj7&z2; zSHV}_;=fYCz#vqyk(O4ImzJhgb8)h?vA4j$kPCzB;_7L3-%c~oxQ~PPSW@AqGD$S4 zqyiqtK_o5feS8vy2z;q8k(?z9PjB2{XRE*V;Tz@+%C!Qv@aLW!;aA{rcW0xGo@5fq z1pj50mdlir)f88&ttM=Yrf@F!%KIdYCByjUSv z(oj)S!U?jdJ@@tY$ENK$EC|t9Pd~q`vc`Ynf{7tV_?hBS9WBidX^e$pto$Mjj1M>W zR`>|A6b!GIMG}hOITw>!<-aH-waVLBmP-CZi1Tw4CT-#VNjW>l!&BNp)|=*1R3Z_# zh2;Nuj{o_B1hulNO8%&k!>O&-U*g-#@f6r(l<*T^$K8)3O zREBo-Qwk>IXR>AQ-NyUkDqX~cq2EY;D9IaZeU4Uk&JohH!QKzmc|+iZPqHp$$Ogmx zLOhugryNC@b|jM%(M$0oeb*vHoEa&>=0YaS>aQef@R@SB^Imv48SH+}qkDSHDsO`I zuzxUnJNg|*D?e2i5VZX!lk-}$<2h!T5S%Kh*f{Y;8cN&8$aN9Ew6SGrn|h;{#@%~0VRpE5G>h>bxn`2 z)h!zPGgXsv(~im*8R4_alEg7sFqPcG}=|#9UebPTrb_v+~YT+pPz|I8`^hm>1igZ{+`KE z=2RB)O?cy`2d3SZBn$#kD8Jd}Hy#FRedj1#-I*PG=a7q~N2x=0E4{JWmKs}H+oOvI z>SMaJN!l4R5i^M4NnU3i56p1vmOBq_t3G&fuhYfZ#Ti@jJrzX8EIAp=?|@$154_v$@0(P~nfz z-C7LK1)?)45b8b)fDU*X%K;B{{xfUk_sZdQAmN z)Ar;Ag(0rz!W!c0pcIW4kvJ{hqes@@17wv*6hBitOMQFIMf%5MT4%Xyut@X!q>rI} zPj1s$bluImHu+}sJ}QQ;i)9IGIBZ6SnikTP-sO8!dQ6>a6tC)0XQq8z$g52JpEn;8 zq(X1MSNwX*n&D~4mJH>P=FcYwB2zELWl=mq`OlR4Zo0O9yF(t{p;4x!^s2v8q3l}G zRlC-w3$D#?+@Cdl6HR%|_u}>zhVBdIwATbX6vuvk!p1Kre!M-VIAguQ*lw2~v&NAQ zhO~vZ(kVSKzhOzLfOqQ;sz2KQsCdEUPG(FN_Ly-f=_lsV^J_ezLZP)OwPCdhUa)WS zevdbpV&qQgePP5bNuQZ+MJvcr$~DL{$?3|?X4RPUm*Y>qyr-nXpxE_g>DnIWp7Y+V zJlUB}HQ6pDp%O@JG7;PBUwY9ai zv`w=uvwdFm(iU!u8XYKvsQKoW6g%b)Xsc@K=9Q|==Lcwj@bq>(jHu&Xc{`^E353KL=g%28t@~^v^-rZv>rM-i$p_mM3s*g^mR;o|5}-`s z|4CKIH||?xYLEDaZ5GJ$m}rx5k#O~nBcHwCh9IxNH6GYq2W}CEQM64_?GqB(5nvqNe#0p)+!QgxGT2GR*RerEmXMqGtc( zO5)1$io=TkZN}R%w_Q2bI0DMD^vXFZI3^6zD*VhW9N_j7uh~2ah9UbWBoGzK#f;8WXAPV4Q~tu8|GZhYM<0|xZAm+mbSigx;nks-u<{Ecl7P2b8K;Y z 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 literal 0 HcmV?d00001 From 41e7b3014ab3a373f7572533c69d8151bb0a48c3 Mon Sep 17 00:00:00 2001 From: alexander-sei Date: Thu, 24 Apr 2025 12:09:21 +0200 Subject: [PATCH 2/2] Add CT precompile in the EVM section --- content/evm/precompiles/_meta.js | 3 +- content/evm/precompiles/ct.mdx | 197 +++++++++++++++++++++++++++++++ 2 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 content/evm/precompiles/ct.mdx diff --git a/content/evm/precompiles/_meta.js b/content/evm/precompiles/_meta.js index b5562ee0..e7a3e825 100644 --- a/content/evm/precompiles/_meta.js +++ b/content/evm/precompiles/_meta.js @@ -4,5 +4,6 @@ export default { governance: 'Governance', json: 'JSON', oracle: 'Oracle', - staking: 'Staking' + staking: 'Staking', + ct: 'Confidential Transfers' }; diff --git a/content/evm/precompiles/ct.mdx b/content/evm/precompiles/ct.mdx new file mode 100644 index 00000000..3fb26f20 --- /dev/null +++ b/content/evm/precompiles/ct.mdx @@ -0,0 +1,197 @@ +import { Callout } from 'nextra/components'; + +# Confidential Transfers Precompile + +**Address:** `00x000000000000000000000000000000000001010` + +This precompile enables EVM clients to manage **confidential token transfers** on Sei by leveraging ElGamal and AES encryption. It supports: + +- **Account Initialization** +- **Encrypted Transfers** (with optional auditor participation) +- **Deposits & Withdrawals** +- **Pending‐to‐Available Balance Application** +- **Account Closure** +- **On‐chain Queries** of encrypted account state + +## Functions + +### Transactions + +- `initializeAccount` + Initializes a confidential account for a given address and denomination, storing public key, encrypted balances, and validation proofs. + + ```solidity copy + /// Initializes a confidential account. + /// @param fromAddress The 0x or Sei address of the account owner. + /// @param denom The token denomination. + /// @param publicKey Serialized ElGamal public key. + /// @param decryptableBalance AES-encrypted available balance. + /// @param pendingBalanceLo Low bits of the ElGamal-encrypted pending balance. + /// @param pendingBalanceHi High bits of the ElGamal-encrypted pending balance. + /// @param availableBalance ElGamal-encrypted available balance. + /// @param proofs Zero-knowledge proofs validating the initial state. + /// @return success Whether initialization succeeded. + function initializeAccount( + string fromAddress, + string denom, + bytes publicKey, + string decryptableBalance, + bytes pendingBalanceLo, + bytes pendingBalanceHi, + bytes availableBalance, + bytes proofs + ) external returns (bool success); + ``` + +- `transfer` + Performs a confidential transfer between two accounts. + + ```solidity copy + /// Executes an encrypted transfer. + /// @param toAddress The recipient’s 0x or Sei address. + /// @param denom The token denomination. + /// @param fromAmountLo Low bits of the sender’s ElGamal-encrypted amount. + /// @param fromAmountHi High bits of the sender’s ElGamal-encrypted amount. + /// @param toAmountLo Low bits of the recipient’s ElGamal-encrypted amount. + /// @param toAmountHi High bits of the recipient’s ElGamal-encrypted amount. + /// @param remainingBalance ElGamal-encrypted remaining balance of sender. + /// @param decryptableBalance AES-encrypted available balance after transfer. + /// @param proofs Proofs validating the transfer correctness. + /// @return success Whether the transfer succeeded. + function transfer( + string toAddress, + string denom, + bytes fromAmountLo, + bytes fromAmountHi, + bytes toAmountLo, + bytes toAmountHi, + bytes remainingBalance, + string decryptableBalance, + bytes proofs + ) external returns (bool success); + ``` + +- `transferWithAuditors` + Same as `transfer`, with the addition of auditor commitments for third-party verification. + + ```solidity copy + /// Executes an encrypted transfer with auditor participation. + /// @param toAddress The recipient’s 0x or Sei address. + /// @param denom The token denomination. + /// @param fromAmountLo Low bits of the sender’s encrypted amount. + /// @param fromAmountHi High bits of the sender’s encrypted amount. + /// @param toAmountLo Low bits of the recipient’s encrypted amount. + /// @param toAmountHi High bits of the recipient’s encrypted amount. + /// @param remainingBalance ElGamal-encrypted remaining balance of sender. + /// @param decryptableBalance AES-encrypted available balance after transfer. + /// @param proofs Proofs validating the transfer. + /// @param auditors Array of Auditor structs for on-chain audit. + /// @return success Whether the transfer succeeded. + function transferWithAuditors( + string toAddress, + string denom, + bytes fromAmountLo, + bytes fromAmountHi, + bytes toAmountLo, + bytes toAmountHi, + bytes remainingBalance, + string decryptableBalance, + bytes proofs, + Auditor[] auditors + ) external returns (bool success); + ``` + +- `deposit` + Deposits plain tokens into the confidential balance. + + Amounts are treated as 6-decimal tokens instead of the full 18-decimal EVM default. + + ```solidity copy + /// Deposits tokens into the confidential account. + /// @param denom The token denomination. + /// @param amount The plaintext token amount (18-decimals). + /// @return success Whether the deposit succeeded. + function deposit( + string denom, + uint64 amount + ) external returns (bool success); + ``` + +- `applyPendingBalance` + Moves funds from the pending balance to the available balance after on-chain verification. + + ```solidity copy + /// Applies a pending credit to the available balance. + /// @param denom The token denomination. + /// @param decryptableBalance AES-encrypted new available balance. + /// @param pendingBalanceCreditCounter The updated pending balance counter. + /// @param availableBalance ElGamal-encrypted new available balance. + /// @return success Whether the operation succeeded. + function applyPendingBalance( + string denom, + string decryptableBalance, + uint32 pendingBalanceCreditCounter, + bytes availableBalance + ) external returns (bool success); + ``` + +- `withdraw` + Withdraws plain tokens from a confidential account, providing encrypted proofs of remaining balance. + + ```solidity copy + /// Withdraws tokens from the confidential account. + /// @param denom The token denomination. + /// @param amount The plaintext amount to withdraw. + /// @param decryptableBalance AES-encrypted new available balance. + /// @param remainingBalanceCommitment ElGamal commitment to remaining balance. + /// @param proofs Proofs validating the withdrawal. + /// @return success Whether the withdrawal succeeded. + function withdraw( + string denom, + uint256 amount, + string decryptableBalance, + bytes remainingBalanceCommitment, + bytes proofs + ) external returns (bool success); + ``` + +- `closeAccount` + Closes a confidential account, releasing final proofs. + + ```solidity copy + /// Closes the confidential account. + /// @param denom The token denomination. + /// @param proofs Proofs validating account closure. + /// @return success Whether the account was closed successfully. + function closeAccount( + string denom, + bytes proofs + ) external returns (bool success); + ``` + +### Queries + +- `account` + Retrieves on-chain encrypted account state for a given address and denomination. + + ```solidity copy + struct CtAccount { + bytes publicKey; // Serialized ElGamal public key + bytes pendingBalanceLo; // Low bits of pending balance + bytes pendingBalanceHi; // High bits of pending balance + uint32 pendingBalanceCreditCounter;// Pending balance update counter + bytes availableBalance; // ElGamal-encoded available balance + string decryptableAvailableBalance;// AES-encrypted available balance + } + + /// Queries confidential account data. + /// @param addr The 0x or Sei address of the account owner. + /// @param denom The token denomination. + /// @return account The CtAccount struct with encrypted balances and metadata. + function account( + string addr, + string denom + ) external view returns (CtAccount account); + ``` + +View the Confidential Transfers precompile source code and ABI [here](https://github.com/sei-protocol/sei-chain/blob/main/precompiles/confidentialtransfers/CT.sol).