bitcoin-dot-org / Bitcoin.org

Bitcoin.org Website
https://bitcoin.org/
Other
1.57k stars 2.04k forks source link

Amendments to the Bitcoin paper #1325

Closed Cobra-Bitcoin closed 6 years ago

Cobra-Bitcoin commented 8 years ago

I've been noticing that the Bitcoin paper at https://bitcoin.org/bitcoin.pdf is getting a lot of traffic (mainly from people searching for "bitcoin paper", or probably seeing it cited by other papers). Almost all the people reading the paper are probably reading it for the first time, and using it as a learning resource. However since the paper is so outdated, I believe it doesn't do a good job anymore of giving people a firm understanding of Bitcoin (at least the modern version). There is no mention of things like pools, and the Privacy and SPV sections could probably be updated.

The paper links to bitcoin.org, but I feel like the Bitcoin described in the paper and the Bitcoin described on bitcoin.org are starting to diverge. At some point, I think the paper will start to do more harm than good, because it tricks people into believing they understand Bitcoin. I have seen people promote toxic and crazy ideas, and then cite parts of the paper in an effort to justify it. Academics are also regularly citing the paper and basing some of their reasoning and arguments on this outdated paper.

Normally issues like this in other projects would be solved by regularly updating the learning resources, and documents, such as producing new editions or versions of the document to keep it in line with the current status of the project. I'd be interested to know the community's thoughts and opinions on this issue, since I know it's likely to be a divisive but some rational debate would be good, because it could become more of a problem in the future.

There are already a few different versions of the paper out there, so Satoshi has already set the precedent that the paper should be updated to reflect the current realities of the software. I believe the paper was always designed to be a high level overview of the current reference implementation, and that we should update it now that the paper is outdated and the reference implementation has changed significantly from 2009.

harding commented 8 years ago

I think the paper remains a fairly accurate high-level overview of the system, and I think many people will continue to want to read and cite the original even if an updated version were available. Also important, I think many people have linked directly to https://bitcoin.org/bitcoin.pdf because they want to link to that particular version of that paper; changing the content on them could be considered inappropriate.

The current paper does not contain a date; I would support modifying the document to include a date (perhaps based on its PDF metadata), which could help people realize that it's old and may not be representative of the current system. We could maybe make a notice to that effect explicit, but that seems ugly to me.

I would also support creating a page on this site which lists errata in the paper (such as Nakamoto saying "longest chain" rather than "chain with the most POW") as well changes to the system since the original paper. I started re-reading the paper a few minutes ago in order to inform this reply, and the main thing that seems changed so far is terminology---we have different names for many things than those Nakamoto used and we've decoupled some things that started out coupled (like mining and validation). For the most part, the paper describes the system in such abstract terms that the paper remains accurate today.

Perhaps beyond that, it would be useful to create an annotated version of the paper which can help connect its high-level overview to the details of the current implementation.

As I'm re-reading the paper, I'm making notes for a possible errata. I'll post them here in a few minutes.

Cobra-Bitcoin commented 8 years ago

The terminology is all screwed up for sure. Someone reading that paper is going to get the impression that "nodes" are the ones that mine blocks, but when they go on other Bitcoin sites, they will get a totally different meaning for what a "node" does.

Also, I'm sure most people are linking to the paper to try to educate other users, I see it frequently that people just throw out a link to the paper to try to help a new user understand Bitcoin. Most people aren't reading the paper for its historical significance, they're doing it to learn about Bitcoin. So to me it makes sense for us to adapt the paper to be more suitable for this purpose.

By modifying the paper, I don't suggest a complete rewrite. What I mean is changing the terminology, doing minor changes such as removing Satoshi's compromised email, improving sentences, and reworking some sections to make the paper a more useful learning resource to the people reading it (otherwise people are just getting misinformed). This new version can then become the new Bitcoin paper, and we can deprecate the old one.

luke-jr commented 8 years ago

