‘Programming Blockchain’ Will Change How You See Bitcoin

Ariel Deschapell is a full-stack web developer, author, and cryptocurrency veteran.


“All models are wrong, some are useful.”

This phrase was coined by the statistician George E. P. Box to describe probabilistic models, but it also perfectly encapsulates all the mental models we use to make sense of the world around us.

Human time and attention are scarce, and the universe is extraordinarily complex. As a result, we are forced to operate under imperfect mental models, also known in psychology as “heuristics.” Regardless of our level of understanding of any given subject, these models and ideas are necessarily erroneous or incomplete. The deeper one dives into any one subject, the more obvious George Box’s aphorism becomes.

Perhaps nowhere is this more readily evident than programming, where one of the most foundational principles is that of abstraction. To the visitor of a website, no knowledge of code is required to click links and input information, just as one doesn’t need to understand combustion engines to drive a car. We might have an approximate mental model of how they work but not an accurate one.

Similarly, web developers themselves need not understand the intimate workings of TCP/IP and the other core protocols on which the internet is built in order to build applications on them. We regularly use and incorporate software written by others in our own applications without ever knowing how they actually work. Software development, and technological advancement more generally, can thus be thought of as building on top of a series of these nested “black boxes,” with each box containing an even more abstracted-away mystery.

To those who haven’t invested the time to truly master the innerworkings of a particular technology, it might as well work by magic. The deeper you dive, however, the more the magic falls away.

This is what Jimmy Song did for me and the various other students of his workshop, Programming Blockchain: strip away the magic.

Crypto globetrotter

As a contributor to the Bitcoin Core repository and former vice president of engineering for the early bitcoin wallet software Armory, Jimmy Song is well known in the cryptocurrency space.

Through his regular written and video content, he’s established himself as a vocal figure in crypto, one who is passionate about improving bitcoin.

He also isn’t shy about sharing his opinions on what’s needed to do that:

“Training more developers is the biggest bottleneck in the ecosystem.”

Enter Programming Blockchain, Song’s flagship effort to give interested developers a deep crash course into the fundamentals of how the magic behind bitcoin and the blockchain actually work. Finite fields, elliptic curve cryptography, transaction parsing and validating proof of work are just some of the topics covered.

“It’s like a water hose of information for two straight days,” explained Song.

As a web developer fascinated with the wider implications of cryptocurrency for the last several years, I couldn’t resist.

Since blockchain is a global technology and phenomenon, it’s fitting that such an ambitious endeavor to demystify it is itself global in scope. The locations for Programming Blockchain vary widely, having been held and scheduled for areas as disparate as China, California, North Carolina and Israel.

“If the idea is to make more developers, I want to do this in as many jurisdictions as possible.” explained Song. “By doing this in different areas of the world, I am hoping developers in different areas of the world create more things. Having more businesses start in different jurisdictions reduces risk for bitcoin.”

The latest iteration of the workshop took place in Tampa, Florida. While not the most internationally recognized city, Tampa is home to a vibrant cryptocurrency community and the newly opened BlockSpaces, a co-working space dedicated to blockchain projects which played host to Programming Blockchain.

Choosing Tampa as a location paid off. This latest iteration of Song’s in-person instruction was his largest yet with 30 students. While some of these developers naturally hailed from the Sunshine State like myself, others had flown in from various locations including Washington D.C., California, and Brazil.

Demystifying blockchain

Blockchain is the hottest buzzword in tech, one that’s being thrown at everything. Surveying the ICO and blockchain landscape, you can find a project or startup for every use case from health data to banana tracking. No matter your problem, blockchain is the solution to your ills.

But what actually is it, how does it work, and what makes it so special?

It’s common to hear that blockchain is “the technology behind bitcoin,” a distributed and tamper-proof database which could be leveraged in many other applications. It’s also common to hear that like AOL or MySpace, bitcoin could quickly be overtaken by competitors who better leverage this technology.

But blockchain is so new and inherently different that all analogies aimed at simplifying it or the crypto ecosystem quickly fall apart in their usefulness.

Blockchain’s uniqueness makes it exceptionally difficult to understand because try as we might, we possess no preexisting conceptual pigeonhole to fit it into. By extension, it is exceptionally easy and tempting to project upon it a panacea for every problem without any clear idea of how it will help.

We take descriptions of the blockchain’s emergent properties such as “immutability” and “decentralization,” and often seem to conclude these are magical passive properties of blockchain which can be dragged and dropped onto any application. But there is no such thing as magic, and even the most seemingly benign assumptions made when thinking about cryptocurrencies and blockchain can be surprisingly off.

