The $1 Billion Bitcoin Whale, A $243,000 Deepfake, Pre-Mature Optimization, and The Yandhi Leak

$1 Billion Bitcoin

Someone moved $1 billion in Bitcoin on September 5th. This highlights what makes the blockchain so interesting. Everyone was able to see this transaction when it happened, but no one knows who made it. It also cost the transactor a grand total of $600 to move $1 billion in “minutes” (try getting your bank to do this).

I say “minutes” in quotes because Nick Szabo of smart contract fame brings up a good point in this tweet in that the transactors should wait 40 days if they want to be 99.999999% sure that the transaction is actually settled (no transaction is ever 100% settled on the Bitcoin blockchain). Which highlights a flaw in Bitcoin finality.

A $234,000 Heist

This is crazy, right? Social engineering is often the easiest type of hack to pull off and these deepfakes are only going to make this style of attack easier and easier to enact.

80,000 Hours High Impact Job Board

I stumbled upon this high impact job board via a follower of a follower of a follower of a follower on twitter. The idea of this particular job board is interesting insofar as it isn’t “high paying”, but rather “high impact”. If I could time travel back to my more idealistic years this job board would be were I would be focusing my attention. Perhaps in my next reincarnation.

Yandhi Leak

I love Kanye. I said it, and I don’t care who knows. I’ve been listening this on repeat all week.

Facebook’s Gatekeeper

Yet another Software Engineering Daily episode led me to investigating Gatekeeper. Gatekeeper allows Facebook to choose which features are shown to which users and when. This is particularly advantageous when doing mobile deployments, as you can turn off buggy features post-deployment without re-deploying through the various app stores.

Envoy Mobile

This comes from another Software Engineering Daily episode. Lyft has taken Envoy, which is a sidecar proxy for micro-service based back-end architectures, and provided the same functionality in the form of a mobile library. The main reasons for doing this is to provide the same functionality to mobile clients that Envoy provides to back-ends.

If this gets adopted it could introduce some interesting functionality in mobile clients. For example, one could alter the data that is sent to a back-end depending on the quality of the network. Using the example provided by Matt Klein in the episode. If Lyft’s mobile client was using Envoy Mobile, it could detect when it was on a degraded network and defer sending less important data, such as coupons, or push notifications, and instead favor more critical data, like the location of the car, or the user. When the mobile device is back in a more robust cellular network, things like push notifications and coupons could be sent again.

The possibilities are interesting in terms of what kind of adaptive computation can be done based around the user’s network with Envoy Mobile.

Pre-Mature Optimization Is the Root of All Evil

This brings me to a point I’ve been meaning to write about for a while now. New developers are too quick to pick up industry latest practices in terms of architecture and apply them to their jobs or side projects. Stop doing this. The latest practices are meant to solve problems large companies are experiencing and may not be relevant to your company or side project. Micro-service back-ends exist to allow hundreds of developer teams the ability to work on a product at the same time with minimal impact to one another*. If your project isn’t hiring hundreds of developers, or your company doesn’t have hundreds of developers working on the same project, you don’t need this architecture and all it will do is introduce unnecessary complexity and slow you down.

I get it. I’ve been there. You think that getting experience building a micro-service architecture in your spare time will help you in your interview with a FANG company in the future. It won’t. In fact, if you tell me in an interview you used a micro-service architecture for your personal portfolio site, I’m going to question your ability to select the appropriate technology for the task at hand.

*one could also argue it allows the company to isolate itself from the impact of one developer leaving the company, but that’s a discussion for another day.

This content is for informational purposes only, you should not construe any such information or other material as legal, tax, investment, financial, or other advice. Nothing contained in this post constitutes a solicitation, recommendation, endorsement, or offer by myself to buy or sell any securities or other financial instruments in this or in any other jurisdiction in which such solicitation or offer would be unlawful under the securities laws of such jurisdiction.

The opinions expressed in this publication are those of the author. They do not purport to reflect the opinions or views of the author’s employers.

Don’t forget to follow me on twitter, join my telegram channel, add me on linkedin, add me on facebook, subscribe to my blog, or follow me on medium for more content like this. I post a review of topics I find interesting every week. I’m always looking for new topics to cover, so if you have anything you find interesting and would like to discuss please reach out!

$4 Billion, Binance Lending, and EthHub

Binance Lending

Binance introduced lending this week. The idea is that users will be able to lend to margin traders on the platform. Lending opened on the 28th and almost immediately filled up. Given how busy I was this week, I wasn’t able to participate. However, I’m looking forward to seeing how this progresses in the future and will look to take part when it presumably opens up indefinitely.

Craig Wright Court Ruling

A court recommended that Craig Wright must surrender over $4 billion in Bitcoin to the Kleiman estate. If you’re not familiar with crypto news, then you may not know that Craig Wright has been claiming to be Satoshi Nakamoto for awhile now, and suing anyone who says he’s lying.