Sounds reasonable as long as it's clear it isn't the original paper. Maybe an updated HTML version, with a clear link to the original at the top?

harding commented 8 years ago

A list of errata, implementation differences, and terminology notes based on my critical re-read of the paper tonight can be found here: https://gist.github.com/harding/dabea3d83c695e6b937bf090eddf2bb3

By modifying the paper, I don't suggest a complete rewrite. What I mean is changing the terminology, doing minor changes such as removing Satoshi's compromised email, improving sentences, and reworking some sections to make the paper a more useful learning resource to the people reading it (otherwise people are just getting misinformed). This new version can then become the new Bitcoin paper, and we can deprecate the old one.

I think the gist linked above shows that there are not too many errors or inconsistent implementation details in the paper (although I may have missed or been unaware of some). Removing the GMX address is perfectly fine to me; converting the paper to HTML sounds like a good idea to me too. Changing the terminology is a bit stickier, I think, but maybe ok. But I'm still a bit uncomfortable with making more significant changes and hosting it at the existing URL. I think an significantly updated version should get its own new URL and should thrive or die based on its own merits.

theymos commented 8 years ago

Interesting suggestion. The paper is definitely outdated, and I do often see people saying "just read the whitepaper!" as if the paper is still a good way to learn about Bitcoin. On the other hand, the paper is an important piece of history. It's still an impressive document, even if not the most useful nowadays, explaining most of how Bitcoin works in only a few pages.

Maybe it would be best to stick several pages of errata and explanation to the front of the PDF, but leave Satoshi's pages untouched. Having bitcoin.pdf redirect to an HTML page would also work, though then people might get annoyed if they're expecting to receive a PDF (for example, if people right click a link to the PDF and "save").

https://gist.github.com/harding/dabea3d83c695e6b937bf090eddf2bb3

That looks pretty good, though I suspect that some other experts will have additional things to add.

Bitcoin was implemented in such a way that the amount of POW can vary between blocks, so instead of saying "the longest chain" it is more correct to say "the chain demonstrating the most POW"; this is often shortened to "strongest chain".

Bitcoin 0.1 actually did just compute the longest chain by number of blocks. Satoshi fixed this pretty early IIRC.

I'd strongly emphasize that Satoshi at this time tended to speak of nodes as if they pretty much corresponded one-to-one with miners. So when he says "node", sometimes he means "mining full node", sometimes he means "non-mining full node", and sometimes he means both. (He never means "miner without a full node", since the idea of pooled mining hadn't occurred to him.) This has been a major point of confusion for people. It is clear that Satoshi implicitly recognized the difference between miners and other full nodes; for example, from the paper's SPV section:

As such, the verification is reliable as long as honest nodes [miners] control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes [full nodes] can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network [ie. other miners]. One strategy to protect against this would be to accept alerts [fraud proofs] from network nodes [full nodes] when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes [full nodes, not necessarily mining] for more independent security and quicker verification.

ghost commented 8 years ago

Many dictatorships rewrite history to suit their political goals.

illuzen commented 8 years ago

Where are these "different versions of the whitepaper out there" that you speak of?

Why not write your own whitepaper? You seem really worried about the ignorant masses being "misinformed" by the founding document.

ftrader commented 8 years ago

I have seen people promote toxic and crazy ideas, and then cite parts of the paper in an effort to justify it

Tell us, which part of the paper do you want to censor in order to prevent people quoting them?

ChainQuery commented 8 years ago

Agree with Harding that the original link which thousands have linked to should always be the "Original Bitcoin Whitepaper" which interestingly is how it is most often linked and referred to.

Any alterations to this historic document to adapt it to what you believe it should be also ought to be clearly marked as such in any future edition.

ASICseer commented 8 years ago

If you want to change Bitcoin's whitepaper, make an altcoin. Isn't that your beloved argument?

Feri22 commented 8 years ago

