RSA Encryption With Primes

An Objective-C ImplementationSecurity is about layers of difficulty. Nothing is full proof. But some methods of encryption have more layers of difficulty than others. Before computers, simply shifting the characters in the alphabet over some spaces was sufficient to stump most prying eyes. This is known as the Caesar cipher method, its implementation on in most computer programing languages uses the modulus operator to shifts the message over by a factor of a key and rotates around the alphabet in ASCII values.

Continue Reading →

Economic Concerns over the Bitcoin-XT Hard Fork

A Response to“Why Bitcoin is Forking

Everyone involved in the bitcoin community, whether they hold half a bitcoin or a thousand wants to see bitcoin grow in users and in value. No one is debating the desire to advance, we’re debating exactly how the advancement should be achieved. If you consider bitcoin a legitimate currency, you are necessarily accepting a broader definition of money that has ever existed before. Because Bitcoin is not only a store of value, it’s a digital payment system.

“Fundamentally this question exposes ideological differences between people interested in Bitcoin. Is Bitcoin > more of a digital gold or is it more of a competitor to Square?” — Gavin Andresen

For those who value bitcoin as a payment processor
removing or expanding the block size limit lets the ability of the technology freely meet the demands of the market.

For those who value bitcoin primarily as a currency,
expanding the block size limit while advocating for growth in the number in transactions, may be an indication that the 21 million cap will also be one day disputed in a similar line of reasoning.

Ideological differences aside, Bitcoins use as a payment processor and as a store of value mean less, if it falls short of either side of that definition.

While Mike Herns does a fine job of explaining his rationale for pressuring a consensus in increasing the block size, in his article “Why Bitcoin is Forking”, he does little to account for the technicalities of his proposed BTC-XT fork.

He stages the “tale of differing visions” from the perspective of the original, true, and right path in following the Creators vision:

The founding vision for Bitcoin was carefully laid out by Satoshi, and has always been crystal clear. This dispute is about growth. In 2008 he responded to the first question ever asked about Bitcoin’s design with a simple statement:
“Visa processed 37 billion transactions in FY2008, or an average of 100 million transactions per day…”
Although common in bitcoin scalability discussions, the comparisons to Visa are not relevant to this fork. Currently no more than 220,000 transactions has ever been seen on the blockchain in a single day. The proposed 8MB block size will allow for scaling to a theoretical 53 transactions per second. While comparatively Visa processes payments magnitudes higher, at a rate of of 2,000 transactions per second.

The article contains no mention of Bitcoin-XT’s block size limit doubling every two years.

And where it is mentioned on the BitcoinXT Software Batches page, the doubling effect is thoughtfully framed next to the word “smoothly”.

“After the switch the max block size limit smoothly increases, doubling every two years.”

Stated without any justification as to why this approach is chosen over others, and why he thinks it will happens smoothly. This sets the theme for Herns use of adjectives over market data. If the goal is to get 75% of hashing power in line with this choice, more explanation is needed.

One of the benefits of a decentralized cryptocurrency is its ability to side step small centralized economic planning. It’s obvious that this is not yet fully possible in the world of cryptocurrency. But by setting this as a standard, current implementations should also aim to limit the amount of market analysis necessary for future implementations.

This article does not fully address the possible outcome involved in the Bitcoin-XT launch.

  1. If less than 75% of the nodes choose to accept it, will they readjust and launch again?
  2. If 75% of the nodes choose to run Bitcoin-XT without the core choosing to upgrade (hard fork), will people with pre-existing coins be able to spend once on both sides?
  3. If 75% of the nodes choose to run Bitcoin-XT and bitcoin core chooses to upgrade, is Mike unofficially promoted to a Bitcoin core developer? Is this a conflict of interest?

Many core developers have stated a desire to raise the block size and move towards becoming a more competitive payment processor. But priorities and trade offs between developing each of the new features are something to consider. And its something to distinctly address if you are the one proposing the trade off.

Increasing the block size means a larger blockchain, and fewer people being able to run a full node. I understand that not everyone needs to run a full node, and that Satoshi didn’t originally design the blockchain for every user to run one. But so what? If the ability to validate your transactions on the blockchain without having to trust a third party adds value-and you’re proposing to limit that capacity questions ought to be addressed. How much is the full node feature worth? Is immediate scalability of the blockchain worth more? Does one have to come at the cost of the other?