One important aspect of public key cryptography is if someone was Satoshi Nakamoto they could prove this fact mathematically. So far, no one has done this. Anyone claiming to be Satoshi who doesn’t prove it cryptographically will be branded a fraud by the crypto community regardless of the evidence they bring in support of their claim.

I think what’s happened is both Craig and Kleiman were early adopters of Bitcoin. They both purchased and mined Bitcoin early. They formed some kind of business relationship and, since the Bitcoin wasn’t worth much back then, were exchanging keys or using multi-sigs. After Kleiman passed away Craig took all of the Bitcoin they held jointly and now the Kleiman family wants Kleiman’s Bitcoin back. If Craig and Kleiman used a multi-sig and Kleiman held part of the private key (he’s since passed away), then there is a chance that Craig is telling the truth in that he cannot access the Bitcoin. Also, if my conjecture is correct, the court case has nothing to do with Satoshi Nakamoto. Although, it makes the headline more appealing if Craig’s Satoshi claims are included in it.

This is interesting from a legal perspective though, because when it comes to crypto one could always claim to have “lost”, “forgotten”, or never to have owned the private keys to an address. How does the court prove that someone does in fact control the private keys to an address? Presumably you could use chain analysis, but for addresses who mined a lot at the beginning and haven’t done anything with the coins since then, these tactics are rendered useless. At any rate, that is what must be proven here in order for the Kleiman estate to get the $4 billion in Bitcoin that would be lawfully theirs if this recommendation is held up in appeals courts.


I heard about EthHub on last week’s episode of Epicenter. Both Eric and Anthony seem like good guys. Whether or not I agree with someone’s viewpoints, I respect them taking action to build things in order to support their viewpoints.

EthHub is a central place where Eric and Anthony put documentation such that it can be linked to when people are spreading misinformation about Ethereum. This way they don’t have to continue repeating themselves in responses. They also have a podcast and weekly newsletter which are linked to on EthHub. I’m not as active in the Ethereum community as I used to be, but I’d definitely recommend checking their content out if you’re interested in keeping up to date on the nitty-gritty of Ethereum development.


Quantopian appears to be a Kaggle for stock market prediction. Quantopian provides Python libraries you can use to analyze stock market datasets and backtest trading strategies. I heard about Quantopian on a Blind thread about passive income where a Facebook data scientist claimed they were making $1K monthly in royalties from an algorithm a hedge fund was leasing from them on Quantopian. I’ve only had time to dabble in Quantopian this week due to my hectic schedule, but this looks like something I’d like to continue to investigate and write about going forward.

This content is for informational purposes only, you should not construe any such information or other material as legal, tax, investment, financial, or other advice. Nothing contained in this post constitutes a solicitation, recommendation, endorsement, or offer by myself to buy or sell any securities or other financial instruments in this or in any other jurisdiction in which such solicitation or offer would be unlawful under the securities laws of such jurisdiction.

The opinions expressed in this publication are those of the author. They do not purport to reflect the opinions or views of any of the author’s employers.

Don’t forget to follow me on twitter, add me on linkedin, add me on facebook, subscribe to my blog, or follow me on medium for more content like this. I post a review of topics I find interesting every week. I’m always looking for new topics to cover, so if you have anything you find interesting and would like to discuss with me please reach out!

Bitcoin is not Cryptocurrency

“4 Strategies for Investing in Bitcoin”

  1. Don’t

With the recent rise in Bitcoin prices, everyone has taken notice.  Even this guy:

My favorite part of the video I watched recently was when he said: “Ether, or Ethereum, Ethereum is the more scientific name for Ether”

Because of this, I’m getting a lot of questions about Bitcoin, but almost none about cryptocurrency.  People are having a hard enough time wrapping their heads around the technology of Bitcoin that they’re not even bothering to ask about the larger cryptocurrency ecosystem.  They’re also equating Bitcoin to cryptocurrency.  Bitcoin is a cryptocurrency, yes, but Bitcoin is not the cryptocurrency.  This may seem obvious, and indeed it is.  However, people are conflating the price and notoriety of Bitcoin with the tech of Bitcoin, thinking, “since Bitcoin has the highest market cap, surely it must have the best technology, and the most utility, therefore, whatever Jackson says about Bitcoin must hold at least somewhat for the entirety of the cryptocurrency market”, which is patently false.

An example.  Someone recently told me they asked their financial advisor about buying Bitcoin, and he told them it was a ponzi scheme and to steer clear. I think this financial advisor came to the right conclusion, but probably for the wrong reasons.  If you’d have asked him what he thinks about cryptocurrency in general he probably would’ve said the same thing, but that’s because his only frame of reference for cryptocurrency is Bitcoin.  Bitcoin may very will be a “ponzi scheme” (I don’t know if it is or isn’t, so don’t ask me) but that doesn’t say anything about cryptocurrency generally.

But, I’ve also had numerous discussions with engineers who view it the same way.  Many call Bitcoin digital gold, which is one step removed from real gold, of which the famous Warren Buffet has this to say:

