PDA

View Full Version : PathWalker and Paul debate Bitcoin project structure



PathWalker
30th March 2013, 09:47
The more interesting question, is who govern the technology? ( Govern = manage policy.)
The people who control the source code control the currency.
It is that simple.
The source code for Bitcoins is open, and understandable, and re-implementable.

Its technical security vulnerabilities are known, and have been spelled out above, such as the risk of one party or a small oligarchy of parties gaining too much dominance, or the risk to an individual of losing their bitcoins (as easy as forgetting a password or losing a computer disk file) or having their bitcoins stolen (as easy as having your computer or website hacked.)

The open source community has some community based on merit.
If you learn how the open source big project govern them selves. Organizations like Elicpse, Apache, Mozzila, Java Community etc.
There are clear rules:
1. How to introduce change.
2. Who can introduce change.
3. Code history if open an available to all.

I cannot say any of the above about Bitcoin code.
To the contrary it is very much pseudo open source.
It is open controlled code Like Jboss, and MySql. One may read the code. But guess who control the code and make the policy. RedHat and Oracle respectively.

You currently believe the amount of Bitcoing has a ceiling. What a surprise it will be when the ceiling will be reached the code will apparently change to increase the ceiling. And wonder of wonder it will be "voted" for by the "community".

===

[ Mod-edit: The first 14 posts on this thread began life as posts on the Will Bitcoin Kill the Federal Reserve (http://projectavalon.net/forum4/showthread.php?57516-Will-Bitcoin-Kill-the-Federal-Reserve) thread. They were an argumentative distraction from the main thread, so I split them off to here. - Paul. ]

PathWalker
30th March 2013, 09:57
The Bitcoin governance process: https://github.com/bitcoin/bitcoin#development-process

Development process

Developers work in their own trees, then submit pull requests when they think their feature or bug fix is ready.

If it is a simple/trivial/non-controversial change, then one of the Bitcoin development team members simply pulls it.

If it is a more complicated or potentially controversial change, then the patch submitter will be asked to start a discussion (if they haven't already) on the mailing list.

The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if the code doesn't match the project's coding conventions (see doc/coding.txt) or are controversial.

The master branch is regularly built and tested, but is not guaranteed to be completely stable. Tags are created regularly to indicate new official, stable release versions of Bitcoin.

This is the trick.
Who decides when and how to measure the "broad consensus".
Who votes and how?

I am fully confident there is one single person with full control over the source code.

ThePythonicCow
30th March 2013, 16:29
I cannot say any of the above about Bitcoin code.
To the contrary it is very much pseudo open source.
It is open controlled code Like Jboss, and MySql. One may read the code. But guess who control the code and make the policy. RedHat and Oracle respectively.
From Bitcoin software (Wikipedia) (https://en.bitcoin.it/wiki/Software#Bitcoin_software)





Bitcoin clients

Bitcoin-Qt - C++/Qt based tabbed UI. Linux/MacOSX/Windows. Full-featured thick client that downloads the entire block chain, using code from the original Bitcoin client.
bitcoind - GUI-less version of the original Bitcoin client, providing a JSON-RPC interface
MultiBit - lightweight thin client for Windows, MacOS and Linux with support for opening multiple wallets simultaneously
Electrum - a "blazing fast, open-source, multi-OS Bitcoin client/wallet with a very active community"
Bitcoin-js-remote - JavaScript RPC client, support for QR codes
Bitcoin WebUI - JavaScript RPC client
Bitcoin Webskin - PHP web interface to bitcoind and namecoind
subvertx - command line bitcoin tools
Bitcoiner - Java RPC client (Android)
Armory - Python-based client currently an alpha-level release, the beta version is being crowdfunded
Spesmilo - Python/PySide RPC client (abandoned)
Freecoin - C++ client, supports alternative currencies like Beertoken
BitDroid - Java client
Bitdollar - C++/Qt client, unstable beta version
libbitcoin
BitCoinJ - Java client library, early development stage but used in live projects already
BCCAPI (Bitcoin Client API) - a java library designed for making secure light-weight bitcoin clients.

PathWalker -- which of the above 17 implementations of bitcoin are you talking about? (This a rhetorical question. You are talking about the https://github.com/bitcoin implementation. But that is just one of several.)

I have seen no evidence for your claim that bitcoin is like JBoss or MySQL ... a large body of code that is really only managed by one group, or occasionally an open source fork, in the manner that MariaDB (http://www.zdnet.com/open-source-mariadb-a-mysql-fork-challenges-oracle-7000008311/) is challenging MySQL.

I have seen repeated evidence that bitcoin is a small, well defined, body of code that has been repeatedly reimplemented by various independent developers. All the above implementations inter-operate. Some of the above implementations are complete, downloading the entire block chain, and some are light weight, relying on servers. Changes in the underlying algorithm and in limits such as the 21 million maximum number of bitcoins would require changing all the complete implementations and all the servers.

I have not involved myself closely in bitcoin software development, so there is a modest chance that I am seriously wrong here. But from what I have seen, it appears to me that your description of bitcoin software is not correct.


I am fully confident there is one single person with full control over the source code.
I am fully confident that that is not true.

Heck, the original architect and developer, Satoshi Nakamoto, has not even been "seen" in a couple of years. He (or they, we don't know which) has vanished.

This is implementable as fully peer-to-peer software. Write your own. Others have. That is doable.

ThePythonicCow
30th March 2013, 16:52
The Bitcoin governance process: https://github.com/bitcoin/bitcoin#development-process
The bitcoin development process you cited is for just one of the implementations. They all inter-operate, and the full implementations contain the entire database and algorithms on your local system, working peer-to-peer with others and no central control.

With a classic client-server database such as MySQL or JBoss, each database is separate and pretty much isolated from the many other databases and pretty much under the isolated control of the particular version of MySQL or JBoss running it. For example, this Avalon forum server software uses MySQL on the backend. If an "upgrade" to MySQL changes some essential parameters or limits in the database, just so long as it works with the particular instance of our forum's database (perhaps transparently migrating as need be), then we (as a user of MySQL) have no control over that ... only Oracle controls that.

But everyone running a heavy weight implementations of Bitcoin has an entire replication of the one and only database Bitcoin database in significant use on this planet and sees all the transactions of anyone. The database is fully replicated many, many times, and the architecture prevents any incompatible change from being forced in to it.

ThePythonicCow
30th March 2013, 17:36
3. Code history if open an available to all.
By the way, since the implementation of bitcoin that you referenced is on github, the code history is available to all. Git uses cryptographically strong algorithms to ensure that the history of a project is "written in stone" (immutable) and fully available. I only spent a few dozen hours playing with Satoshi Nakamoto's original implementation, back in December of 2010, and ran a full server for a while until I decided not to continue active use of bitcoins. But git is something I've use much more, having been very active in both Linux kernel work and in source code control projects at the time (April 2005) that Linus Torvalds created git as a replacement for Larry McVoy's BitKeeper (with whom I had worked, after Larry left Sun and went to SGI, where I worked.)

PathWalker
30th March 2013, 18:39
The Bitcoin governance process: https://github.com/bitcoin/bitcoin#development-process
But everyone running a heavy weight implementations of Bitcoin has an entire replication of the one and only database Bitcoin database in significant use on this planet and sees all the transactions of anyone. The database is fully replicated many, many times, and the architecture prevents any incompatible change from being forced in to it.

Greetings Paul
I am sorry I fail to explain my attitude and arguments.

My objection argument is not technical, not architecture argument, not algorithmic argument, not security argument, not implementation argument, etc.

My objection is about lack of accountability and lack of governance.
1. Accountability, means if there is a failure there is some responsibility.
2. Governance, there is a known transparent policy to plan and manage the evolution of the product/project.

Currently there is no known "board" of directors (as is the case with corporations), or voting process as is the case with open source organization (Eclipse, Apache).

Let say I have a suggestion about a new feature that allow voting power to Bitcoins owners, voting power proportional to the amount of owned Bitcoins. Then I implement the feature and submit the code to the "community".
Then "if there is broad consensus", this feature is accepted.
This is very vague and broad.

1. Who is in the admitted/accepted into the consensus community (only developers, maybe architects, how about product management, technical writers, QA engineers)?
2. Who decides on who is acceptance to the consensus community (product management, architecture board, market analyst)?
3. How long a person or a body is a member of the community?
4. How the consensus is reached (mechanism)?
5. How the consensus is measured and recorded (audit)?

There are other heavy weight question that are far reaching beyond technology.
We are talking about money here, we would like to know how decision and policy are made about the creation of this money.
We all agree it is all in the code and the code is open. Can anyone explain the policy for code/architecture/strategy change?

How can anyone guaranty the current Bitcoin "openness" will be sustained, and for how long?

Let me give you a scenario.
The FED employ 10 undercover developers to join the Bitcoin community. These 10 developers are the majority of the developers therefore can easily tip the Bitcoin strategy and policy.

If you trust in god, go for it.

ThePythonicCow
30th March 2013, 18:59
The FED employ 10 undercover developers to join the Bitcoin community.
The developers of the implementation you quoted on github are not "the bitcoin community" in the sense you mean it. Those developers are just the developers of one implementation. The CIA itself could implement bitcoin from scratch and participate in the bitcoin community. Either they play by the same rules as everyone else, or their attempts at transactions are rejected.

ThePythonicCow
30th March 2013, 19:04
Yes, open source projects do have vague rules. They rely on the competence and integrity of the active participants. Any one particular open source implementation of bitcoin, such as the one on github to which you link, could fail if the wrong people become involved, or good people are not sufficiently involved.

The peer-to-peer, totally replicated, robust architecture of bitcoin insulates it from such vagaries.

No successful open source project that I know of has precisely defined legalistic "corporate rules" of the sort you describe. If one did, I'd tend not to trust it :).

PathWalker
30th March 2013, 19:30
Yes, open source projects do have vague rules. They rely on the competence and integrity of the active participants. Any one particular open source implementation of bitcoin, such as the one on github to which you link, could fail if the wrong people become involved, or good people are not sufficiently involved.

The peer-to-peer, totally replicated, robust architecture of bitcoin insulates it from such vagaries.

No successful open source project that I know of has precisely defined legalistic "corporate rules" of the sort you describe. If one did, I'd tend not to trust it :).

I believe you understand my point.
There is no guaranty the Bitcoins you own now will be your in due time. You trust the merit of the "Community".

The community is not well defined.
The "consensus" conclusion is not defined.
Any "hostile" body can take over the money creation scheme.

There are well distinguished open source organization which are consortium and/or project management body.
These governed organizations include:
1. Mozilla, http://www.mozilla.org/about/governance.html
2. Eclipse, http://www.eclipse.org/org/#Development + http://www.eclipse.org/projects/dev_process/development_process_2011.php
3. Apache, http://www.apache.org/foundation/how-it-works.html
4. GNU + Free Software Foundation, http://www.fsf.org/associate/

In the case of investment there must be element of risk.
In the case of currency there must be long term confidence. No risk involved (how sad to realize we are fooled once again by TPTB).

ThePythonicCow
30th March 2013, 20:18
In the case of investment there must be element of risk.
In the case of currency there must be long term confidence. No risk involved (how sad to realize we are fooled once again by TPTB).
You are continuing to slam bitcoin ... why?

You ignore clear points that I make, such as: The "community" you reference off github is not the community that controls bitcoin, but just one implementation.
Quite successful open source projects (including at least the Linux kernel and perhaps even some of those you name) really depend on the competence and integrity of people, not on written rules (even if such rules are written).
The mathematical and cryptological architecture of bitcoin does matter, as it is an essential aspect of the strengths and weaknesses of bitcoin.

One further point ... there is risk in any currency ... in particular there is now grave risk in the almighty US Dollar! The bastards in power are trying to fool us once again with that currency. That actually is a prime motivation for using bitcoins. You might have the "long term confidence" issue exactly backwards!

Apparently you have chosen to slam bitcoin.

So far as I can tell, you have not studied its mathematical or cryptological architecture even as little as I have, nor so far as I can tell have you downloaded, examined, built and run any of the full implementations of bitcoin, nor so far as I know have you participated as an active contributor to any major open source project. Nor, for that matter, do I see evidence that you have been a serious student of economics and monetary systems (I've been there too, though for less time than I was an open source developer.)

I am not actually a supporter of bitcoin myself, for reasons I've explained in other posts over the last few days. But the reasons you offer seem tuned to what will discredit bitcoins in the eyes of those who are less expert in these matters, and seem immune to my efforts to clarify or correct.

So I take it you have taken on the mission to slam bitcoin in the eyes of a wider audience. That would be an unfortunate conclusion if correct.

ThePythonicCow
30th March 2013, 20:39
There is no guaranty the Bitcoins you own now will be your in due time. You trust the merit of the "Community".
The threat to the value of bitcoins is not in that github project.

The gravest threat to bitcoins in the short to medium future (months to a few years) is from TPTB, controlling the Internet including controlling bitcoin transactions over the Internet, even to the extent of controlling any VPN, TOR, ssh or other encrypted tunneling which might be used to pass bitcoin transactions secretly.

The gravest threat to bitcoins in the long term (decades or centuries) is, in my view, the essential disconnect between (a) the supply of new bitcoins and (b) useful contributions to human communities, including a supply that is capped at 20 million bitcoins. That cap will be hit within two or three decades, after which the currency becomes essentially deflationary ... a shrinking supply of "coinage" as some are irretrievably lost.

Successful long term currencies have variable, gradually increasing supplies, and have the deep support of the "dark elite" on this planet. I have in mind gold and silver.

If the elite on the light side prevail, then successful long term currencies will have their support, and will be issued in proportion to contributions of useful goods and services made to the community, and "spent" in exchange for such goods and services.

Bitcoins present a serious thread to the current "dark elite" not so much because they are likely to become the next global currency, but because they highlight the major weakness of all recent and present major currencies, that they are either debt based or subject to the dominant control of those holding the most of a key and limited resource (gold and silver.)

Debt (and its handmaiden violence) is the primary mechanism by which our land, our resources, our homes, our property and the labor of ourselves and our children are taken from us by the dark elite.

A dialogue which awakens us to the evil of debt based money is dangerous to the control over us held by the dark elite.

PathWalker
30th March 2013, 20:49
So far as I can tell, you have not studied its mathematical or cryptological architecture even as little as I have, nor so far as I can tell have you downloaded, examined, built and run any of the full implementations of bitcoin, nor so far as I know have you participated as an active contributor to any major open source project. Nor, for that matter, do I see evidence that you have been a serious student of economics and monetary systems (I've been there too, though for less time than I was an open source developer.)

The quote above is quite personal and slanderous.
I am a software professional, I know the technology, I know the business and I know the processes. I will not compete who has a bigger/stronger tool.
I learned the value of honored process and proper management in many times, is more important then the implementation/technology.

Your arguments are technology/implementation based.
You do not know who the "community" are, and how they decide about the Bitcoin code.
This code might be different in few weeks time. And no one is personally responsible.

As far as you care the "community" could well be the board of the Yakuza branch of the FED (there is no way you can prove I am wrong, as there is no way I can prove this assertion). But the code is open and transparent.
I do not believe it will stay that transparent for long.

ThePythonicCow
30th March 2013, 20:59
So far as I can tell, you have not studied its mathematical or cryptological architecture even as little as I have, nor so far as I can tell have you downloaded, examined, built and run any of the full implementations of bitcoin, nor so far as I know have you participated as an active contributor to any major open source project. Nor, for that matter, do I see evidence that you have been a serious student of economics and monetary systems (I've been there too, though for less time than I was an open source developer.)

The quote above is quite personal and slanderous.
I am a software professional, I know the technology, I know the business and I know the processes. I will not compete who has a bigger/stronger tool.
I learned the value of honored process and proper management in many times, is more important then the implementation/technology.

Your arguments are technology/implementation based.
You do not know who the "community" are, and how they decide about the Bitcoin code.
This code might be different in few weeks time. And no one is personally responsible.

As far as you care the "community" could well be the board of the Yakuza branch of the FED (there is no way you can prove I am wrong, as there is no way I can prove this assertion). But the code is open and transparent.
I do not believe it will stay that transparent for long.
You are confirming my concerns.

PathWalker
30th March 2013, 21:12
So far as I can tell, you have not studied its mathematical or cryptological architecture even as little as I have, nor so far as I can tell have you downloaded, examined, built and run any of the full implementations of bitcoin, nor so far as I know have you participated as an active contributor to any major open source project. Nor, for that matter, do I see evidence that you have been a serious student of economics and monetary systems (I've been there too, though for less time than I was an open source developer.)

The quote above is quite personal and slanderous.
I am a software professional, I know the technology, I know the business and I know the processes. I will not compete who has a bigger/stronger tool.
I learned the value of honored process and proper management in many times, is more important then the implementation/technology.

Your arguments are technology/implementation based.
You do not know who the "community" are, and how they decide about the Bitcoin code.
This code might be different in few weeks time. And no one is personally responsible.

As far as you care the "community" could well be the board of the Yakuza branch of the FED (there is no way you can prove I am wrong, as there is no way I can prove this assertion). But the code is open and transparent.
I do not believe it will stay that transparent for long.
You are confirming my concerns.
You win, hope you are happy.:fencing:

indigopete
31st March 2013, 01:50
If I could just chime in on the fun for moment...I'm a software developer as well with 20 years experience.

But I really don't think the pros and cons of Bitcoin as a currency have anything to do with software development or the management of source code in open source projects.

A software development project has "developers" and it has "source code". Bitcoin is a currency. It has neither of these things. Sure, there are software developers who build "miner" applications, but these are not the currency.

When people talk about "hacking" or "cracking" Bitcoin, I always think it's quite ironic - because it happens every day ! It actually happens to be the basis on which the currency works which I think is one of the beauties of it.

Counterfeiting ? It positively * depends * on home counterfeiters for its existence.

The designer of Bitcoin has taken all the classic weaknesses of traditional currencies and turned them into strengths ! :)

There is nothing to "hack" in Bitcoin because the network is "building" things rather than taking them apart, so it's academic. I'm sorry, but probability is just something that cannot be hacked - ever - unless we move to a parallel universe where different rules of mathematics apply.

If you have a 1 in 50 chance of golfing a hole in 1, then, by definition, on average you WILL require 50 shots for every hole in 1 you get.

Supreme ! :)

penn
1st April 2013, 01:41
I wish you would all keep at it. I am beginning to understand the concept more and appreciate reading the different view points.

tnkayaker
1st April 2013, 04:30
unfortunately not everyone is a geek and can wrap their mind around this kind of unit for trade / exchange purposes, not that they/we/myself are stupid , we just have other strengths, and programming and bit coining are not one of them, lol,, but i do want to know more peace,dennis

indigopete
1st April 2013, 11:13
I wish you would all keep at it. I am beginning to understand the concept more and appreciate reading the different view points.

Penn -

Imagine a Sudoku game in a newspaper. The newspaper can "vary" the difficulty making the words longer so it takes longer to solve. Solutions are extremely rare and take thousands of man-hours to solve. The newspaper maintains the difficulty level such that only a fixed number can be solved every day. If people get 'wise" and solve more, it increased the difficulty level.

Meanwhile, these Sudoku solutions become "tradeable" in the open marketplace by virtue of their scarcity. They are used as a currency for buying everything from Bicycles to Milk.

Note: It is their *scarecity* which gives them value. People think this is weird, but they tend to forget that all the things we currently take for granted as having "value" also acquired it by virtue of their scarcity - not much else. Gold has some industrial uses and it is - for some - attractive as a metal, but it's its scarcity which is at the root of its value.

Back to the Sudoku solutions which are now being used as 'currency'. There are now 2 ways to acquire this currency:

[1] - try to solve today's puzzle
[2] - trade some of your other assets for Sodoku Solutions

Bitcoins are created by solving an extremely computationally intensive mathematical "puzzle". There are home PC's and people working in groups (pools) working on the puzzle and everytime one gets solved, the person who solved it gets 25 new Bitcoins.

NOTE 1st big difference with classical money: 90% of Fiat currency is created by commercial banks and therefore has to be "borrowed" into existence. Again - the only way that classical money can get into the economy is for it to be BORROWED from commercial banks. What that means is that whenever new money is created, it's accompanied by an equal amount of DEBT.

On the other hand, with Bitcoin, a lot of initial work has do be done to bring it into existence, however, once this is done there is no accompanying debt and it can be deployed immediately to facilitate trade.

The Block Chain

Imagine now that a record was kept of every single time someone had "spent" one of their Sudoku solutions. (i.e. a Sudoku solution log which keeps track of who transfered their solution to whom). That would mean that if you bought a bike with one of your sudoku solutions but kept a copy of it and tried to then buy a fridge with the copy, the seller of the fridge could check if you really still "owned' that sudoku solution or not. They would check the log and say;

"wait a minute - you already used that solution to buy a bike. You don't own it any more"

In Bitcoin, this is exactly what happens through something called the "block chain". It is an implicit record of every transaction that was ever made with bitcoin and every "peer" (participant in the system) has a copy of it. Note, I said "implicit record". Thats because it uses a very efficient encoding system to record the transctions called a "hash' algorithm. Basically, it doesn't actually go and search for that bitcoin, rather, if you try to double-spend your bitcoin, it just won't "fit" on the end of the block chain and thats how the system knows its not valid for spending by your wallet !

PathWalker
1st April 2013, 11:17
unfortunately not everyone is a geek and can wrap their mind around this kind of unit for trade / exchange purposes, not that they/we/myself are stupid , we just have other strengths, and programming and bit coining are not one of them, lol,, but i do want to know more peace,dennis

The essence of the conversation is the following:
Paul believes that due to the technology the Bitcoin is distributed and no single organization has control over it.
PathWalker believes that due to the technology the Bitcoin is distributed and amorphous. And controlled by another warring PTB faction.