Haskoin – Haskell implementation of the Bitcoin specifications
github.com
github.com
Or even better, since ECDSA is used in bitcoin-qt, just show that the full bitcoin implementation has the same results as bitcoin-qt, with millions of samples.
I don't see any of that in your package though.
I'm more worried about more sophisticated attacks, like timing attacks, for example. But I don't see how that can be used to attack this particular application.
Essentially, the problem here is that any decision based on secret information must act exactly the same regardless of the result, e.g. a secure string comparison should examine the entire string before concluding that the strings are different. Additionally, any decision based on another decision involving secret information must also follow the same rule - secret information contaminates regular information. So perhaps the solution is to give secret information its own type, incompatible with regular information, unless explicitly interacted with using a special interface.
I was referring to using this kind of terminology in more user-facing applications - for example xmonad (I don't know what monads have to do with tiling window managers. Maybe it has something to do with how the configuration library of xmonad is structured).
Admittedly, maybe Haskoin was a bad example in this regard.
In my view there's really no tension between naming things after implementation details and giving them abstract unrelated names -- all that really matters in the long term is that a name is memorable, and memorable names can and do come from either approach.