The second major category of investments involves assets that will never produce anything, but that are purchased in the buyer’s hope that someone else – who also knows that the assets will be forever unproductive – will pay more for them in the future. Tulips, of all things, briefly became a favorite of such buyers in the 17th century.

This type of investment requires an expanding pool of buyers, who, in turn, are enticed because they believe the buying pool will expand still further. Owners are not inspired by what the asset itself can produce – it will remain lifeless forever – but rather by the belief that others will desire it even more avidly in the future.

The major asset in this category is gold, currently a huge favorite of investors who fear almost all other assets, especially paper money (of whose value, as noted, they are right to be fearful). Gold, however, has two significant shortcomings, being neither of much use nor procreative. True, gold has some industrial and decorative utility, but the demand for these purposes is both limited and incapable of soaking up new production. Meanwhile, if you own one ounce of gold for an eternity, you will still own one ounce at its end.

What motivates most gold purchasers is their belief that the ranks of the fearful will grow. During the past decade that belief has proved correct. Beyond that, the rising price has on its own generated additional buying enthusiasm, attracting purchasers who see the rise as validating an investment thesis.

As “bandwagon” investors join any party, they create their own truth – for a while. Over the past 15 years, both Internet stocks and houses have demonstrated the extraordinary excesses that can be created by combining an initially sensible thesis with well-publicized rising prices. In these bubbles, an army of originally skeptical investors succumbed to the “proof” delivered by the market, and the pool of buyers – for a time – expanded sufficiently to keep the bandwagon rolling. But bubbles blown large enough inevitably pop. And then the old proverb is confirmed once again: “What the wise man does in the beginning, the fool does in the end.”

Today the world’s gold stock is about 170,000 metric tons. If all of this gold were melded together, it would form a cube of about 68 feet per side. (Picture it fitting comfortably within a baseball infield.) At $1,750 per ounce – gold’s price as I write this – its value would be $9.6 trillion. Call this cube pile A.

Let’s now create a pile B costing an equal amount. For that, we could buy all U.S. cropland (400 million acres with output of about $200 billion annually), plus 16 Exxon Mobils (the world’s most profitable company, one earning more than $40 billion annually). After these purchases, we would have about $1 trillion left over for walking-around money (no sense feeling strapped after this buying binge). Can you imagine an investor with $9.6 trillion selecting pile A over pile B?

Beyond the staggering valuation given the existing stock of gold, current prices make today’s annual production of gold command about $160 billion. Buyers – whether jewelry and industrial users, frightened individuals, or speculators – must continually absorb this additional supply to merely maintain an equilibrium at present prices.

A century from now the 400 million acres of farmland will have produced staggering amounts of corn, wheat, cotton, and other crops – and will continue to produce that valuable bounty, whatever the currency may be. Exxon Mobil will probably have delivered trillions of dollars in dividends to its owners and will also hold assets worth many more trillions (and, remember, you get 16 Exxons). The 170,000 tons of gold will be unchanged in size and still incapable of producing anything. You can fondle the cube, but it will not respond.

Admittedly, when people a century from now are fearful, it’s likely many will still rush to gold. I’m confident, however, that the $9.6 trillion current valuation of pile A will compound over the century at a rate far inferior to that achieved by pile B.

I can’t blame Mr. Buffet for not investing in Bitcoin.  However, he’s recently said he was wrong about Google and Amazon.  Buffet isn’t a technologist, he’s a financier.  He also claims he only invests in things he understands.  I don’t blame him, or many other people for not understanding this tech and it’s nuance.

However, I tend to agree with Mr. Buffet, and the financial advisor with regard to Bitcoin.  Bitcoin may very well be a ponzi scheme in as much as gold is.  Bitcoin core is positioning itself as a digital gold, as such, if you don’t think gold is a solid investment, you probably shouldn’t invest in Bitcoin, using the logic given above by Buffet.  But this does not mean that all cryptocurrencies are positioning themselves as digital gold and that you shouldn’t invest in any cryptocurrencies.*

Also, while I’m at it, too many people who haven’t investigated the cryptocurrency ecosystem are substituting arguments against Bitcoin with arguments against cryptocurrency in general.  What may hold true for Bitcoin in an argument does not necessarily hold true for all cryptocurrencies.

Building Blocks

Speaking as a software engineer, we’re trained to crystallize logical concepts, and then use these crystallized logical structures to build more logical structures on top of the existing ones, and with the block chain, we’re doing just that.  Block chain engineers are extrapolating from Bitcoin’s block chain structure, building new things with it everyday.  One of the breakthroughs for me when learning about cryptocurrency was when I investigated Ethereum and saw the inferences made from Bitcoin’s original block chain.  Once this connection was made I started to realize the possibilities were vast, not just internal to the Ethereum block chain as many before me have already stated, but with the block chain concept as a whole.  We’re still trying to figure out which building blocks fit where, which are useless, and which will form the backbone of this new landscape.  But that’s technology.  There will be many more innovations to come, as this technology is very much still in it’s infancy.