Take even the very concept of a bitcoin, which is itself nothing more than an abstraction. The bitcoin protocol tracks units of value only in satoshis, not in bitcoins. What many know as the “smallest” unit is actually the only unit in the protocol.

It was simply an arbitrary decision on the part of Satoshi to make a “bitcoin” equivalent to 100 million of these units, which subsequently became standard notation for all wallet software built on top of the protocol. But even the concept of some kind of “coin” or “token” itself is a total abstraction. The structure of bitcoin transactions has a surprising detail brought to our attention by Song that showed this to be the case.

When it comes to monetary transfers one thinks of X unit of value being sent to the address or account of a recipient. In a raw bitcoin transaction, however, nowhere is the amount of satoshis being “transferred” specified. There is simply a reference to the unspent transaction output, or UTXO, with which the transaction is being funded. A UTXO can be thought of as debit entry on the blockchain ledger. The total amount of bitcoin displayed on a wallet is the aggregate of all the UTXO it controls rather than a single account which holds funds.

Additionally, if the value represented by a single UTXO is less than that which a user attempts to spend, multiple UTXOs must be included in the transaction to provide the liquidity. However, a UTXO must also be spent completely, meaning that by spending an amount smaller than that represented by a single UTXO, your wallet software must actually generate a “change” address to send itself the difference.

As Jimmy Song demonstrated to us, there are no tokens being sent back and forth, even digitally. Rather it’s a conceptual metaphor. All there is is simply a quirky accounting ledger, the particulars of which are of course abstracted away completely by basic wallet software.

“Once you understand these raw transactions, it’s like reading the Matrix,” Jimmy said.

The pitfalls of abstraction

Many abstractions, like easily understood currency denominations, are obviously useful. They are necessary for operating in a vastly complex world, yet they can still introduce intellectual pitfalls.

Take unit bias, which is when a cryptocurrency seems like a better buy relative to a more “expensive” coin, despite the fact that the unit price of a coin is irrelevant in this context.

If two cryptocurrencies possess the exact same market cap, but their supply and denomination is such that you are capable of purchasing a “whole” cryptocurrency A over a “fraction” of cryptocurrency B, we are predisposed to own a whole of something rather than a part. Yet the denominations of these cryptocurrencies are, necessarily, totally arbitrary.

Unit bias is a fairly benign mental error. When it comes to simplifying details for the sake of explanation, however, other pitfalls can be much more dangerous.

For example, bitcoin’s so-called “immutability” isn’t the result of some special line of code which can simply be copied and pasted into any application. It is the result of the ongoing interplay of incredibly intricate mathematics and economic incentives. The structure of the blockchain is rooted in a type of computation known as hashing. It is easy for a computer to verify if the answer to a hash is correct but difficult for it to find the answer itself from scratch, though far from impossible.

Miners, however, create a hashing arms race, where reproducing their total and ongoing sum of computations in order to make changes to the blockchain is exceedingly expensive, rendering it all but impractical the more that time passes. This is only possible because the miners have a powerful profit motive: the reward of bitcoins themselves.

Thus it’s not even accurate to think of the bitcoin blockchain as perfectly immutable. It most certainly could be tampered with, under certain conditions like 51% attacks. But neither is it possible for any blockchain to promise even practical immutability without a native and valued token with which to reward those who secure it.

“Bitcoin is the technology that powers blockchain, not the other way around,” summarized fellow student Nick Baldwin.

A sense of perspective

The more deeply you delve into blockchain, the more the magic falls away. You realize that like all things, there are no true mysteries. Only that which we haven’t taken sufficient time to understand.

As our simplistic and flawed models are replaced by more sophisticated ones, there are interesting ramifications. You may think your sense of wonder fades along with the magic. Sometimes it does. You become acutely aware of how little you actually know and how much there is left to solve and build. A sense of disillusionment can be the natural reaction.

But by pressing on you earn something much more valuable than naive wonder: a sense of perspective. The work left to do is immense, but the work that has already been done by those who have come before us is just as terrifyingly intimidating.

It stands testament to the fact that we already stand on the shoulders of giants, and all the challenges ahead of us can be conquered, just as those before us were.

With this knowledge and shift in perspective comes a sense of focus. All we can do is solve the next problem. Take the next step. All else is noise.

As Song imparted to us as our impactful workshop came to an end:

“Wisdom is cutting things out of your life, not adding more to it”.

Astrological image via Shutterstock

The leader in blockchain news, CoinDesk is a media outlet that strives for the highest journalistic standards and abides by a strict set of editorial policies. CoinDesk is an independent operating subsidiary of Digital Currency Group, which invests in cryptocurrencies and blockchain startups.

Be the first to comment

Leave a Reply

Your email address will not be published.


*


Privacy Policy

