I know that the very early version of the Bitcoin code had a lot of advanced features, and was already very mature.

But Segwit (storing signatures separately from the transactions in the block) is a very simple change, and so obvious that I'm sure it must have passed Satoshi's mind many times.

So I'm wondering: what could be a reason that Satoshi choose to store the signatures inside the transaction? There is always the possibility that he just made a stupid mistake in the design, but I find that hard to believe.

  • I know the reason, but I won’t post is as answer because it will be heavily downvoted. Commented Jun 11, 2019 at 12:13

1 Answer 1


Satoshi made many design decisions that are now criticized (like signatures in transactions, 2-week difficulty period, halvings, etc..). He also made some maths error in the whitepaper. Satoshi wasn't a perfect designer and his C++ code was not up to the highest standards.

We will maybe never know for sure why he chose what he chose, but I'd personally argue it was for simplicity sake.

On a more tangent note: while SegWit looks simple on paper (just put the signatures on the side), in practice, it's quite a complex change to implement. It took months for the most experienced developers to review it.

  • It is only complex to implement it as a soft-fork, but to make the change long before the launch (or shortly afterwards using a hardfork) is not complex at all, you can simply adjust the format / structure of the blocks. Maybe he talked about this subject on Bitcointalk, but otherwise I agree that we can only guess for his motives..
    – Maestro
    Commented Jul 21, 2017 at 14:58
  • Satoshi had a definite reason. Commented Jun 11, 2019 at 12:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.