The most concerning dimension of this article and the BTC-XT proposal is how much it reads like a covering of a political debate. Characterizing bitcoin core developers as being stunted and fearful of success. Using Satoshi’s words to add credibility to the fork, all the while boasting his achievements in the bitcoin development community. The political metaphor wouldn’t be complete without his final appeal for a vote.

Having the miners decide via hashing power is oddly reminiscent of letting those who own the land decide. A vote is going to happen, but it won’t only happen in hashing percentage it will happen in dollars.

Bitcoin is the first free market cryptocurrency, but it’s not a business. There is no CEO to decide core changes or Content Strategists detailing how news should be released. This is a community of developers that without donations and support have little incentive to implement the features we as users want.

Support Bitcoins core developers.

Support the implementation of one key feature at a time–to protect Bitcoins value as a currency.

Core developers Gavin Andresen, Cory Fields and Wladimir van der Laan have joined The MIT Digital Currency Initiative. Click here to donate to them at MIT. Or start your own bitcoin development team, and contribute.

A Proof-of-Existence Without Aliens, Ghosts, or God

Proving the exclusive rights to a document, while simultaneously guaranteeing the state of its existence, is all possible without mysticism or deities for anyone who is holding Bitcoin. Rants about bitcoin and the blockchain potential seem never ending. Bitcoins use in SSL certificates, distributed email, micropayments, crowdfunding, smart property all stretch far beyond its popularity and primary use as a currency. And as is true for any significant claim of mysticism or deities, a technology capable of proving existence, ownership, and integrity it is going to require a significant amount of explanation.

Until the blockchain, data on the Internet was largely stored on a central database or server, even cloud storage is typically owned and managed by a hosting company. There are pros and cons to storing data on a server or cloud. Firstly, it saves you from having to store data locally on your computer but more importantly, storing files on a network makes them easier to share. When I upload a photo to Facebook my friends can request the image from the Facebook server and save it to theirs locally. But the convenience of a central interface comes at a cost. Or more often a trade off; your data for their software.

Users upload data at their own risk, the majority of cloud and social media services make no promises of total privacy for your personal data.

When there is almost no guarantee to privacy on the internet, it is important to learn how to maximize it. An alternative to central storage and the cloud is distributed computing (or p2p software), and it’s what cryptocurrencies are built on. In a system of distributed file storage, Bitcoin records every transaction on a public ledger called the blockchain. In a distributed fashion, the entirety of the blockchain is stored by all the “full node” computers participating in the network.

The process of establishing proof-of-existence for your document requires pushing a cryptographic digest of your file to that public blockchain. A digest a shorter fixed-length value that corresponds to the plain text. It can be used to verify the plain text, but cannot be used to decrypt the original text. With your document in hand, you can validate your copy against the chain, without ever having to upload the document to a server or database.

For the first time in history we have a tool to validate the existence of documents without publishing them.

This means no central point of failure, storing data in bytes instead of megabytes, and cutting the cost for companies managing their customers sensitive information. The process of proof-of-existence works by generating a unique code for a document and publishing it to a distributed blockchain network. For any document you can generate a unique bitcoin address.

Take the picture below, its bitcoin address (from blockchainMe.com) is: 1BQTph7tNPTXrz6G6JX1D7Pn7PLuAWwxH5

Flip the picture horizontally, and the address is: 1MBusJzSx2DLjNFpjMJkT84zSubfei9YgW

Remove the little guys arm and the address is: 1ECRrQTDL58Zmfk7gmFr7aiCP8KzdfbQsG

Minute changes in the original document generate entirely different bitcoin address, guaranteeing the integrity of your cool ghost document on the blockchain. By sending a small amount of funds to the address, you have stored a cryptographic digest of your file without ever uploading the document to a database. On the blockchain, the proof of the document appears as a normal transaction. If you choose to publicly reveal the document and calculate the corresponding address you can prove ownership of the information at a specific time.

Although this little ghost example may not seem like much, this technology has virtually incomprehensible implications for traditional intellectual property rights. Just as people wouldn’t have the incentive to plant crops or build on land they don’t have the right to use, people would have less incentive to create ideas or brands if they did not directly benefit from the production of them. For the artists, performers, scientific researchers, software and book publishers that thrive from intellectual property revenue the blockchain could save some significant costs associated with licensing.

Bitcoin and similar cryptocurrencies exist in a space that has traditionally been dominated by governments. Since the early existence of money, gold and silver coins were branded by each of the Greek city states. It’s a rare opportunity to live in a time that offers any promising alternative to that. Proof-of- existence offers the ability to notarize any document on the blockchain absent a third party, and it’s up to the us to decide how valuable that its.