Yes, we’re in a bubble

Yes, we’re in a cryptocurrency bubble, and everyone is trying to cash in on the craze.  But this doesn’t mean there isn’t still true innovation and disruption happening in computation in this space.  But also, what’s wrong with a bubble?  Look at the beautiful infrastructure and technology the last tech bubble gave us.  The cryptocurrency bubble is turning heads, just as the dot-com bubble did before it, and luring brilliant engineers into it’s fold due to these absurd valuations.  Yes, a lot of people are going to lose a lot of money, but a lot of people have, and will continue to, make a lot of money, just as they did during the dot-com bubble, and I don’t think there is anything wrong with that.



*note: this also doesn’t mean that Bitcoin’s only use is as a digital store of value, but for the sake of keeping this digestible for beginners, I won’t go there.  In fact, the only reason I bring this up is because I know advanced readers from the Bitcoin community are going to pitch a fit about this.  Yes, most of us understand you’re purchasing access to the btc network, but with all the price speculation it remains to be seen if access to this network is priced according to it’s value.

The Internet vs Itself

My writing with ETHLend often has me diving in uncharted technology.  Often I’m doing things that have never been done before on the planet, such as connecting ETHLend to uPort for example.  This gives me a unique perspective into the daily lives of decentralized developers.  At the same time I work for a very large and customer centric tech company.  The mesh of these two perspectives has led me to ponder the following question: Is the first to market advantage of centralized user experience too powerful for decentralized tech to overcome?


Ethereum is often touted as “web3.0”.  It’s true that what decentralized technologies are trying to accomplish are magnificent and gargantuan tasks.  It’s also true that using ethereum and other decentralized software feels like using the internet in the early days of the web.  Back then you often had to do what seemed like mysterious incantations, without much idea as to what they were actually doing.  Obviously most cryptocurrency feels very much the same way, with things like the iota wallet showing no balance (1,2,3,4,5,6) and the DAO hack.  This makes for an easy comparison to the early web, however, I argue that the comparison is a bit too easy.

User experience on the centralized web is miles ahead of where it was originally, which makes it miles ahead of its decentralized counterparts.  I don’t see regular users leaving the comforts of their Mercedes to jump back on the horse and buggy of decentralized user experience.  And, more importantly, I believe that this analogue will always be valid.

This is not to say that evangelists and technocrats won’t fully embrace this tech in much the same way as the early internet was embraced.  This is because most of us understand what’s happening behind the mask of UI and are much more willing to forgive technical mistakes or ineptitudes than the average user.  My concern is not that the tech won’t be adopted, but that the adoption will never grow above a certain percentage of the population.

The Internet vs Itself

As stated above, it’s easy to look to the technological growth of the internet as an example for decentralized tech to emulate. The problem with this perspective is, the internet didn’t have to compete with itself.  The internet competed with print, and I would argue, until the user experience felt effortless, it fought an uphill battle in much the same say decentralized tech is fighting now.  The problem is, the current state of user experience on the internet is so far ahead of its decentralized counterparts, and will continue to outpace the growth of its decentralized counterparts.

Does UX matter?

One could argue that user experience isn’t everything.  The needs decentralized technologies are attempting to fill are not necessarily motivated by user experience (although, I would argue the motivations of a technology should always be driven by user experience, but that’s a different discussion for a different day).  However, in order to achieve mass adoption, a superior, or at least equal, decentralized user experience must be achieved.

Put yourself in a layman’s shoes.  They don’t understand what the decentralized tech is trying to achieve, they just know it is or isn’t working as well as the centralized version, and will therefore go back to the centralized alternative in the case when it isn’t.  Take the case of steemit.  They’re paying people to use the platform, but the UX is lagging so far behind that of reddit that it doesn’t matter.  People still continue to stay on reddit, and, even after trying steemit will return to reddit.

Engineers Are Users Too

This leads me to my final point.  Engineers are users too.  Building good, clean, maintainable software, such as reddit, is a difficult enough job as it is.  Software developers don’t need to make their difficult jobs any more difficult than they already are.  This is exactly what they’d be doing by opting for decentralized tooling.  The current state of affairs with respect to infrastructure surrounding the modern web makes software development a pleasant experience.  The same cannot be said for the decentralized tool kit.  I hope this changes in the future, but I fear that much like user experience, the tooling of the modern web is also so far ahead, and will continue to outpace its decentralized counterparts, that this will never happen.

This is in large part due to the Pareto Law nature of technology.  The decentralized web must compete with the centralized web.  The centralized web is an internet of billions of dollars in capital, allowing it to hire hundreds of millions of software engineers to work on even the most minute detail of its infrastructure.  While the decentralized alternatives have a hundred thousand at most scattered about the globe working for less, and often for free.  Don’t get me wrong, I commend their efforts, and count myself as one, considering I spend my weekends writing about this tech.


