create account

Turing, Gödel and Chaos in Smart Contracts: why bugs are inevitable and why it is a much bigger problem for Ethereum than for any other computer by bicalabs

View this thread on: hive.blogpeakd.comecency.com
· @bicalabs ·
$0.61
Turing, Gödel and Chaos in Smart Contracts: why bugs are inevitable and why it is a much bigger problem for Ethereum than for any other computer
<html>
<p>While developing <a href="https://ethereum.stackexchange.com/questions/2464/what-does-it-mean-that-ethereum-is-turing-complete/2465">Turing-complete smart contracts</a> it is always hard to assure the absence of significant bugs and errors. Decades of software development in modern computer industry have shown that software code executed on Turing-complete machines always has some bugs that get discovered only with time. This is not strange: being a <a href="http://mathworld.wolfram.com/DynamicalSystem.html">dynamical system</a> Turing-complete code will show chaotic behavior. As with any <a href="http://mathworld.wolfram.com/Chaos.html">chaotic system</a>, minimal difference in input parameters will lead to exponentially-different result with time, making it practically impossible to predict all possible system behaviors, since all possible input data can not be enumerated and tested beforehand.</p>
<p><img src="https://cdn-images-1.medium.com/max/600/1*6Q3pho6gT__pt-4F2wlrCA.jpeg" width="376" height="250"/></p>
<p><em>Gödel looks at Turing-complete system as if it’s incomplete (</em><a href="https://twitter.com/macx0r/status/889215308954820608"><em>source</em></a><em>)</em></p>
<p>Arguably we can also take another example from Gödel theorems and later developments, showing that within any complex system there exist such true axioms that can not be proven to be true using the apparatus of the system itself. Thus, within Turing-complete code there could be true (working) solutions or patterns of behavior (exploits) which can not be detected with Turing-complete machine (another computer). <em>[Not all mathematicians would strictly agree with this statement, though].</em> Also, we can not test all possible inputs to see all possible outcomes of computations due to the reason mentioned in the previous paragraph (the nature of dynamic systems). Thus bugs are inevitable and there is no way to detect all of them beforehand with any type of code audit or tests.When we work with common computers, whether it’s a desktop, laptop, mobile or enterprise mainframe, we have very strict address and code separation spaces at the level of the processing unit (CPU, GPU etc). Bugs appearing in the code can create damage only within this space, i.e. the damage is limited by (a) the cost of the computer itself, (b) information kept on it and (c) collateral damage related to functions performed by this computer in the real world (for instance if this computer operates some other system, bug in the code may destroy that system as well). So the damage is located, measurable — and thus can be insured. That’s why computers and software can be used in business: risks created by them can be controlled.As with Ethereum, or many other smart-contracts blockchains making ICOs these days, we have global execution and address space: one smart contracts in EVM can call method of any other smart contract or library and invoke operations across them. It is like if there were no threads within CPUs, no protected kernel/user modes for software in the OS, and all the world code was executed on a single processor! What would happen? The damage of a software bug would be unlimited: it would be able to affect all value of the entire computing network! That is the situation we have today with Ethereum.We can draw a very important conclusion from this:</p>
<blockquote><em><strong>Ethereum decentralizes only computing resource, but centralizes computations themselves, creating unmeasurable and uncontrollable risks</strong></em></blockquote>
<p>Let’s look at the recent past:</p>
<ul>
  <li><a href="https://www.coindesk.com/understanding-dao-hack-journalists/">The DAO hack</a>;</li>
  <li><a href="https://blog.ethcore.io/the-multi-sig-hack-a-postmortem/">Parity multisig wallet hack</a> happened in a library code, which spread damage across <a href="https://news.bitcoin.com/ethereums-parity-client-users-lose-millions-multi-sig-hack/">many businesses</a>, <a href="https://blog.aeternity.com/parity-multisig-wallet-hack-47cc507d964d">startups</a> and even <a href="https://steemit.com/ethereum/@hipster/updates-satoshi-pie-ethereum-multisig-has-been-hacked">investment funds</a>;</li>
  <li>Multiple ICOs and Ethereum-based project hacks: <a href="https://medium.com/@Digix/security-vulnerability-discovered-digixdao-fdb358c6128c">one</a>, <a href="http://fortune.com/2017/07/18/ethereum-coindash-ico-hack/">two</a>, <a href="https://www.hackread.com/veritaseum-hack-another-ethereum-ico-hacked-loses-84m/">three</a> etc</li>
  <li><a href="https://medium.com/@AugurProject/serpent-compiler-vulnerability-rep-solidity-migration-5d91e4ae90dd">Serpent compiler vulnerability causing Augur project rewrite</a></li>
  <li>and so on…</li>