I think there should be clearly visible what is and what is not original paper from Satoshi and the original we should never change...If anything, do edited and updated version, separated from the original whitepaper...

If you edit the original paper, people calling you names for censhorships etc would have just more fuel in the fire...

I agree there should be updated version of paper or new users, BUT only clearly explaining what paper is what and why there is a updated version, explaining there were changes along the way etc...if you want to write it, it must be with 100% transparency, 100% honesty and 100% separation from the original...

The original paper should always be on the link bitcoin.pdf

PS: Please don't change the original, at least not !NOW!, in these times of ununited community it would make things just ultra-worse...Make a separate "updated" whitepaper

dgenr8 commented 8 years ago

Thanks for the heads-up. I'll be sure to point people to a more reliable source, the blockchain, where the full document is included in 54e48e5f5c656b26c3bca14a8c95aa583d07ebe84dde3b7dd4a78f4e4186e713

btcdrak commented 8 years ago

This is crazy. If you want to make an updated paper citing the old one sure that makes sense, but one simply does not update other people's academic work. You build upon other's work through citations.

justfathi commented 8 years ago

This is madness!

Feri22 commented 8 years ago

PLEASE DON'T UPDATE the original Satoshi's work...

It would really make the things even worse

Do a separate version with citations, as btcdrak is proposing...if you touch the original whitepaper, it will divide community even more...

MarcoPon commented 8 years ago

Seems very silly to me. Core War for example have changed a lot in the years, but people don't try to go and mess with the original article by A.K. Dewdney.

harding commented 8 years ago

@theymos

I do often see people saying "just read the whitepaper!" as if the paper is still a good way to learn about Bitcoin.

I've made this recommendation myself many times, and I would like to better understand why you don't think it's a good way to learn about Bitcoin's key properties.

Maybe it would be best to stick several pages of errata and explanation to the front of the PDF, but leave Satoshi's pages untouched. Having bitcoin.pdf redirect to an HTML page would also work, though then people might get annoyed if they're expecting to receive a PDF (for example, if people right click a link to the PDF and "save").

I was thinking perhaps the best way to do it would be with sidenode-style annotations that could put the new information in close proximity to the original quotes. I've done this before for other documents in both HTML/CSS/JS and LaTeX, so that we could create both an HTML version and a PDF version.

Bitcoin 0.1 actually did just compute the longest chain by number of blocks. Satoshi fixed this pretty early IIRC.

I've heard this but I went through many of the early patches a while ago and didn't notice it. I'll have to look for it explicitly next time. I updated the gist to mention this implementation detail: https://gist.github.com/harding/dabea3d83c695e6b937bf090eddf2bb3/revisions#diff-6f509de8a261253a0cdd48f6684c3667

I'd strongly emphasize that Satoshi at this time tended to speak of nodes as if they pretty much corresponded one-to-one with miners.

Yes. I should have addressed that better in the gist; here's an update: https://gist.github.com/harding/dabea3d83c695e6b937bf090eddf2bb3/revisions#diff-6f509de8a261253a0cdd48f6684c3667

@snakecharmer1024

Where are these "different versions of the whitepaper out there" that you speak of?

Gwern has an earlier version here: http://www.gwern.net/docs/20081003-nakamoto-bitcoindraft.pdf with details about it here: http://www.gwern.net/docs/2008-nakamoto

In that post, he also describes a pre-publication version sent to Wei Dai from before when Nakamoto started using the name Bitcoin (but nobody has provided that document for public consumption). I think there might also be a fourth version available somewhere.

molecular commented 8 years ago

This goes too far. Changing the paper is out of the question. To preserve history, bitcoin TX 54e48e5f5c656b26c3bca14a8c95aa583d07ebe84dde3b7dd4a78f4e4186e713 has the content of bitcoin.pdf, sha256 b1674191a88ec5cdd733e4240a81803105dc412d6c6708d53ab94fc248f4f553

nopara73 commented 8 years ago

