All posts by Jake Yocom-Piatt

Cyphertite service closing: August 18th, 2015

It is with a heavy heart that I am announcing the coming closure of the Cyphertite online backup service in 2 months’ time, on August 18th, 2015.

Due to limited interest in Cyphertite, we were not able to generate enough revenue to justify continuing to operate the service. In an attempt to make transition away from using the Cyphertite service less painful for existing users, we are giving a 2 month notice that the service is ending. In some cases, this means you simply need to find another online backup service and make the initial backup there before discontinuing use of Cyphertite. In other cases, the migration process away from Cyphertite may be more involved, e.g. you need to restore some data before the service closes. I suggest you start thinking about finding a replacement for Cyphertite sooner rather than later, as in “have a proper backup at another backup provider before August 18th”.

It has been a pleasure to serve all of our customers over the past several years. We feel very strongly that everyone, not just select groups, should have access to secure data storage tools as a matter of personal privacy. As such, we truly appreciate everyone who joined us in asserting their right to online data privacy. Since we are closing Cyphertite, some customers may be left wondering “Well, great… what now? I have to find a new secure online backup service.” so I figured a few suggestions for alternatives would be helpful:

  • Windows users – For our existing windows users, we recommend SpiderOak.
  • Linux/UNIX/OSX users – For all our command line people, we recommend Tarsnap.

Despite shuttering Cyphertite in the near future, we will continue to have a presence in the data security software space, albeit via a new company, Company 0 LLC. In the next few months we will be making an announcement regarding a new project that may be of interest to existing Cyphertite users, so stay tuned.

btcsim: simulating the rise of Bitcoin

btcsim: to the moon!
Over the past 4 months we have had 2 interns, Javed Khan and Michalis Kargakis, work on creating a system for simulating high transaction volumes with Bitcoin called btcsim. Since there has been and is currently a great deal of attention being paid to the issues surrounding mining incentives and block propagation, we figured that it would be interesting to investigate the less-discussed topic of high transaction volumes. There are a variety of claims about how the Bitcoin network will behave at transaction volumes approaching those of major credit card companies, e.g. 3,000 transactions per second (“tps”), so we used btcsim to put btcd and btcwallet to the test. After simulating the creation of blocks up to 32 MB in size, we have arrived at some interesting conclusions:

  • a 32 MB block, when filled with simple P2PKH transactions, can hold approximately 167,000 transactions, which, assuming a block is mined every 10 minutes, translates to approximately 270 tps
  • a single machine acting as a full node takes approximately 10 minutes to verify and process a 32 MB block, meaning that a 32 MB block size is near the maximum one could expect to handle with 1 machine acting as a full node
  • a CPU profile of the time spent processing a 32 MB block by a full node is dominated by ECDSA signature verification, meaning that with the current infrastructure and computer hardware, scaling above 300 tps would require a clustered full node where ECDSA signature checking is load balanced across multiple machines.

While the current mainnet rate of transactions (0.9 tps) are much lower than those tested using btcsim, this paints a relatively rosy picture for Bitcoin should the block size be allowed to increase.

Continue reading

2014 Summer Internships: hacking on Bitcoin with Go

We are pleased to announce our 2014 summer internship program at Conformal Systems. A short summary of the program is as follows:
hacking Bitcoin with Go

  • 2 full-time intern positions are available for the summer of 2014.
  • Interns will be expected to work on remote.
  • Interns can be from any country or timezone, but timezone may be a factor in intern selection due to synchronization issues.
  • Interns will be expected to speak and write in English at a conversant but not fluent level.
  • Interns will work on open source Bitcoin-related projects the entire summer.
  • Interns will be expected to develop exclusively in the Go programming language.
  • Interns are expected to have the “Minimum Recommended Skillset” from the code contribution guidelines for the btcd suite.
  • Interns can either (A) work on projects assigned by Conformal Systems staff or (B) “bring your own project” (BYOP) which we approve as part of the internship.
  • The internships are open to anyone currently attending undergraduate or graduate school, or anyone of similar age. Broadly speaking, we consider anyone age 15 and up to be eligible.
  • Pay will be roughly a “graduate student” level, approximately USD 2,000 (pre-tax) per month.

Continue reading

Coinvoice begins processing payments from BTC to USD

