The Alternative Genesis Block of Bitcoin
serhack.me
serhack.me
For example,
> However, it is possible to reveal a very important detail about Satoshi Nakamoto’s personality. The fact that Satoshi chose the genesis block with a certain timestamp (which included the sentence in the UK Times article) makes one realize how much preparation and meticulousness was behind Satoshi’s identity.
This is immediately following a code snippet in which it is clear that some value must be hard-coded; it would be the work of seconds to think up a value that was funny or meaningful. I don't see why this indicates any preparation or meticulousness.
Another example:
> The other comment that arouses curiosity is this one: //// is this all we want to do if there's a file error like this?
> Who was Satoshi referring to when speaking in the plural?
Isn't this completely normal in programming? I only ever use the plural first person in code unless I'm specifically referring to myself as a human (in the same way that academic writing uses the plural).
It's common in academic writing too. And many of those academics end up writing code too.
From Knut's course [1] on mathematical writing:
> But this use of “we” should be used in contexts where it means “you and me together”, not a formal equivalent of “I”. Think of a dialog between author and reader. In most technical writing, “I” should be avoided, unless the author’s persona is relevant.
[1] https://jmlr.csail.mit.edu/reviewing-papers/knuth_mathematic...
It also functions like the passive voice and makes it sound a bit like the author is less individually responsible for the words he says
My personally impression is that using "I" sounds more honest/direct and less evasive than "we". I've never seen it used outside of blogs though :/
In that sense "we" comes across as very inclusive, whereas "I" is maximally exclusive, lowering a subconscious attention and persuasion barrier for the reader.
Example: "Given those facts, we verify our conclusion as follows ..."
I agree with OP, this interpretation is reading a bit much into code comments without asking a single programmer the norms of programming.
The fact that he released the first genesis block on 3rd January 2009 with the sentence of UK Times article is not casual. We can see from the first version of the source code that his network was ready many days before that date. Was he waiting for "fixing issues"? No, he ended up clearly with a release that contained many errors (e.g. amount created in genesis block can not be spent).
> Isn't this completely normal in programming? I only ever use the plural first person in code unless I'm specifically referring to myself as a human (in the same way that academic writing uses the plural).
Yeah, I do agree. However if you notice there are some comments written in a particular style ( with double slashes //) and there are some others written with four slashes. It's really weird to have both styles on codes, unless there are more people (>= 1) that work on the code or that reviews the code.
In addition to this, please understand that none of my content must be taken as the only truth in this world, so I'm open to any discussions about those weird things I noticed :)
It's a personal hack for being able to quickly find them. Ctrl+F //// is a reasonable "Todo" And one which on a single person project I can get away with. Because they are also valid comments persisting past release occasionally happens as (in my case) the second reviewer doesn't know this convention.
Working on a project for the past several months I've left many todos in my code to be reviewed. In most cases by myself when I better understand the problem. I am after all the first person to review my own code.
I've also noticed myself forgetting "Todo:". Sometimes it's the ":" and the tooling doesn't pick it up. If I've really screwed up its "tod:".
// Why base-58 instead of standard base-64 encoding?
// - Don't want 0OIl characters that look the same in some fonts and
// could be used to create visually identical looking account numbers.
// - A string with non-alphanumeric characters is not as easily accepted as an account number.
// - E-mail usually won't line-break if there's no punctuation to break at.
// - Doubleclicking selects the whole number as one word if it's all alphanumeric.
//
Sounds almost more like fair instead of a bug, but nommatter what, time going by between "finishing" and releasing is also more than normal on various levels for many reasons?!
> It's really weird to have both styles on codes, unless there are more people (>= 1) that work on the code or that reviews the code.
Hmm, no definitely no.. either just slacking, or even intentional to mark something?! Maybe you area very clean coder, I do this all the time if not polishing for work..
Could have been so, but deducting like those are proofs is very far fetched .
I'm missing something: who says is not normal? Anyway regarding comments and that, the source code is clearly heavily edited and redacted, so I do agree that we can't extract much from comments. I did not understand why HN triggered so much about two/three/four slashes.
I was thinking that this may have been intentional.
In that sense there may be a stronger message when creating an unspendable "big" value (reward was 50BTC) than a spendable value of e.g one satoshi.
////
// Comment
// more comment
// and more
////
So effectively "we" in this context could be anyone who thought that this code would become law for that network.
I don't agree because the computer is a tool with no agency like a hammer or a chisel.
I use "we" in program because it's a consideration for the project / team, even if odds are low anyone else will ever use or contribute to it. It's a reminder to avoid factoring in ego too much.
Satoshi is mostly an anonymous group of cypherpunks forums users.
Yeah, that's a ridiculous generalisation but so is yours. Neither of your examples strikes me as something I'd expect a "competent programmer" (read: seasoned developer) to write. In fact, I find the former more suspicious because it assumes the code is correct (which, if I have to read the comments, it probably isn't) rather than clarifying the intent of the code.
Maybe we shouldn't draw extreme conclusions based on arbitrary details that are neither here nor there. Nothing about the code in the article strikes me as evidence that the author must have been a solo dev or can't have been a solo dev. However my experience tells me it's more likely that it was a solo dev because I've seen solo devs write far more interesting and far more complicated programs than the original Bitcoin stuff and it's harder to keep a secret the more people are involved.
> The transaction in the first block is a coinbase transaction ― consisting of an input and an output. We recognize that it is a coinbase transaction (i.e. coin creation) from one key element: The number of inputs is equal to 1 (this condition is explicit in Satoshi’s code).
That's not what's characteristic for a coinbase transaction, many transactions might have only one input. What's characteristic is that the input comes out of no-where, so to speak, and has no predecessor. In other words, it's the second part of the condition below, not the first one, that characterises CoinBase:
bool IsCoinBase() const
{
return (vin.size() == 1 && vin[0].prevout.IsNull());
}Yes, you're correct. Thank you for the clarification, however I wanted to mark the check found on the source code. By the way, "bad article": I think you're a little bit over exaggerating.
With all due respect, you might be a little bit biased.
...& bitcointalk has many more ideas OP might wanna fill his blog with
https://s3.amazonaws.com/nakamotoinstitute/code/bitcoin-nov0...
Reading it now.
It seems beautiful except for the strange fact that there is a random number of empty lines between the code blocks.
Why would someone who obiviously likes the beauty of code and writing in general not fix those?
Because that code is heavily edited, prepared for a review. For sure there are some missing comments (e.g. see "debug print" on line 112 compared to line 1042).
And why did they leave everything else intact except for those empty lines between the function blocks?
What evidence suggests that this was unintentional? It offers a sense of fairness and objectivity from the originator, without generalizing the concept of a transactionless block or requiring any special logic to enforce it.
Perhaps he's a software developer working a modest job in some company somewhere, chuckling to himself as he reads all these outlandish conspiracy theories about his identity.
Maybe he retired to make cheese as a hobby. Maybe he's now an old man with a pipe and a walking stick who regularly enjoys the company of his grandkids. Maybe he died and took the secret with him to the grave. Not as fun to think about, but if so, it'll happen some day, and the mystery will remain forever.
[2] https://bitslog.com/2020/08/22/the-patoshi-mining-machine/
This strikes me as the action of a self-conscious individual, that also needs the validation of an external group because he is working alone.
Elon Musk: “Bloody hell, I’m going to have to write a blog. Can’t fit this into tweets.” https://twitter.com/elonmusk/status/943887056492564480
https://medium.com/coinmonks/highly-specific-commonalities-b...
In 1998.
I read somewhere that satoshi nakamoto means central intelligence in japanese, not sure if thats true.
It does not.
He has also made numerous flubs when describing bitcoin that betray a lack of understanding of the incentives underlying bitcoin which satoshi would have known.
The type of ecash he wrote about prior to bitcoin was fundamentally very different. Bitcoin is not an evolution of hashcash like systems. It is fundamentally different by embracing an eventually consistent model which was antithetical to the approaches taken by Back, Szabo, etc.