Nobody is talking about changing the whitepaper, it is creating an up-to-date version of it for educational purposes.
The original version could stay at the same link, but there could be an other link that refers to the up-to-date one, so people will have a choice.
I think even the conspiracy theorist /r/btc folks would be ok with that.

g4p commented 8 years ago

I support you asking this question - sometimes people put Satoshi on a pedestal or place him and his works as untouchable icons and that is not productive or rational. The idea is important, not the man or his code or his words, they serve the idea not the other way around.

Satoshi himself built on the works of others, who built on the works of others, let's not stop that progress. Naturally, we should never delete the history of the original and respect each iteration but we should not be afraid to keep improving upon the ideal.

fraggle222 commented 8 years ago

If you think the paper is out of date, then just write your own damn paper, with your own name on it, and post it to the world as the definitive guide. The world will judge.

Altering an important historical, academic document like the whitepaper is just god awful.

HostFat commented 8 years ago

I think that Blockstream_network.pdf is a good name.

nopara73 commented 8 years ago

I repeat myself: Nobody is talking about changing the whitepaper. It is not about altering it, then publishing it in the name of Satoshi Nakamoto, sign it with his PGP and force every website that is hosting the original whitepaper to change it.
This is silly, trying to create the impression of this is the case is also silly and unproductive.

maddenw commented 8 years ago

NACK. That's not your decision to make. Go start an alt coin.

molecular commented 8 years ago

Ok, I accept that noone wants to change the original paper and I calmed down considerably due to that.

However, I also think the paper should not be amended and there should not be other versions of the "bitcoin paper" created for any purpose, neither educational nor "to save the children".

There are plenty of educational resources on bitcoin out there, but of course I don't object to creating more. Just don't call them "updated bitcoin paper" or anything like that, please.

molecular commented 8 years ago

This is silly, trying to create the impression of this is the case is also silly and unproductive.

The title of this issue (combined with other factors) is what creates that impression, not the supposed silliness of the reader.

Change the title to "create more educational material on bitcoin" and you wont face such opposition.

nopara73 commented 8 years ago

I see. I personally don't really feel a great need of updating it, since whoever goes to this lenght understands the purpose of a whitepaper is to kick off a project. That being said I could've use some comments to understand what applies and what doesn't anymore when I first read it.
I just think it is very toxic to crash this idea altogether because of demonization of core. We might miss some interesting insights among the comments those are actually constructive to the conversation.

nopara73 commented 8 years ago

The title of this issue (combined with other factors) is what creates that impression, not the supposed silliness of the reader.

Fair point. I second to recommend changing the title.

michaelcippolito commented 8 years ago

NACK.

I feel that changing, in any way, the file located at https://bitcoin.org/bitcoin.pdf would represent a highly negative example of historical revisionism. Even if it is not a fully accurate description of Bitcoin as Bitcoin currently exists, the white paper documents Satoshi's original intent for Bitcoin and overall technical concepts.

Please do not change, the file located at https://bitcoin.org/bitcoin.pdf in any way.

If anything, a wiki could be used or updated technical papers could be written and a page could be dedicated to all of this information, including Satoshi's original white paper and any other technical papers to come after.

michaelcippolito commented 8 years ago

At the time of this posting, the SHA256 sum of the file located at https://bitcoin.org/bitcoin.pdf is

b1674191a88ec5cdd733e4240a81803105dc412d6c6708d53ab94fc248f4f553

patobrien commented 8 years ago

NACK.

People understand that the Bitcoin Whitepaper was an early explanation that outlines a vision for Bitcoin that should be adhered to.

Specifically, the first sentence:

"A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution."

What this means is that Bitcoin should scale on-chain without forcing new users to go through some 2nd-layer middle-man. Bitcoin needs to remain peer-to-peer.

droplister commented 8 years ago

NACK - This is like 1984's memory hole.

Write something else published somewhere else.

