<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Benedict Chan on Medium]]></title>
        <description><![CDATA[Stories by Benedict Chan on Medium]]></description>
        <link>https://medium.com/@benedictchan?source=rss-694650b84ea------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*rnEj-2XT-ikhYSBEeyIiUQ.jpeg</url>
            <title>Stories by Benedict Chan on Medium</title>
            <link>https://medium.com/@benedictchan?source=rss-694650b84ea------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 02:35:20 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@benedictchan/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Wrapped BTC Launches with BitGo Custody and Full Proof of Assets]]></title>
            <link>https://medium.com/@benedictchan/wrapped-btc-launches-with-bitgo-custody-and-full-proof-of-assets-c7fbf21e4a66?source=rss-694650b84ea------2</link>
            <guid isPermaLink="false">https://medium.com/p/c7fbf21e4a66</guid>
            <category><![CDATA[announcements]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[bitgo]]></category>
            <category><![CDATA[wbtc]]></category>
            <category><![CDATA[bitcoin]]></category>
            <dc:creator><![CDATA[Benedict Chan]]></dc:creator>
            <pubDate>Thu, 31 Jan 2019 01:00:52 GMT</pubDate>
            <atom:updated>2019-01-31T02:04:37.623Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/proxy/0*7juVLLYfvuHMlR4j" /></figure><p><a href="https://www.wbtc.network/">Wrapped Bitcoin</a> (WBTC) launched today on the Ethereum blockchain, with a total of 26 partners and 15 decentralized autonomous organization (DAO) members. First announced in <a href="https://blog.bitgo.com/introducing-wbtc-the-power-of-bitcoin-with-the-flexibility-of-erc20-48c6681a9a7c">October 2018</a> in partnership with Kyber Network and Ren, WBTC is an ERC20 token backed 1:1 with Bitcoin that brings Bitcoin to the Ethereum ecosystem.</p><h3>BitGo’s role as a custodian</h3><p>BitGo is lending its industry leading custody solution to the project, ensuring the secure storage of WBTC and providing proof of assets for the fully backed token. WBTC is the first asset-backed token with a transparent public dashboard where anyone can validate the total circulation of WBTC and number of Bitcoin stored. Supporting WBTC with the transparency of a 1:1 reserve brings trust to the token — a critical element that we are proud to have contributed.</p><p><a href="https://kyber.network/swap/eth_wbtc">Kyber Network</a>, <a href="https://prycto.com/">Prycto</a>, and <a href="https://instant.airswap.io/">Airswap</a> have minted WBTC from their own Bitcoin inventory, providing the token with initial liquidity and making it immediately available for swaps. View WBTC on <a href="https://coinmarketcap.com/currencies/wrapped-bitcoin/">CoinMarketCap</a>.</p><h3>Proof of Assets: Verify reserves yourself!</h3><p>Here, we’ll show how you can fully validate (via the public blockchain) that BTC:WBTC are backed with a 100% reserve. While we have spent some time to build out the user interface as a demonstration, we invite savvy blockchain enthusiasts to build their own scripts to independently validate.</p><ol><li>Go to <a href="https://www.wbtc.network/dashboard/order-book">https://www.wbtc.network/dashboard/order-book</a></li><li>The total WBTC is shown on this dashboard</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*GFvXChqDHgi_d2qu" /></figure><p>3. To validate the total amount of WBTC supply check the blockchain or click the “token contract link” at:</p><p><a href="https://etherscan.io/token/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599">https://etherscan.io/token/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599</a></p><p>Note — you don’t have to rely on BitGo, you can view it on Etherscan</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ohaLgc9ruGlUKXtm" /></figure><p>(as you can see, total supply is 72.4214 WBTC as of Jan 30, 2019)</p><p>4. To see the backing BTC assets click the “on-chain validation” link, which leads to the proof of asset page at <a href="https://www.wbtc.network/dashboard/audit">https://www.wbtc.network/dashboard/audit</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ZOCKnO8pAoaRSlsO" /></figure><p>By clicking each Bitcoin address, you can validate the amount on chain. You can do this from any blockchain explorer like smartbit or blockchain.info.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*hS1Jzz9ihSB9-4OW" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*mu6bcrgAOMtvXN2k" /></figure><p>Adding up the address balances leads to a total of 72.4216 BTC (as of Jan 30th, 2019). This matches the WBTC supply (viewed via Etherscan), and proves full 100% reserves.</p><h3>Smart contract audit</h3><p>All WBTC smart contracts having been audited by established firms including Solidified Technologies, ChainSecurity, Coinspect, and are <a href="https://github.com/WrappedBTC/bitcoin-token-smart-contracts/tree/master/docs">publicly available</a>.</p><h3>The growing ecosystem</h3><p>When we first announced WBTC, there were 12 partners on board. Today, WBTC is supported by 26 community partners including <a href="https://dolomite.io/">Dolomite</a>, <a href="https://dharma.io/">Dharma</a>, <a href="https://idex.market/">Idex</a>, <a href="https://radarrelay.com/">Radar Relay</a>, <a href="https://blockfolio.com/">Blockfolio</a>, <a href="https://switcheo.network/">SwitcheoNetwork</a>, <a href="https://bzx.network/">BZX</a>, <a href="https://www.ethfinex.com/">Ethfinex</a>, <a href="https://dydx.exchange/">dY/dX</a>, <a href="https://token.im/">imToken</a>, <a href="https://www.coingecko.com/en">CoinGecko</a>, <a href="https://www.airswap.io/">AirSwap</a>, <a href="https://compound.finance/">Compound</a>, <a href="https://ddex.io/">DDEX</a>, <a href="https://hydroprotocol.io/">Hydro</a>, <a href="https://gnosis.pm/">Gnosis</a>, <a href="https://www.gopax.com/">GOPAX</a>, <a href="https://loopring.org/">Loopring Protocol</a>, <a href="https://makerdao.com/en/">MakerDAO</a>, <a href="https://omisego.network/">OmiseGO</a>, <a href="https://prycto.com/">Prycto</a>, <a href="https://renproject.io/">Ren</a>, <a href="https://setprotocol.com/">Set Protocol</a>, <a href="https://theocean.trade/">The Ocean</a>, <a href="https://kyber.network/">Kyber Network</a>, and <a href="https://www.bitgo.com/">BitGo</a>.</p><p>The initiative is governed by a DAO committed to driving innovation for the entire ecosystem and maintaining a transparent governance structure. Working with this many partners on a single project was new, and a learning process for us. We’re pleased to have achieved community consensus and security via the DAO with multiple parties involved in minting and burning.</p><p>We thank everyone for their support in working together towards the development and prototyping of workflows, especially minting and burning. We’re excited to see the public already engaging with WBTC; our pre-launch mint and burn requests were discovered and shared with the community before the official launch and it is exciting to see such a warm response to this new token. You can view minting and burning via <a href="https://www.wbtc.network/dashboard/order-book">our dashboard here</a>.</p><h3>Why we’re excited about WBTC</h3><p>What makes public blockchains like Ethereum so powerful is not just that many different participants can come together globally and trade, but that everyone can build emergent technology and infrastructure that is fully interoperable with an existing ecosystem.</p><p>Engaging with WBTC doesn’t require a special bridge, sidechain or additional technology. Any existing Ethereum ERC20 wallet can use it by adding the token address: 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599.</p><p>When we first announced WBTC, we expected that the token would create additional liquidity for decentralized exchanges. Since then, we’ve been thrilled to see other applications and use cases, from decentralized lending to collateralization and insurance — that can be built on top of this infrastructure even without our involvement. The diverse blockchain community identifies exciting use cases far beyond what the technology was initially designed for. This unbound potential for new development is why we’re so passionate about building in this space.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c7fbf21e4a66" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Moving Towards Ethereum 2.0: The Constantinople Hard Fork]]></title>
            <link>https://medium.com/@benedictchan/moving-towards-ethereum-2-0-the-constantinople-hard-fork-3bdcc0729891?source=rss-694650b84ea------2</link>
            <guid isPermaLink="false">https://medium.com/p/3bdcc0729891</guid>
            <category><![CDATA[financial-services]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[cryptocurrency]]></category>
            <category><![CDATA[industry]]></category>
            <category><![CDATA[ethereum]]></category>
            <dc:creator><![CDATA[Benedict Chan]]></dc:creator>
            <pubDate>Fri, 11 Jan 2019 01:42:11 GMT</pubDate>
            <atom:updated>2019-01-15T22:42:04.130Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*7Gkjw8TINNnzFrth" /></figure><h4><strong><em>January 15th 2019 Update</em></strong></h4><p><em>The Ethereum Constantinople hard fork has been postponed due to potential vulnerabilities. Visit the </em><a href="https://blog.ethereum.org/2019/01/15/security-alert-ethereum-constantinople-postponement/"><em>Ethereum blog</em></a><em> for more information.</em></p><p>On January 16th 2019 the Ethereum blockchain will undergo a hard fork, implementing several significant upgrades to modernize and improve scalability of the blockchain. The Ethereum Constantinople hard fork is a key step in the roadmap before Ethereum 2.0.</p><p>The software upgrades are comprised of five Ethereum improvement proposals (EIPs) focused on improving the efficiency and lessening the costs associated with producing Ethereum transactions. The fork is expected to take place at block 7,080,000 — approximately 4:45am UTC based on current estimates.</p><h4>Consensus for Constantinople</h4><p>Unlike other hard forks, Constantinople is not a contentious fork for the Ethereum community. Consensus around activation of the EIPs appears to be reached for a seamless transition to the new, upgraded chain. We do not predict that the old chain will survive with significant hashpower.</p><p>That being said, at BitGo we treat hard forks carefully — even those that appear to have a majority consensus. To date, our methods for handling hard forks have kept client funds safe; during the Bitcoin SV hard fork in November clients funds were secured automatically with replay protection.</p><h4>How we’re handling the hard fork</h4><p>We will be suspending deposits and withdrawals for ETH and ERC20s during the hard fork. BitGo clients should expect approximately 30 minutes of downtime before and after the fork to have confidence that transactions can be conducted safely.</p><p>In preparation for the upcoming Constantinople upgrades, our Ethereum infrastructure has been updated. Clients running older software may be exposed to risk; they’ll see a version of their own chain which may have different sets of confirmed transactions.</p><h4><strong>Constantinople features five EIPs</strong></h4><p><a href="https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md">EIP 145</a> will improve the Ethereum Virtual Machine (EVM) by adding native bitwise shift instructions. This will decrease the gas cost of this operation from 35 gas to just 3.</p><p><a href="https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1014.md">EIP 1014</a> will introduce off-chain transactions, similar to what Bitcoin’s Lightning Network provides, significantly improving the performance and throughput of Ethereum. Previously, Ethereum contracts had to be deployed on-chain before you could use them. Now, you can provide the address which corresponds to the contract you want to deploy, and the recipient can pay to the contract before you deploy. This means that developers are able to generate receive addresses without paying the deployment fee of the receive address until they want to spend from it. This EIP is also allows for certain off-chain state channel commitments to be possible without requiring a deployment of said state channel.</p><p><a href="https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1052.md">EIP 1052</a> provides a new EVM opcode that allows contracts to more efficiently verify another contract’s bytecode. By checking the contract by its hash (keccak256 hash of the contract’s code), the verification becomes much more cost effective.</p><p><a href="https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1234.md">EIP 1234</a> reduces the block reward from 3 ETH to 2 ETH and delays the difficulty bomb for 12 months as part of the transition from proof-of-work to proof-of-stake. The block time should remain at about 15 seconds.</p><p><a href="https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1283.md">EIP 1283</a> reduces gas costs for the contract storage opcode, enabling new usage for contract storage. This upgrade helps the Ethereum blockchain scale by allowing transactions to process faster and increasing adoption of decentralized applications by lessening their implementation costs.</p><p>If you have any questions regarding the hard fork, please contact us at <a href="/service/mailto:support@bitgo.com">support@bitgo.com</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3bdcc0729891" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing WBTC: The Power of Bitcoin with the Flexibility of ERC20]]></title>
            <link>https://medium.com/@benedictchan/introducing-wbtc-the-power-of-bitcoin-with-the-flexibility-of-erc20-48c6681a9a7c?source=rss-694650b84ea------2</link>
            <guid isPermaLink="false">https://medium.com/p/48c6681a9a7c</guid>
            <category><![CDATA[wbtc]]></category>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[announcements]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[ethereum]]></category>
            <dc:creator><![CDATA[Benedict Chan]]></dc:creator>
            <pubDate>Fri, 26 Oct 2018 15:44:41 GMT</pubDate>
            <atom:updated>2018-10-26T15:47:46.767Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pLnh2q_2qJwHqqp4wKuDrQ.png" /></figure><p>Today we’re announcing <a href="https://www.wbtc.network/">Wrapped Bitcoin (WBTC)</a>, a collaborative effort with a community of partners to bring Bitcoin to the Ethereum network as an ERC20 token. The token will bring the stability and value of Bitcoin to Ethereum’s expansive ecosystem of decentralized applications.</p><p>BitGo will provide custody of the Bitcoin and tokenize it by minting WBTC together with approval from community members. It’s an exciting opportunity for us to build on our mission: making digital currencies usable for business.</p><p>WBTC users will be able to utilize Bitcoin in a wide variety of new decentralized use cases, including on decentralized exchanges (DEXs), as collateral for stable coins or lending, for payments and flexible smart contracts within the Ethereum ecosystem. The leading use cases will launch in early January, powered by important decentralized projects including <a href="https://kyber.network/">Kyber Network</a>, <a href="https://republicprotocol.com/">Republic Protocol</a>, <a href="https://makerdao.com/">MakerDAO</a>, <a href="https://dharma.io/">Dharma</a>, <a href="https://www.airswap.io/">Airswap</a>, <a href="https://idex.market/">IDEX</a>, <a href="https://compound.finance/">Compound</a>, <a href="https://ddex.io/">DDEX</a>, <a href="https://thehydrofoundation.com/">Hydro Protocol</a>, <a href="https://setprotocol.com/">Set Protocol</a>, <a href="https://www.prycto.com/">Prycto</a>, <a href="https://radarrelay.com/">RadarRelay</a>, and <a href="https://gnosis.pm/">Gnosis</a>.</p><p>For the first time, this digital asset will be tokenized with full proof of reserve, backed 1:1 with Bitcoin. Every Bitcoin will be accounted for on a dashboard displaying addresses and balances, and users will be able to verify on the blockchain each Bitcoin that is held in custody. This can be done by comparing the exact number of Bitcoin stored with the total supply of WBTC in circulation via a blockchain explorer like Etherscan.</p><p>This transparency brings trust to the digital currency, a critical element for any blockchain ecosystem. Trust is our business (in September we announced the launch of BitGo Trust Company, the first qualified custodian purpose-built for digital assets), and WBTC will employ the same secure processes that we have developed for institutional custody.</p><p>We’ve seen significant institutional interest in the tokenization of assets like securities, commodities, and real estate. For BitGo, WBTC is an opportunity to contribute technical leadership to the advancement of blockchain and tokenization platforms. We take a practical approach towards development: engineering and security efforts put into the creation of WBTC will be leveraged towards supporting future asset tokenization.</p><p>Last year we worked with industry partners, including the Royal Mint and CME Group, in an effort to tokenize gold, creating Royal Mint Gold (RMG). The WBTC initiative sees the tokenization of “digital gold”, and we look forward to applying our expertise with this token standard to further collaborations.</p><p>This is going to be a transformational community effort. We would love to invite all builders that see a need for tokenization and the use of WBTC to reach out and <a href="https://www.wbtc.network/">join the project</a>!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=48c6681a9a7c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Bitcoin 2015 Highlights: A Review of our Journey]]></title>
            <link>https://medium.com/@benedictchan/bitcoin-2015-a-review-of-our-journey-dc22bf25cb7d?source=rss-694650b84ea------2</link>
            <guid isPermaLink="false">https://medium.com/p/dc22bf25cb7d</guid>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[2015]]></category>
            <category><![CDATA[blockchain]]></category>
            <dc:creator><![CDATA[Benedict Chan]]></dc:creator>
            <pubDate>Sun, 27 Dec 2015 19:14:42 GMT</pubDate>
            <atom:updated>2015-12-31T15:13:26.649Z</atom:updated>
            <content:encoded><![CDATA[<p>2015 has been an interesting time for Bitcoin, with many ups and downs, and never a dull moment. I was recently invited to speak at a meet-up and took the opportunity to round up the highlights of the year. This post will cover events from both a trader / engineer’s point of view. It will look back at how far we’ve come, and summarize the current state of Bitcoin.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*RC8hfcVCflY_ztG65gwU-A.jpeg" /></figure><h4>January</h4><p>Bitcoin began in January trading at <a href="https://www.google.com/finance?q=CURRENCY%3ABTC&amp;ei=2HN7VqDaFpDNugSc_b5g">$315</a>, with <a href="https://www.bitstamp.net/">Bitstamp</a> taking heat shortly after when their <a href="http://www.coindesk.com/bitstamp-claims-roughly-19000-btc-lost-hot-wallet-hack/">hot wallet was compromised</a>. Price action took a downward turn, hitting what would be lows for the year in the $170s. <a href="https://www.braintreepayments.com/">Braintree</a> (Paypal) <a href="http://www.coindesk.com/braintree-completes-bitcoin-payments-integration/">completed their integration with Coinbase</a>, making it easy for merchants to accept Bitcoin. Later that month, <a href="https://www.xapo.com/">Xapo</a> announced that they would be <a href="https://www.cryptocoinsnews.com/xapo-bitcoin-security-measures-use-satellites-and-military-bunkers-deep-cold-storage/">bringing Bitcoin to satellites</a>.</p><h4>February</h4><p>The <a href="http://www.wired.com/2015/02/silk-road-ross-ulbricht-verdict/">conviction of Ross Ulbritch</a>, founder of the silk road dark marketplace, was not a surprise; what did shock many was the subsequent discovery of <a href="http://www.theguardian.com/technology/2015/sep/01/us-federal-agent-investigating-silk-road-admits-800000-bitcoin-theft">corrupt agents involved in the investigation</a>. That same month, <a href="http://www.pokernews.com/news/2015/02/seals-with-clubs-chairman-bryan-micon-police-raid-20740.htm">Seals with Clubs</a>, famed Bitcoin-only poker site, was shut down after a police raid. In better news for Bitcoin’s reputation, the <a href="http://www.coindesk.com/cyberinsurance-pioneer-bitgo-insurance/">first Bitcoin insurance policy</a> with an A-rated insurer (XL Group) was announced by <a href="https://www.bitgo.com/">BitGo</a>, the multi-sig platform running Bitstamp’s hot wallet.</p><h4>March</h4><p>BTCUSD rallied to just under $300 and then moved back down, where it would remain “stable” (in Bitcoin terms) in the $230-$250 range until July.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*Jvw2gE0XI2bcRY65fao5xg.jpeg" /><figcaption>Abra’s app has been called the Uber for remittances</figcaption></figure><p><a href="https://www.goabra.com/">Abra</a> <a href="https://bitcoinmagazine.com/articles/abra-announced-launch-festival-2015-seamless-remittances-powered-bitcoin-1425593201">announced their end-to-end remittance service</a> <a href="http://www.launchfestival2015.com/abra/">to much fanfare</a>, involving a network of mobile tellers in multiple countries (locking in the price of Bitcoin to prevent fluctuations).</p><p><a href="https://www.thirdkey.solutions/announcing-third-key-solutions/">Third Key Solutions</a> launched it’s premium Key Recovery Service for handling backup keys in multi-signature wallets. Meanwhile, Chainlysis <a href="http://www.newsbtc.com/2015/03/16/nodegate-by-chainalysis-draws-ire-of-bitcoin-community/">drew flak</a> for launching fake Bitcoin nodes for the purposes of data forensics.</p><h4>April</h4><p>With an increasingly crowded exchange space and the lack of bull market trading volume, <a href="http://techcrunch.com/2015/04/06/buttercoin-bitcoin-closing/">Buttercoin exchange abruptly closed it’s doors</a>, unable to secure additional funding. It did not help that DD4BC, the hacking group attacking websites to demand Bitcoin ransoms, <a href="https://www.bitquick.co/bitquick-co-thwarts-ddos-extortion-attempt-from-dd4bc-team.php">went full steam targeting Bitcoin companies</a>. In other worrying news, problems brewing with the <a href="http://www.theopenledger.com/newly-elected-bitcoin-foundation-board-member-rips-foundation-says-its-bankrupt/">Bitcoin foundation surfaced, with an elected board member claiming funds were running dry</a> (<a href="http://www.coindesk.com/harper-janssens-exit-bitcoin-foundation/">confirmed in December with 2 other members leaving</a>).</p><h4>May</h4><p>This time it was <a href="https://www.bitfinex.com/">Bitfinex</a> in the spotlight as their <a href="http://bravenewcoin.com/news/bitfinex-hacked-users-urged-to-change-deposit-addresses/">hot wallet was compromised</a>, losing 0.5% of the funds. They rebounded quickly and launched segregated multi-sig wallets with <a href="https://www.bitgo.com/">BitGo</a>, where <a href="http://www.coindesk.com/bitfinex-bitcoin-exchange-on-blockchain-transactions/">individual customers each have on-blockchain wallets</a>. Also a watershed moment for Bitcoin was the opening of trading for <a href="https://bitcoinmagazine.com/articles/bitcoin-investment-trusts-gbtc-begins-trading-public-markets-1430797192">$GBTC on public markets</a>, and the launch of the <a href="http://bravenewcoin.com/news/nyse-launches-bitcoin-price-index/">NYXBT Bitcoin ticker</a> on the New York Stock Exchange.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*EXoHf4aRkrEj8B8XVk9wkQ.jpeg" /></figure><p>It was around this time that the <a href="https://en.bitcoin.it/wiki/Block_size_limit_controversy">block size / scalability debate</a> surfaced, with many <a href="https://medium.com/@octskyward/the-capacity-cliff-586d1bf7715e#.2p7a4hll5">arguing for a larger block size</a> to support the increased transaction throughput demands seen on the network. On the other hand, opponents pointed to the <a href="https://medium.com/@SatoshiLite/eating-the-bitcoin-cake-fc2b4ebfb85e#.mwr3vujg2">need for a fee market</a> and the technical limitations of block propagation. The controversy continued for the rest of 2015.</p><h4>June</h4><p><a href="http://ir.nasdaq.com/releasedetail.cfm?releaseid=919287">Chain.com announced a partnership with Nasdaq</a> to leverage “Blockchain technology” for stock issuance and transfer on private markets. This was part of the growing “blockchain” trend, a buzzword that grew in popularity with banks and financial institutions who wanted control of the technology. The <a href="https://en.wikipedia.org/wiki/BitLicense">New York Bitlicense</a> was also released, imposing “Know Your Customer” requirements on even global companies, causing <a href="http://www.cnbc.com/2015/06/10/company-leaves-new-york-protesting-bitlicense.html">some of them to leave</a>.</p><p><a href="https://blockstream.com/">Blockstream</a> released <a href="http://bravenewcoin.com/news/blockstream-releases-sidechain-elements/">Elements, a working side-chains implementation</a> capable of pegging tokens on a seperate blockchain to Bitcoin. This solution was seen by some as an alternative to scaling Bitcoin for payments. Coinwallet.eu also made reddit fame with their intent to “stress test” the Bitcoin network by spamming it with small transactions. Their “test” was scheduled for June 22 to demonstration the fragility of Bitcoin and as a statement against the block size. However, <a href="http://www.coindesk.com/bitcoin-network-survives-stress-test/">this first attack failed</a> because their own servers and wallet couldn’t handle it.</p><h4>July</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*6VvLhZXJsMbsfYn-i96JoQ.png" /><figcaption>Unconfirmed transactions piled up in the memory pool, causing user delays (Statoshi.info)</figcaption></figure><p>Bitcoin transaction spammer Coinwallet.eu continued their spam attack, causing massive <a href="https://bitcoinmagazine.com/articles/bitcoin-network-still-backlogged-tens-thousands-unconfirmed-transactions-causing-delays-1436305184">delays in transaction confirmations</a> and forcing users to pay increased fees on the network. The adversarial network conditions also revealed many issues with unspent chains, dropped transactions and double spends. This continued until October where it was noticed that <a href="http://www.coindesk.com/bitcoin-node-numbers-fall-after-spam-transaction-attack/">Bitcoin node numbers began to fall</a>. Meanwhile, the price of Bitcoin tested the $300 point again, but did not succeed in breaking out.</p><h4>August</h4><p>Mark Karpeles, CEO of the failed MTGox exchange, <a href="http://www.computerworld.com/article/2983271/technology-law-regulation/former-mt-gox-ceo-mark-karpeles-charged-with-embezzling.html">was re-arrested and convicted of embezzlement</a>. The <a href="https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/?utm_source=bitcoinweekly&amp;utm_medium=email">blockchain vs bitcoin discussion</a> continued. Bitcoin XT, a client running the BIP101 big blocks patch, was released, with the community divided and a <a href="https://medium.com/faith-and-future/why-is-bitcoin-forking-d647312d22c1#.kta9eu1vc">potential fork of the currency looming</a> on the horizon. As a response, the <a href="https://www.reddit.com/r/Bitcoin/comments/3h7emw/scaling_bitcoin_workshop_sept_1213_montreal_canada/">Scaling Bitcoin</a> conference was planned to take place in September with hopes to bring developers / influencers together to deal with the issue.</p><h4>September</h4><p>BitPay, my favorite Bitcoin company (thanks to their selfless promotion of Bitcoin and contributions to open source), revealed that they had <a href="http://www.newsbtc.com/2015/09/26/why-is-bitpay-currently-navigating-through-troubled-waters/">lost 5000 BTC as a result of a social engineering hack</a>. Rumors had already been brewing, but the public saw visible cracks in their business when they <a href="http://www.newsbtc.com/2015/09/26/bitpay-layoffs-allegedly-in-the-works/">laid off half their workers</a>. While this was happening, <a href="http://www.coindesk.com/global-investment-banks-back-blockchain-initiative/">blockchain startup R3 began gaining momentum</a>, starting with support from 9 banks and growing to more than 40 by year end.</p><h4>October</h4><p>The blockchain narrative gained further steam with <a href="https://www.cryptocoinsnews.com/coinprism-launches-openchain-an-open-source-distributed-ledger/">Coinprism launching OpenChain</a>, <a href="http://www.coindesk.com/blockchain-factom-400-funding-11-million-valuatoin/">Factom valued at 11m</a>, and <a href="http://techcrunch.com/2015/10/28/microsoft-partners-with-consensys-to-use-ethereum-to-provide-blockchain-as-a-service/">Microsoft Azure integrating Ethereum</a> to provide blockchains-as-a-service. These organizations and several other startups (ChangeTip / Uphold / Circle) <a href="https://www.reddit.com/r/Bitcoin/comments/3t3ky2/the_word_bitcoin_doesnt_appear_anymore_on/">faced community backlash</a> from their pivots towards blockchain / financial terminology. Will Bitcoin remain a settlement layer unknown to the common man? Not if the <a href="http://www.techrepublic.com/article/cryptowall-what-it-is-and-how-to-protect-your-systems/">Cryptowall ransomware developers</a> continue to infect computers — <a href="http://www.securityweek.com/group-behind-cryptowall-30-made-325-million-report">their virus netted them with $325 million</a> in profit. Meanwhile, the adversarial environment on the Bitcoin network continued, with a <a href="http://motherboard.vice.com/read/i-broke-bitcoin">transaction malleability attack</a> causing more <a href="https://bitcointalk.org/index.php?topic=1198032.0">confusion and double-spending on users and wallets</a>.</p><p><a href="https://www.bitcoin.com/">Bitcoin.com</a> re-launched with a <a href="https://forum.bitcoin.com/ama-ask-me-anything/">successful series of AMAs</a> and /r/btc, gaining momentum due to certain amounts of <a href="https://www.reddit.com/r/btc/comments/3ye0uc/okay_i_havent_been_on_rbitcoin_in_months_but_i/">censorship</a> <a href="https://github.com/bitcoin-dot-org/bitcoin.org/pull/1178">occurring</a> on other popular communities such as <a href="http://reddit.com/r/Bitcoin">/r/bitcoin</a> and <a href="https://bitcoin.org/">Bitcoin.org</a>.</p><h4>November</h4><p>Just as the situation looked bleak for Bitcoin, hope appeared on the horizon when BTCUSD <a href="http://www.coindesk.com/bitcoin-price-crosses-400-first-time-since-september/">spiked up to the $400 range</a>, reaching a short-lived <a href="http://www.ft.com/fastft/2015/11/04/myriad-reasons-pegged-bitcoin-spike/">high of $500 on the 4th of November</a> and <a href="http://www.wired.com/2015/11/bitcoin-is-back-but-it-never-really-left/?utm_source=bitcoinweekly&amp;utm_medium=email">making headlines</a> again. The price spurt caused <a href="http://www.forbes.com/sites/laurashin/2015/12/11/should-you-invest-in-bitcoin-10-arguments-in-favor-as-of-december-2015/">increased interest</a>, new entrants to the market, greater volumes on exchanges and more purchases using Bitcoin!</p><p><a href="http://www.gadgetreview.com/new-shift-card-links-to-bitcoin-your-other-accounts">Coinbase partnered with shift card</a>, making it possible to spend Bitcoins anywhere Visa was accepted. Also worth a particular mention was the release of the <a href="https://21.co/learn/">21 Bitcoin Computer</a>, promising a 402 Payment Required API marketplace where <a href="https://medium.com/@masonic_tweets/how-the-bitcoin-computer-is-saving-bitcoin-69408ea17db6#.nu129qkia">machine-to-machine payments and a self-sustaining Bitcoin ecosystem could thrive</a> as the currency of the internet.</p><h4>December</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*tUhRRsn4o1fbFCifyilgjw.jpeg" /></figure><p><a href="https://medium.com/@lopp/scaling-bitcoin-hong-kong-recap-9a28f5a57f43#.iz1g9z1bc">Scaling Bitcoin 2 was held in Hong Kong</a>, with many core devs, important ecosystem players and <a href="https://twitter.com/bencxr/status/673398963349774337">almost all the miners in attendance</a>. Shortly after, <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-December/011865.html">a roadmap of capacity increases for Bitcoin</a> was published, involving <a href="http://diyhpl.us/wiki/transcripts/scalingbitcoin/hong-kong/segregated-witness-and-its-impact-on-scalability/">segregated witness</a>, <a href="https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2">IBLTs</a> and the <a href="http://lightning.network/">lightning network</a> (all recommended reading). The improvements are possible with a soft-fork, as opposed to a block size increase. In other news, the SEC approved <a href="http://www.wired.com/2015/12/sec-approves-plan-to-issue-company-stock-via-the-bitcoin-blockchain/">Overstock’s plan to issue stock on the Bitcoin blockchain</a>. And on the 24th of December, Bitcoin celebrated the season with its <a href="http://panampost.com/adam-dubove/2015/12/23/bitcoin-cracks-100-million-transactions-comes-of-age/">100th million transaction</a> amid ever increasing usage volumes.</p><h4>An action-packed 2015</h4><p>Closing out on 2015, I have mixed feelings for the year. We have come far: just one year ago, exchange hacks were common and hardly anyone used multi-sig — today, it’s standard practice. We now have commercial deployments of <a href="https://streamium.io/">payment channels</a> and <a href="https://21.co/learn/#reference">machine-to-machine APIs</a>. But while Bitcoin has performed well enough to be declared the <a href="https://medium.com/@BambouClub/best-and-worst-performing-currencies-in-2015-d1e62088bc29#.rhmh9u6sl">world’s strongest currency</a>, the community is <a href="https://www.reddit.com/r/btc/comments/3x3dqb/jeff_garzik_without_exaggeration_i_have_never/">strongly divided over issues</a>. Even though <a href="http://www.economist.com/news/leaders/21677198-technology-behind-bitcoin-could-transform-how-economy-works-trust-machine">recognition of the blockchain has gone mainstream</a>, many look to the blockchain and not Bitcoin as the catalyst to change the world.</p><p>Happy 2016, everyone! 2015 has been an exciting year. Here’s to the many more challenges we shall brave together on our epic journey to the moon!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=dc22bf25cb7d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Bitcoin Hackathon Ideas and How To Bootstrap Your Project]]></title>
            <link>https://medium.com/@benedictchan/bitcoin-hackathon-ideas-and-how-to-bootstrap-your-project-b8c2499ea5a7?source=rss-694650b84ea------2</link>
            <guid isPermaLink="false">https://medium.com/p/b8c2499ea5a7</guid>
            <dc:creator><![CDATA[Benedict Chan]]></dc:creator>
            <pubDate>Thu, 16 Apr 2015 04:07:17 GMT</pubDate>
            <atom:updated>2015-04-16T08:40:04.201Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*e6w-CgrpycjjKUsbdJXhuw.jpeg" /></figure><h2>Bitcoin Hackathon Ideas And Code To Bootstrap Your Project</h2><p>My first hackathon experience began at Angelhack during the summer of 2012 at the AOL building in Page Mill road. I was excited because I wanted to build something fast, learn a new technology, and meet great people. There’s nothing like the late hour collaborations, open discussions with competitors, frantic coding (some of which I am not proud to show) and the satisfaction that I’d made something that worked. Over the years, I’ve noticed that my enjoyment level and chances at winning have been correlated with a combination of team quality, ideas, and preparation.</p><p>I’ll be judging and mentoring at the upcoming <a href="http://bitcoinjobfair.com/sunnyvale-bitcoin-job-fair-2015/"><strong>Bithack Bitcoin Hackathon</strong></a><strong> </strong>at <a href="http://www.plugandplaytechcenter.com/">Plug and Play Silicon Valley</a>. In this post I’ll share some Bitcoin ideas I’ve been thinking about and provide boilerplate resources for you to get a head start on your Bitcoin project.</p><h3>Ideas</h3><h4>Bitcoin as a trigger to activate the Internet of Things</h4><p>I believe very much in the concept of the connected home (see my girlfriend’s post on <a href="https://medium.com/@christinang89/making-my-first-api-using-python-flask-8d7d83e45e36">building an API for our z-wave based smarthome</a>) and would love to see how Bitcoin can be used as a trigger to activate devices on the Internet of Things.</p><p>Currently at home, I’ve managed to integrate a Z-wave enabled lock such that paying with Bitcoin opens the front door, however I believe this concept can be extended further. Perhaps an Airbnb style app where paying users would pay Bitcoin to unlock the house, turn on the A/C, or use the washer? Going a little further, a vending machine could assign a Bitcoin address to each item, dispensing that item anytime payment is received. Implementation would not be challenging on the Bitcoin side — you could simply create a wallet and listen for <a href="https://test.bitgo.com/api/#webhook-notifications">transaction notifications</a> to control your devices. Here are <a href="http://www.coindesk.com/bitcoin-transform-internet-things-vast-data-marketplace/">some</a> <a href="http://www.computerweekly.com/news/2240238627/IBM-uses-Bitcoin-technology-to-build-internet-of-things-platform">other resources</a> worth exploring on this topic.</p><h4>Hash-locked Oracle Bitcoin Scripting</h4><p>In the recent release of Bitcoin v0.10, standard script rules were relaxed for P2SH addresses. It is now (more practically) possible to create transactions which can require (Hash of X revealed and signed by X) OR (Hash of Y revealed and signed by Y).</p><p>A public service could be provided that revealed different hashes at various time intervals (e.g. every hour) depending on the outcome of an external state, such as: “Hash A will be revealed if BTC is above $250 USD on June 30th, or else Hash B will be revealed”. This information could be published on the blockchain for all to see.</p><p>This would enable any number of parties to utilize this hash within blockchain scripts such that they could make bets amongst themselves, without the service getting involved with any form of money. The service will have minimal reason to publish the wrong hash since everyone would know (and never trust them again).</p><h4>Zero Click Automated MicroPayments</h4><p>Bitcoin has payment protocols that allow you to specify how much to pay, but not when to pay it. At a past hackathon, I worked on <a href="http://www.reddit.com/r/Bitcoin/comments/2pyhnd/demo_video_of_working_zero_click_bitcoin/">ZeroClick, a chrome browser extension and service</a> which utilized the unused <strong>HTTP 402 Payment Required</strong> status code as a trigger to automatically pay for videos and resources on the web (as opposed to a credit card payment or advertisements). I’ve also created a <a href="https://docs.google.com/document/d/1PR14e2oa-eRb9pRpQHMz428CPMYU0l_IUgkIxr1Y0N0/edit?usp=sharing">spec for the protocol</a>, and there is <a href="https://github.com/bencxr/zeroclick">various code</a> in <a href="https://github.com/rglfnt/zero-click">the wild</a> at different stages of implementation.</p><p>Bitcoin opens a new world where machines can now transact with each other automatically. While we have some clue of how we think it should work, this idea is still in search of a truly compelling use case, and I believe that unlocking and launching the product will depend on service integrations for which scenarios have yet to be explored.</p><h4>Pay to beacon (service in area)</h4><p>I’ve used Bitcoin to pay for services and food (<a href="http://bitcoinrestaurants.net/restaurant/ca/sunnyvale/809548/sushi-club-ocean-blue">I love sushi!</a>) on my phone, but this involved waiting for the waitress to give me a QR code to scan. This is a situation which we could solve better through the use of geofencing and the <a href="https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki">payment protocol</a>. In my mind, the flow could be made as easier:</p><ol><li>I inform my server when I’m ready to pay at a restaurant.</li><li>When I start my Bitcoin client app, my phone could use either geofencing (online coordinates database) or a local device (Bluetooth etc) placed at the venue to show me a list of potential payees.</li><li>The payment screen could allow me to select what to pay for (just in case there are multiple invoices to be settled). The items can be shown and the payment protocol should help identify the organization paid (by showing the cert owner on the top of the screen).</li><li>I should be able to pay and leave without using the phone keyboard.</li></ol><p>It’s worth noting that this can be achieved without the need for a native app (though that would be preferable).</p><h4>Subscription service</h4><p>Bitcoin enables push transactions (as opposed to pull transactions with credit cards), and this model has made it difficult for merchants to accept recurring payments. If I were subscribing to various services in Bitcoin, I’d like to receive a monthly list of subscriptions so that I could pay for them all in one place. This could be a page where I could check off the subscriptions that I’d like to continue (e.g. Amazon Prime, Snack-box-a-month, domain renewal, etc) and to automatically cancel the others. The challenge would be in creating a way for the merchants to initiate such a service.</p><h4>Backup Key Storage Service</h4><p>A common multi-sig model adopted by co-signing wallet services (like <a href="https://www.bitgo.com/">BitGo</a>, where I work) today involves the user creating 2 keys and the service creating 1 key (in order to preserve user custody of funds). However, most users do not want to hold multiple keys themselves:</p><ul><li>They don’t have more than 1 device capable of safely generating the keys.</li><li>They are not technically savvy enough to generate keys on multiple devices.</li><li>They prefer not to undergo the burden of holding so many keys.</li></ul><p>The solution should be another party that provides backup keys as a service (such as <a href="https://www.thirdkey.solutions/">Third Key Solutions</a>). The need for such a service is real, but most of this is done manually today. A simple service and protocol could:</p><ol><li>Signs users up with sufficient identifying information to be verified in the case where keys need to be used.</li><li>Generate a private/public keypair and store it securely, only revealing the <strong>public key</strong> for use in multi-sig transactions.</li><li>Provide a way to deliver the public key to the multi-sig wallet service and the user, and a means for these 2 parties to verify that key was not changed by a man-in-the-middle attack.</li></ol><h4>Better experiences when sending BTC to friends</h4><p>Sending and receiving money between friends could and should be made easier. While the community has been decent at creating platforms and services for Bitcoin, sending money (for example, small amounts to pay for a meal) still often involves getting hold of a Bitcoin address or scanning a QR code — we can do better.</p><p>We need only look at examples of how products like Venmo, WhatsApp and Bump have leveraged social networks and locational services to link people up with each other. <a href="https://venmo.com/about/product/">Venmo</a> uses the Facebook graph, <a href="http://www.whatsapp.com/faq/en/iphone/20910703">WhatsApp</a> uses your phone contacts to pre-populate people to talk with, and <a href="http://stackoverflow.com/questions/3383447/how-does-bump-technology-work">Bump</a> intelligently paired you up with people in close proximity. Using a combination of these techniques, we should be able to better solve peer to peer money transfer such that it doesn’t require the use of a camera or on-screen keyboard.</p><h4>Bitcoin Plays Pokemon</h4><p>Heard of <a href="http://en.wikipedia.org/wiki/Twitch_Plays_Pok%C3%A9mon">Twitch Plays Pokemon</a>? What if we made it such that small amounts of Bitcoin were table stakes for getting in on the game? It could minimize the number of spammers controlling Ash. This needs more thought, as the incentive structure for such a game would need to be tweaked. Further, the Bitcoin network can only take up to 7 transactions per second, so perhaps we’d need to look into either <a href="https://bitcoin.org/en/developer-guide#micropayment-channel">micropayment channels</a> or other units of use to charge for (e.g. one transaction of 0.001 coins for up to 100 moves). This project would also make for a cool demo — I’ve wanted to work with micropayment channels for some time and there aren’t many applications of it in the wild.</p><h4>Bitcoin Reward Campaigns</h4><p>Many retailers have <a href="http://bigdoor.com/blog/2013/12/11/top-10-retail-loyalty-programs/">loyalty programs</a> where users are given points or cashback rebates for shopping. This shouldn’t be limited to the big guys. What if such campaigns were simple to integrate and paid out small amounts of Bitcoin?</p><p>Further, social proofing and sharing is very desirable in our world today. Brands and events have taken to giving out rewards such as chances to win competitions, early access, etc just to get users to share their products and events (<a href="https://gleam.io/">there’s even a service to set that up</a>). Bitcoin rewards campaigns can be set up for desirable actions (share this post to get Bitcoin!) and not simply purchases. This would help get our magic internet money in the hands of more people!</p><h4>Joint payment plans / Group-funding</h4><p>There are many crowd-funding websites but they take large amounts of fees, and are not always suitable for personal use (amongst people who know each other). With Bitcoin, we can quickly create a simple and inexpensive way for multiple people to buy a gift together.</p><ol><li>“Gift starter” chooses a gift (e.g. a Vase on Overstock) and the amount gets converted into BTC to be funded. A wallet with <a href="https://test.bitgo.com/api/#create-address">different receive addresses</a> for each contributor can be created (on a multi-sig service like BitGo).</li><li>A page is set up (similar to a kickstarter page) on the service, asking for funding for the item (and displaying the wallet receive addresses), and giving a deadline. Meanwhile the item is “reserved” or placed on layaway on the merchant site. Individual users contributions can be tracked since there’s a separate address given to each one of them.</li><li>When the wallet has sufficient funds, the service processes the order. If the wallet does not reach the “tipping” point, then all funds are returned to the original owners.</li></ol><h4>Multi-Signature Physical Coins</h4><p>The easter season has just passed, and I’ve been toying with the idea of a Bitcoin multi-signature easter egg treasure hunt. Each “egg” or “coin” would be a single private key in a 2-of-3 (or more) multi-sig address, and players would need to find more than one of them (or trade) in order to redeem prizes. This concept could be applied to physical-style <a href="https://www.casascius.com/">casascius coins</a>, where we could create physical multi-signature casascius coins that require multiple parts come together in order to spend funds.</p><p>I hope that these ideas will serve as a starting point to inspire hackers to unleash their creativity. I look forward to checking out cool hacks this Saturday!</p><h3>Bootstrap your project with the Hackathon Starter boilerplate app — now comes with a Bitcoin Wallet!</h3><p>Other than forming a team and coming up with an idea, the next (and probably easiest) advantage you can get before any hackathon is to prepare your development environment. Many hackathon projects will end up requiring a backend service, user login system, basic template design and other such patterns.</p><p>I came across <a href="https://github.com/sahat/hackathon-starter">Hackathon Starter</a>, a node.js boilerplate app that ships with a large number of pre-integrated Oauth plugins and common API integrations (in a lightweight, easy-to-use manner). The codebase is simple to understand, and I was able to quickly “hack in” the full <a href="http://www.bitgo.com/api">BitGo Wallet API</a> to the list of pre-rolled integrations. A Bitcoin wallet now ships out of the box with zero configuration:</p><p><a href="https://github.com/bencxr/hackathon-starter">https://github.com/bencxr/hackathon-starter</a></p><p>All this can be yours in 10 minutes!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HYFVUk1ksUAKHt53U1LS6Q.png" /><figcaption>Hackathon Starter comes with many OAuth integrations pre-built for you</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8gnLjsCaE_-jUlAAAhse4A.png" /><figcaption>Lots of API examples for you to mash up</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sZG_pg2NCUl7Cp_qyUsd-A.png" /><figcaption>Bitcoin wallet functionality out of the box powered by BitGo!</figcaption></figure><h3>Good luck and have fun!</h3><p>I’m really looking forward to being at the <a href="http://bitcoinjobfair.com/sunnyvale-bitcoin-job-fair-2015/">hackathon</a> and meeting other great Bitcoin enthusiasts. See you there, and don’t forget to <a href="https://twitter.com/bencxr">say hi</a>!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b8c2499ea5a7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Building the World’s First Open Source Multi-Sig Bitcoin Exchange]]></title>
            <link>https://medium.com/@benedictchan/building-the-world-s-first-open-source-multi-sig-bitcoin-exchange-a6f1221eff46?source=rss-694650b84ea------2</link>
            <guid isPermaLink="false">https://medium.com/p/a6f1221eff46</guid>
            <dc:creator><![CDATA[Benedict Chan]]></dc:creator>
            <pubDate>Thu, 05 Mar 2015 21:09:10 GMT</pubDate>
            <atom:updated>2015-03-05T21:31:17.802Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/770/1*Y3Ia6QfMwHCplZjGzAA4VQ.png" /></figure><p><em>How you can have your own crypto-currency exchange with multi-sig security</em></p><p>Bitcoin’s history is rife with drama about the closure of one exchange after another. Problems have ranged from outsider hacking attacks to insiders holding servers hostage. I&#39;ve long been curious to understand these stories better — How do exchanges work behind the scenes? How much would it cost to set one up? And if that were cheap, how would one run an exchange and stay in business (without losing customer funds)?</p><p><a href="https://bitcointalk.org/index.php?topic=155603.0">Like many others</a>, I had long toyed with the idea of building my own exchange. A few months ago, I registered the domain <a href="http://21million.club/">21million.club</a>, because there would only ever be 21 million bitcoins, and buying one would make you part of the club. I never got around to building the exchange due to time constraints. Also, for practical and security reasons, I didn’t want to re-invent the wheel.</p><p>Just recently, I was pleasantly surprised when friends over at <a href="https://bitspark.io/">BitSpark</a> (a multi-currency exchange in Hong Kong) told me about Peatio, an <strong>open-source crypto-currency exchange that was free for anyone to download</strong> and run. It boasts several enterprise exchange features, including a high-performance matching engine, scalable distributed worker threads, and SMS 2-factor authentication out of the box. It also has several features relevant to crypto-currencies, such as integrated withdrawals and deposits to Bitcoind and a built-in proof-of-solvency audit. However, one security feature missing was support for a multi-sig cosigner. By default, Peatio connects to a BitcoinD instance with an unlocked wallet — this meant that any hacker with access to that machine would be able to get away with all the coins.</p><p>Peatio is great as an exchange, but I feared for those who ran it in production — would security on their machines be strong enough to prevent hackers from <a href="http://www.telegraph.co.uk/finance/currency/10686698/Bitcoin-exchange-MtGox-faced-150000-hack-attacks-every-second.html">repeating history</a> in the long run? Since I work at <a href="https://www.bitgo.com/">BitGo</a>, I decided to embark on a side project to enable multi-sig support in Peatio. I wanted to do this as a challenge to see how difficult it was to get enterprise-grade security on open-source exchange software. If it were possible, I’d be a step closer to running my own exchange☺.</p><p>The goal was to hook Peatio up such that withdrawals and deposits would continue as usual during normal operations. The exchange software would sign one half of the transaction, and BitGo the other half, but with the added safety of co-signing policies. For example, if the number of withdrawals exceeded a daily limit, or the withdrawal requests came from an unknown IP, the co-signer could require additional steps to sign the transaction.</p><p>The following steps detail my journey and provide instructions on how <strong>anyone can now have an opensource exchange with multi-sig support</strong>.</p><h4>Step 1: Set up Peatio</h4><p>Using a fresh Linode Ubuntu instance with 4GB ram and 96gb SSD, I began by installing Ruby, Mysql, Redis, RabbitMQ, and BitcoinD. Then, I followed the <a href="https://github.com/peatio/peatio/blob/master/doc/setup-ubuntu.md">instructions</a> here to install Peatio. I hooked up the Bitcoind RPC in the currencies.yml file:</p><pre>- id: 2<br> coin: true<br> quick_withdraw_max: 1000<br> key: satoshi<br> code: btc<br> rpc: <a href="http://bencxr:satoshipassgo@127.0.0.1:19332/">http://rpcuser:rpcpassword@127.0.0.1:</a>18332</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tH8KhvVExD5fuzppqSmL4w.png" /><figcaption>Deposits page in my new exchange, the 21 million club. The address starts with m, which means it is controlled by a single key.</figcaption></figure><p>This worked! I was able to sign up for a customer account on the exchange and get a deposit address from the local bitcoind (note the address begins with m, a single-key address on testnet).</p><h4>Step 2: Install BitGo Multi-Sig</h4><p>Recently, during the <a href="https://medium.com/@bendavenport/no-sleep-till-multi-sig-7db367998bc7">integration with Bitstamp</a>, BitGo built a drop-in replacement for BitcoinD. Called BitGoD, it responds to the same RPC commands as BitcoinD, including <strong>getbalance, listtransactions, listunspent and sendtoaddress</strong>. Since Peatio also uses BitcoinD in the backend, I saw this as the simplest integration path.</p><p>I installed BitGoD by cloning the open source project from git:</p><pre>git clone <a href="https://github.com/BitGo/bitgod.git">https://github.com/BitGo/bitgod.git</a><br>cd bitgod<br>npm install</pre><p>I inspected the Peatio code and identified that it was calling bitcoind expecting “payment” as the account name. BitGoD needed to be able to handle this:</p><pre>bin/bitgod -masqueradeaccount=payment</pre><p>Finally, I made a change to Peatio’s currency.yml file, pointing the RPC port to 19332 (which BitGoD was listening on)</p><pre><em>- id: 2<br> coin: true<br> quick_withdraw_max: 1000<br> key: satoshi<br> code: btc<br></em><strong><em> </em></strong><em>rpc: </em><a href="http://bencxr:satoshipassgo@127.0.0.1:19332/"><em>http://rpcuser:rpcpassword@127.0.0.1:</em></a><strong><em>19332</em></strong></pre><p>I had to restart the Peatio daemons after this.</p><h4>Step 3: Connecting the Multi-Sig Wallet</h4><p>I excitedly went to the deposits page in Peatio, hoping to see a multi-sig deposit address created. This failed as BitGoD was running, but not yet connected to a wallet on BitGo (doh!).</p><p>To connect BitGoD to BitGo, an access token and a BitGo multisig wallet is required. To get the access token, <a href="https://test.bitgo.com/">create a Bitgo test account</a> for the integration and head down to the Settings — &gt;Developers tab. Then you can connect to the account using</p><pre>bitcoin-cli -rpcport=19332 settoken <strong>[YourToken]</strong></pre><p>Next, create a BitGo wallet (from within the BitGo interface) and tell BitGoD the wallet address:</p><pre>bitcoin-cli -rpcport=19332 setwallet <strong>[YourWalletAddress]</strong></pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9lCG9Moz8DtG_avfEaIoLA.png" /><figcaption>Deposits page showing multi-sig addresses generated (starting with 2)</figcaption></figure><p>I had to create a new customer account on the exchange to generate a new address. From then on, the exchange gave out multi-sig addresses for deposits (as you can see in the example, the address starts with 2)!</p><h4>Step 4: Bitcoin Deposit Integration</h4><p>Although the deposit addresses were generating and showing up fine, incoming Bitcoin deposits to the addresses were not reflecting on the customer’s balance. The reason for that was that Peatio was not being notified of the incoming transactions.</p><p>To inform Peatio about the new coin deposits when they occurred, I added app/controllers/webhooks_controller.js to accept an incoming webhook:</p><pre>class WebhooksController &lt; ApplicationController</pre><pre>before_action :auth_anybody!<br> skip_before_filter :verify_authenticity_token</pre><pre><strong>def tx</strong><br> if params[:type] == &quot;transaction&quot; &amp;&amp; params[:hash].present?<br>   AMQPQueue.enqueue(:deposit_coin, txid: params[:hash], channel_key: &quot;satoshi&quot;)<br>   render :json =&gt; { :status =&gt; &quot;queued&quot; }<br> end<br>end</pre><p>(Note how Peatio only accepts the Transaction ID— the deposit_coins daemon uses this to kick off checks on the deposit address and then verifies the transaction amount)</p><p>Here is the new route in config/routes.rb:</p><pre>post &#39;/webhooks/tx&#39; =&gt; &#39;webhooks#tx&#39;</pre><p>After restarting Peatio, I then set up BitGo to send transaction notifications to the new route using the wallet <a href="https://www.bitgo.com/api/#add-webhooks">Webhook API</a>:</p><pre>WALLETID=2NEe9QhKPB2gnQLB3hffMuDcoFKZFjHYJYx<br>ACCESS_TOKEN=9e1194fd035e2c8d5268e648c796425429fc2bd57bb5da7fbebbf09e1711a6b6</pre><pre>curl -X POST \<br>-H “Content-Type: application/json” \<br>-H “Authorization: Bearer $ACCESS_TOKEN” \<br>-d “{ \”url\”: \”<a href="http://www.21million.club/webhooks/tx">http://www.21million.club/webhooks/tx</a>\&quot;, \”type\”: \”transaction\” }” \<br><a href="https://test.bitgo.com/api/v1/wallet/$WALLETID/webhooks">https://test.bitgo.com/api/v1/wallet/$WALLETID/webhooks</a></pre><p>I sent some coins in, and they showed up on my customer account in the exchange!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lpnP7J9DQYGcDMJCL50yjA.png" /><figcaption>The transaction deposit was successfully handled by Peatio’s deposit daemon and credited to the customer</figcaption></figure><p>I waited a while for the deposit to be confirmed. The exchange software polled the transaction until it saw a confirmation before updating the customer account balance. It even sent me an email! ☺</p><h4>Step 5: Withdrawals and Policy Limits</h4><p>Now that customer multi-sig deposits were being handled, it was time to integrate withdrawals from the wallet. In order to do this, I needed to give BitGoD the wallet passphrase (used when creating the BitGo multi-sig wallet):</p><pre>bitcoin-cli -rpcport=19332 walletpassphrase <strong>[passphrase]</strong> 1500000</pre><p>Some background: when sending a transaction, BitGoD decrypts the user encrypted key with the wallet passphrase, creates/signs the transaction and sends it to BitGo for co-signing and transmission to the Bitcoin network. Since key decryption and signing is done locally, BitGo never has access to the user’s private key.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HWDTsytTAO0rYfheCbmhUg.png" /><figcaption>Customer’s withdrawal page in the exchange</figcaption></figure><p>Withdrawals worked seamlessly in the exchange through the multi-sig wallet. I also set up a 2BTC policy limit on the wallet. In the above example, the 0.2BTC withdrawal was processed immediately, with the larger request pending approval by an additional user (such as the CTO or CEO) in the BitGo interface.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*b_B8ciP8U3ZNHCQJr_E-pg.png" /><figcaption>Approvals page in the BitGo interface</figcaption></figure><p>Such transactions require a human administrator to log in and input their OTP and wallet passphrase before being co-signed . This prevents theft by stealing private keys. I pondered developing a callback policy (through another route) to have BitGo perform an additional check with Peatio on whether the transaction matches the user balance... but decided to leave that optimization to a later time.</p><h4>Final Thoughts</h4><p>I had fun playing with Peatio as a free open-source wallet solution. As I was new to Ruby/Rails, it did take me some time to figure out the inner workings of the code and write the new webhook routes, but I felt it rewarding to be able to play with an exchange of my own.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7Sy4Aua8ShwZsVjpROC8mg.png" /><figcaption>I had a little fun with the trading engine too</figcaption></figure><p>We live in interesting times. Thanks to open-source, we now have free access to tried and tested exchange software to run businesses on. With Bitcoin and P2SH (multi-sig), it’s now possible to have multiple parties approve a transaction before funds get sent, while never putting control of funds in the hands of the security provider. There are few reasons left to code your own trading system or implement your own wallet security.</p><p>Build your exchange on a stable foundation and your customers will thank you for it in the long run. Let’s all stay a part of the 21 million club!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a6f1221eff46" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[All Aboard The BitGo MultiSig Express]]></title>
            <link>https://medium.com/@benedictchan/all-aboard-the-bitgo-multisig-express-9af502044ee4?source=rss-694650b84ea------2</link>
            <guid isPermaLink="false">https://medium.com/p/9af502044ee4</guid>
            <dc:creator><![CDATA[Benedict Chan]]></dc:creator>
            <pubDate>Thu, 12 Feb 2015 00:31:55 GMT</pubDate>
            <atom:updated>2015-02-12T18:19:40.178Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aE4ZoXzmgkJsVwjIEWcCRQ.jpeg" /></figure><p><em>A Local REST service to sign transactions in a secured environment</em></p><p>I recently joined <a href="https://www.bitgo.com/">BitGo</a>, leading the developer platform team tasked with helping Bitcoin exchanges and partners integrate multi-signature wallets. Over the past few months, I’ve come to notice that a major hurdle towards multi-sig integration has been the cost of engineering resources. A personal friend of mine who owns a small exchange told me that they’d need to delay multi-sig to work on growth features, such as Facebook connect and tipping. I see his point: end-users care about features, but often don’t care about security until it fails.</p><p>At BitGo, we operate 2-of-3 multi-signature wallets where we control a single key to co-sign transactions. The security model requires that <strong>transactions</strong> <strong>must be signed by the user, who should keep their key secret.</strong> Developers have asked for REST APIs accepting their private key, to which we had to refuse — that would make BitGo privy to more than one key, and thus in control of customer funds.</p><p>BitGo has a <a href="https://github.com/bitgo/bitgojs">Javascript SDK</a> to help create and sign transactions, and we are actively building support for other languages, but for the moment, companies not running NodeJS had to write code to provision private keys, craft transactions and sign them. I wanted to make <strong>sending Bitcoin as simple as a REST call</strong>. No matter the language of choice, a developer should not have to implement cryptography and low-level Bitcoin logic.</p><p>The solution: <a href="https://test.bitgo.com/api/?shell#bitgo-express-rest-api">BitGo Express</a>, a local service that runs in your datacenter to handle client-side Bitcoin operations involving customer keys. It exposes endpoints that will prepare, sign and send partially constructed transactions to BitGo. This is done in a unified interface on top of other existing (and proxied) API endpoints.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/866/0*DnOGzs-k0UqupNYE." /><figcaption>BitGo Express Example Flow</figcaption></figure><p>Here are some of the new endpoints available (click for documentation):</p><p><a href="https://test.bitgo.com/api/?shell#send-coins-to-address">Send Coins</a><br><a href="https://test.bitgo.com/api/?shell#send-coins-to-multiple-addresses">Send Coins to Multiple Addresses</a></p><p><a href="https://test.bitgo.com/api/?shell#create-keychain">Create a keychain locally<br></a><a href="https://test.bitgo.com/api/?shell#create-wallet-with-keychains">Provision a wallet (including creating keys</a>)</p><p>We also provide some helpful utilities:</p><p><a href="https://test.bitgo.com/api/?shell#decrypt">Decrypt an encrypted string</a><br><a href="https://test.bitgo.com/api/?shell#encrypt">Encrypt a string</a><br><a href="https://test.bitgo.com/api/?shell#verifyaddress">Verify a Bitcoin Address</a></p><p><a href="https://test.bitgo.com/api/?shell#bitgo-express-rest-api">BitGo Express</a> is available today. Let me know how/with what languages you’re using it!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9af502044ee4" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>