With cryptocurrency, however, more and more funding is being poured into the decentralized alternatives, which is why it’s even possible to argue against centralization right now.  This is actually my main motivation for investing in cryptocurrency.  I invest not because I’m interested in buying a lambo, but because I know the only way to spearhead this technology is to put capital into it and see where that takes us.  It remains to be seen if this funding can ever eclipse the centralized counterparts, however.

We’ve all seen these little infographics showing how cryptocurrency actually stacks up against companies like Apple and Amazon.  Granted, this one is dated, but, even with the unprecedented surge in bitcoin price, all of cryptocurrency still doesn’t match Amazon’s market cap.


This is why I won’t be quitting my day job any time soon to join the decentralized army full time.   As an engineer I firmly believe that decentralized technology is a more robust design than the centralized alternatives, but the cat is out of the bag.  Users have grown too accustomed to having their data now.  Don’t get me wrong, the engineering involved in bringing centralized software to fruition is absolutely brilliant, and has taken decades to perfect.  I believe decentralized tech will get there one day.  But when that day comes, the bar for user experience will be moved still higher by centralized technology.







Criticisms of Proof of Stake

Oh boy.  What a week it’s been.  My previous post meant to give a brief overview of Proof of Stake for non technical readers seemed to strike a nerve.

To start, I think people misunderstood the motive of the post.  I was simply giving a brief technical explanation of proof of stake for non technical readers, and some readers seemed to interpret this as support for proof of stake.  I’m a software developer.  I don’t care about the moral or ethical implications of power consumption or immutability.  I’m purely interested in the mechanisms, and I’ve yet to find someone who doesn’t agree that the casper protocol isn’t at least interesting, which is why I blogged about it.

As some of my readers know, one of the main reasons I post is to partake in the discussion that ensues afterwards, and there was a lot of it.  My previous post was on the frontpage of /r/blockchain for two days as well as /r/ethermining for a day and a half, which is great because these were my target audience in writing the post.  However, I also posted on a whim to /r/btc and /r/ethereum where it stayed on the front page of controversial for an entire day, which in my opinion is also great.  I wasn’t expecting the feedback I received, however this is exactly my motivation for writing.  I would like to thank everyone who took the time to read and provide feedback.  In this post I’ll spell out some of the criticisms of Proof of Stake that I left out of the previous post (again, it was intended for a less technical reader), as well as some new ones that I’d never considered until now, thanks to my readership.

External/Internal Staking

It seemed the major criticism people levied against proof of stake was that the staking was internal to the system rather than external.  /u/jps_  makes the point concisely:

“Proof of Work has something physical at stake, namely the electricity necessary to probably solve the puzzle. In essence, the bits in the network are secured by activity outside the network: someone has to generate that electricity. This results in a stable equilibrium, because in order to compromise the bits in the network, one must expend considerable external energy. The laws of thermodynamics make it very difficult to profit by consuming energy”

I don’t buy that external staking makes proof of work superior.  If we assume a free market economy, I should be able to exchange my money for electricity or cryptocurrency.  Obviously markets aren’t rational and the price of a cryptocurrency or the price of electricity isn’t what it should at the particular time that I make this trade of cryptocurrency to electricity, but that’s a discussion for a different day.  The point I’m making is, technically, the $300 of cryptocurrency I bought is of equal staking value to the $300 of electricity I “staked” to mine the cryptocurrency at the moment I did both.  We can discuss the volatility of electricity prices vs cryptocurrency prices, and decide one is a more stable form of staking than the other, but the fact remains that $300 of electricity is equivalent to $300 in cryptocurrency at the time of mining, and it would therefore take an extra $300 more to perform a 51% attack in both cases.*

One argument you could make is that the ethereum casper roll out is premature.  If the market cap of the ether being used to stake is less than the cost of electricity miners are putting forth to mine ether, then you could make a case that this is raising the probability of a 51% attack.

Another argument is that once the electricity is used, it’s on the blockchain forever, while the staked cryptocurrency can easily be converted back into fiat.  As we saw with the casper smart contract from the previous post, the funds are locked for a certain number of blocks.  This may not be completely irreversible as in the proof of work case, but this number can be altered to suit the needs of the blockchain (which, depending on your opinion may or may not be a good thing, see below), to include irreversibility if need be.

Nothing to Stake

I introduced this briefly in the previous post, but didn’t go into much detail, as I didn’t want to confuse non blockchain readers.  Since it’s already been introduced, I’ll assume everyone is familiar with the problem and why it exists.  I mention that casper purports to solve this problem by use of an arbiter smart contract which penalizes malicious validators.  One argument that kept coming up was concern that a malicious chain could be built and hidden from the rest of the validators and then shown at an opportune time.  Casper handles this by locking the validator funds inside the smart contract and receiving “tattle-tell” transactions from validators in the event that evidence for malicious behaviour is found in previous blocks.  One of these malicious behaviours is not betting on a chain, another is betting on the “wrong” chain.  These are both actions that would be necessary to build this “hidden” chain, and since they’re penalized, you’d run out of ether far before you could pull the attack off.

