For tomorrow’s leading dapps to utilize blockchain within their development stack, developers need the tools and information-access that they are used to having when developing for the web. dfuse is speaking with experienced blockchain developers to help share their journey, the tools they use, and the knowledge sources they turn to. This week we spoke with Ricky Shi from MYKEY.
Could you introduce yourself?
Hello everyone, I am Ricky, a blockchain developer from China. I am currently the technical director of the MYKEY project. I was also a co-founder of EOS Cannon, China's largest community of EOS token holders. Some people in the EOS ecosystem call me “Pang Ge (Brother Chubby)”. The team that I lead has years of experience in blockchain development on BitShares and Ethereum. We are also one of the earliest teams in China to touch on, and promote developing on, EOS.
I am a full-stack developer. I used to work for companies like IBM, DataYes, and I was also an internet entrepreneur. I encountered blockchain around 2012. As a tech lover, I was very fascinated with Bitcoin’s principle and visions and got involved in mining. After exploring various opportunities as an entrepreneur, I met the founder of BIHU and decided to work full-time in the blockchain industry in 2017. Since then, I have been committed to the promotion and large-scale implementation of blockchain technology. I hope that through my own efforts, the barriers to use of blockchain will be reduced, so that blockchain can be used to benefit all human beings to enjoy a digital life with equality, freedom and mutual trust.
Could you present the vision of MYKEY？
MYKEY is an autonomous identity system of multiple public blockchains, it is based on the autonomous identity protocol, Key ID.
Our mission is to accelerate the mainstream adoption of blockchain, create a one-stop digital service platform for users, and establish a universal identity system for the decentralized world for protecting personal privacy and asset security.
From the asset management perspective, MYKEY is a multi-chain wallet that gives users full control over their assets. When they lose their private keys, they can freeze then restore their accounts. From the perspective of social relations, MYKEY will be an integral part of the Web of Trust. At the same time, MYKEY returns data ownership to users in the context of Web 3.0, protecting user privacy from the ground up.
What are the main challenges when developing for blockchain?
I will talk about some challenges that I think you’d have to face when developing atop of a blockchain.
1. You need to keep in mind that the users will always make mistakes
Right now, the biggest problem blockchain faces is the management of the user's private key. Many stories tell us that users will lose their private keys, they will lose their passphrase or passwords, and they will lose their mobile phones. Developers should always consider these issues when developing blockchain applications, to ensure that users can protect their assets as much as possible under different circumstances.
2. Smart contract security issues
Smart contracts are the language of blockchain applications, however, it is very difficult to develop a secure smart contract. It’s like rocket science, and a small oversight can result in huge asset losses. Within our MYKEY team, each contract goes through a process of rigorous internal auditing and a third-party security agency auditing. Only when you pay enough attention to security, your blockchain projects will be able to go far.
3. Dealing with different consensus and operating mechanisms of different chains within the multi-chain environment
Different chains have different consensus and operating mechanisms and different design concepts. As a multi-chain wallet built on top of a smart contract, MYKEY needs to help users manage and their assets and identities across different chains. Turning these technical differences into a consistent user experience has always been the direction towards which we are working. For example, on EOS, we try to hide the concept of RAM, CPU and NET. On ETH, and we hide the concept of GAS, displaying them in USD value.
4. User experience and security trade-offs
User experience and security are sometimes in conflict with each other. I have seen a wallet that generates private keys with a pressure gauge, light sensor, and microphone. Now, that is an experience that will drive you mad. Our intention with MYKEY is to provide a more convenient user experience on the premise of ensuring the user's control of the permission and decentralization of the network, making it truly trustless.
5. Unpredictable and unstable chain environment
In a decentralized environment, the development paradigm has changed a lot when compared to working in Web 2.0. Chain network stability, chain finality, and forks are all to be considered in the real development process. Transaction compensation and irregular block rollbacks are normal things to deal with. In this regard, we also use some third-party services, such as dfuse's `push_transaction` guarantee. It helps MYKEY ensure transactions are pushed on-chain. If this type of work is to be done by us project team ourselves, we would need to build a number of nodes and monitor them with a trust-worthy strategy.
Will it be obvious to MYKEY users that they are interacting with a blockchain?
Of course, users would be aware that they are using the blockchain. However, it’s like driving, you don't need to know how to build a car. MYKEY will give users a brand new experience of using blockchains, wrapping together all the deeper technology-related aspects that users can't understand together, such as the public-private keypair and Gas fee. MYKEY also proposed the concept of having an emergency contact to help users recover their accounts in some unusual situations. Therefore, users of MYKEY do not need to understand the blockchain itself or the blockchain mechanism to use the application on the blockchain.
What advice would you give to a developer who wants to build a project on blockchain?
Our MYKEY development team is relatively mature, including cryptography experts, algorithm engineers, contract engineers, client engineers, and back-end engineers.
Developers of blockchain applications must first respect blockchain and be fearful about blockchain security and hackers. In the blockchain, the presupposition is “men are born evil”. When developing each function or application, it is necessary to consider whether it leaves the room for bad actors and whether it meets the requirement of economic security. Blockchain dapp developers need to know more about how to lower the barrier to entry for users, and attract more users outside of the crypto-circle. You also need to pay attention to the current mainstream infrastructure development, such as cross-chain solutions, decentralized storage, random number schemes, etc..
MYKEY is also building a MYKEY developer platform. There will be a series of SDKs to help developers. Our goal is that even if you are a traditional app developer, you can use the MYKEY SDK to develop a dapp based on blockchain and the token-based economy. We hope to see developer teams join us!
If you are a developer working on EOSIO and want to share your experience, please feel free to reach out to us. We would love to integrate your interview into our interview series “In the Eyes of a Blockchain Developer.”