Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Dutch governments builds alternative for Microsoft based on NixOS (dawo.community)
    268comments
  2. Platform-Independent SIMD in Go (go.dev)
    14comments
  3. I'm Tired of Being on the Network (matduggan.com)
    37comments
  4. Git-bug: Distributed, offline-first bug tracker embedded in Git (github.com/git-bug)
    12comments
  5. Pentium II at 600Mhz with Voodoo 3 Emulated on 86Box with M6 Mac Mini (nyaa.sh)
    52comments
  6. Ink and Switch Interactive Homepage (inkandswitch.com)
    14comments
  7. Topcoat is pushing the boundary of server applications with Rust (tokio.rs)
    27comments
  8. F-Droid 2.0 (f-droid.org)
    377comments
  9. CVE-2025-13032: Entering and Breaking the Avast Antivirus Sandbox Part 2 (safateam.com)
    18comments
  10. Show HN: Make cursed fonts like Times New Bastard (mitpit.com)
    101comments
  11. Nobody Asked for a Crab Chair (newmobility.com)
    5comments
  12. Special Projects (2016) (openai.com)
    27comments
  13. Amiga Screens: A Primer (datagubbe.se)
    7comments
  14. Show HN: Whiteboard (YC W26) – An open-source IDE for thoughtful software design (github.com/devdotfast)
    123comments
  15. Boards of Casio (ambionix.com)
    2comments
  16. The Test (tante.cc)
    2comments
  17. Why is the liver so weirdly regenerative? (dynomight.substack.com)
    237comments
  18. Show HN: Agentic CUDA Kernel Optimizer (github.com/bertaye)
    —discuss
  19. The Mafia may be keeping fentanyl out of Italy (economist.com)
    149comments
  20. 2DWillNeverDie (2dwillneverdie.com)
    66comments
  21. Oracle on the hook to pay data centre investors even if site has no electricity (ft.com)
    69comments
  22. Rails World 2026 Opening Keynote [video] (youtube.com)
    394comments
  23. Fearless SIMD v1.0 (linebender.org)
    42comments
  24. Silicon Valley 'sex assault list' with 'over 100' names circulated (nypost.com)
    7comments
  25. What About Rails? (jardo.dev)
    74comments
  26. Toyota is taking the Corolla electric (electrek.co)
    651comments
  27. My weird new hobby: Wandering around Tokyo on Google Maps (ahmedhossamdev.com)
    163comments
  28. Opus 5.5 is good at explainer videos (launchvideo.io)
    171comments
  29. Using LLMs to trace alchemical knowledge and decode 17th century letters (resobscura.substack.com)
    31comments
  30. Two-tier encryption in the UK (macanorak.com)
    429comments

Why Turing-complete smart contracts are doomed

2 pointsby 10y agoreddit.com
2 comments
10y agoHN ↗

This article overstates the problem quite a bit by saying, for example, "Only non-Turing-complete languages support formal reasoning and verification".

The point of Turing's result and related theorems is not that you can't reason formally about programs, or understand or predict what they do, or prove that they are correct. It's that no automated method is powerful enough to decide nontrivial properties for every program; there are always programs for which the decision procedure will either say it doesn't know, or be wrong (or the decision procedure will take an infinite amount of time).

However, there are automated methods that can decide nontrivial properties for many programs, and the existence of programs where a given property can't be decided doesn't mean that the answers, when they exist, have to be wrong.

We do have specific programs in Turing-complete languages whose behavior or whose correctness to a specification is proven, and formal methods that can be applicable to them.

I think the article's conclusion might still be right, though: having environments where you can't always determine correctness may be playing with fire, so it may be a better choice to avoid that kind of risk entirely. But that doesn't mean that, given a program, we're always going to be completely in the dark about what the program does!

10y agoHN ↗

A thing that you could do for smart contracts is have formal-methods analyzers that check properties that you care about in the contract. The analyzer can say, of a particular contract, "good", "bad", or "don't know". Then you can avoid (or even somehow ban?) contracts that get "bad" or "don't know".

Or, you could simplify things by having "bad" and "don't know" be in the same bucket! You could call it "can't be proven safe". Because of the halting problem issue, some safe contracts will always end up "can't be proven safe", but if the analyzer is good enough to allow for quite a lot of flexibility in the contracts, you can say that writing something that can't be proven safe is the contract author's fault or responsibility.

Then you can say that you will only use contracts that can be proven safe. There's no contradiction between this and Turing completeness or the halting problem, and there's no inherent reason to think that these contracts will be rare or hard to find. You do have to be careful about what particular properties you're checking for in your definition of "safety", though!