Cobra-Bitcoin commented 8 years ago

I'm going to ignore most of the trolling from /r/btc, and just refer to facts and reality, instead of emotions.

Firstly, the Bitcoin whitepaper is part of the Bitcoin software project. It always has been. Here you can see bitcoin.pdf in the original Sourceforge project list of files; http://web.archive.org/web/20091127010808/http://sourceforge.net/projects/bitcoin/files/. And here you can see all the files in this project are all under the MIT licence http://web.archive.org/web/20091128211305/http://sourceforge.net/projects/bitcoin/develop. If Satoshi did not want the whitepaper updated at some point in the future, he wouldn't have given it to us under the MIT license.

Secondly, it's pretty obvious that the current whitepaper uses incorrect terminology and has many things wrong with it. The paper was clearly always meant to be a learning resource regarding the Bitcoin software, but currently it doesn't do a very good job at that. Thousands of people are reading the paper each month, and they're getting misinformed. For example, even parts of the abstract are incorrect, it states: "The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power". But Bitcoin doesn't care about the "longest chain", it should read "The longest valid chain".

Like how main.cpp has been changed over time, so should bitcoin.pdf so it continues to be a useful part of the Bitcoin software project. This document was always supposed to be a learning resource. If you support changing Satoshi's code, then you should also support making changes to bitcoin.pdf, because both main.cpp and bitcoin.pdf are files belonging to the same project left to the community by Satoshi. I know this discussion is divisive, but please try to be respectful and logicial, instead of treating Satoshi like a God and this paper like the Bible. Users will always be able to find the original paper anyway, just like people are still able to download very old versions of Bitcoin.

droplister commented 8 years ago

That URL gets a lot of traffic because people are linking to and seeking the whitepaper. You would be un-doing and de-contextualizing A LOT of citations.

The whitepaper isn't a constitution or living document. It's a historical and published paper. Leave it be.

There is plenty of updated information online. You are only considering this due to your privileged position to redirect those visitors. Normal people just make a medium post.

If you can create a better explanation, go ahead. It won't be a whitepaper.

How about bitcoin.org/latest.pdf and you explicitly create that as an updated and frequently changed up-to-date resource.

No one's trolling you. You just don't understand academic white papers.

droplister commented 8 years ago

Oh, and this is a bike shed we don't need. Thanks.

ftrader commented 8 years ago

@fluffypony : Not sure that's a good idea - imo showing totally different content depending on user agent (and I don't mean tailoring to fit the client's abilities) strays a little too far from the intent. I would like to be able to curl or wget some contents and receive pretty much what a browser would get, though perhaps presented differently, but not something completely different.

"User agent sniffing is now considered poor practice" - https://en.wikipedia.org/wiki/User_agent

jl2012 commented 8 years ago

NACK. People use that particular link to cite that particular version of the paper. Do whatever update you want with any other link.

FeltPen commented 8 years ago

You would need to take Satoshi's name off of the document or add new authors to the byline - credit for any changes to the paper shouldn't be attributed solely to Satoshi unless he's actively involved in that corresponding round of editing and drafting.

btcdrak commented 8 years ago

If you support changing Satoshi's code, then you should also support making changes to bitcoin.pdf, because both main.cpp and bitcoin.pdf are files belonging to the same project left to the community by Satoshi.

@Cobra-Bitcoin The white paper is not a reference specification for the protocol which should be updated according to the code. That is why we have BIPs, to document protocol changes.

You could write a new high level overview of Bitcoin with citing the original paper and various other sources to back up your findings and publish that. Some have suggested redirecting bitcoin.pdf to a landing page that has the original white paper and other resources and citations like a supplimental document/errata. or even annotated version. That might also be controversial, but it will be a lot less controversial than outright changing Satoshi's paper.

