StarkWare and StarkEx
rhino.fi is built on StarkEx, a scalability rollup created by our partner, StarkWare, on Layer 2 of the Ethereum blockchain, designed to validate transactions using zero-knowledge technology. The use of StarkEx is fundamental to our decentralised trading model, enabling us to provide fast, low-cost and self-custodial transactions.
StarkEx model StarkEx is an application specific rollup designed to provide a high-speed, low-gas method for settling transactions. It inherits the robust security of the underlying Ethereum blockchain and maintains total self-custody. User transactions are batched off-chain by the operator, in this case rhino.fi, and sent to StarkEx, which validates the transactions in bulk and generates a single proof (known as a STARK), attesting to the validity of all the transactions in the batch. This proof is then posted on-chain (in other words, the Layer 1 Ethereum blockchain). Zero-knowledge, or zk, technology is key to the StarkEx model. Essentially, the StarkEx tech stack is divided into two key parts: a proving engine known as the Shared Power Service, or SHARP, which exists on Layer 2, and a verifier contract which exists on Layer 1. First, the proving engine processes a batch of transactions according to StarkEx’s core business logic, then it submits the batch to the verifier. To validate each transaction in the batch, the verifier sets the prover a series of mathematical challenges that would be impossible to resolve had the prover not followed the correct steps when processing the trade. This avoids the need to reveal the details of either party in the transaction (hence the term ‘zero-knowledge’), and provides efficiency gains over alternative validation mechanisms. This diagram shows the StarkEx structure (credit: StarkWare).
Specific advantages The name STARK stands for Scalable Transparent Arguments of Knowledge. This acronym emphasises the benefits conferred by STARKs over other forms of zk-validation technology. ‘Scalable’ refers to the speed of STARKs: each proof requires minimal computation, which improves the scalability of Ethereum, and the vast majority of data is kept off-chain, with only the final proof submitted to Layer 1. In addition, the system creates a natural and significant asymmetry between prover and verifier in terms of computation load; as its name suggests, the SHARP prover operates across various StarkEx applications, and the cost is divided between them. This means the prover’s computational work scales quasi-linearly, while the verifier’s computational work scales logarithmically. This makes STARKs a natural candidate for scaling blockchains. 'Transparent' means the system requires no trusted setup (unlike other proof systems). The validity proofs generated by StarkEx ensure that as soon as transactions are made and posted on-chain, they’re final, and the security guarantees are the same as those on the underlying chain. With Optimistic proofs, another form of validation technology which assumes all transactions are valid by default, it is possible for people to post invalid state updates on-chain. With zero-knowledge validation, it is impossible to post an invalid state. In fact, by batching transactions and posting them on-chain, rhino.fi’s StarkEx trading system provides certain advantages over a centralised exchange. With a centralised exchange, a user’s transactions are only confirmed when they withdraw. Until the withdrawal takes place, the exchange could theoretically go back on the transactions and roll everything back. Once StarkEx has posted a transaction on-chain, there is no possibility of rolling back. So the user’s transactions are guaranteed without them having to withdraw. Role of StarkEx in the rhino.fi trading system StarkEx provides a central hub for rhino.fi’s multi-chain ecosystem, connected to the various blockchains we support via smart contracts. When opening a gateway to a new chain, rhino.fi establishes a liquidity outpost on the chain in question (in other words, a vault of liquidity from rhino.fi’s own funds) and builds a bespoke version of our smart contracts, enabling users to deposit their asset on their origin chain and receive an equivalent amount of funds in their desired asset on the new chain. The entire process is triggered by user signatures. StarkEx acts as a router in the system. Rather than transferring their funds to the new chain directly, users give their disposal funds to StarkEx and receive their new funds from StarkEx in return. This provides greater speed and avoids the need to pay native gas fees on the chain in question. When a user deposits into StarkEx, the funds are still in their custody. However, they provide rhino.fi with a receipt. So, for example, if the user wants to teleport their funds onto another chain, they can basically say ‘Ok, I will transfer these tokens on StarkEx to you’. Once rhino.fi has this receipt, we, as the operator, can give funds on whichever chain they wish to explore, as long as we have established liquidity on that chain. So the user’s funds are held on StarkEx, and they swap these funds for funds held on another chain. Stark Ex and Security All the core security protections of the StarkEx model are embedded in the smart contracts. The rules of interaction are established in the code and each contract is thoroughly validated and audited before it goes live. No additional protections are required from rhino.fi. We simply provide an interface for StarkEx, order the transactions and match-make them. We don’t handle users’ funds ourselves.
More information on security can be found in the Security section.