create account

Why Ethereum Classic Uses An Incorrect SHA3 Implementation by cseberino

View this thread on: hive.blogpeakd.comecency.com
· @cseberino · (edited)
$21.75
Why Ethereum Classic Uses An Incorrect SHA3 Implementation
# SHA3 Description

![Keccak](http://i.imgsafe.org/a75d974ef2.png)

The Secure Hash Algorithm 3 (SHA3) functions are referred to as SHA3-224, SHA3-256 and SHA3-512.  The hash sizes are the same as SHA2.  Therefore, SHA3 can easily replace SHA2 should that become necessary.  The SHA3 algorithms however are *substantially* different.  These differences will hopefully make any weaknesses ever found in SHA2 not also apply to SHA3.  There are no known vulnerabilities in either SHA2 or SHA3.

# SHA3 History

![NIST](http://i.imgsafe.org/a75ea264c8.png)

Several years ago improved attacks and increased computing power made MD5 and SHA1 insecure for some applications.  People became concerned that improved attacks might also make SHA2 insecure for some applications.  Therefore, the National Institute of Standards and Technology (NIST) began the process of finding an alternative in 2006.  Keccak became the official SHA3 standard in 2015.  Keccak functions have *multiple* adjustable parameters.  Different choices imply different levels of security and performance.

# SHA3 Controversy

![Snowden](http://i.imgsafe.org/a75e37495d.jpg)

NIST attempted to make changes to the selected Keccak functions *after* the peer review process to increase performance.  The new candidates were all legitimate Keccak functions and not necessarily a bad idea.  Unfortunately for NIST, these changes were proposed shortly after the Edward Snowden revelations.  Snowden was a National Security Agency (NSA) contractor who exposed top secret information about several questionable programs starting in 2013.  Documents suggest the NSA may have colluded with NIST to *intentionally* weaken the [Dual_EC_DRBG standard](https://en.wikipedia.org/wiki/Dual_EC_DRBG).  Therefore, the reaction to the proposed SHA3 changes was ferocious.  NIST eventually backpedaled and reverted to more secure albeit slower Keccak function choices. 

# SHA3 & ETC

![confusion](http://i.imgsafe.org/a76dc05292.jpg)

The Ethereum (ETH) system was developed in the midst of this drama.  The Ethereum Foundation decided not to follow every twist and turn that occured after the SHA3 peer review process.  Therefore, ETH uses a hash function that today is referred to as Keccak-256 instead of SHA3-256.  Because Ethereum Classic (ETC) inherited this design decision, it also uses Keccak-256. There is nothing wrong with that except that Keccak-256 is referred to in many places as SHA3.  This has led to lots of [confusion](http://ethereum.stackexchange.com/questions/559/why-arent-solidity-sha3-hashes-not-matching-what-other-sha3-libraries-produce).  There are multiple Ethereum Improvement Proposals (EIPs) to fix this.  Solidity has *already* implemented some corrections.  If you understand now, please support my [Ethereum Classic Improvement Proposal](https://github.com/ethereumproject/ECIPs/blob/master/ECIPs/ECIP-1018.md) (ECIP) to address this.

# Feedback

Feel free to leave any comments or questions below.  You can also contact me by clicking any of these icons:

[![twitter](http://i.imgsafe.org/fcbc8685c1.png)](https://twitter.com/chris_seberino) [![facebook](http://i.imgsafe.org/fcbc627df9.png)](https://www.facebook.com/cseberino) [![linkedin](http://i.imgsafe.org/fcbcf09c9e.png)](https://www.linkedin.com/in/christian-seberino-776897110)

# Acknowledgements

I would like to thank IOHK (Input Output Hong Kong) for funding this effort.

# License

![license](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)

This work is licensed under the Creative Commons Attribution ShareAlike 4.0 International License.
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 75 others
properties (23)
authorcseberino
permlinkwhy-ethereum-classic-uses-an-incorrect-sha3-implementation
categoryetc
json_metadata{"tags":["etc","eth","ethereumclassic","ethereum","blockchain"],"image":["http://i.imgsafe.org/a75d974ef2.png","http://i.imgsafe.org/a75ea264c8.png","http://i.imgsafe.org/a75e37495d.jpg","http://i.imgsafe.org/a76dc05292.jpg","http://i.imgsafe.org/fcbc8685c1.png","http://i.imgsafe.org/fcbc627df9.png","http://i.imgsafe.org/fcbcf09c9e.png","https://i.creativecommons.org/l/by-sa/4.0/88x31.png"],"links":["https://en.wikipedia.org/wiki/Dual_EC_DRBG","http://ethereum.stackexchange.com/questions/559/why-arent-solidity-sha3-hashes-not-matching-what-other-sha3-libraries-produce","https://github.com/ethereumproject/ECIPs/blob/master/ECIPs/ECIP-1018.md","https://twitter.com/chris_seberino","https://www.facebook.com/cseberino","https://www.linkedin.com/in/christian-seberino-776897110"],"app":"steemit/0.1","format":"markdown"}
created2017-01-27 02:09:30
last_update2017-01-29 18:21:39
depth0
children6
last_payout2017-02-27 04:20:21
cashout_time1969-12-31 23:59:59
total_payout_value16.655 HBD
curator_payout_value5.096 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length3,596
author_reputation5,161,857,859,658
root_title"Why Ethereum Classic Uses An Incorrect SHA3 Implementation"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id2,354,018
net_rshares54,248,710,322,954
author_curate_reward""
vote details (139)
@densuj ·
Well thank you very much for the informations about ether and thank you so much for steemit.com because of give place for us to share informations.
👍  
properties (23)
authordensuj
permlinkre-cseberino-why-ethereum-classic-uses-an-incorrect-sha3-implementation-20170129t070917143z
categoryetc
json_metadata{"tags":["etc"],"app":"steemit/0.1"}
created2017-01-29 07:09:21
last_update2017-01-29 07:09:21
depth1
children1
last_payout2017-02-27 04:20:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length147
author_reputation1,122,126,823
root_title"Why Ethereum Classic Uses An Incorrect SHA3 Implementation"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id2,370,285
net_rshares364,886,487
author_curate_reward""
vote details (1)
@cseberino ·
You're welcome too! ;)
properties (22)
authorcseberino
permlinkre-densuj-re-cseberino-why-ethereum-classic-uses-an-incorrect-sha3-implementation-20170129t181842483z
categoryetc
json_metadata{"tags":["etc"],"app":"steemit/0.1"}
created2017-01-29 18:18:42
last_update2017-01-29 18:18:42
depth2
children0
last_payout2017-02-27 04:20:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length22
author_reputation5,161,857,859,658
root_title"Why Ethereum Classic Uses An Incorrect SHA3 Implementation"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id2,373,414
net_rshares0
@eric-boucher · (edited)
Thanks for sharing this information about Ethereum. As of late, I have looked into more cryptocurrencies, outside of my usual circle of influence which usually revolves around Bitcoins, Steem and BitShares. I'm happy to come across this information and get informed a bit more about the technology behind this giant of cryptos. 

Thanks for the sharing and namaste     :)
👍  
properties (23)
authoreric-boucher
permlinkre-cseberino-why-ethereum-classic-uses-an-incorrect-sha3-implementation-20170127t053323712z
categoryetc
json_metadata{"tags":["etc"],"app":"steemit/0.1"}
created2017-01-27 05:33:24
last_update2017-01-27 05:34:12
depth1
children1
last_payout2017-02-27 04:20:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length371
author_reputation68,503,601,066,539
root_title"Why Ethereum Classic Uses An Incorrect SHA3 Implementation"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id2,355,024
net_rshares72,626,965,216
author_curate_reward""
vote details (1)
@cseberino ·
You're welcome!
👍  
properties (23)
authorcseberino
permlinkre-eric-boucher-re-cseberino-why-ethereum-classic-uses-an-incorrect-sha3-implementation-20170127t161103469z
categoryetc
json_metadata{"tags":["etc"],"app":"steemit/0.1"}
created2017-01-27 16:11:03
last_update2017-01-27 16:11:03
depth2
children0
last_payout2017-02-27 04:20:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length15
author_reputation5,161,857,859,658
root_title"Why Ethereum Classic Uses An Incorrect SHA3 Implementation"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id2,358,356
net_rshares4,851,617,577
author_curate_reward""
vote details (1)
@firepower ·
Good work with this! :)
properties (22)
authorfirepower
permlinkre-cseberino-why-ethereum-classic-uses-an-incorrect-sha3-implementation-20170127t041833269z
categoryetc
json_metadata{"tags":["etc"],"app":"steemit/0.1"}
created2017-01-27 04:18:33
last_update2017-01-27 04:18:33
depth1
children1
last_payout2017-02-27 04:20:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length23
author_reputation1,145,868,474,852,473
root_title"Why Ethereum Classic Uses An Incorrect SHA3 Implementation"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id2,354,717
net_rshares0
@cseberino ·
Thanks!
properties (22)
authorcseberino
permlinkre-firepower-re-cseberino-why-ethereum-classic-uses-an-incorrect-sha3-implementation-20170127t161124723z
categoryetc
json_metadata{"tags":["etc"],"app":"steemit/0.1"}
created2017-01-27 16:11:24
last_update2017-01-27 16:11:24
depth2
children0
last_payout2017-02-27 04:20:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length7
author_reputation5,161,857,859,658
root_title"Why Ethereum Classic Uses An Incorrect SHA3 Implementation"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id2,358,361
net_rshares0