Rather than discussing this particular case (many others were brought up, and many more will follow I’m sure**), the point is, this smart contract can be altered to ward off any sort of malicious proof of stake behaviour that may arise in the future.


This leads us to perhaps the most damning criticism of casper: the fact that casper’s proof of stake involves a smart contract that acts as the arbiter of the validators.  There is no clear analogue to this in the proof of work context, it simply doesn’t exist.  It’s obviously a single point of failure, as well as an attack vector, and, depending on your perspective of the blockchain, a terrible case of centralization.  One point continually driven home in my discussions with /u/Erumara was his/her reluctance to support something so complex compared to proof of work.  And I have to admit, I do agree that proof of work is much simpler than every proof of stake solution I’ve seen proposed.

However, as /u/naterush1997 points out:

In both cases, there is “centralizing” code – in that it is code that everyone relies on. However, the Casper contract being public means that we have the benefit of seeing if there is some fatal flaw and/or bug. In the case of the attack on PoW described above, this would be impossible, as the attack described is indistinguishable from someone having a ton of computing power.

And even if it is overly centralized, I don’t think the technology shouldn’t still be explored.  Obviously there is a large difference in opinion between the bitcoin and ethereum community in this regard, and I intend on exploring these differences in a future post.  For now, let’s just say the ethereum developers are more willing to take concrete risks with their software even if it ends badly. and in fact, I agree with this strategy.  It’s one thing to pursue an idea simply for the sake of it (as in the case of pure research), it’s entirely different to have millions of dollars at stake in the pursuit of an idea.  This is part of what got me into cryptocurrency.  This mixture of direct financial skin in the game of all parties involved (investors, users, developers) and interesting technology can’t be found anywhere else in the world.


One of the best outcomes from the post was this Andreas video /u/dietrolldietroll passed me.  He makes the External/Internal staking argument, but at the end of the video (at around 42:56) when pressed by a question, he says that both proof of stake and proof of work can coexist in the market due to their different use cases.  I’d say that sums up my opinion of the matter fairly well.  As I said before, tech needs to crash and burn to move forward.  I’m not saying proof of stake will be a catastrophic failure for ethereum, but even if it is, it will be a success for the blockchain movement at large.

I received a bunch of criticism (bunch of haters man) in /r/ethermining for an off hand conjecture I made about proof of stake privacy coins, so I intend to fully rectify this in my next post.  Until then!

*After considering this idea during my writing I came upon a new idea.  If it’s true that bitcoin is defended directly by the cost of electricity used to mine coins, could the sum of all electricity used up to block A be considered the true “value” of bitcoin at that block?

**For example, what if a validator never checked in to the smart contract, and is therefore never penalized, then finally showed up, having rewritten the entire blockchain to look much more attractive to the rest of the validators.  They’d need 51% of the currency to pull off this attack, but I believe using the casper smart contract, even this might be possible to defend against.


EDIT: /u/jps_ in response to my argument against external staking:

If you buy $300 worth of Electricity and use it to secure a PoW network, it buys a finite time/amount of security. After the expenditure, the electricity is consumed and there is no more security. The only residual value you hold is the rewards earned along the way. These rewards cost you an extrinsic $300 that is not returned to you. This creates an objectively extrinsic value of the reward generated in return for security: basically, the reward is worth the expenditure in electricity generated to consume it.

If you take $300 and buy ETH and stake it, you can stake that $300 for as long as you want. Whenever you cease participating in securing the network, your $300 in ETH is returned to you, in addition to your rewards from staking.

Therefore, when you started staking you had $300 you exchanged for ETH. You finish staking and you hold ETH you can sell for $300. Plus rewards. Your net extrinsic expenditure is zero, and your net gain is the staking rewards.

So PoS is a value tautology. It creates something at no external cost, which has a putative external value greater than zero.

Proof Of Stake vs Proof Of Work

I’ve decided to write post about the differences between proof of stake (a protocol currently being used by Neo and being worked on by Ethereum), and proof of work (a protocol made famous by Bitcoin, and currently in use by coins like ZCash and Monero).  I felt motivated to write this post because there seems to be a bit of confusion when I talk with people about the proof of stake protocol as to what exactly happens.  Many I’ve talked with seem to view it as creating money out of thin air (as if mining wasn’t that already), or at the very least less secure than proof of work.

Proof of Work

I believe people feel more comfortable with proof of work because it’s the simpler of the two protocols.  The idea is this: Your computer is going to try billions of different inputs to a hash algorithm (it’s going to put in work), and if it comes up with the right output (it’s proved that it’s worked on the puzzle sufficiently), you’ll be rewarded. Here is an example proof of work algorithm from the Ethereum cryptocurrency tutorial:

// The coin starts with a challenge
bytes32 public currentChallenge;
// Variable to keep track of when rewards were given
uint public timeOfLastProof;
//Difficulty starts reasonably low
uint public difficulty = 10**32;

