Getting started with Dapp is really too much trouble. If the Ethereum ecology wants to be popular, it should allow new users to use their functions directly, instead of arranging several mountains to let users climb the mountains.
- The Wall Street Journal: Visa, MasterCard and other companies are rethinking participation in Libra
- Source: "The central bank recently officially launched digital currency rumors" are inaccurate guesses
- Why does China have to seize the opportunity to issue central bank digital currency?
- After visiting Libra’s base (Switzerland), US legislators have not let go of their guard
- Xinhua News Agency: Some people deserve to be vigilant in the name of blockchain
- Getting started with blockchain | What is a good digital currency valuation model?
This means that you need to pay the cost of the new user . The current Ethereum agreement does not provide a native method to achieve this. However, thanks to the public/private key pair, users can pay for gas charges by signing the meta-transaction and motivating desktop miners.
In the beginning, you will automatically generate a key pair and save it in your browser. Those password punks must be scornful of this way, but users should not be blocked by the request to download the wallet. First, they need to be able to use the product and provide value through Dapp. Once they receive some tokens or Ethereum, they should be immediately transferred to a wallet like MetaMask or Trust.
First of all, I would like to introduce some basic concepts to lay the foundation for explaining the meta-trades on Ethereum. But if you are a cryptographer, skip it straight…
Through the hash function, information of varying lengths can be transformed into an arbitrary but predictable (deterministic) result. This is a magical function that transforms a whole bunch of information into a short series of data "fingerprints" that can be used as abstracts. The resulting "fingerprint" is consistent for a given input. If there are any minor changes in your raw data, the resulting hash value will be quite different.
The public/private key pair uses some dizzying mathematics. Of course, it is not difficult to figure out the concept; you can use a private key to sign a message, and anyone can use the corresponding public key. Prove the correctness of the signature (Translator's Note: verify that the private key of the signed transaction is exactly the same as the corresponding public key). Again, I can give you a message with my signature, and you can use my public information to prove mathematically that I have signed this particular message. The private key is extremely sensitive and can never be publicized to others, and the public key can be widely shared. Your Ethereum address is your public key, which represents your identity (Translator's Note: To be precise, your Ethereum address is derived from your public key in one direction).
The public key can also be used to encrypt a short message, and then only the owner of the private key can decrypt the message. It doesn't matter, but it's cool, isn't it? So I think I should tell you 🙂 (Translator's Note: This is called "asymmetric encryption".)
From @cooganbrennan: "By signing a hash of a string of data, you implement three things: Don't interfere: you know that the data has not been tampered with identity: you can be clear that the sender of the transaction is non-repudiation: after the person who sent the transaction Can't deny that the transaction was sent" transaction
To interact with the blockchain, you need to send a transaction. A transaction consists of a few parts, and I like to use the analogy of huge slow mail to compare:
- Destination Address: The address of the Ethereum to which the transaction is sent. Can be another person or a smart contract. You can think of it as the address of the address written on the front of the envelope.
- Value: It's like putting a lost cash in the envelope to the recipient.
- Data: This is like the content on the letter you sent. This part is usually empty when you only send value.
- Nonce: Since the content you send is digital, it may be copied. In order to prevent the same letter from being sent twice, we will track a count. This is a bit like the identity of the envelope itself. (Another image about nonce is a check number. Technically, the bank should not cash a cash check before the last cash check)
- Gas Price: It's like some change in your mailbox, which is used to motivate the postman to send you a letter. The more change you put, the more likely the postman will take your letter.
- Gas Limit: This is like the farthest limit of the postman's delivery. Suppose he eventually goes to the other side of the globe to send you a letter, which means he has to circumvent many obstacles… You certainly want to avoid this because you have to pay for his itinerary.
- Signature: In the end, we put together the above data and hash it, and seal your envelope with your signature (the hash value), which proves that the contents are verified by you.
This is a very imprecise analogy, and there is a whole lot of analogy like this in my mind. Come and talk while drinking beer, I am waiting for you at Devcon.
My grandfather once told me a story about his brother planting tomatoes in his backyard in Kansas. He placed the tomatoes picked the night before on the steps in front of the door, next to a balance marked with price. Every night he will go out and recover the money he earned from a cigar box. This system relies heavily on trust between people. Smart contracts are a bit like this, but it's math, not trust.
I like to think of smart contracts as storage with a set of rules. Suppose there are 25 tomatoes in the box, the rule is 15 cents a pound. If you send a 30-cent letter to the cigar box, two pounds of tomatoes will be delivered to your home. This rule will always run unless the tomato is sold out. At the end of the day, the owner of the contract can take all the money in the cigar box because he proves himself to be the owner of the box with the private key.
Contracts can also communicate with each other. They can even use the skills we mentioned earlier – proving that a particular message was signed by a particular account. This is also the core of this technology (metatransaction)…
First of all, I have carefully designed a transaction that is similar in structure to the general Ethereum deal, but I have added some extra information to it:
Data: This part of the letter has become more complicated. It is encoded information that details the operations to be performed, including the hash of the function name to be called and the parameters to be passed to the function.
Reward: Economic incentives are especially important in a decentralized system. If you want "desktop miners" to pay for the cost of your transaction, you have to pay. However, the money does not come from your account, but from the smart identity of the agent. Ethereum or other tokens can be used to pay the miners.
Requirements: Additional requirements can be included in the transaction and can be checked through smart contracts. For example, check transactions in chronological order. Assuming the deal can only be completed by the end of the month, the contract can verify this. Next, I will not send the transaction directly to a smart contract, I will send the transaction to a secondary network. This network will analyze the legitimacy of my request and ensure the validity of my signature. They then choose which transactions are worth submitting and interact directly with the blockchain.
Eventually, when my agency contract receives my transaction from a third party, it analyzes the instructions in the transaction, then pays the third party and executes my instructions. These instructions can be anything that can be done by sending tokens, calling functions, or any common blockchain transaction.
Screen demo of Ethereum Dollar Trading
Meta-transaction through an identity agency contract at Ethereum
With meta-transactions, we can interact with the blockchain with an account that has no Ethereum at all. This technology may be indispensable for promoting the popularity of Ethereum. Users don't care about decentralization or private keys; they are more concerned with using your Dapp to do something important to them.
Another great use case for meta-transactions is "Universal Logins." You should put the Ethereum in a "cold" wallet and use the "cold" wallet to fund an agency contract. This contract will act as your chain identity and hold some funds or tokens on your behalf. Then, as new devices come in and out of your life, you can use identity brokers to trust them. These devices never hold any funds, and the private keys inside have never been transferred. At the same time, they can interact using meta-transactions and blockchains.
Jump Agent – an identity agency contract on Ethereum to initiate a meta transaction for an account without an Ethereum
Thank you for reading this article about Ethereum Trading. You can come to Twitter to find me: https://twitter.com/austingriffith or learn more about me through my portfolio.
Source of inspiration:
@avsa – https://www.youtube.com/watch?v=qF2lhJzngto
@owocki — https://twitter.com/owocki/status/1021859962882908160
@丹finlay —— https://twitter.com/danfinlay/status/1022271384938983424
@PhABCD – https://twitter.com/PhABCD/status/1021974772786319361
Gnosis Security Contract <https://github.com/gnosis/safe-contracts>
uPort Identity Contract <https://github.com/uport-project/uport-identity>
(This article is from the EthFans of Ethereum fans, and it is strictly forbidden to reprint without the permission of the author.
Original link: https://medium.com/@austin_48503/ethereum-meta-transactions-90ccf0859e84
Author: Austin Thomas Griffith
Translation & Proofreading: Zeng Wei & A Jian