WideBitcoin.com is committed to safeguarding your privacy. Contact us at if you have any questions or problems regarding the use of your Personal Data and we will gladly assist you.

By using this site or/and our services, you consent to the Processing of your Personal Data as described in this Privacy Policy.

Table of Contents

  1. Definitions used in this Policy
  2. Data protection principles we follow
  3. What rights do you have regarding your Personal Data
  4. What Personal Data we gather about you
  5. How we use your Personal Data
  6. Who else has access to your Personal Data
  7. How we secure your data
  8. Information about cookies
  9. Contact information

Definitions

Personal Data – any information relating to an identified or identifiable natural person.
Processing – any operation or set of operations which is performed on Personal Data or on sets of Personal Data.
Data subject – a natural person whose Personal Data is being Processed.
Child – a natural person under 16 years of age.
We/us (either capitalized or not)

Data Protection Principles

We promise to follow the following data protection principles:

  • Processing is lawful, fair, transparent. Our Processing activities have lawful grounds. We always consider your rights before Processing Personal Data. We will provide you information regarding Processing upon request.
  • Processing is limited to the purpose. Our Processing activities fit the purpose for which Personal Data was gathered.
  • Processing is done with minimal data. We only gather and Process the minimal amount of Personal Data required for any purpose.
  • Processing is limited with a time period. We will not store your personal data for longer than needed.
  • We will do our best to ensure the accuracy of data.
  • We will do our best to ensure the integrity and confidentiality of data.

Data Subject’s rights

The Data Subject has the following rights:

  1. Right to information – meaning you have to right to know whether your Personal Data is being processed; what data is gathered, from where it is obtained and why and by whom it is processed.
  2. Right to access – meaning you have the right to access the data collected from/about you. This includes your right to request and obtain a copy of your Personal Data gathered.
  3. Right to rectification – meaning you have the right to request rectification or erasure of your Personal Data that is inaccurate or incomplete.
  4. Right to erasure – meaning in certain circumstances you can request for your Personal Data to be erased from our records.
  5. Right to restrict processing – meaning where certain conditions apply, you have the right to restrict the Processing of your Personal Data.
  6. Right to object to processing – meaning in certain cases you have the right to object to Processing of your Personal Data, for example in the case of direct marketing.
  7. Right to object to automated Processing – meaning you have the right to object to automated Processing, including profiling; and not to be subject to a decision based solely on automated Processing. This right you can exercise whenever there is an outcome of the profiling that produces legal effects concerning or significantly affecting you.
  8. Right to data portability – you have the right to obtain your Personal Data in a machine-readable format or if it is feasible, as a direct transfer from one Processor to another.
  9. Right to lodge a complaint – in the event that we refuse your request under the Rights of Access, we will provide you with a reason as to why. If you are not satisfied with the way your request has been handled please contact us.
  10. Right for the help of supervisory authority – meaning you have the right for the help of a supervisory authority and the right for other legal remedies such as claiming damages.
  11. Right to withdraw consent – you have the right withdraw any given consent for Processing of your Personal Data.

Data we gather

Information you have provided us with
This might be your e-mail address, name, billing address, home address etc – mainly information that is necessary for delivering you a product/service or to enhance your customer experience with us. We save the information you provide us with in order for you to comment or perform other activities on the website. This information includes, for example, your name and e-mail address.

Information automatically collected about you
This includes information that is automatically stored by cookies and other session tools. For example, your shopping cart information, your IP address, your shopping history (if there is any) etc. This information is used to improve your customer experience. When you use our services or look at the contents of our website, your activities may be logged.

Information from our partners
We gather information from our trusted partners with confirmation that they have legal grounds to share that information with us. This is either information you have provided them directly with or that they have gathered about you on other legal grounds. See the list of our partners here.

Publicly available information
We might gather information about you that is publicly available.

How we use your Personal Data

We use your Personal Data in order to:

  • provide our service to you. This includes for example registering your account; providing you with other products and services that you have requested; providing you with promotional items at your request and communicating with you in relation to those products and services; communicating and interacting with you; and notifying you of changes to any services.
  • enhance your customer experience;
  • fulfil an obligation under law or contract;

We use your Personal Data on legitimate grounds and/or with your Consent.

On the grounds of entering into a contract or fulfilling contractual obligations, we Process your Personal Data for the following purposes:

  • to identify you;
  • to provide you a service or to send/offer you a product;
  • to communicate either for sales or invoicing;

On the ground of legitimate interest, we Process your Personal Data for the following purposes:

  • to send you personalized offers* (from us and/or our carefully selected partners);
  • to administer and analyse our client base (purchasing behaviour and history) in order to improve the quality, variety, and availability of products/ services offered/provided;
  • to conduct questionnaires concerning client satisfaction;

