Development Update: Skywire
Everything was working in January; launch has been delayed because of refactoring. We are exhausted because of coding coin. Everyone wants to get coin over with and get meshnet working. We can get a lot of press on reddit by delivering the meshnet. People are rioting because of Comcast/net neutrality right now.
Everyone is ready to deploy nodes in their city, setup local meetings, develop hardware and coordinate deployment across North America. The software is not ready however. We are realizing that this matters 100x more than the consensus stuff right now. If consensus and security takes a year, its fine.
We should get coin minimally working, do the IPO, release the meshnet software and then hype the fuck out of it everywhere. The success of the Maidsafe IPO before they have even demonstrated the technical feasibility of their coin is another factor that has changed our perspective. Even if Skycoin has several long term goals for the coin in terms of security and usability, we should focus on what will have the greatest impact and create the most value right now.
On Reddit, people want Jesus. They want Google to come in and save them with Google Fiber. Google is not going to save them. Google is only rolling out enough fiber that they can threaten Comcast if they start throttling Youtube and demanding money. Reddit want salvation and want to feel that there is something they can do to fight Comcast. Skycoin/Skywire is the salvation they want and something people can do now. We need to get the software working.
We need to bridge the last mile between the home and the fiber backbone.
This means,
- we should put the main blockchain in a personal blockchain
- Launch the mainchain now, so people can send and receive. Get IPO over with
- Move the wallet Javascript developers onto the Mesh network map for coordinating node deployment
- Get mesh working in a few days.
- Release white paper and put one guy on consensus
- Cut whatever corners are needed until mesh is running
- Deemphasize Skycoin's security and other things. Focus on the Darknet Plan message.
Skycoin is now in Alpha. We are launching immediately. We will be pushing breaking changes frequently until beta. If we have to do resets, balances will not change and the total number of coins will not change. Any reasonable change except those two is fair game until beta. We will be breaking network protocol compatibility every week. We will try to put in alert system so people know to install updates.
A better strategy would follow the same strategy of safecoin. Create first a proxy coin and then translate the proxy coin to the real coin when the new network has reached a level of stability.
I for one would be wary about owning a coin on a network that is still undergoing changes.
The alternative of course is to just wait until you are ready.
Or take the NEX approach of receiving pledges but not transferring coin until we're ready.
The blockchain security is solid. No one can spend your coins without your private keys. We can guarantee that.
Our cryptographic security is higher than Bitcoin's. Ethereum is using the same cryptographic library and we have tested everything to death.
We are using golang so there are no buffer overflow attacks or way that remote party can take over the client and steal your wallet. The worse than can do is crash the client, but cannot loot the wallet remotely. Bitcoin is using C++ and OpenSSL and was affected by the HeartBleed bug. It was possible to buffer overflow Bitcoin through the OpenSSL library and possibly steal wallets through the merchant protocol.
Skycoin was implemented with almost no dependencies. There are no 3rd party libraries in Skycoin that can be exploited. The only 3rd party library we are using is for encryption and we fuzzed the library for days and put in strict constraints on the data allowed to pass into the library. The program is designed to crash, rather than accept the invalid input that could lead to leaking the private keys. Even if attacked, we do not know of any way that the client can be used to exfiltrate the wallet or private keys over the network.
On the client side, the security is already at level where it cannot be improved without moving the private keys to a dedicated hardware device.
The breaking changes we plan on making are related to networking. We have to make changes to the connection pool library and peer discovery protocol. The transaction related parts of the coinbase are finished and in a frozen state.
There might be an advantage to saying that this is a test network and the coins are tokens which will convert into a future coin when its ready rather than saying its "alpha". The blockchain is done and we are not making any large changes. The existing blockchain will just roll over, so its technically incorrect to call it a separate coin or a coin placeholder. However, it might be better to say that for the purposes of communicating what people are buying.