function proofOfWork(uint nonce){
    // Generate a random hash based on input
    bytes8 n = bytes8(sha3(nonce, currentChallenge));
    // Check if it's under the difficulty
    require(n >= bytes8(difficulty));
    // Calculate time since last reward was given
    uint timeSinceLastProof = (now - timeOfLastProof);
    // Rewards cannot be given too quickly
    require(timeSinceLastProof >=  5 seconds);
    // The reward to the winner grows by the minute
    balanceOf[msg.sender] += timeSinceLastProof / 60 seconds;
    // Adjusts the difficulty
    difficulty = difficulty * 10 minutes / timeSinceLastProof + 1;
    // Reset the counter
    timeOfLastProof = now;
    // Save a hash that will be used as the next proof
    currentChallenge = sha3(nonce, currentChallenge, block.blockhash(block.number - 1));

If you were to mine this coin, you’d essentially send your input (nonce) to the proofOfWork function in this smart contract.  If your input is below the current difficulty level, and it’s been long enough since the last block was mined, you receive a reward, otherwise the function returns (that’s what the require statement does in solidity) and you try the next input you think might result in a sha3 hash below the current difficulty.  This is proof of work mining in a nutshell.

Proof of Stake

Proof of stake has the same goal as proof of work: to achieve distributed consensus of the state of the blockchain.  Going back to the git perspective, both protocols are trying to select maintainers of the blockchain “branch” without allowing anyone too much control.  Proof of stake does this by substituting out hash power for economic power.  The more coins you have, the more likely you, or the block you’ve chosen, is to be used and the more you’ll be rewarded for it.  I believe cryptocurrency developers are moving in this direction because unlike proof of work, proof of stake has the added property that the more coins you’re holding, the more likely you are to act in solidarity with the will of the users of blockchain when selecting blocks.  In proof of work there is a tension between miners and users of the blockchain that may not exist in a proof of stake protocol (this is yet to be seen), as often the users will also be the validators (a miner in proof of stake is often called a validator).  There’s also the added benefit that proof of stake doesn’t cost millions of dollars in power and bandwidth every year to maintain the blockchain.


Let’s use the Ethereum casper protocol as a detailed example for proof of stake, as this one seems to be getting so many people interested in what proof of stake is.

The casper protocol will involve a smart contract being deployed to the Ethereum blockchain.  An address interested in becoming a validator will send the amount of ETH they would like to stake on blocks to the smart contract.  The smart contract will then receive two messages from validator addresses, PREPARE and COMMIT.  Prepare is essentially a validator saying “I think this set of transactions should be the next block”, if one of these blocks attains a 2/3’s economic vote in the smart contract, it becomes a possibility for a COMMIT.  After the possible PREPARE blocks have been selected, validators vote on this set of blocks with the COMMIT message, once again, if 2/3’s economic vote is found on a COMMIT block, it will be added to the block chain and all the validators who took part in selecting this block will be rewarded for minting the block in proportion to the amount of ETH they deposited to the smart contract when joining the validator pool.  As far as I’m aware, there doesn’t exist a mechanism for selecting validators*, but it could easily be something like a random subset selection of all possible validators weighted by the amount of their deposit in each dynasty.

Nothing to Stake

One of the problems with proof of work is the “nothing to stake” problem.  The idea is as follows: If I don’t have to compute any hard hash puzzles, why not bet on every block that comes my way? Since this incentive structure exists for everyone in a nothing to stake protocol, everyone decides to stake their hard earned crypto currency on every block.  Now we have no consensus, there are 50 different chains all growing at the same rate and all possibly legitimate because no one wants to take the lead and decide on one.  Also because of this lack of consensus, double spend attacks become much easier and more likely than they are on a proof of work protocol.

Ethereum’s casper protocol circumvents the nothing to stake protocol by locking the funds in the smart contract discussed above, only paying them out after a sufficient amount of time, and destroying the ether, or penalizing it, for various kinds of behaviour (to include malicious).



I think people are uneasy about proof of stake due to a misunderstanding of proof of work more so than anything else.  As I stated in my git perspective of the blockchain the only reason miners exist is to act as the “maintainer” of the blockchain, and since we want this maintainer to change often, mining was used as a mechanism to distribute time as the maintainer evenly.  With proof of stake, the same thing is happening, it’s just the mechanism to choose maintainers is based on the amount of cryptocurrency a person holds, rather than their hash power.  The 51% attack we saw in the previous post  now becomes a 51% currency attack, whereby you’d have to own 51% of the cryptocurrency in which you’re attacking.  This is a presumably much more difficult feat to accomplish than purchasing 51% of the hash power.  In the currency case, you’ve just purchased 51% of the currency, all the while raising it’s market price and only have 49% of the rest of the currency to defraud, at which point, news will probably have broken that someone purchased 51% of the currency on the market, and the currency is now socially worthless.  In the case of proof of work, you just secretly buy more computing power, or bribe, or even hack existing mining pools, and rather than defrauding 49% of the currency you’re able to defraud all of it.

As you can see, we aren’t creating money out of thin air, at least in the casper protocol, there is a very real chance of losing your money, and your money is also stuck in the smart contract, so it’s no different than a government bond gaining interest, or mining for that matter.

Until next time!

* if someone has any information let me know.  There is a reddit discussion here, but since it’s a year old, I hesitate to trust it given how much Ethereum proof of stake has changed, this seems to suggest its proportionate to the ETH you deposit, Vlad also mentions it as a possibility here.  I looked briefly at the casper source code and didn’t see validator selection anywhere, but since I was brief, there’s a very good chance I wasn’t looking in the correct place.

The blockchain, from a git perspective.

The blockchain is a revolution idea that’s changed the way computation and transaction will be done for decades to come.  There is already plenty of information out there on this topic, so I’ll spare the internet yet another tutorial.  However, I do think I have an interesting perspective to bring to the discussion.  I often tend to view the blockchain as very similar to the wildly popular version control software git.  In this post I’ll be both teaching, as well as defending my unique position.


If you’ve spent even a small amount of time in tech you’ve heard of git.  git is decentralized source control, and has revolutionized the way software developers collaborate on projects.  The idea behind git, is essentially a linked-list where each commit is a new node in the linked list pointing back to a previous snapshot of the code.  What’s interesting about git, is you can have forks in your linked-list, and these can be merged or deleted (or, orphaned, in blockchain parlance) at will.capture_stepup1_5_6

In a sense, git is a controllable linked list history of your project (note, that this can be any project, not just software, even artists should use git).

The Blockchain

Now, let’s talk about the blockchain.  The blockchain, is like git, except inside of the linked-list’s nodes lie transactions, rather than code changes.  That’s all bitcoin is, a big long string of git commits with balances of addresses in the commits rather than code changes.  So what is the big deal?

When you’re using git, you don’t really care what a developer does if they fork your code and make changes to it, as long as you get to decide what gets merged back into your original code beforehand.  The same can’t be said of financial transactions. You do care if someone makes changes to that history.  For example, let’s say I was able to fork the bitcoin blockchain, and everyone had to follow whatever changes I made.  Well of course, I’d create a transaction between my address and satoshi’s claiming a few hundred bitcoin.  Then I’d merge it back into the master branch.  Sound good? of course not.  This is the ingenious part of bitcoin.

Mining the blockchain

Because we don’t want people to have the ability to alter the history or future of the blockchain, we need a way of achieving what’s called consensus.  From a git perspective, consensus is simply the maintainer of the repo.  Great, who do we trust to maintain the bitcoin blockchain? satoshi, maybe? how about no one.  How about we place our trust in mathematics.


(here is our block chain, look familiar? it’s a git history, but with miners added on the last “commit”)

The way consensus is achieved without a centralized power having any control, is hundreds of thousands of computers around the globe (more computing power than google, in fact) are competing to cryptographically secure the bitcoin blockchain by solving hash puzzles.  The nature of the puzzles is that it’s nearly impossible for the same computer to mine two consecutive blocks.  This enforces decentralization mathematically.  These computers are called “miners” and whenever they find the solution to one of these puzzles, they get to “mine” a block (or commit, from the git perspective) on the blockchain.  But what’s in it for them? Each of the blocks contain a transaction that allows the miner to pay itself a certain amount of bitcoin, this is called the block reward.  Users of bitcoin also must pay transaction fees to move bitcoin from one address to another, the miner of a block also gets to collect these fees.


Like git, the blockchain can also be forked.  We saw it happen recently, when the blockchain split into the bitcoin cash branch, and the bitcoin branch.  In this case the fork was planned a head of time due to politics, however you’ll often hear the phrase “51% attack”.  This is a security concern for blockchain developers, that they always keep in mind when designing new blockchains.

Revisiting our initial question of “who do we trust to maintain our repo?”.  What would happen if someone managed to get enough computing power together to guarantee that they could mine every block? (note, for simplicity, let’s just leave it at that, but it doesn’t actually have to be every block)  They would position themselves as the “maintainer” of that blockchain.  They could decide what does and does not get added to our master branch of transactions.  This is obviously dangerous.  Luckily, as I said before, the amount of computational power that currently exists in the bitcoin blockchain is more than google has.  In effect, an attacker would have to manage to get their hands more computing power than google.  Attacks like this must still be considered with new non proof of work consensus algorithms that teams are currently developing though.

That’s all for now.  This style of blockchain is called a Proof of Work blockchain.  This means that a miner has proved that they’ve spent enough computation power to solve a hashing puzzle.  They’re proved their work.  There are other styles of blockchain that we’ll explore in future posts.  One is called Proof of Stake, whereby users of the blockchain stake their cryptocurrency in place of  computational power to “bet” on the probability of the next block and are rewarded for correct answers.  Another brand new one is called tangle whereby a user of the “blockchain” (in tangle’s case it’s actually a direct acyclic graph) validates other blocks in place of their transaction fee, thus trading a small amount of hash power in place of a transaction fee.