As long as you have not informed us otherwise, we consider offering you products/services that are similar or same to your purchasing history/browsing behaviour to be our legitimate interest.

With your consent we Process your Personal Data for the following purposes:

  • to send you newsletters and campaign offers (from us and/or our carefully selected partners);
  • for other purposes we have asked your consent for;

We Process your Personal Data in order to fulfil obligation rising from law and/or use your Personal Data for options provided by law. We reserve the right to anonymise Personal Data gathered and to use any such data. We will use data outside the scope of this Policy only when it is anonymised. We save your billing information and other information gathered about you for as long as needed for accounting purposes or other obligations deriving from law, but not longer than 1 year.

We might process your Personal Data for additional purposes that are not mentioned here, but are compatible with the original purpose for which the data was gathered. To do this, we will ensure that:

  • the link between purposes, context and nature of Personal Data is suitable for further Processing;
  • the further Processing would not harm your interests and
  • there would be appropriate safeguard for Processing.

We will inform you of any further Processing and purposes.

Who else can access your Personal Data

We do not share your Personal Data with strangers. Personal Data about you is in some cases provided to our trusted partners in order to either make providing the service to you possible or to enhance your customer experience. We share your data with:

Our processing partners:

  • facebook.com
  • google.com
  • bing.com
  • twitter.com
  • pinterest.com

Our business partners:

  • facebook.com
  • google.com
  • bing.com
  • twitter.com
  • pinterest.com

Connected third parties:

  • facebook.com
  • google.com
  • bing.com
  • twitter.com
  • pinterest.com

We only work with Processing partners who are able to ensure adequate level of protection to your Personal Data. We disclose your Personal Data to third parties or public officials when we are legally obliged to do so. We might disclose your Personal Data to third parties if you have consented to it or if there are other legal grounds for it.

How we secure your data

We do our best to keep your Personal Data safe. We use safe protocols for communication and transferring data (such as HTTPS). We use anonymising and pseudonymising where suitable. We monitor our systems for possible vulnerabilities and attacks.

Even though we try our best we can not guarantee the security of information. However, we promise to notify suitable authorities of data breaches. We will also notify you if there is a threat to your rights or interests. We will do everything we reasonably can to prevent security breaches and to assist authorities should any breaches occur.

If you have an account with us, note that you have to keep your username and password secret.

Children

We do not intend to collect or knowingly collect information from children. We do not target children with our services.

Cookies and other technologies we use

We use cookies and/or similar technologies to analyse customer behaviour, administer the website, track users’ movements, and to collect information about users. This is done in order to personalize and enhance your experience with us.

A cookie is a tiny text file stored on your computer. Cookies store information that is used to help make sites work. Only we can access the cookies created by our website. You can control your cookies at the browser level. Choosing to disable cookies may hinder your use of certain functions.

We use cookies for the following purposes:

  • Necessary cookies – these cookies are required for you to be able to use some important features on our website, such as logging in. These cookies don’t collect any personal information.
  • Functionality cookies – these cookies provide functionality that makes using our service more convenient and makes providing more personalised features possible. For example, they might remember your name and e-mail in comment forms so you don’t have to re-enter this information next time when commenting.
  • Analytics cookies – these cookies are used to track the use and performance of our website and services
  • Advertising cookies – these cookies are used to deliver advertisements that are relevant to you and to your interests. In addition, they are used to limit the number of times you see an advertisement. They are usually placed to the website by advertising networks with the website operator’s permission. These cookies remember that you have visited a website and this information is shared with other organisations such as advertisers. Often targeting or advertising cookies will be linked to site functionality provided by the other organisation.

You can remove cookies stored in your computer via your browser settings. Alternatively, you can control some 3rd party cookies by using a privacy enhancement platform such as optout.aboutads.info or youronlinechoices.com. For more information about cookies, visit allaboutcookies.org.

We use Google Analytics to measure traffic on our website. Google has their own Privacy Policy which you can review here. If you’d like to opt out of tracking by Google Analytics, visit the Google Analytics opt-out page.

Read more about cookies on our Cookie Policy

Contact Information

email: [email protected]

Changes to this Privacy Policy

We reserve the right to make change to this Privacy Policy.

You can configure your Internet browser, by changing its options, to stop accepting cookies completely or to prompt you before accepting a cookie from the website you visit. If you do not accept cookies, however, you may not be able to use all portions of the WideBitcoin Websites or all functionality of the Services.

Please note that disabling these technologies may interfere with the performance and features of the Services.

You may also disable cookies on the WideBitcoin Sites by modifying your settings here:

Visitor comments may be checked through an automated spam detection service.

Last Update: May 25, 2018