Team and Background
We are Rebase team, as the very early participant of Nervos from 2018, we organized online/offline meetups and workshops, wrote articles to educate users. During testnet phrase, we also developed several tools. We have more than 5+ years development experience of internet and 2+ years experience of blockchain, including Bitcoin, Ethereum, Dapp, wallet, exchange, etc.
Harry Liu - Team lead and blockchain developer
Harry has been developing 2 dapps on Ethereum for the past 2 years. He has experience of setup RPC node, ported wallet, faucet, and block explorer for EVM blockchain. Developed a online tool to generate ckb key pair.
Orange Ma - Blockchain developer
Orange did a lot of blockchain things, and also a invited smart contract security auditor of Ethereum for Slow Mist. He is passionate about ckb and wrote several popular posts on orangem.io . He gave a talk on Rebase’s meetup about ckb.
Shooter Liu - Blockchain developer
Blockchain technology enthusiasts, as Rebase member he organized meetups and workshops, and be familiar with technology stacks such as Python, Golang and Node. He has started development of Bitcoin, Ethereum, exchange since 2015. During ckb testnet mining phrase, he developed ckb-wallet-golang
River Zhou - Blockchain developer
River has experience of wallet development based on Ethereum and BTC. He writes solidity and Substrate during his spare time. He uses Java, Go and Rust as his backend programming language.
Project and Justification
Users need to manage their assets and interact with dapp in a convenient way.
We will implement a browser extension which will includes 2 main features, wallet and keyper agency.
As a wallet, users would be able to manage their funds, tokens, import/export passphrase.
What make Synapse unique with CKB is that it’s will act as a agency for Keyper, which will allow users to manage their lock scripts. In order to interact with dapps, Synapse could able to put different lock scripts as input into one transaction.
Since wallet needs to display aggregated data such as balance/capacity so a server is needed. The server is used to cache cells data, do aggregation, then provide query service to client. Considering the security issues brought by centralized server, users could use this default server to do normal wallet operations, we will also provide the option/setting allowing them to choose other RPC endpoint, even they can setup a server by themselves with our open sourced code.
Detailed features see the following table.
Considering currently there is no standard for how to communicate between keyper and keyper agent (Synapse and others), keyper agent and Dapp, we will also publish 2 RFCs and a demo dapp.
Rough features see below table.
Technical Specification and Implementation
Dapp interaction flow
To better understand how Synapse works with dapp, there is a interaction flow below.
Synapse architecture
Synapse architecture includes 4 major parts:
- Key manager. Used to manage private keys and sign messages for users. It could be a separate from 3rd party develop or just a module in Synapse.
- Keyper. Ownership layer includes different lock plugins which have 3 descriptors inside each. It will be a JS library developed by 3rd party developer.
- Synapse modules.
- Synapse server. Will be implemented as a RPC server.