Posts

Showing posts from 2016

How to steal money in Ethereum (and how to protect your Ether)

Ethereum's smart contracts can be deceptively easy to code, but the devil is in the details. This post is about the vulnerability underneath the DAO hack and the preventative measures. First of all, I am grateful to Daniel Nagy, my friend and an Ethereum developer, for explaining the below material concisely. This is public material but not so trivial to understand, especially when written for technical audiences, so here you go - a simple explanation of the DAO hack and the ways to design your contract to avoid being a victim of this type of attack. You and a group of 5 friends want to get into a Drake concert, but do not want to pay for 6 tickets. How get around it? You look around the concert site and find that the people that check the tickets do not stamp or take them away - and the fence around the concert area is tall, but a chain-link type - and now the solution is trivial. You buy one ticket, agree on a secret meeting spot with your friends around the fence of the con...

Ethereum Client Platforms: Parity versus Go-Ethereum

Image
The next step in the Ethereum world, after mastering the basics of the Solidity language and the smart contract development, is about developing simple production applications. The key ingredient here is client software. In this article, I review parity , the newer client software layer, and compare it to geth, the product of the Homestead project. What does the client software do? It downloads the whole blockchain onto your system on a regular basis, keeping the tab on the whole network. It verifies all transactions and contracts on the blockchain. If you are building your own contracts, it broadcasts them to the network so that they are included in the next block and confirmed by the miners. Client software can also do the mining but these days you may need a super-computer do make any ether this way. Why is this important? In order to successfully integrate blockchain transactions into a real-world application, a reliable client layer is needed. Just using https://etherscan...

A smart collateralized non-recourse futures contract on Ethereum: first impression

Image
Today is yet another exciting day, because I just built the first "smart" Ethereum contract that performs a futures trade between two parties. The contract allows two entities with Ethereum accounts to enter into an ether-settled, margined futures agreement on any market (or non-market!) variable - be that the closing price of SP 500, the air temperature at Noon in downtown Manhattan, or a hurricane event in the Caribbean. Why are smart distributed financial contracts important? The world creates a huge notional volume of "exchange-traded" and "over-the-counter" derivative transactions. At this time, these transactions go through investment banks and through exchanges, adding a layer of fees for buy-side institutions and individual investors. If the decentralization trend continues, we will see this marketplace evolve from fees based on volume ("spread") to fees based on access, or consulting fees, making trading cheaper. Smart contracts and E...

Smart Contracts in Ethereum, Solidity, and Geth: first impression

Image
Today is another exciting day, because I was able to build and deploy a simple smart contract on the Ethereum production chain. What is a smart contract? A contract that is signed and executed digitally, between one or several parties. For example, a Zipcar rental can be described as a smart contract, since all steps from booking to unlocking, to returning the car are automated. A traditional car rental is not a smart contract, since it requires me to sign several papers and the counter person to physically give me the key to the car. What about distributed smart contracts? They are smart contracts that can be signed and enforced via a decentralized network - so unlike the Zipcar rental, they may not require a corporation intermediary. Why are distributed smart contracts important? Because much of modern economy is, in the end, about creating, documenting, settling, and litigating contracts, in a very centralized way. Smart contracts can remove the layer of intermediaries...

Ledger NanoS bitcoin and ether hardware wallet: first impression

Image
A very exciting event this week: the new Ledger NanoS Wallet has arrived! For most people, this device looks like a flash memory stick but in reality it could be a very important product, when and if cryptocurrencies become mainstream. Purpose What is the Ledger NanoS wallet for? It offers several layers of protection for bitcoin/ether holders against accidental loss of access to funds, and against malicious theft of funds by a hacker.  More technically, Ledger Wallet is a device that performs Public Key Encryption internally and stores the private key securely. This is a big deal, since in the digital currency space, losing the private key means losing access to the funds forever; and disclosing the private key means opening the door to a thief to take the money. Ledger Wallet performs the private key signature operation inside the hardware. So, assuming its firmware is well written and the access protocol via the USB connection is secure, it offers a great way to...

Business Blockchain

Image
This week I attended the Business Blockchain panel breakfast, hosted by OMERS ventures and the OneEleven accelerator - this posting is about my impressions of the event and the few conversations I had with the participants. This breakfast with in lieu of the Business Blockchain conference by William Mougayar, that was cancelled and merged with the Consensus 2016 conference. First and foremost, there is genuine enthusiasm about the technology and its potential to change the business. The level of energy among the panelists was so much higher than, for example, the last "private equity portfolio management" seminar I attended, where the participants were just droning over slides. One of the most disputed topics was on the optimal path for the blockchain technology success - to disrupt or to collaborate? To disrupt means to develop a killer app that supplants the status quo in finance or in any other application area. To collaborate means to solve the specific industry prob...