</ul>
<blockquote><em><strong>So, within Ethereum (and possible future-release Turing-complete smart contracts) we can not measure possible damage, and thus, insure possible risks. This basically renders the system to be unusable for business, adding a lot of deep sense to the previous statements from Ethereum team that it is an early-stage highly experimental technology that should not be used by mission-critical business and production environments.</strong></em></blockquote>
<p>However, this is not an unresolvable problem. We will talk on the possible scenarios in our further publications. One of them — to separate computation space much like it is <a href="https://en.wikipedia.org/wiki/Protected_mode">done in modern OSes and CPUs</a>. Something like <a href="https://en.wikipedia.org/wiki/Compartment_%28ship%29">ships that are split inside into watertight compartments</a> to reduce possible damage from water and limit risks. Another way — to introduce completely new contexts by taking analogy from natural systems and implementing robustness via cross-disciplinary samples from the living organisms: DNA and cellular expression system is a sort of Turing-complete machine, and special evolutionary protection has being developed to limit and reduce risks of “code hacks” within DNA itself. We will write more on this topic in our next publication about the proposed “Double-helix blockchain”, which will be used in our <a href="https://medium.com/pandoraboxchain/world-decentralized-ai-on-blockchain-with-cognitive-mining-and-open-markets-for-data-and-algorithms-4e192554024a">Pandora Boxchain</a> technology. Stay tuned!</p>
</html>
👍  , , , , , ,
properties (23)
authorbicalabs
permlinkturing-goedel-and-chaos-in-smart-contracts-why-bugs-are-inevitable-and-why-it-is-a-much-bigger-problem-for-ethereum-than-for-any
categoryblockchain
json_metadata{"tags":["blockchain","ethereum","cryptocurrency","bitcoin","technology"],"image":["https://cdn-images-1.medium.com/max/600/1*6Q3pho6gT__pt-4F2wlrCA.jpeg"],"links":["https://ethereum.stackexchange.com/questions/2464/what-does-it-mean-that-ethereum-is-turing-complete/2465","http://mathworld.wolfram.com/DynamicalSystem.html","http://mathworld.wolfram.com/Chaos.html","https://twitter.com/macx0r/status/889215308954820608","https://www.coindesk.com/understanding-dao-hack-journalists/","https://blog.ethcore.io/the-multi-sig-hack-a-postmortem/","https://news.bitcoin.com/ethereums-parity-client-users-lose-millions-multi-sig-hack/","https://blog.aeternity.com/parity-multisig-wallet-hack-47cc507d964d","https://steemit.com/ethereum/@hipster/updates-satoshi-pie-ethereum-multisig-has-been-hacked","https://medium.com/@Digix/security-vulnerability-discovered-digixdao-fdb358c6128c","http://fortune.com/2017/07/18/ethereum-coindash-ico-hack/","https://www.hackread.com/veritaseum-hack-another-ethereum-ico-hacked-loses-84m/","https://medium.com/@AugurProject/serpent-compiler-vulnerability-rep-solidity-migration-5d91e4ae90dd","https://en.wikipedia.org/wiki/Protected_mode","https://en.wikipedia.org/wiki/Compartment_%28ship%29","https://medium.com/pandoraboxchain/world-decentralized-ai-on-blockchain-with-cognitive-mining-and-open-markets-for-data-and-algorithms-4e192554024a"],"app":"steemit/0.1","format":"html"}
created2017-07-29 17:51:57
last_update2017-07-29 17:51:57
depth0
children6
last_payout2017-08-05 17:51:57
cashout_time1969-12-31 23:59:59
total_payout_value0.538 HBD
curator_payout_value0.072 HBD
pending_payout_value0.000 HBD
promoted3.000 HBD
body_length6,419
author_reputation166,418,128,635
root_title"Turing, Gödel and Chaos in Smart Contracts: why bugs are inevitable and why it is a much bigger problem for Ethereum than for any other computer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd0
post_id10,139,546
net_rshares159,711,981,228
author_curate_reward""
vote details (7)
@motomania ·
Hi. I am a volunteer bot for @resteembot that upvoted you.
Your post was chosen at random, as part of the advertisment campaign for @resteembot.
@resteembot is meant to help minnows get noticed by re-steeming their posts
Even better: If your reputation is lower than 28 re-steeming only costs 0.001 SBD!
If you want to learn more - [read the introduction post of @resteembot](https://steemit.com/resteembot/@resteembot/resteem-bot-introduction).
If you want help spread the word - [read the advertisment program post](https://steemit.com/resteembot/@resteembot/resteem-bot-update-a-plea-for-help-2017725t204737459z).
properties (22)
authormotomania
permlinkre-bicalabs-turing-goedel-and-chaos-in-smart-contracts-why-bugs-are-inevitable-and-why-it-is-a-much-bigger-problem-for-ethereum-than-for-any-20170729t175330887z
categoryblockchain
json_metadata""
created2017-07-29 17:53:30
last_update2017-07-29 17:53:30
depth1
children0
last_payout2017-08-05 17:53:30
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_length616
author_reputation-56,301,550,001
root_title"Turing, Gödel and Chaos in Smart Contracts: why bugs are inevitable and why it is a much bigger problem for Ethereum than for any other computer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,139,659
net_rshares0
@navdeep.droid ·
Nicely written.
properties (22)
authornavdeep.droid
permlinkre-bicalabs-turing-goedel-and-chaos-in-smart-contracts-why-bugs-are-inevitable-and-why-it-is-a-much-bigger-problem-for-ethereum-than-for-any-20170729t175440490z
categoryblockchain
json_metadata{"tags":["blockchain"],"app":"steemit/0.1"}
created2017-07-29 17:54:36
last_update2017-07-29 17:54:36
depth1
children0
last_payout2017-08-05 17:54:36
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_reputation475,790,208,201
root_title"Turing, Gödel and Chaos in Smart Contracts: why bugs are inevitable and why it is a much bigger problem for Ethereum than for any other computer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,139,742
net_rshares0
@steemitboard ·
Congratulations @bicalabs! You have received a personal award!

[![](https://steemitimages.com/70x70/http://steemitboard.com/@bicalabs/birthday1.png)](http://steemitboard.com/@bicalabs)  1 Year on Steemit
Click on the badge to view your own Board of Honor on SteemitBoard.

> Upvote this notificationto to help all Steemit users. Learn why [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)!
properties (22)
authorsteemitboard
permlinksteemitboard-notify-bicalabs-20180312t040003000z
categoryblockchain
json_metadata{"image":["https://steemitboard.com/img/notifications.png"]}
created2018-03-12 04:00:03
last_update2018-03-12 04:00:03
depth1
children0
last_payout2018-03-19 04:00:03
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_length428
author_reputation38,975,615,169,260
root_title"Turing, Gödel and Chaos in Smart Contracts: why bugs are inevitable and why it is a much bigger problem for Ethereum than for any other computer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id43,827,339
net_rshares0
@steemitboard ·
Congratulations @bicalabs! You received a personal award!

<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@bicalabs/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table>

<sub>_[Click here to view your Board](https://steemitboard.com/@bicalabs)_</sub>


###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) and get one more award and increased upvotes!
properties (22)
authorsteemitboard
permlinksteemitboard-notify-bicalabs-20190312t033935000z
categoryblockchain
json_metadata{"image":["https://steemitboard.com/img/notify.png"]}
created2019-03-12 03:39:36
last_update2019-03-12 03:39:36
depth1
children0
last_payout2019-03-19 03:39:36
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_length503
author_reputation38,975,615,169,260
root_title"Turing, Gödel and Chaos in Smart Contracts: why bugs are inevitable and why it is a much bigger problem for Ethereum than for any other computer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id81,110,863
net_rshares0
@steemitboard ·
Congratulations @bicalabs! You received a personal award!

<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@bicalabs/birthday3.png</td><td>Happy Steem Birthday! - You are on the Steem blockchain for 3 years!</td></tr></table>

<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@bicalabs) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=bicalabs)_</sub>


**Do not miss the last post from @steemitboard:**
<table><tr><td><a href="https://steemit.com/steemitboard/@steemitboard/downvote-challenge-add-up-to-3-funny-badges-to-your-board"><img src="https://steemitimages.com/64x128/https://steemitimages.com/0x0/![](https://cdn.steemitimages.com/DQmUuJkZdnSpHVWssxF82ntymqXg4Pvk6K6bYvckUYVRsnj/image.png)"></a></td><td><a href="https://steemit.com/steemitboard/@steemitboard/downvote-challenge-add-up-to-3-funny-badges-to-your-board">Downvote challenge - Add up to 3 funny badges to your board</a></td></tr></table>

###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
properties (22)
authorsteemitboard
permlinksteemitboard-notify-bicalabs-20200312t031057000z
categoryblockchain
json_metadata{"image":["https://steemitboard.com/img/notify.png"]}
created2020-03-12 03:10:57
last_update2020-03-12 03:10:57
depth1
children0
last_payout2020-03-19 03:10:57
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_length1,184
author_reputation38,975,615,169,260
root_title"Turing, Gödel and Chaos in Smart Contracts: why bugs are inevitable and why it is a much bigger problem for Ethereum than for any other computer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id96,278,231
net_rshares0
@twitterbot ·
### ![macx0r](https://pbs.twimg.com/profile_images/378800000323264759/bce33bb0b7d54df04dd4b57630d110cf_normal.jpeg) **[Dr Maxim Orlovsky](https://twitter.com/@macx0r/status/889215308954820608)** tweeted @ 23 Jul 2017 - 20:07 UTC

> Gödel looks at Turing-complete system as if it’s incomplete

Гёдель смотрит на Тюринг-полную систему как на неполну… [twitter.com/i/web/status/8…](https://t.co/1BiA2wrMZp)


###### *Disclaimer: I am just a bot trying to be helpful.*
properties (22)
authortwitterbot
permlinkre-turing-goedel-and-chaos-in-smart-contracts-why-bugs-are-inevitable-and-why-it-is-a-much-bigger-problem-for-ethereum-than-for-any-20170729t175251
categoryblockchain
json_metadata""
created2017-07-29 17:52:51
last_update2017-07-29 17:52:51
depth1
children0
last_payout2017-08-05 17:52:51
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_length464
author_reputation2,792,128,643,772
root_title"Turing, Gödel and Chaos in Smart Contracts: why bugs are inevitable and why it is a much bigger problem for Ethereum than for any other computer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id10,139,620
net_rshares0