Vite Techie Club #1
Oleg last edited by Oleg
Vite is two years old now. Thanks for your accompany and support so far. Since Vite’s earliest days, we have developed a reputation for our strength and innovation in tech. We have been asked so many times by enthusiastic community members and developers to participate in the tech discussions with Vite core devs, so they can contribute great ideas and even write code. As such, we are pleased to announce the launch of Vite Techie Forum, a series of regularly-held, text-based online discussion events, where we invite all technocrats to incubate Vite’s future plans!
We present to your attention a recap of the debut Techie Forum event in which you can meet our developers and learn about plans for the development of the gateway structure. Enjoy!
Allen at 3:00 PM
Today will be our first hangout for Vite Techies and the community! I am glad to announce the kick-off of the Vite Techie Forum event series.
It will be a platform for Vite Techies and the community to exchange ideas and conduct technical discussions with the Vite core dev team.
The topic today is the decentralization of ViteX gateway, a frequently asked question concerned by many Vite and ViteX users.
We are glad to invite two core dev members, Viteshan and Wills Lee, to join the discussion.
Allen at 3:03 PM
Allow me to introduce them now
Willis is the architect of ViteX. He led the design and implementation of the ViteX smart contract and related components. He wrote the ViteX explained tech article series on Medium.
weichaolee at 3:03 PM
Thanks @Allen , Welcome everyone to discuss something about ViteX gateway evolution
Allen at 3:05 PM
Viteshan is a talented full-stack engineer, a key contributor to Vite's protocol, and the architect of the Vite public chain. He is driving the scheme design of Vite 2.0. Shoot him questions if you would like to know more about the everything of Vite.
Allen at 3:07 PM
Over the weekend I've sent out a deck. I hope you went it through.
In the deck, I simply introduced the background, current solution of ViteX gateway, and a proposed plan (mainly raised by the team ).
Today, we are going to talk about the decentralization of gateway first
then we will go through the proposal. We are also open to other plans, so chime in if you have something cool for us. lol
Let me shoot some questions to Willis and viteshan.
So, Willis, what do you think about the decentralization of exchange gateway, do you think it is necessary?
weichaolee at 3:13 PM
I absolutely believe it's very necessary for gateway to be decentralized. gateway decentralization will make assets more secure and transparent, just like what we have done in ViteX
Allen at 3:15 PM
@viteshan also please share your thoughts
viteshan at 3:15 PM
yeah the goal of VITEX is the largest and most convenient DEX.
However, the current solution cannot allow all tokens to be traded freely in VITEX.
Whether it is the token on ETH or the token on TRON. We need to improve our agreement so that any token on any chain can join freely in the VITEX exchange.
Allen at 3:16 PM
As the fully decentralized exchange, some users have asked about the gateway, is it decentralized too? So I think this will be our answer
We will set up a decentralized gateway plan in ViteX gateway 2.0. It will be secure, convenient, and fully decentralized.
Ok the 2nd question
@viteshan @weichaolee can you briefly introduce the well-known decentralization schemes for gateways, their pros and cons, and why you finally choose this one?
viteshan at 3:19 PM
In general, there are three schemes for cross-chain gateways.
The first is Notary. In this scheme, a (or several) notaries are responsible for verifying transactions on both chains and then operate the gateway account to transfer the counterpart token to the user.
Notaries are easy to implement, the gateway in ViteX Gateway 1.0 takes notary scheme.
The second method is the side chain. In this solution, an independent chain is usually used to store and verify transactions on the original chain.
The verification of cross-chain transactions is written into the side chain and must be confirmed by all the nodes, usually through smart contracts.
The benefit of this mode is the transactions are more transparent and gateway confirmations are more reliable, but the setback is the side chain is more complicated and takes time to implement.
Atomic swap (HTLC) is widely used in scenarios where two users need to swap their tokens into another.
The atomic swap is settled at a fixed, negotiated price before the deal is made.
It often relies on the users happen to have the demand to swap, otherwise, the deal may not be complete in time.
So usability/liquidity will be the biggest problem because you are "swapping" with another guy.
Allen at 3:27 PM
Very detailed explanation
@weichaolee what's your opinion here?
can you share some insight with our community?
weichaolee at 3:29 PM
The tradeoff also is very important for any solution for concrete implementation so will combine former solutions as our final solution.
Allen at 3:30 PM
Now I will leave 5 mins for Vite Techies and our community to bring their ideas or questions.
Crypto Bear at 3:31 PM
Does ViteX gateway 2.0 apply to all ViteX Operators? If so then they no longer need to set up a gateway...etc?
weichaolee at 3:32 PM
@Crypto Bear It will be an open gateway framework applicable to all operators, When an operator lists a new coin, he should implement the necessary gateway features (deposit/withdrawal/contract, etc.)
stone at 3:32 PM
@weichaolee since they will no longer hold funds or control, in case any issues, then who's responsible?
weichaolee at 3:34 PM
@stone The funds will be stored in a smart contract deployed by the operator. The decentralization relies on how many witnesses the smart contract designates.
The witnesses as well as the operator are responsible for any loss or misappropriation of the funds. If the loss comes from a defect in the smart contract, the owner of the smart contract will be responsible.
stone at 3:35 PM
@weichaolee is it related to the number of Supernode of the whole network?
weichaolee at 3:37 PM
The witnesses as well as the operator are responsible for any loss or misappropriation of the funds. If the loss comes from a defect in the smart contract, the owner of the smart contract will be responsible. more detailed solutions need be involved in our decentralized gateway roadmap
stone at 3:40 PM
Which means the anonymous Operator still exists and users still need to choose the trusted Operator to deposit their coins instead of choosing a random Operator?
weichaolee at 3:42 PM
@stone witness does not equal to Supernode, a witness is a designated address, that somehow granted the right for approving tx that broadcasted by the operator
users no need to trust the operator, the deposit/withdraw process will be confirmed decentralized by witnesses
Bob6768 at 3:32 PM
I remember you guys had a DDoS recently, so how does the new gateway prevent DDoS attack?
viteshan at 3:35 PM
@Bob6768 In general DDoS is not much related to the detailed technical implementation of the gateway.
it's more about how you deploy the services and API endpoints on the network so they can recognize malicious visits and then block them.
And to answer your question - yes the new gateway will be fully available under DDoS attacks. In fact, the last DDoS did not affect the vitex gateway.
super at 3:34 PM
I have an idea regarding listings on VITEX. For the moment it is needed an operator to do this job but what if we have a system in which every listing is decided by VX holders? Example: VITE team will conduct a poll in which an amount of tokens will be available to be listed. VX holders will vote for the coin which they want to be listed. Everything will be in the wallet and on-chain. This way there will be no need for centralized operators anymore and more coins will be available on vitex.
viteshan at 3:39 PM
@super Exactly. New listing from voting by VX holders will be part of the decentralized governance of ViteX 2.0.
We will set up a voting contract in the new ViteX model, so everyone having VX (above the minimum threshold) will have a chance to vote.
Allen at 3:40 PM
Cool. Thanks guys for the questions and the answers. Very hot discussion. Now let's take a closer look at the proposal. Let me paste some content from the deck here.
This is the deposit process of the new decentralized gateway proposal
you guys can see the solution is based on Witness + Multisig + Smart Contract / P2SH
Original/mapped assets are stored in gateway smart contracts
Witnesses verify deposit/withdrawal on both chains and submit confirmation to the gateway smart contract.
Deposit/withdrawal will be marked complete when M/N witnesses confirm in the contract
To become a witness, a certain amount of VITE and(or) VX should be staked. Witnesses can benefit from verification rewards. The misbehaved witness will be slashed.
Mapped assets are issued/burned in contract on actual deposit/withdrawal requests.
So this is the general design concept of the proposal
Let's take a look at the deposit process now.
viteshan at 3:45 PM
staking is very important.
Allen at 3:45 PM
In this sequence diagram, we have 3 smart contracts deployed: two gateway contract deployed on Vite and Ethereum, and one token issuance contract on Vite.
Step 1. A user requests for deposit address at the Vite gateway contract;
2. the gateway contract bind the deposit address to Vite address and return it;
3. The user deposits ETH to the deposit address on Ethereum;
4. Witnesses start to verify the deposit on Ethereum;
5. Witnesses submit confirmations to the Vite gateway contract;
6. deposit is confirmed when M/N witnesses confirmed. The signatures must be verified in the contract;
7. The contract mints the equivalent amount of ETH-000 and sends them to the user.
So this is the deposit process in the new gateway
Let's take a look at the withdrawal
- A user requests for withdrawal and sends ETH-000 to the Vite gateway contract;
- Witnesses start to verify withdrawal on Vite;
- Witnesses submit confirmations to the Ethereum gateway contract;
- Withdrawal is confirmed when M/N witnesses confirmed. The signatures must be verified in the contract;
- The contract sends ETH to the user;
- Witnesses confirm withdrawal complete (attach tx hash) in the Vite gateway contract;
- The user confirms withdrawal complete (or auto-confirm after a timeout period is passed);
- The contract burns the equivalent amount of ETH-000.
That's all for withdrawal
Guys, I've briefly introduced the concept design, processes of deposit/ withdrawal in the new gateway proposal.
I am sure you must have questions
I will leave about 20 mins for open discussion now
I restate again: we are open to all proposals lol
stone at 3:56 PM
what about the existing gateway like VGATE and Bi23? will they automatically migrate to the new version gateway?
weichaolee at 3:57 PM
@stone They will migrate, but not automatically. The ViteX gateway 2.0 is a new framework, and it's open-sourced.
VGATE and Bi23 should expand the framework by plugging in the coins they operate, designate the witnesses, then deploy the service on their gateway servers.
stone at 3:59 PM
@weichaolee is it compulsory or not for them to upgrade?
And next question: if my witness node stops working, will I be slashed? and how does it happen?
weichaolee at 4:00 PM
VGATE and Bi23 will play an operator role in our new gateway ecology, and witness will be introduced as a separate role
stone at 4:02 PM
@weichaolee do you mean they need to build another thing (witness) besides the task of being an Operator?
weichaolee at 4:04 PM
@stone They can remain current centralized version gateway service, but strongly not suggested
@stone Since the gateway smart contract needs to collect enough confirmations to proceed with a deposit/withdrawal request if your node stops working and causes the contract cannot receive the minimum confirmation. Anyone from the community can fill a dispute. The committee will judge according to the records on-chain. In this case, your staking deposit will be slashed.
stone at 4:04 PM
@weichaolee got it! You need to change if everyone is changing to adapt
Crypto Bear at 3:59 PM
how to run a witness node?
viteshan at 4:02 PM
@Crypto Bear This is a good question. Basically, as a way to guarantee the new gateway framework performs in order, at the beginning we would like to restrict the witness to a fixed number, and a committee led by Vite Foundation will vote to choose the first group of witnesses.
A new witness is allowed to join only when someone quit. When the start-up period is over, anyone can apply to become a witness.
Periodically, VX holders will vote for the next batch of witnesses in a smart contract. This is part of the on-chain governance of ViteX.
However, the details are still to be outlined.
Bob6768 at 4:01 PM
Also regarding the Witness Node, will there be rewards to run it?
Daniel Leedan at 4:01 PM
Thanks for the detailed explanation, I'm glad to see that the team understand that change is needed to make Vitex truly decentralized. I think your proposal is good, it sounds interesting and doable. I'd like to hear what are the difficulties of your proposal.
Allen at 4:08 PM
@Daniel Leedan In the first stage of implementation, Vite Foundation is supposed to lead a committee for the selection of witnesses. The total number of the witness must be fixed and designated by the committee in a form of voting. I would call this as a cold start. When this phrase is over, the selection will be open to every VX holders in a smart contract. Anyone can run a witness node. So I think in the cold start stage we may have to tackle some governance issues.
slimcan at 4:01 PM
I'm sure we all have some thoughts about Ethereum gas prices. For withdrawal, when witnesses submit confirmation to Ethereum smart contract, how will the witnesses be paid or compensated for gas?
viteshan at 4:10 PM
@slimcan This gas cost needs to be paid by the node. there are rewards to run a witness node. In order to calculate the cost more easily, perhaps a gas station is an alternative solution.
OKtamak at 4:05 PM
Will there be a chance for the existing full node operators to become witness operators?
Allen at 4:10 PM
Of course. By staking a certain amount of VITE or VX you will get the chance but remember you also need to be selected to be one.
At the early stage, we will assign a committee but later this process will be fully open to everyone voting in a smart contract
Oleg at 4:09 PM
I would also clarify: Why not atomic swap?
viteshan at 4:11 PM
@Oleg the atomic swap is more suitable for between two valuable tokens, such as ETH and VITE, rather than ETH and ETH-000.
Both parties to the atomic swap have the right to choose to refuse the swap.
But in this case, the gateway must provide the service of converting ETH-000 into ETH. The value of ETH-000 can be exchanged for ETH. So we did not choose the atomic swap.
Allen at 4:14 PM
Hey guys. Thanks for coming to today's discussion. I scheduled for 1 hour but too many hot discussion lol
I am going to close the discussion for now
Thanks for attending this Vite Techie forum
I am sure you may still have some questions. For anyone still has questions you can drop them here, and the Vite dev team will answer them later
See you all in the next Vite Techie Forum event.
That's good. Be waitting ViteX to be stronger than others exchanges.