Learn more about Incognitee
Last updated
Last updated
Incognitee is a product based on an Integritee L2 sidechain and built with the Integritee SDK to conduct private transfers on substrate-based chains.
L2 Sidechain:
Sidechains are L2 blockchains connected to our public Integritee Network parachain (L1). Scalability is one of any blockchain projects' toughest challenges. Sidechains emerged to tackle that issue. Moreover, they provide confidential state and processing of transactions.
But how does it tackle the scalability problem, exactly? Transactions to different sidechains (or shards) can be processed in parallel leading to much higher throughput over the entire network. TEEs allow for a simplified consensus algorithm which yields very fast block times, leading to low transaction latency. Another benefit of TEE-based sidechains is the fact that they can provide a very high degree of privacy in executed business logic.
While Polkadot itself already offers highly competitive scalability and flexibility compared to other L1 protocols, Integritee multiplies this potential on L2 and offers much lower latency. One other matter is Polkadot’s transparency: this feature might not be beneficial for everyone, especially if there is information one wants to keep confidential. Integritee’s sidechain allows a high degree of privacy. Performance is yet another issue. Although Polkadot is one of the fastest blockchains, some projects need even more. Responsiveness is key for many industries, such as gaming.
Direct Invocation
With direct invocation, a requester chooses one of the sidechain validators to send her trusted call to over an encrypted channel. The validator produces a sidechain block, executing pending transactions. The block gets finalized on the Integritee parachain and the state diff is broadcast to the other validators, who simply apply the diff to their copy of the state. The sidechain validators produce blocks with a customizable block time T and broadcast them to the other validators. Should a validator fail to broadcast a block (or the block doesn’t reach the next validator) that validator is skipped after a timeout.
Finality
Sidechain blocks are produced asynchronously to layer one at a higher block rate. Despite the integrity guarantees provided by the TEEs, these blocks are not final because forks on the sidechain can happen. Every sidechain block hash is anchored to the layer-one blockchain and gets finalized on layer one along with the block that includes its anchoring extrinsic.
Architecture of Incognitee
Process: Alice would like to transfer funds from her account to Bob's privately. She sends DOT tokens to the sidechain’s vault account. The sidechain's light client will subscribe to all transfers to its vault account and will endow the sender’s account with the amount received. Then, Alice can trigger all kinds of transactions on L2. In our example, she directly transfers tokens from her shielded account to Bob's. Bob can then trigger unshielded tokens to his L1 account. After this process, there is no way to directly link information on L1.
In order to gain practical unlinkability, one has to avoid the linkability of amounts or timing of the process. Mixers can be used to hide the exact time and amount of transfers. This means that the degree of privacy enhancement depends on the number of users that are simultaneously active on our sidechain. The more users sending similar amounts, the better the k-anonymity.
Thanks to the Trusted Execution Environments (TEE) technology, not even the operators of the sidechain “validateers” can learn anything about L2 transactions on our sidechains. Validateers are validators operating our second-layer sidechains – the block production and validation happen inside TEEs. This means validateers can trust each other based on remote attestation and the consensus protocol is greatly simplified.
In this example, the fees to be paid by the user are:
Shielding fee [DOT]: a percentage of the shielded amount plus the extrinsic fee on L1
Private-tx fee [DOT]: a fixed fee
Unshielding fee [DOT]: a fixed fee, enough to cover L1 extrinsic fees for unshielding plus markup
Fees to be paid by the sidechain validateers (mostly unrelated to user traffic) are:
Remote attestation fee [TEER]
Sidechain block finality fee [TEER] depending on block period