3 minutes to understand Ethereum and smart contract
a brief history of etheric Classics (etc)
etheric classics began with an unfortunate event
in May 2016, the decentralized autonomous organization (DAO) held a token sale with the goal of establishing a blockchain based venture capital to fund future decentralized applications (dapps) in the Ethereum ecosystem
basically, Dao is a complex smart contract that operates in a decentralized way - computer code that automatically performs tasks between multiple parties when conditions are met
despite its ambitious goals and successful token sales, Dao's code has a major vulnerability that allows attackers to steal eth from decentralized organizations
the attacker took advantage of this vulnerability in June 2016, triggering the infamous Dao hacking event, and maliciously stole eth worth about US $50 million
there is no doubt that Dao hacking has shocked Ethereum community and made eth price drop from $20 to $13
after the Dao hacking, the Ethereum community has to choose from three options
< UL >do nothing and try to bear the consequences of the attack
start soft bifurcation to recover funds
deploy a hard fork to recover the lost eth
both soft and hard bifurcations are significant network upgrades. However, soft fork allows users who are not upgraded to communicate with upgraded users, while hard fork is not backward compatible with previous versions
as developers realize that deploying soft forks will expose the network to distributed denial of service (DDoS) attacks, Ethereum community decides to initiate hard forks to recover the funds lost in Dao hacking attacks
although this scheme is supported by most people, a small number of people in Ethereum community oppose it. They think that "code is the law" and blockchain network should be unchangeable
the failure of both sides to reach an agreement on the solution eventually led to the fragmentation of Ethereum blockchain
those who tried to recover the lost eth chose the hard fork and opened the Ethereum (ETH) blockchain as we know it today, while another group stayed on the original Ethereum classic (etc) chain
what problems does ethereal classic solve
Ethernet classic (etc) is a blockchain platform that allows developers to deploy smart contracts and dapps
although this function is the same as Ethereum (ETH), etc blockchain has two main differences
first of all, Ethereum classic community opposes tampering with distributed ledger and supports the view that "blockchain network cannot and should not be modified"
secondly, although there is no rigid upper limit on the total supply of eth, it is allowed to create 230 million etc at most by adopting the monetary policy of constant supply
as a bonus item, ethereal classic launched Atlantis hard bifurcation last year to increase the interaction with Ethereum and improve the privacy protection of transactions through ZK snarks
the trading platforms recommended by ethereal classic etc are: Fire coin, okex, AAX, etc strong>
DTV share, Ethereum is an open source public blockchain platform with intelligent contract function. It provides decentralized virtual machines to handle point-to-point contracts through its private cryptocurrency, Ethernet. Key points: open source, smart contract function, public chain platform, Ethernet
Thank you for your recommendation. Here I would like to share with you the following:
forsage international crowdfunding, the revolutionary smart contract technology of the new generation platform, originated from the development of Russian technical team, provides distributed market participants with the ability to directly engage in personal and commercial transactions. The smart contract of forsage distributed global shared matrix project is open and can always be viewed on the Ethereum blockchain. These are real smart contracts, which will be implemented on the Ethereum public chain forever without any third party tampering. The global shared matrix project is completely decentralized, aiming to preach Ethereum, so that more players can know Ethereum, smart contracts and forsage code btshijie
what is Ethereum
Ethereum is often compared with bitcoin, but the situation is different. Bitcoin is a kind of cryptocurrency and distributed payment network, which allows bitcoin to be transferred between users
the Ethereum project has a bigger goal. As Ethereum said, "Ethereum is a distributed platform running smart contracts.". These smart contracts run on "Ethereum virtual machine", a distributed computing network composed of all devices running Ethernet nodes
"distributed platform" means that anyone can set up and run an Ethereum node just as anyone can run a bitcoin node. Anyone who wants to run "smart contracts" on nodes must pay the operators of these nodes in ether, which is a cryptocurrency related to Ethereum. Therefore, the person running the Ethernet node provides computing power and gets paid in the Ethernet, which is similar to the way that the person running the bitcoin node provides hash power and pays in bitcoin
in other words, although bitcoin is only a blockchain and payment network, Ethereum is a distributed computing network, and its blockchain can be used for many other things. Details are provided in the Ethereum white paper
what is smart contract
smart contracts are applications that run on Ethereum virtual machines. This is a distributed "world computer" with computing power provided by all Ethereum nodes. Any node providing computing power will pay in ether digital currency as a resource
they are named smart contracts because you can write "contracts" that execute automatically when you meet the requirements
for example, imagine building a KickStarter like crowdfunding service on Ethereum. Someone can set up an Ethereum smart contract to pool funds to others. The smart contract can be written as follows: when $100000 of currency is added to the pool, it will be sent to the recipient. Or, if the $100000 threshold is not reached within a month, all currencies will be returned to the original holder of the currency. Of course, this would use ether instead of dollars
all this will be done according to the smart contract code, which can automatically execute the transaction without the need for a trusted third party to hold the currency and sign the transaction. For example, KickStarter charges 5% above the 5% payment processing fee, which means it will charge $8000 to $10000 for a $100000 crowdfunding project. Smart contracts don't have to pay a fee to a third party like KickStarter
smart contracts can be used for many different things. Developers can create smart contracts to provide functions for other smart contracts, similar to the way software libraries work. Alternatively, smart contracts can simply be used as applications to store information on the Ethereum blockchain
in order to really execute the smart contract code, someone has to send enough Ethernet tokens as the transaction fee - how much depends on the required computing resources. This costs the Ethereum nodes to participate and provide computing power. The global shared matrix project, which is completely decentralized, aims to preach Ethereum and let more players know Ethereum, smart contracts and forsage code btshijie
& quot; A smart contract is a set of promises defined in digital form, including the agreements on which the contract participants can execute these promises& quot;
let's explore the meaning of his definition in more detail
commitment
a set of commitments refers to the (often mutual) rights and obligations agreed by contract participants. These commitments define the nature and purpose of the contract. Take a sales contract as a typical example. The seller promises to deliver the goods and the buyer promises to pay a reasonable price
digital form
digital form means that contracts have to be written into computer-readable code. This is necessary, because as long as the participants reach an agreement, the rights and obligations of smart contract establishment are executed by a computer or computer network
to further explain:
(1) when will the parties to the smart contract reach an agreement? The answer depends on the specific smart contract implementation. Generally speaking, the contract is discovered when the parties are committed to the execution of the contract by installing the contract on the contract host platform< (2) contract execution
& quot; Execute & quot; And the real meaning of it also depends on implementation. Generally speaking, implementation means active implementation through technical means
(3) computer readable code
in addition, the contract needs specific & quot; Digital form & quot; Very much depends on the agreement that the parties agree to use
protocol
protocol is technical implementation, on this basis, the contract commitment is realized, or the contract commitment is recorded. Which agreement to choose depends on many factors, the most important of which is the nature of the assets being traded ring the performance of the contract
take the sales contract as an example. Suppose that the participants agree to pay in bitcoin. The chosen protocol will obviously be bitcoin protocol, on which the smart contract will be implemented. Therefore, the contract must use & quot; Digital form & quot; It's bitcoin scripting language. Bitcoin scripting language is a non Turing complete, imperative, stack based programming language, similar to forth.
a total of 22 weeks, divided into five stages,
the first stage is 4 weeks, go language foundation and network concurrency, learning the introctory go language,
the second stage is 4 weeks, go language practical web development, crawler development, cryptography, consensus algorithm, realizing lightweight public chain, learning the website and crawler that can develop golang, Achieve lightweight blockchain
stage 3, 4-week Ethereum source code analysis and smart contract DAPP development, master Ethereum core and smart contract development, as well as blockchain,
stage 4, 4-week super ledger, bitcoin EOS, source code analysis and smart contract practice, master super ledger development, cat bitcoin, bifurcated EOS after learning, As well as DAPP development of smart contract
phase 5, 6-week project practice, five enterprise level projects, and one year of blockchain project experience after learning
from the characteristics of the language itself, go is a very efficient language, which highly supports concurrency. Go language itself pays more attention to distributed system, and concurrency processing is relatively good, such as advertising and search, That kind of high concurrency server
go language advantages:
excellent performance, can be directly compiled into machine code, does not rely on other libraries, go is extremely fast. Its performance is similar to Java or C + +
concurrency is supported at the language level, which is the biggest feature of go. It is born to support concurrency, and go is the concurrency supported in gene, which can make full use of multi-core and make it easy to use concurrency
the built-in runtime supports garbage collection, which is one of the features of dynamic language. Although GC is not perfect at present, it is enough to cope with most of the situations we can encounter, especially GC after go1.1
it's easy to learn. The authors of go language all have the gene of C, so go naturally has the gene of C. There are 25 go keywords, but the expressive ability is very strong. It almost supports most of the features you've seen in other languages: inheritance, overloading, object, etc
rich standard libraries, go has built a large number of libraries, especially the network library, which is also my favorite part< As like as two peas, br / > built-in powerful tools, Go language is built with many tools chain, the best should be gofmt tools, automatic formatting code, make team review become so simple, code format is exactly the same, it is very difficult to think differently.
cross platform compilation and fast compilation. Compared with the sluggish compilation speed of Java and C + +, the fast compilation time of go is a major efficiency advantage
disadvantages of go language:
package management: package management of go language is absolutely not perfect. By default, it has no way to make a specific version of the dependency library, nor can it create replicable builds. In contrast, python, node and Ruby all have better package management systems. However, with the right tools, the package management of go language can also perform well
lack of development framework: go language does not have a major framework, such as Ruby's rails framework, Python's Django framework or PHP's laravel. This is a heated discussion in the go language community, because many people think that we should not start with using frameworks. This is true in many cases, but if you just want to build a simple crud API, it's much easier to use Django / djrf, rails laravel, or Phoenix
exception handling: go language can help developers deal with compilation errors by simply returning errors (or call stack) through functions and expected calling codes. Although this method is effective, it is easy to lose the scope of the error, so it is difficult to provide meaningful error information to users. Error package can solve this problem by allowing us to add context and stack trace to return error
another problem is that we may forget to handle errors. Static analysis tools such as errcheck and megacheck can avoid these errors. Although these solutions are very effective, they may not be the right way.
-
about the variability of blockchain
-
eth, if most people agree to modify the chain, that is, variability, then they can modify the blockchain records and contracts
-
etc, blockchain records and contracts can't be modified, that is, they can't be tampered with
-
here are the advantages and disadvantages of the two methods
The advantage of -
variability is that people can make timely changes to make the right decisions. Therefore, modifying the specification is more practical than finding loopholes
-
non modifiability means that no matter how smart people are at that time, it is impossible not to make mistakes. Therefore, when problems arise in this scheme, it is best to find and solve the loopholes through the existing legal framework
-
differences in development
-
eth, whether it is intentionally arranged or since its birth, the core decisions of blockchain are made by Ethereum foundation with the participation of the community and most of them are developed by it
-
etc, the decision-making of blockchain is mainly decided by the feedback of three loose, collaborative teams with community participation
-
in any case, anyone can put forward improvement suggestions for the two kinds of blockchains. This is the benefit of open source, and it is also very common. You will find that developers of the two chains communicate with each other through GitHub and reddit. I hope to improve the frequency of communication in order to achieve the common goal
-
about compatibility
-
at present, the two kinds of blockchains are compatible with each other. Contracts or applications written by eth can be applied on etc, and vice versa
-
eth, focusing on ewasm, is committed to providing a platform for more and more developers, while the issue of contract security is secondary, such as viper
-
etc focuses on making developers create more secure contracts, such as viper, iohk research, at the cost of consuming the number of potential developers
-
it's obvious that both chains can accept each other, regardless of whether their wishes are the same or not. My view is that the number of developers is not necessarily related to the quality of the proct
-
about the transaction speed
-
eth, the average is 25 seconds, which will be shortened after upgrading
-
etc, with an average time of 14 seconds, maintained at 10-14 seconds after upgrade, according to ecip-1010 and ecip-1036 protocols
-
about the block capacity
-
eth, with the daily trading volume of eth graally reaching 5 million, the block capacity is graally saturated. This situation is similar to the recent transaction cost of bitcoin. This problem can be solved by expanding the block capacity by increasing the default fuel limit
ETC, At present, there is still a lot of room for block capacity. As more and more people accept etc, the block capacity will also increase, just like eth
-
about community
-
eth, mainly discuss on reddit
-
etc, mainly discuss on slack
-
about monetary policy
-
eth, the planned supply is growing steadily, resulting in an average inflation of 3% in eth blockchain in its life cycle
-
etc, before 2025, inflation will reach 3%, and then the total supply will reach 200 million etc, and then there will be deflation
As for the regional distribution of trading volume, China accounts for 20%, South Korea 25% and the United States 25% In etc, China accounts for 50%, South Korea 25% and the United States 10% About securities, at present, investors do not have the option to trade securities. Recently, one of eth's ETFs, trading open-end index funds, was denied by the regulators -
etc owns etc trading trust, which allows investors to own etc instead of the asset itself
although bitcoin and Ethernet are both digital currencies, unlike bitcoin, the main purpose of Ethernet is not to build itself as a payment substitute, but to facilitate and monetize the operation of Ethereum, so that developers can build and run distributed applications
The idea of Ethereum was born in 2013. Vitalik buterin ˙ When he was a programmer in the bitcoin community, he suggested to the core developers of bitcoin to develop a language for application developers to facilitate the development of various applications. Bitcoin core developers disagree. So God V decided to develop a new platform for this purpose
V God wrote the white paper of etheric currency in 2013, in which he explained the goal of building a decentralized program. In 2014, we got development funds through crowdfunding, so we developed the Ethernet system< (better digital currency trading platform "currency exchange")
since its birth, it has carried out four hard bifurcations so far
for the first time, in order to adjust the difficulty
released a stable version of "homeland" for the second time
for the fourth time, in order to prevent DDoS and rece weight
there is only the third hard fork, because of the hacker attack, and forced to fork. This is the Dao event
On July 30, 2015, v-god and Ethereum Foundation created the first smart contract platform and designed the Dao Ethereum contracton April 30, 2016, the Dao smart contract was officially deployed, and the world's largest crowdfunding was completed, reaching an amazing $150 million As an aside, the biggest crowdfunding event in time is EOS crowdfunding, which has reached an even more amazing $5 billion!)
on June 17, 2016, the Dao was attacked by hackers, who stole about 50 million US dollars of Ethernet currency, and the price also plummeted from US $20 to US $15, causing great harm to Ethereum. In order to recover the loss of investors, the community finally decided to hard fork
therefore, on July 20, 2016, at the block height of 1920000, the hard branching was successful, and the new chain is called Ethereum eth, while the original chain is now Ethereum classic etc
what is Ethereum
Ethereum is often compared with bitcoin, but the situation is different. Bitcoin is a kind of cryptocurrency and distributed payment network, which allows bitcoin to be transferred between users
related: what is bitcoin? How does it work
Ethereum has a bigger goal. As Ethereum says, "Ethereum is a distributed platform running smart contracts.". These smart contracts run on "Ethereum virtual machine", a distributed computing network composed of all devices running Ethernet nodes
"distributed platform" means that anyone can set up and run an Ethereum node just as anyone can run a bitcoin node. Anyone who wants to run "smart contracts" on nodes must pay the operators of these nodes in ether, which is a cryptocurrency related to Ethereum. Therefore, the person running the Ethernet node provides computing power and gets paid in the Ethernet, which is similar to the way that the person running the bitcoin node provides hash power and pays in bitcoin
in other words, although bitcoin is only a blockchain and payment network, Ethereum is a distributed computing network, and its blockchain can be used for many other things. Details are provided in the Ethereum white paper
what is ether
Ethernet is a digital token (or cryptocurrency) related to Ethereum blockchain. In other words, Ethereum is the token and Ethereum is the platform. But now people often use these terms alternately. For example, coinbase allows you to buy Ethereum, which stands for Ethereum
this is technically "altcoin", which actually means a non bitcoin cryptocurrency. Like bitcoin, ether is supported by distributed blockchain - in this case, Ethereum blockchain
developers who want to create applications or Ethereum smart contracts on Ethereum blockchain need Ethernet token to pay for nodes to host it, while users of Ethereum based applications may need Ethernet to pay for services in these applications. People can also sell services outside the Ethereum network and accept Ethernet payments, or they can sell Ethernet tokens in cash - just like bitcoin