Coinvoice has added the ability for merchants to have their customers pay in BTC and receive a USD payout, similar to other BTC payment processors.  This means that Coinvoice merchants can bill their customers in BTC and receive USD or bill in USD and receive BTC.  Our goal is to provide the most flexible set of payment options for merchants so they can focus on making sales rather than converting between BTC and USD.

Coinvoice BTC invoice step 1

Continue reading

Redecentralization: building a robust cryptocurrency developer network

As it was originally proposed by Satoshi Nakamoto, Bitcoin was conceived of as a peer-to-peer system that was fundamentally decentralized.  Many past and current discussions about the future of Bitcoin acknowledge that too much centralization is a threat to the Bitcoin network.  To some extent this process of avoiding centralization has been successful, but in several key areas it has not been very successful and it is in need of redecentralization.  The most pressing case for redecentralization in Bitcoin (and cryptocurrencies more generally) is the current development community:

  • the number of developers who have experience developing cryptocurrencies is very low, I would estimate there are less than 100 such developers
  • the majority of the developers are located in the US and other “Western” nations
  • the developer incentive structure with successful cryptocurrencies creates conflicts of interest

In what follows, I propose solutions to these issues cited above.  Since we develop our own full-node Bitcoin implementation, btcd, the criticism of the developer community status quo that follows applies not only to other developers, but also our developers who work on btcd.

Continue reading

Coinvoice: Invoice in USD, receive BTC

Coinvoice logo

I am excited to announce Coinvoice, a new Bitcoin payment processing service that allows businesses to invoice for goods and services worldwide in U.S. Dollars (USD) and get paid in Bitcoins (BTC). Coinvoice makes it easy for any merchant to receive BTC without them or their customers having to worry about the infrastructure necessary to conduct and process these transactions. So long as the merchant’s customers can pay in USD via wire transfer, certified check or money order, Coinvoice will pay out to the merchant in BTC.

The idea for Coinvoice arose out of a handful of conversations I had regarding Bitcoins and receiving payment for invoices using cryptocurrencies more generally. I had remarked to one of my associates that “it would be great to take payment for invoices in BTC”, but I acknowledged that it was a serious pain point to dictate to all of your customers “now you need to go get BTC to pay me”. Then I went on to suggest I would be willing to give a discount on the invoice amount if they paid in BTC, and the seed for Coinvoice was sowed.

settle payments in BTC

settle payments in BTC

Beyond making a business out of the scenario I described above, Coinvoice is meant to fulfill a vital need in the Bitcoin economy: putting BTC in the hands of business owners with less friction. Enabling businesses to more easily access BTC is overall a positive thing for the Bitcoin economy, and it will have positive secondary effects, e.g. more customers for sites that accept direct BTC payments. More generically, Coinvoice is meant to enable payment settlement from USD to BTC, whereas most existing payment processing services are built to facilitate settlement from BTC to USD or solely in BTC.

Our target audience with Coinvoice is pretty much any business that wants to have customers pay in USD and ultimately receive BTC as payment for goods and services. A few examples of the kinds of businesses I’m talking about are:

  • IT contractor that invoices for their work at the end of each month
  • Chinese manufacturer that sells goods in the US
  • Vanuatu IBC that licenses intellectual property in the US

Coinvoice is meant to be used in a “traditional” business setting where invoices are issued and paid a number of days afterwards.

We are looking forward to enabling businesses to settle payments in BTC and helping grow the larger Bitcoin ecosystem. Coinvoice provides you with a safe, private, reliable and secure way for your business to receive BTC.

btcd: a bitcoind alternative written in Go

btcd is an alternative full-node implementation of the bitcoin protocol written in Go and is currently under active development. btcd has been under development for 10 weeks and the initial code is nearly ready for public release. We feel that by providing an alternative to bitcoind we can substantially improve the diversity and resilience of the bitcoin ecosystem and infrastructure.

A number of us at Conformal Systems had been keeping an eye on bitcoin as passive observers for the past couple years since bitcoin combines technologies that are already of interest to us: practical use of cryptography, distributed systems, and electronic payments. In January 2013 I had one of our developers, David Hill, attempt to port bitcoind and its GUI to Bitrig, an OS that several of our developers forked from OpenBSD. David encountered several problems with porting to Bitrig and in the process found issues with unit tests, non-portable functions and seeding of a PRNG. While pushing to get the port complete, it was clear that it would take a lot more effort than usual to complete this port. After seeing these issues with the porting, I felt that the bitcoin ecosystem could use an alternative to bitcoind.
Continue reading