Inspiration
By allowing NFT to have a presence on another blockchain to leverage its ecosystem, we realized that asset interoperability is an innovation that will revolutionize asset ownership. Currently working on Arweave, a data storage based blockchain, we experienced the lack of a bridge to move tokenized assets across different blockchains. While Arweave's permaweb is an impressive technology for permanently and sustainably storing data, Solana is fast, secure and allows for transactions with low fees. By combining these two technologies and not just one with the other, we want to enable users to transfer their assets between Solana and Arweave, giving a permanent life to newly purchased NFTs on Solana on Arweave or selling our Arweave Profit Sharing Token on the Solana ecosystem at low cost.
What it does
This cross-chain bridge between Solana and Arweave allows tokenized assets to be transferred seamlessly and securely. Users can use the benefits of both blockchains through the token wrap enabling transactions.
How we built it
This cross-chain bridge uses a wrap token to transfer assets between the two smart-contracts of each blockchain using Proof of Stake to validate the transactions.
Entities
Three entities will work on the security and the validation of the transfer: Solana on-chain program, Arweave smart-contrat and some validators.
- Solana and Arweave contract are really similar and adapted to their own blockchain technologies. They reference the incomming transaction in a waiting transaction list. This list will be used to store the transaction's data as caller, target, quantity, asset type (NFT or Tokens) and a vote object used to record all the validators vote.
- Validator, a typescript program watching waiting transactions on both contract, using their own stake locked in vault. Their vault's balance is used to weight their vote (Accept or Reject) in the waiting transaction object. Validator are pseudo-randomly selected to get a reward on each end of vote of a transaction. Validators will validate or reject the transaction and be rewarded with the wrap token. The block length is save as a time parameter when the validator interact with a transaction. This block time is used to lock the validator from other interaction in the blockchain with the wrap token while some transaction are active, avoid malicious behviour.
Big steps
- Each smartcontract will record the pending transactions while the validators will vote for the transaction's approbation.
- Once the vote is validated, the pending transaction is executed on the other side of the bridge and then deleted from the waiting list.
- The desired asset is then available on the choosen blockchain.
Security and reward
Following the consensus and rejecting malicious transactions allows Validators to receives rewards, which motivates the validators to validate the right transactions. The more the stake, the more the vote wiegth, so to control an entire validation, a malicious validator need to control 51% of the total transaction stake. Penalties are applied to validators who tried to vote against the consensus. Validator can stop their work and transfer their vault's balance on their actual balance when two conditions are reached:
- all their transaction are approuved
- the weigthing time in block since the last transaction is come. When a validator stop, the vault attached is destroy. ___ ## Challenges we faced Understanding the Solana ecosystem and the technology behind it. Designing a cross-chain bridge and trying to integrate the best of two technologies with different languages and architectures. ___ ## Achievements we are proud of Designing cross-chain bridge architecture with interaction between the Solana's on-chain program and the Arweave's smart-contract. ___ ## What we learned The Solana protocol and API which are quite complex to use at first. The PoS protocol with a security based architecture and reduced transaction sending. ___ ## What's next for Pianity Finish the bridge to allow Solana and Arweave users to interact and transfer their assets. Evolve the bridge from a wrapped bridge to a bi-directional bridge with an oracle implementation.
Built With
- arweave
- rust
- typescript
Log in or sign up for Devpost to join the conversation.