I think you're also stretching the intent of the MIT license: this is open source and even most BIPs have permissive licenses OSS licenses, or public domain. This is done so that people are free to adapt the work. While the MIT license does give you legal permission to edit the document it would be clearly controversial to change the document which is directly linked to as "the original Bitcoin white paper by Satoshi" (and things to that effect).

petertodd commented 8 years ago

NACK changing /bitcoin.pdf to an edited paper, echoing @btcdrak's arguments.

Replacing /bitcoin.pdf with a landing page that in turn links to the multiple versions known of Satoshi's bitcoin.pdf paper, along with an explanation of the historical context and what's changed since, could however be a reasonable idea if done well.

Cobra-Bitcoin commented 8 years ago

"The whitepaper isn't a constitution or living document. It's a historical and published paper. Leave it be."

@droplister What are you talking about? I just showed you that it's always been part of the Bitcoin software project, and that Satoshi licensed it under MIT; you know, the license that states "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge". The bitcoin paper is an associated documentation file, and therefore part of the Bitcoin software, it's not an academic paper.

Nobody is suggesting removing the paper's historical significance, because people will always be able to find the original. But this is a discussion focused on how to improve the current paper so new Bitcoin users don't get misinformed. The discussion was actually going well, until /r/btc users started to ruining the discussion with FUD.

FeltPen commented 8 years ago

CobraBitcoin - You say "people will always be able to find the original." Would the original be available and easily findable on the site under your proposal?

petertodd commented 8 years ago

NACK changing /bitcoin.pdf to an edited paper, echoing @btcdrak's arguments.

Replacing /bitcoin.pdf with a landing page that in turn links to the multiple versions known of Satoshi's bitcoin.pdf paper, along with an explanation of the historical context and what's changed since, could however be a reasonable idea if done well.

btcdrak commented 8 years ago

The discussion was actually going well, until /r/btc users started to ruining the discussion with FUD.

I think dismissing dissent as r/btc users' FUD is insulting. Neither @jl2012, @petertodd or myself are from r/btc (we are regular contributors to Bitcoin Core) but we also diagree. I see several dissenting comments from r/bitcoin users too. Bringing "partisanship" into the equation is just a distraction.

I implore you to rethink this.

Cobra-Bitcoin commented 8 years ago

CobraBitcoin - You say "people will always be able to find the original." Would the original be available and easily findable on the site under your proposal?

@FeltPen Of course. When a user visits the paper, they would get a modern up to date edition, but there would be a banner above it that would point to the older version. Users that want the historical context will obviously visit the old version, but most users that just want to figure out what Bitcoin is will be better served by the amended version and will use this.

harding commented 8 years ago

Related to @btcdrak and @petertodd mentions of a landing page for the paper, Bitcoin.org already has that: https://bitcoin.org/en/bitcoin-paper (as well as translated versions of that page). Almost all links on Bitcoin.org point to that page (or the language-appropriate version) rather than directly to the PDF file.

It would be easy to extend that page with links to other resources, such as an updated page/PDF using modern terminology and with corrections/additional details.

FeltPen commented 8 years ago

@Cobra-Bitcoin - Thanks for the reply. I think the heart of the issue is author attribution - Satoshi can't get credit for the additions or edits unless he's involved in the process. The precedent for this has been set by the Core devs on the copyright statement in the code repository. What's your position here?

ftrader commented 8 years ago

Quite honestly it sounds as if @Cobra-Bitcoin would like the whitepaper to be a living specification document. It's not clear at all to me that Satoshi intended this, otherwise he would have written at least a rudimentary specification document (with a version number!) instead of the informal high-level description with emphasis on rationale.

franckuestein commented 8 years ago

NACK. I second what other people said against this proposal.

If you want to publish new academic work or informative paper about Bitcoin just create a new one completely unlinked to the original Bitcoin whitepaper and don't change bitcoin.pdf to an edited one.

ghost commented 8 years ago

NACK. Leave his original work alone.

If you want to write your own paper, no one is stopping you, just don't remove or change one of the biggest part of Bitcoin History.