Ethereum Classic Let's keep the original censorship-resistant Ethereum going!
Implicit Ethereum Classic Blockchain Information
Some necessary information appears to be missing from the Ethereum Classic (ETC) blockchain. This information is implicitly contained in the blockchain which may lead to confusion.
Account Balances — Regarding accounts, the blockchain specifies transfers but not balances. They can nevertheless be determined by accounting for all the transfers in all the blocks.
Smart Contract Storage — Regarding smart contracts, the blockchain specifies machine codes and input data but not storage values. They can nevertheless be determined by executing all the invocations on all the input data in all the blocks.
Transaction Sending Accounts — With respect to sending accounts, transactions contain digital signatures but not addresses. They can nevertheless be determined from the digital signatures and transactions using the mathematical properties of the signature algorithm.
Transaction Gas Requirements — The blockchain specifies the gas requirements for certain sets of transactions. It does not specify the requirements for every transaction separately. They can nevertheless be determined from the given transaction set gas requirements.
Average Mining Hash Rates — The blockchain specifies mining block creation times and mining difficulty parameters. It does not specify mining hash rates. However, the mining hash algorithm and mining difficulty parameter are defined such that:
<H> = <ΔT> / <D>
where <H> is the average mining hash rate, <ΔT> is the average creation time difference between consecutive blocks, and, <D> is the average mining difficulty parameter. The averages can be taken over any desired number of blocks.
The ETC blockchain brilliantly encodes information in a practical manner. It supports the ETC world computer without being unwieldy. Although it may at first appear incomplete, it still includes all the essentials.
You can contact me by clicking any of these icons:
I would like to thank IOHK (Input Output Hong Kong) for funding this effort.
This work is licensed under the Creative Commons Attribution ShareAlike 4.0 International License.
The Ethereum Classic Story - history of Ethereum Classic
The dramatic and interesting history of Ethereum Classic. How it was
formed and where it is today. The Ethereum Classic philosophy is very
different to that of Ethereum's. Some say ETC is so different, that it
is competing more with Bitcoin's niche than Ethereum's.
@cryptoking Any chance for adding our ETC pool to the list? The pool is well established but desperately needs some hashpower: https://coinfoundry.org/pool/e...
adding ? Which List? Kindly tell
@cryptoking The list of pools at the beginning of this thread :-)
Ok, Done I added in pool list
Ethereum Classic Release Geth version 5.0.0
- ECIP-1041: Defuse the Difficulty Bombherethe corresponding implementation for the Parity client. A reproducible test for client compatibility can be found here: https://github.com/ETCDEVTeam/ecip1041testUnit test compatibility with go 1.10
.tar.gz.sigfiles are detached binary PGP signatures
.tar.gz.ascfiles are detached ASCII PGP signatures
.tar.gzare archive (compressed) files containing the
To verify a release with a signature: First, make sure you have a
gpgtool installed, eg.
gnupg2. Then, if you haven't already, you'll need to import the signing key, which you'll find here. This step is included below.
# Import my signing public key $ wget https://raw.githubusercontent.com/ethereumproject/volunteer/master/Volunteer-Public-Keys/isaac.ardis%40gmail.com $ gpg --import [email protected] # Verify $ gpg --verify ./geth-classic-osx-v5.0.0-ac28808.tar.gz.sig gpg: assuming signed data in './geth-classic-osx-v5.0.0-ac28808.tar.gz' gpg: Signature made Tue Feb 20 14:01:31 2018 JST gpg: using RSA key B23DC6DC7634399484DEB8A6F36487257419D94C gpg: Good signature from "Isaac Ardis (ETCDEV Go Developer) <[email protected]>" [ultimate]
All tagged and development build downloads are also available at our automated builds website: http://builds.etcdevteam.com.
An Ethereum Classic Fork Snapshot Is Coming Next Week
Next week the ethereum classic (ETC) community is expecting to
receive coins from a ‘snapshot’ fork called ‘callisto’ (CLO). The clone
will be an exact copy of the ETC chain up until block 5,500,000 and ETC
holders will receive a 1:1 ratio of CLO coins
"Ethereum Classic Roadmap Hints Emerald Wallet Release In March"
An Official Public Release of Emerald Wallet via @ETCDEV
- Essential Token Management
- Built-in Exchange (Shapeshift)
On Ethereum Classic Mining Rewards With The New Monetary Policy
Ethereum Classic (ETC) mining rewards changed with the new monetary policy. I will discuss these changes and their effects.
ETC miners are rewarded for adding valid blocks to the ETC blockchain. These rewards consists of three parts:
Base Rewards - This part depends on the block numbers. It is paid with newly created funds. Every five million blocks (about 2.5 years) this part decreases by 20%. Initially it was 5 ETC. It changed to 4 ETC after block number five million. It will change again to 3.2 ETC after block number ten million around April 2020.
Define the block era E as a function of the block number N as follows (// denotes integer division):
E = (N - 1) // 5000000
Then the base reward is as follows:
5 ⋅ 0.8ᴱ
Uncle Rewards - This part depends on the number of uncle blocks included as well as the block numbers. It is also paid with newly created funds. Each block can include at most two uncle blocks. The reward for each uncle block is an additional 3.125% of the base reward. It is now 0.125 ETC per uncle block and will change to 0.1 ETC after block number ten million.
For the block era E and number of uncles ###em/em###, the total uncle reward is as follows:
0.03125 ⋅ ###em/em### ⋅ (5 ⋅ 0.8ᴱ )
After block number five million, miners that create the uncle blocks also get this same reward per uncle block.
Gas Rewards - This part depends on the transactions included. It is paid from the originating accounts. Miners execute the transactions and receive payments for the gas required. Each transactions specifies a price paid per unit gas.
For gas requirements G₁, G₂, G₃, … and gas prices ###em
/em###₃, …, the total gas reward is as follows:
G₁ ⋅ ###em
/em###₁ + G₂ ⋅ ###em
/em###₂ + G₃ ⋅ ###em
/em###₃ + …
Therefore, the total reward for creating a block is the following:
(1 + 0.03125 ⋅ ###em/em### ) ⋅ (5 ⋅ 0.8ᴱ ) + G₁ ⋅ ###em
/em###₁ + G₂ ⋅ ###em
/em###₂ + G₃ ⋅ ###em
/em###₃ + …
Here is a Python script that uses this mining reward formula to calculate mining rewards:
#!/usr/bin/env python3 BASE_INITIAL = 5 BASE_PERCENT = 0.8 UNCLE_PERCENT = 0.03125 N_ERA_BLOCKS = 5e6 def mining_reward(block_number, num_uncles, gas_reqs, gas_prices): """ Calculates mining rewards from block information. The gas information must be provided in lists or tuples. The gas prices must be in ETC. """ era = (block_number + 1) // N_ERA_BLOCKS base_reward = (BASE_PERCENT ** era) * BASE_INITIAL uncle_reward = UNCLE_PERCENT * base_reward uncle_rewards = num_uncles * uncle_reward gas_rewards = 0 for (gas_req, gas_price) in zip(gas_reqs, gas_prices): gas_rewards += gas_req * gas_price return base_reward + uncle_rewards + gas_rewards
Here are some example calculations on real ETC blockchain data:
>>> mining_reward(5425392, 0, , ) 4.0 >>> mining_reward(5423326, 1, , ) 4.125 >>> mining_reward(5424471, 0, [36163, 36163] , [2e-8, 2e-8]) 4.00144652 >>> mining_reward(5421363, 1, [21000, 21000, 21000, 21000, 21000], [5.5e-8, 2e-8, 2e-8, 1.6e-8, 1e-8]) 4.127541
The new monetary policy bounds the supply of ETC. Notice only the base and uncle rewards increase the supply since the gas rewards just transfer existing funds. Because the uncle rewards vary, the eventual total supply of ETC can only be approximated.
The formula for the future increase in supply per era, assuming a constant number of uncle blocks, is the following:
5000000 ⋅ (1 + 2 ⋅ 0.03125 ⋅ ###em/em### ) ⋅ (5 ⋅ 0.8ᴱ )
The factor of 2 is necessary to include the uncle block creator rewards. The total supply can be estimated from this formula by adding the contributions for the remaining eras. Era 192, which will occur in about 456 years, is the last era which increases the supply.
Assuming no more uncle blocks gives a lower bound of about 198.3 million ETC. Assuming the maximum number of uncle blocks gives an upper bound of about 210.6 million ETC.
The new monetary policy modifies mining rewards and limits the total supply of ETC. Hopefully all the details are now more clear.
Long Term Outlook for Ethereum Classic
Lately there’s been a lot of speculation about ETC, the price is rising, the Callisto airdrop is happening, and Crypto Twitter is tweeting up a storm about ETC. Some are certainly trading for short term profits, and it’s their right to, but they’re not seeing the forest for the trees. Even worse, some have dubbed ETC a shitcoin, as if we’ve existed this long to just be another pump and dump. We haven’t, we aren’t, and we won’t be if I have anything to say about it.
This article sets out to give some insight into the advancements ETC has made and the bright roadmap it has for its future.
The future of ETC is the future of all Cryptocurrencies, and that future is interoperability, there will be no one winner. ETC will become highly interoperable while others naively fight to be dominant.
At the core of our sidechains is SputnikVMwhich can run smart contracts anywhere… You can do this today. Not at some nebulous time in the future.
We’re going to have sidechains this year, transactions on them will be free, and even very low powered devices will be able to use them. We’ll be the first blockchain to properly address the needs of IoT devices. While others claim to, and start announcing partnerships before anything even works, we’ll be the first to really get it done.
At the core of our sidechains is SputnikVM which can run smart contracts anywhere, such as in the browser or you can put it in embedded devices. You can do this today. Not at some nebulous time in the future.
Our sidechains will be highly flexible. They’ll allow whoever created them to choose between PoA or PoS approaches. They can be public, private or otherwise permissioned depending on your needs.
Ease of use
Every blockchain still needs to improve their usability but we’ve made great strides. We’ve got beautiful, well-working wallets (Emerald Wallet, CEW). A simple DNS-like system (via CEW). Mobile wallets exist and more are coming. We’re supported everywhere, we’re on every major exchange, we’re very popular internationally, we’re even making our way into Cardano’s wallet.
Sent myself some ETC and it showed up in Emerald Wallet in about 20 seconds.
Emerald Project will provide a common high-level framework to ease development on Ethereum Classic. Imagine libraries where integrating with hardware wallets is as easy as
ledger.connect(), or interacting with tokens is as simple as
Token t = new Token(0xbeef..); t.transfer(0xfa34..). This is just pseudocode but that’s where we are heading. No messing with RPC or hunting down ABIs necessary.
Emerald Project doesn’t end at just the code though, it also extends to the UI. Check out Emerald Wallet, look how great it looks, your apps will be able to seamlessly drop in the same elements. On the user end the consistent UI will create a familiar and cohesive feel across ETC projects.
Improved developer documentation is also coming and will be announced in the coming months.
Installing Emerald Wallet took me literally 1 minute to install and immediately start using ETC.
I’ve also just installed Mist for Ethereum and it looks like I’ll be waiting a while. I clicked on “Launch Application” several times and nothing is happening. I seem to just be stuck on block
While in Emerald Wallet I sentmyself some ETC and it showed up in Emerald Wallet in about 20 seconds.
Mist on the other hand appears to have crashed. I restarted it.
Back to waiting.
In fairness it did eventually sync. And before you get mad that this is a dig at Mist developers, it’s really not, developing a good wallet is hard work, it is not easy, errors happen, and I’m sure they’ll fix these above issues.
This is simply to illustrate that ETC does have a good wallet which is able to go from install to using the ETC network in about a minute. Those who claim ETC can’t accomplish a “simple” task like a wallet are misinformed at best and willfully ignoring the issues within their own communities.
The Subreddits, Forums, Discord, and Telegrams all have separate owners. Discussion is very open and you’re not required to agree with the crowd.
We’re very anti-pump and dump, want to know why ETC’s price doesn’t rise endlessly like other coins? Because when you join our forums you may very well find that many in the community won’t promise you the moon, and we’re aware of our flaws and working hard to fix them. We think this will make ETC much more widely used in the long term, at the cost of short term lambo-moon pipe dreams.
We’re also not going to police you and tell you what to believe in or what not to. And we’re not going to put our names/faces on every project that comes along. We have principles and we will stick to them.
Coder, Project Manager, Blockchain enthusiast
Ethereum Classic - CLassic Mask Chrome Extention Updated Version: 3.9.16 is Now available
Version: 3.9.16 Updated:
March 21, 2018
Languages: See all 5
Developer Email: [email protected]
Ethereum Classic - Next Protocol Upgrade - ECIP1041 at Block 5.9 Million!
Geth > v5.0.0 ✅
Parity > v1.9.3 ✅
Mantis v1.1 ✅
EthereumClassic.org Redesign and Improvement [IN PROGRESS] [LAUNCH: MAY 21 2018]
ethereumclassic.org currently averages 300k views per month, however the information on it is woefully outdated, and its design is not up to par with other blockchain websites. This is largely a consequence of the abrupt and ad hoc nature that caused ETC’s existence.
The website serves as little more than a portal to ETC-related resources. There’s also a blog with a rather antiquated appearance, and a history of ETC that is entirely outdated and very DAO-heavy. While our origins are important it’s really not the end-all, be-all of relevant ETC information.
The ethereumclassic.org website needs to be completely redesigned with many of the existing materials migrated over. Not wanting to destroy an history, the original website itself will always be preserved on GitHub and we can likely point a subdomain at it.
The new website will be broken down into several sections and designed to welcome people of varying familiarity with ETC.
For current ETC users we’ll have much more information so that ETC’s development progress can be easily seen, wallets can be easily downloaded, documentation and FAQs are readily available, and a blog with multiple contributors can keep everyone updated on ETC news.
For the newcomers it will familiarize them to ETC’s capabilities and philosophy. Think less emphasis on The DAO and more emphasis on how we are still conducting ourselves in a highly open and decentralized manner.
Text/Copy for the website is here. Please review/edit if you can.
Understanding Blockchain / ETC
Understanding blockchain: Blockchain in general.
Why ETC: ETC’s value proposition/mission statement. ETC vs. other blockchains. Accompany with a short explainer video if possible.
Getting started/New user onboarding: How to use ETC/basics.
We need a section for each dev team (currently 3). Ideally these can be displayed side-by-side (if not too cluttered) and each dev team would have the ability to edit their own section (and no others). Alternatively separated by tabs. Should have progress bars to be easily understandable at a glance. Structure should be Title & Progress bar with expandable details. The luxcore approach to this is particularly nice: https://luxcore.io/roadmap
Various social media links (reddit, telegram, discord, forums, etc.)
Wallet downloads (Emerald Wallet) / links to web wallets (CEW)
Likely integrating medium.com as many ETC bloggers are familiar with it. Also popular among tech users and gets our posts more exposure.
We’re very popular internationally, we’ll need to keep as much content as possible accessible to non-English speakers.
How you can get involved
Pick something above and comment how you want to be involved below. We can definitely use writers for the blog, FAQ/Guide contributions, and explainers for newcomers.
We’ll also need community members to review translations, the website is very popular across many countries, namely: Russia, US, Ukraine, China, South Korea, UK, India, Turkey. Russia/US are our top priority for the time being.
The community needs to be involved in the creation of the site.
The website design and hosting itself will be funded by the ETC Cooperative (etccooperative.org).
Ethereum Classic- An Introduction To Tries
I will describe tries and explain why they are so important.
Tries are used extensively in blockchain systems and elsewhere. They are tree structures that represent sets of key value pairs in software. It is possible to instead just represent key value pairs contiguously. However, then it would be more difficult to make changes and perform searches than with tries. Tries are composed of connected nodes that store values. Different nodes imply different keys based on their positions. A common application that uses tries is internet routing.
In the trie diagram above, the dots represent nodes and line segments represent connections. Note that each dot has a left and right line segment below it. The key corresponding to each node is found as follows:
- Find the path from the top node to the node.
- For each left line segment along the path, add a “0” to the key.
- For each right line segment along the path, add a “1” to the key.
Therefore, the yellow dot corresponds to the key “010”. The blue dot corresponds to the key “11”. A similar procedure is used for all tries to determine keys.
The diagram above represents a trie where each node connects to 16 nodes below it. Note that each line segment will add one of 16 possible values (nibbles) to the keys. Therefore, the yellow dot corresponds to the key with the hexadecimal representation “0x0f2”. The previous trie diagram represented 15 nodes. This one represents 4369 nodes!
When representing sets of key value pairs with tries, there is often thousands of unused nodes. Compression techniques are often used to more efficiently store tries with lots of unused nodes.
The terms radix trees and Patricia trees also refer to tries. Sometimes, but not always, these terms imply “compressed” tries that more efficiently manage unused nodes.
Tries are tree structures that store key value pairs in a format that facilitates changes and searches. They are used extensively in many applications. Hopefully now you have gained the fundamentals to be able to take a deeper dive into these concepts.
The Ethereum Classic Blockchain Is INCOMPLETE & Why That Is OK
The Ethereum Classic (ETC) blockchain does not contain all the necessary state information for the ETC system to operate. It does not even implicitly contain all that is needed! I will elaborate and discuss how this is handled.
The state of the ETC system includes all the balances, programs, nonces and other values in memory. This data is organized into accounts. Therefore, the state is the set of all account values.
Blocks contain transactions which specify changes to states. If the state is known for any time, the state can be determined for all future times by analyzing the transactions in the following blocks. However, the blockchain does not completely specify the state for any time! Admittedly, all blocks contain state hashes. But, these hashes are irreversible!
The initial state for the first block contains accounts with nonzero balances. In other words, all funds did not originate from mining. Do you wonder how miners know the account balances when processing account transfers involving these initially funded accounts? The answer involves the ETC node databases.
ETC nodes typically contain databases that store the blockchain as well as additional information. For example, Linux Parity ETC node databases typically use the following directory:
Linux Geth ETC node databases typically use this directory:
For performance reasons, Parity and Geth use nonrelational (NoSQL) key value databases. These databases can be accessed directly. They can also be accessed using the Web 3 library.
All ETC nodes must contain a complete specification of the initial state for the first block. This is required in addition to the blockchain. For example, on Geth ETC nodes, this initial state is in the database and can be viewed with the following command:
geth dump 0
ETC nodes require a complete specification of the initial state for the first block as well as the blockchain. ETC nodes typically store this information in databases. Only with both of these pieces of information can the ETC system operate.
Ethereum Classic April Dev Update Geth v5.1.0, Emerald Wallet v0.9.0-rc3 and more updates
Richard Schumann and Darcy Reno recently joined the team, as Graphic Designer and Program Manager, respectively.
Eclipse attackECIP-1041, the Difficulty Bomb Defusion. If you’re running geth, please upgrade!
ECIP-1041 has passed human consensus and is now either implemented or scheduled for implementation in the major clients. Woohoo!! Please update your clients. Doing so will help us defeat the coersive Difficulty Bomb, preventing an "explosion" of difficulty which, if not thwarted, would result in expontentional growth of network difficulty and thus exponentatial degradation of miner profitability and network security.
We are extremely grateful to the many volunteers and members of our communityfor their ongoing contributions.