BitCoin Project. 1 Description. 1.1 Version exchange. 1.2 Ping-Pong. CMSC 417 Computer Networks Fall 2013

Size: px
Start display at page:

Download "BitCoin Project. 1 Description. 1.1 Version exchange. 1.2 Ping-Pong. CMSC 417 Computer Networks Fall 2013"

Transcription

1 CMSC 417 Computer Networks Fall 2013 BitCoin Project Assigned: Nov 20th Due: around Dec 16th 1 Description In this project you will develop a rudimentary BitCoin client. As your initial codebase you will be using CBitcoin, an open-source C library for working with blockchain data written by Matthew L. Mitchell. For the purpose of this project we have removed the networking code from the version of the CBitCoin provided. You may work in a group of two. Your code must be written in C, and use either select or poll to multiplex network connections. 1.1 Version exchange Connect to a BitCoin client. Your goal is to send a version message within the first 60 seconds of the connection. Failure to send the message will cause a disconnect from the other end. Upon successful of transmission of the version message the other end will reply back with its own version message along with a version acknowledgment message: verack. Within the sample code you will find examples that implement a request-reply version exchange. The filename is pingpong.c and is located under the examples folder. Before you do anything else for this project you must make sure you understand the code template we provided. Note: To create a version message you should use the CBNewVersion. Something that we don t cover in the example is that for every CBNew* function you have to call the appropriate CBRelease* function. If you don t call the release functions your implementation will leak memory. The header of every message that you have to construct is always 24 bytes. The library does not provide an predefined way to construct the headers; you have to construct them manually. The experience you have from the distance vector assignment will help you construct the headers. You need to construct a checksum for every message you send; the examples demonstrate this for the version message. Make sure to take advantage of all the provided functionality from the library. Functions like CBNewByteArrayFromString, CBInt32ToArray will be useful. Therefore, study the provided code very carefully. 1.2 Ping-Pong A standard BitCoin (e.g, satoshi) client send you ping messages. Upon the reception of a ping message your client should respond with a pong message. You client should be sending pings to the satoshi client as well. You should ping each peer every 60 seconds. 1

2 1.3 Interactive client interface You should have a way to interactively send each command you implement. Consider using the GNU readline library to implement your command line. Note: You have to use select or poll functions for all the I/O operations. Furthermore, you need to make sure that you properly handle concurrent actions. 1.4 Multiple Connections and connection bookkeeping You should implement the correct data structures (feel free to use the ones provided) to keep track of the peer addresses your client learns. Your goal should be to connect to as many of them as you can. When a node sends you an Addr message containing peer addresses it knows about, add only the new ones to your address data structure. A good strategy to quickly learn as many nodes as possible is to send a GetAddr messages to the initial set of nodes you will retrieve from the initial node you connect. Do not add private addresses to the address data structure. We have created a fork of the BitCoin network called umdnet, and we are running a public node you can connect to at kale.cs.umd.edu: You should also try connecting to two other forks: the Bitcoin mainnet, and the testnet. The different forks are distinguished in three ways: a) different ports (28333 for umdnet, for testnet, and 8333 for mainnet); b) a 4-byte netmagic code that is sent at the very beginning of each message: 0xf9beb4d0 for umdnet, 0x B for testnet, 0xf9beb4d9 for mainnet; and c) a unique genesis block (look in CBBlock.c to see how the mainnet and umdnet blocks are initialized). Advertise your client s address by sending Addr messages to the nodes you learn about. When nodes connect to you, accept the incoming connections and always wait for a version message that will initiate the version-verack exchange. After the initial version exchange you can treat the node the same as the peers that you are already connected to. 1.5 Download and serve blocks In order to validate transactions, you will need to maintain a representation of the current state of the ledger also known as the set of Unspent TX Outputs as well as forks for validation. You can use the blockchain database and validation library provided with cbitcoin. This library keeps track of the current main chain (the valid chain with the most cumulative work) as well as orphan blocks and side branches, and will automatically reorganize if the main chain needs to switch. The subset of the BitCoin messages you need to use: Version, Verack: initial handshake Ping, Pong: checks if a node is still connected GetAddr, Addr: announce or ask for node ip addresses GetBlocks: ask for block hashes Inv, GetData: announce or ask for blocks and transactions Block, Tx: block and transaction data In order to download blocks, you will need to construct a GetBlocks message. The GetBlocks message includes a block locator (i.e., CBChainDescriptor), which is built by enumerating backwards from the most recent block in the main branch. Follow the procedure described in the bitcoin wiki: 2

3 If you receive an Inv message containing blocks, you should check each one to see if you already have it. Collect all the ones you do not have and ask for them with a GetData message. If you receive a Block message, pass it to the ProcessBlock function in the library so that it will be checked and stored. The GetData message contains the same data as an Inv message: a serialized CBInventoryBroadcast. The Block and Transaction messages just consist of a serialized CBBlock and CBTransaction respectively. If you receive a GetBlocks message, then you should return an Inv message containing the list of blocks starting right after the last known hash in the block locator object, up to hash stop or 500 blocks, whichever comes first. Note that it is allowed to send in fewer known hashes down to a minimum of just one hash. If the peer detects that you are off the main chain, it will send in block hashes which are earlier than your last known block. So if you just send in your last known hash and it is off the main chain, the peer starts over at block #1. If a node asks for block data with GetData message, send a Block message for every one of them you have. 1.6 Transactions: Creation and broadcast Use the tool provided under the examples folder to create a new address for yourself. Scan each block in the blockchain database to find coins you can spend with that address. Construct a transaction that spends your coins and broadcasts it to the network. We will send you some umdnet coins you can spend. The broadcast works in two stages. First, you send everyone an Inv message containing the hash of the transaction. Add the transaction to a collection of transactions you know about. 1.7 Relay: Transactions and blocks When your client receives a new block or information about a new transaction, send an Inv message to every node you re connected to. Respond to GetData requests for both transactions and blocks. You must relay only valid blocks and transactions. You will have to write additional logic to validate transactions that are not yet in blocks. 2 Mine for new blocks Construct a new block out of any transactions that you know about. Create a coinbase transaction that pays the reward (block bonus + any fees from the transactions) to an address you own. Try different values for the nnonce field until the hash of the block falls below the difficulty threshold. Broadcast an Inv message as soon as you find a winning one. 3 Build a Distributed Hash Table (DHT) Rather than each node storing the whole blockchain, we would like to split the task across multiple nodes. Add your own communication layer between two or more of your own nodes such that when a GetData message is received, if you dont have it on disk but you know who might, then request it from that node and relay the response. More details about DHTs in forthcoming class. 1. Chord: 2. Pastry: 3. Kadmelia: 3

4 4 Remarks If you work on linuxlab in order to compile the provided code you should follow these steps: 1. Download the latest open-ssl from the following link: 2. To download use the command : wget 3. Create a folder in your account lex_openssl. (You can use any name you want. Make sure you use the same name in the following steps). 4. Execute the following command to decompress the openssl source code you downloaded in step 1. The command is: tar xvzf openssl-1.01e.tar.gz 5. Step inside the openssl directory and run the following sequence of commands:./configure --prefix=~/cs4170xx/lex_openssl; make; make install. Make sure to change the cs4170xx to the number of your linuxlab account. At the end of this step the newest openssl version will be installed in your linuxlab account at the folder lex_openssl. 6. Enter the cbitcoin directory and change the file Makefile.in to include the local directory that you installed openssl in the previous step. In this step you should replace the directives /usr/local/ssl/include and /usr/local/ssl/lib with the ones in your lex_openssl folder. 7. Run the following sequence:./configure; make Access your code by from the following repository: Understand the BitCoin protocol. Read the specification thoroughly: Read Satoshi s original paper for more information: Understand the provided code. This is part of the work you have to do for this project. Treat the example code as a template. The examples use libev. Your code must use select/poll. However, in order to run the examples follow these steps: 1. Download libev: 2. To download use the command : wget 3. Create a folder in your account lex_libev. (You can use any name you want. Make sure you use the same name in the following steps). 4. Execute the following command to decompress the libev source code you downloaded in step 1. The command is: tar xvzf libev-4.15.tar.gz 5. Step inside the openssl directory and run the following sequence of commands:./configure --prefix=~/cs4170xx/lex_libev; make; make install. Make sure to change the cs4170xx to the number of your linuxlab account. At the 4

5 end of this step the newest libev version will be installed in your linuxlab account at the folder lex_libev. 6. Enter the cbitcoin directory and change the file Makefile.in to include the local directory that you installed openssl in the previous step. In this step you should add the directives -I/afs/csic.umd.edu/class/cmsc417/0101/cs417XXX/lex_libev/include and -I/afs/csic.umd.edu/class/cmsc417/0101/cs417XXX/lex_libev/lib in the CFLAGS and LFLAGS respectively. 7. Run the following sequence:./configure; make examples-build 5

Bitcoin (Part I) Ken Calvert Keeping Current Seminar 22 January Keeping Current 1

Bitcoin (Part I) Ken Calvert Keeping Current Seminar 22 January Keeping Current 1 Bitcoin (Part I) Ken Calvert Keeping Current Seminar 22 January 2014 2014.01.22 Keeping Current 1 Questions What problem is Bitcoin solving? Where did it come from? How does the system work? What makes

More information

Scalable overlay Networks

Scalable overlay Networks overlay Networks Dr. Samu Varjonen 1 Lectures MO 15.01. C122 Introduction. Exercises. Motivation. TH 18.01. DK117 Unstructured networks I MO 22.01. C122 Unstructured networks II TH 25.01. DK117 Bittorrent

More information

ENEE 457: E-Cash and Bitcoin

ENEE 457: E-Cash and Bitcoin ENEE 457: E-Cash and Bitcoin Charalampos (Babis) Papamanthou cpap@umd.edu Money today Any problems? Cash is cumbersome and can be forged Credit card transactions require centralized online bank are not

More information

Consensus & Blockchain

Consensus & Blockchain Consensus & Blockchain S P Suresh Chennai Mathematical Institute Formal Methods Update Meeting IIT Mandi July 17, 2017 The Bitcoin revolution is upon us What is Bitcoin? Bitcoin: an exciting new currency

More information

ICS 421 & ICS 690. Bitcoin & Blockchain. Assoc. Prof. Lipyeow Lim Information & Computer Sciences Department University of Hawai`i at Mānoa

ICS 421 & ICS 690. Bitcoin & Blockchain. Assoc. Prof. Lipyeow Lim Information & Computer Sciences Department University of Hawai`i at Mānoa ICS 421 & ICS 690 Bitcoin & Blockchain Assoc. Prof. Lipyeow Lim Information & Computer Sciences Department University of Hawai`i at Mānoa Accepted by: Overstock.com Expedia.com Newegg.com Tigerdirect.com

More information

Computer Security. 14. Blockchain & Bitcoin. Paul Krzyzanowski. Rutgers University. Spring 2019

Computer Security. 14. Blockchain & Bitcoin. Paul Krzyzanowski. Rutgers University. Spring 2019 Computer Security 14. Blockchain & Bitcoin Paul Krzyzanowski Rutgers University Spring 2019 April 15, 2019 CS 419 2019 Paul Krzyzanowski 1 Bitcoin & Blockchain Bitcoin cryptocurrency system Introduced

More information

Mechanics of Bitcoin

Mechanics of Bitcoin Mechanics of Bitcoin Minsoo Ryu Hanyang University Outline Bitcoin Transactions Bitcoin Scripts Bitcoin Blocks Bitcoin Network Limitations and Improvements For more information, visit https://bitcoin.org/en/developer-reference#

More information

Bitcoin (and why it uses SO much energy)

Bitcoin (and why it uses SO much energy) Bitcoin (and why it uses SO much energy) David Malone Hamilton Institute / Dept Maths&Stats Maynooth University. 2018-11-08 Bitcoin Background Bitcoin is a cryptocurrency that started around 2008 2009.

More information

BLOCKCHAIN Blockchains and Transactions Part II A Deeper Dive

BLOCKCHAIN Blockchains and Transactions Part II A Deeper Dive BLOCKCHAIN Blockchains and Transactions Part II A Deeper Dive www.blockchaintrainingalliance.com Blockchain Page 3 Blockchain is NOT Bitcoin Page 4 Transactions Page 5 Multi-Signature Addresses An Address

More information

bitcoin allnet exam review: transport layer TCP basics congestion control project 2 Computer Networks ICS 651

bitcoin allnet exam review: transport layer TCP basics congestion control project 2 Computer Networks ICS 651 bitcoin allnet exam review: transport layer TCP basics congestion control project 2 Computer Networks ICS 651 Bitcoin distributed, reliable ("hard to falsify") time-stamping network each time-stamp record

More information

Chapter 13. Digital Cash. Information Security/System Security p. 570/626

Chapter 13. Digital Cash. Information Security/System Security p. 570/626 Chapter 13 Digital Cash Information Security/System Security p. 570/626 Introduction While cash is used in illegal activities such as bribing money laundering tax evasion it also protects privacy: not

More information

Smalltalk 3/30/15. The Mathematics of Bitcoin Brian Heinold

Smalltalk 3/30/15. The Mathematics of Bitcoin Brian Heinold Smalltalk 3/30/15 The Mathematics of Bitcoin Brian Heinold What is Bitcoin? Created by Satoshi Nakamoto in 2008 What is Bitcoin? Created by Satoshi Nakamoto in 2008 Digital currency (though not the first)

More information

How Bitcoin achieves Decentralization. How Bitcoin achieves Decentralization

How Bitcoin achieves Decentralization. How Bitcoin achieves Decentralization Centralization vs. Decentralization Distributed Consensus Consensus without Identity, using a Block Chain Incentives and Proof of Work Putting it all together Centralization vs. Decentralization Distributed

More information

Security Analysis of the Lightning Network

Security Analysis of the Lightning Network Security Analysis of the Lightning Network Laolu Osuntokun @roasbeef Lightning Labs BPASE 2017 State of the Hash-Lock In-progress Lightning Network specifications (lighting-rfc) Basis of Lightning Technology

More information

University of Duisburg-Essen Bismarckstr Duisburg Germany HOW BITCOIN WORKS. Matthäus Wander. June 29, 2011

University of Duisburg-Essen Bismarckstr Duisburg Germany HOW BITCOIN WORKS. Matthäus Wander. June 29, 2011 University of Duisburg-Essen Bismarckstr. 90 47057 Duisburg Germany HOW BITCOIN WORKS June 29, 2011 Overview Electronic currency system Decentralized No trusted third party involved Unstructured peer-to-peer

More information

Jan Møller Co-founder, CTO Chainalysis

Jan Møller Co-founder, CTO Chainalysis Jan Møller Co-founder, CTO Chainalysis How Does Bitcoin Actually Work? This talk is not about the poli:cal or economical impact of Bitcoin. This talk is not about how to buy, sell, spend, or secure your

More information

Blockchain. CS 240: Computing Systems and Concurrency Lecture 20. Marco Canini

Blockchain. CS 240: Computing Systems and Concurrency Lecture 20. Marco Canini Blockchain CS 240: Computing Systems and Concurrency Lecture 20 Marco Canini Credits: Michael Freedman and Kyle Jamieson developed much of the original material. Bitcoin: 10,000 foot view New bitcoins

More information

Bitcoin Transaction Fee Estimation Using Mempool State and Linear Perceptron Machine Learning Algorithm

Bitcoin Transaction Fee Estimation Using Mempool State and Linear Perceptron Machine Learning Algorithm San Jose State University SJSU ScholarWorks Master's Projects Master's Theses and Graduate Research Spring 2018 Bitcoin Transaction Fee Estimation Using Mempool State and Linear Perceptron Machine Learning

More information

Ensimag - 4MMSR Network Security Student Seminar. Bitcoin: A peer-to-peer Electronic Cash System Satoshi Nakamoto

Ensimag - 4MMSR Network Security Student Seminar. Bitcoin: A peer-to-peer Electronic Cash System Satoshi Nakamoto Ensimag - 4MMSR Network Security Student Seminar Bitcoin: A peer-to-peer Electronic Cash System Satoshi Nakamoto wafa.mbarek@ensimag.fr halima.myesser@ensimag.fr 1 Table of contents: I- Introduction: Classic

More information

Biomedical Security. Cipher Block Chaining and Applications

Biomedical Security. Cipher Block Chaining and Applications 1 Biomedical Security Erwin M. Bakker 2 Cipher Block Chaining and Applications Slides and figures are adapted from: W. Stallings, Cryptography and Network Security 4 th Edition and 7 th Edition 1 3 Block

More information

What is Proof of Work?

What is Proof of Work? What is Proof of Work? Educational Series September 18, 2018 Overview There are many protocols that regulate how nodes on a blockchain achieve consensus, and currently the most popular is proof-of-work.

More information

ECC: Peer-to-Peer Electronic Cash with Trustless Network Services

ECC: Peer-to-Peer Electronic Cash with Trustless Network Services ECC: Peer-to-Peer Electronic Cash with Trustless Network Services Greg Griffith October 2017 (griffith@cryptounited.io) https://www.ecc.network ECC: Peer-to-Peer Electronic Cash with Trustless Network

More information

SpaceMint Overcoming Bitcoin s waste of energy

SpaceMint Overcoming Bitcoin s waste of energy Bitcoin Overcoming Bitcoin s waste of energy Georg Fuchsbauer joint work with S Park, A Kwon, K Pietrzak, J Alwen and P Gaži Digital currency Decentralized (no bank issuing coins) Pseudonymous Controled

More information

TOPPERCASH TOPPERCASH WHITEPAPER REFORM THE BEST OF BLOCKCHAIN

TOPPERCASH TOPPERCASH WHITEPAPER REFORM THE BEST OF BLOCKCHAIN TOPPERCASH TOPPERCASH WHITEPAPER REFORM THE BEST OF BLOCKCHAIN ABSTRACT A PEER-TO-PEER CRYPTO-CURRENCY DESIGN DERIVED FROM SATOSHI NAKAMOTO S BITCOIN. PROOF- OF-STAKE REPLACES PROOF-OF- WORK TO PROVIDE

More information

EECS 498 Introduction to Distributed Systems

EECS 498 Introduction to Distributed Systems EECS 498 Introduction to Distributed Systems Fall 2017 Harsha V. Madhyastha Today Bitcoin: A peer-to-peer digital currency Spark: In-memory big data processing December 4, 2017 EECS 498 Lecture 21 2 December

More information

Programming Assignment 0

Programming Assignment 0 CMSC 17 Computer Networks Fall 017 Programming Assignment 0 Assigned: August 9 Due: September 7, 11:59:59 PM. 1 Description In this assignment, you will write both a TCP client and server. The client has

More information

Problem: Equivocation!

Problem: Equivocation! Bitcoin: 10,000 foot view Bitcoin and the Blockchain New bitcoins are created every ~10 min, owned by miner (more on this later) Thereafter, just keep record of transfers e.g., Alice pays Bob 1 BTC COS

More information

Hijacking Bitcoin: Routing Attacks on Cryptocurrencies

Hijacking Bitcoin: Routing Attacks on Cryptocurrencies Maria Apostolaki 1, Aviv Zohar 2, Laurent Vanbever 1 Presented by Pascal Blöchlinger 1 ETH Zürich, 2 The Hebrew University Motivation Money Security Rising interest Lacking knowledge of participants Overview

More information

Biomedical Security. Some Security News 10/5/2018. Erwin M. Bakker

Biomedical Security. Some Security News 10/5/2018. Erwin M. Bakker Biomedical Security Erwin M. Bakker Some Security News October 03, 2018 - Hackers attacking healthcare through remote access systems and disrupting operations is the number one patient safety risk, according

More information

How to clone ABCCoin in to another SHA256 coin. By shakezula.

How to clone ABCCoin in to another SHA256 coin. By shakezula. How to clone ABCCoin in to another SHA256 coin. By shakezula. Step 1: Search and replace the entire source tree for the terms ABCCoin and abccoin and replace them with your coin s name. Be sure to use

More information

Blockchain-enabled peer-to-peer marketplaces

Blockchain-enabled peer-to-peer marketplaces Blockchain-enabled peer-to-peer marketplaces Creating the infrastructure and UX to enable mainstream commercial transactions on Ethereum Matthew Liu Cofounder Company Overview 2 Origin will enable decentralized

More information

Introduction to Bitcoin I

Introduction to Bitcoin I Introduction to Bitcoin I P Peterlongo 1 A Tomasi 1 1 University of Trento Department of Mathematics June 10, 2013 Outline 1 Fiat and online payments Functions of Online payments and cost of clearing 2

More information

WOLFCOIN MASTERNODE MANUAL

WOLFCOIN MASTERNODE MANUAL WOLFCOIN MASTERNODE MANUAL Contents Introduction... 3 About Wolfcoin Blockchain... 3 Download the Wolfcoin Wallet... 4 Installation of your Wallet... 5 Make a receiving address... 12 Closing the Wolfcoin

More information

Fruitchains: A Fair Blockchain?

Fruitchains: A Fair Blockchain? Fruitchains: A Fair Blockchain? Kyrylo Voronchenko Supervised by Michal Zajac June 4, 2018 Abstract This report is an overview of the paper [PS16] in which authors introduced a new protocol called FruitChain

More information

Burstcoin Technical information about mining and block forging

Burstcoin Technical information about mining and block forging Burstcoin Technical information about mining and block forging Table of contents 1. Introduction 2. Algorithms and Acronyms 3. Mining process 4. Block forging process Introduction With most cryptocurrencies

More information

Feathercoin s 51% Attack Double Spending case study

Feathercoin s 51% Attack Double Spending case study 1.1 Bitcoin Structure - Double Spending Feathercoin s 51% Attack Double Spending case study BTC Donations LTC Donations Corrections, Additions, Technical Revisions or comments are welcome: max_miner

More information

CS 4770: Cryptography. CS 6750: Cryptography and Communication Security. Alina Oprea Associate Professor, CCIS Northeastern University

CS 4770: Cryptography. CS 6750: Cryptography and Communication Security. Alina Oprea Associate Professor, CCIS Northeastern University CS 4770: Cryptography CS 6750: Cryptography and Communication Security Alina Oprea Associate Professor, CCIS Northeastern University March 30 2017 Outline Digital currencies Advantages over paper cash

More information

FiiiCOIN. Yellow Paper. FiiiCOIN Yellow Paper v0.01. A versatile, scalable and energy efficient blockchain technology. Authors.

FiiiCOIN. Yellow Paper. FiiiCOIN Yellow Paper v0.01. A versatile, scalable and energy efficient blockchain technology. Authors. FiiiCOIN A versatile, scalable and energy efficient blockchain technology Yellow Paper Authors Sylvester Lee CTO & Founder John Liu Solutions Architect 1 P a g e Abstract FiiiCoin is a transaction network

More information

BLOCKCHAIN CADEC Pär Wenåker & Peter Larsson

BLOCKCHAIN CADEC Pär Wenåker & Peter Larsson BLOCKCHAIN CADEC 2018 - Pär Wenåker & Peter Larsson BITCOIN BITCOIN PAPER Posted 31/10 2008 Bitcoin v0.1 released Satoshi Nakamoto satoshi at vistomail.com Thu Jan 8 14:27:40 EST 2009 Previous message:

More information

P2P BitCoin: Technical details

P2P BitCoin: Technical details ELT-53206 Peer-to-Peer Networks P2P BitCoin: Technical details Mathieu Devos Tampere University of Technology Department of Electronics & Communications Engineering mathieu.devos@tut.fi TG406 2 Outline

More information

Tampering with the Delivery of Blocks and Transactions in Bitcoin

Tampering with the Delivery of Blocks and Transactions in Bitcoin Tampering with the Delivery of Blocks and Transactions in Bitcoin Arthur Gervais, Hubert Ritzdorf, Ghassan O. Karame and Srdjan Čapkun ETH Zurich, Switzerland, NEC Laboratories Europe, Germany firstname.lastname@inf.ethz.ch,

More information

Lecture 6. Mechanics of Bitcoin

Lecture 6. Mechanics of Bitcoin Lecture 6 Mechanics of Bitcoin Bitcoin transactions time An account-based ledger (not Bitcoin) Create 25 coins and credit to Alice ASSERTED BY MINERS SIMPLIFICATION: only one transaction per block time

More information

Anupam Datta CMU. Spring 2017

Anupam Datta CMU. Spring 2017 Anupam Datta CMU Spring 2017 A rational reconstruction of Bitcoin 1. Start with straw man design 2. Identify weaknesses 3. Augment design and iterate Alice: I, Alice, am giving Bob one coin Alice digitally

More information

Blockchain (a.k.a. the slowest, most fascinating database you ll ever see)

Blockchain (a.k.a. the slowest, most fascinating database you ll ever see) Blockchain (a.k.a. the slowest, most fascinating database you ll ever see) GOTO Amsterdam 13 June, 2017 Stefan Tilkov, @stilkov I don t know Blockchain and so can you 1. Bitcoin > Practical application

More information

Version 0.7. GoldCoin Patch Announcement. What is a 51% attack. The impossible made possible

Version 0.7. GoldCoin Patch Announcement. What is a 51% attack. The impossible made possible Version 0.7 www.gldcoin.com www.gldtalk.org October 11 2013 GoldCoin Patch Announcement Welcome to the GoldCoin minor version 7 announcement. We have some fantastic news for you folks today. We have at

More information

Technical Analysis of Established Blockchain Systems

Technical Analysis of Established Blockchain Systems Technical Analysis of Established Blockchain Systems Florian Haffke, 20.11.2017, Munich Chair of Software Engineering for Business Information Systems (sebis) Faculty of Informatics Technische Universität

More information

Lecture 3. Introduction to Cryptocurrencies

Lecture 3. Introduction to Cryptocurrencies Lecture 3 Introduction to Cryptocurrencies Public Keys as Identities public key := an identity if you see sig such that verify(pk, msg, sig)=true, think of it as: pk says, [msg] to speak for pk, you must

More information

Proof-of-Stake Protocol v3.0

Proof-of-Stake Protocol v3.0 Proof-of-Stake Protocol v3.0 Abstract Proof of Stake's security has proven itself reliable & effective over years of testing while at the same time solving Bitcoin s issues caused by the Proof of Work

More information

GENESIS VISION NETWORK

GENESIS VISION NETWORK GENESIS VISION NETWORK Contents 1. Description of the problem 7 11. Trust management 15 2. The problem with smart contracts 8 12. GVN Token 16 3. Centralised exchanges against decentralised 8 13. Deposit

More information

On the impact of propogation delay on mining rewards in Bitcoin. Xuan Wen 1. Abstract

On the impact of propogation delay on mining rewards in Bitcoin. Xuan Wen 1. Abstract On the impact of propogation delay on mining rewards in Bitcoin Xuan Wen 1 Abstract Bitcoin 2 is a decentralized digital currency that is rapidly gaining in popularity. The Bitcoin system relies on miners

More information

Security Analysis of Bitcoin. Dibyojyoti Mukherjee Jaswant Katragadda Yashwant Gazula

Security Analysis of Bitcoin. Dibyojyoti Mukherjee Jaswant Katragadda Yashwant Gazula Security Analysis of Bitcoin Dibyojyoti Mukherjee Jaswant Katragadda Yashwant Gazula Security Analysis of Bitcoin Introduction How Bitcoin works? Similar peer-to-peer systems Vulnerabilities and solutions

More information

Bitcoin, a decentralized and trustless protocol

Bitcoin, a decentralized and trustless protocol Bitcoin, a decentralized and trustless protocol Thomas Sibut-Pinote Inria Saclay February 12, 2015 Thomas Sibut-Pinote Bitcoin, a decentralized and trustless protocol 1 / 42 Introduction Questions 1 Introduction

More information

Who wants to be a millionaire? A class in creating your own cryptocurrency

Who wants to be a millionaire? A class in creating your own cryptocurrency DEVNET-3626 Who wants to be a millionaire? A class in creating your own cryptocurrency Tom Davies, Sr. Manager, DevNet Sandbox Vallard Benincosa, Software Engineer Cisco Spark How Questions? Use Cisco

More information

DOUBLE SPENDING PREVENTION IN BITCOINS NETWORK

DOUBLE SPENDING PREVENTION IN BITCOINS NETWORK International Journal of Computer Engineering and Applications, Volume IX, Issue VIII, August 2015 www.ijcea.com ISSN 2321-3469 DOUBLE SPENDING PREVENTION IN BITCOINS NETWORK Mandar Kadam, Praharsh Jha,

More information

Upgrading Bitcoin: Segregated Witness. Dr. Johnson Lau Bitcoin Core Contributor Co-author of Segregated Witness BIPs March-2016

Upgrading Bitcoin: Segregated Witness. Dr. Johnson Lau Bitcoin Core Contributor Co-author of Segregated Witness BIPs March-2016 Upgrading Bitcoin: Segregated Witness Dr. Johnson Lau Bitcoin Core Contributor Co-author of Segregated Witness BIPs 141-143 16-March-2016 Topics A short introduction to Bitcoin transactions What is transaction

More information

Prelude. The notes within this Whitepaper publication are intended to formally document the concepts and features of the Aegeus cryptocurrency.

Prelude. The notes within this Whitepaper publication are intended to formally document the concepts and features of the Aegeus cryptocurrency. Prelude The notes within this Whitepaper publication are intended to formally document the concepts and features of the Aegeus cryptocurrency. This document will explain methodically, the details of the

More information

Bitcoin, Security for Cloud & Big Data

Bitcoin, Security for Cloud & Big Data Bitcoin, Security for Cloud & Big Data CS 161: Computer Security Prof. David Wagner April 18, 2013 Bitcoin Public, distributed, peer-to-peer, hash-chained audit log of all transactions ( block chain ).

More information

CSC 2209: CLOUD STORAGE FINAL PROJECT

CSC 2209: CLOUD STORAGE FINAL PROJECT CSC 2209: CLOUD STORAGE FINAL PROJECT DAVID SOLYMOSI AND JIMMY ZHU 1. High Level Overview We implemented a backup and sync service with a focus on minimizing network traffic at the cost of local storage

More information

Bitcoin. CS6450: Distributed Systems Lecture 20 Ryan Stutsman

Bitcoin. CS6450: Distributed Systems Lecture 20 Ryan Stutsman Bitcoin CS6450: Distributed Systems Lecture 20 Ryan Stutsman Material taken/derived from Princeton COS-418 materials created by Michael Freedman and Kyle Jamieson at Princeton University. Licensed for

More information

Contents. Crave Masternode Setup Guides. Single / Multiple Local Masternode(s) Single Masternode using a VPS. Multiple Masternodes using a VPS

Contents. Crave Masternode Setup Guides. Single / Multiple Local Masternode(s) Single Masternode using a VPS. Multiple Masternodes using a VPS Contents Crave Masternode Setup Guides Single / Multiple Local Masternode(s) 1 Requirements...1 2 Preparing Masternodes...1 3 Preparing Controller Wallet...2 4 Masternode Configuration...3 5 Starting Masternodes...3

More information

Biomedical and Healthcare Applications for Blockchain. Tiffany J. Callahan Computational Bioscience Program Hunter/Kahn Labs

Biomedical and Healthcare Applications for Blockchain. Tiffany J. Callahan Computational Bioscience Program Hunter/Kahn Labs Biomedical and Healthcare Applications for Blockchain Tiffany J. Callahan Computational Bioscience Program Hunter/Kahn Labs Network Analysis Working Group 01.25.2018 Outline Introduction to bitcoin + blockchain

More information

Bitcoin Mining. A high-level technical introduction. Konstantinos Karasavvas

Bitcoin Mining. A high-level technical introduction. Konstantinos Karasavvas Bitcoin Mining A high-level technical introduction Konstantinos Karasavvas Outline PoW / Hashcash Transaction propagation Block mining Block propagation Mining Profitability Proof of Work From wikipedia:

More information

Catena: Preventing Lies with

Catena: Preventing Lies with November 28th, 2016 Catena: Preventing Lies with Alin Tomescu alinush@mit.edu MIT CSAIL Srinivas Devadas devadas@mit.edu MIT CSAIL New England Security Day (NESD), Fall '16 The problem: Equivocation The

More information

Anupam Datta CMU. Fall 2015

Anupam Datta CMU. Fall 2015 Anupam Datta CMU Fall 2015 A rational reconstruction of Bitcoin 1. Start with straw man design 2. Identify weaknesses 3. Augment design and iterate Alice: I, Alice, am giving Bob one coin Alice digitally

More information

Ergo platform overview

Ergo platform overview December 2018 Dmitry Meshkov Ergo platform overview Outline Ergo vision Decentralization Survivability Applicability Roadmap 2 Part 1 Ergo vision 3 History Research and Scorex framework development Testnet

More information

A Gentle Introduction To Bitcoin Mining

A Gentle Introduction To Bitcoin Mining A Gentle Introduction To Bitcoin Mining Table of Contents Title...3 How Do Bitcoin Transactions Work?...4 Why Is Mining Needed In Bitcoin?...5 Why Do Miners Mine?...6 What Is This Computationally Expensive

More information

Decentralized prediction game platform, powered by public

Decentralized prediction game platform, powered by public Decentralized prediction game platform, powered by public Table of Contents Overview 3 1.Secured Scalability 3 1.1.Blockchain network delay and Blockbuster attack 3 1.2.Blockchain Transaction Monitoring

More information

A Lightweight Blockchain Consensus Protocol

A Lightweight Blockchain Consensus Protocol A Lightweight Blockchain Consensus Protocol Keir Finlow-Bates keir@chainfrog.com Abstract A lightweight yet deterministic and objective consensus protocol would allow blockchain systems to be maintained

More information

IPFS Data Storage Blueprint

IPFS Data Storage Blueprint AEGEUS IPFS Data Storage Blueprint When you have IPFS, you can start looking at everything else in one specific way and you realize that you can replace it all Juan Benet V2.0 September 2018 1 Contents

More information

CS 4770: Cryptography. CS 6750: Cryptography and Communication Security. Alina Oprea Associate Professor, CCIS Northeastern University

CS 4770: Cryptography. CS 6750: Cryptography and Communication Security. Alina Oprea Associate Professor, CCIS Northeastern University CS 4770: Cryptography CS 6750: Cryptography and Communication Security Alina Oprea Associate Professor, CCIS Northeastern University April 9 2018 Schedule HW 4 Due on Thu 04/12 Programming project 3 Due

More information

CS 390 Software Engineering Lecture 3 Configuration Management

CS 390 Software Engineering Lecture 3 Configuration Management CS 390 Software Engineering Lecture 3 Configuration Management Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved.

More information

Elphyrecoin (ELPH) a Private, Untraceable, ASIC-Resistant CryptoCurrency Based on CryptoNote

Elphyrecoin (ELPH) a Private, Untraceable, ASIC-Resistant CryptoCurrency Based on CryptoNote Elphyrecoin (ELPH) a Private, Untraceable, ASIC-Resistant CryptoCurrency Based on CryptoNote This is the First Version of the Elphyrecoin s White Paper Please Check the Website for Future Updates White

More information

Technical White Paper of. MOAC Mother of All Chains. June 8 th, 2017

Technical White Paper of. MOAC Mother of All Chains. June 8 th, 2017 Technical White Paper of MOAC Mother of All Chains June 8 th, 2017 [Abstract] MOAC is to design a scalable and resilient Blockchain that supports transactions, data access, control flow in a layered structure.

More information

Formally Specifying Blockchain Protocols

Formally Specifying Blockchain Protocols Formally Specifying Blockchain Protocols 1 IOHK company building blockchain applications research focused invested in functional programming built Cardano network, Ada cryptocurrency 2 Blockchain Protocols

More information

Deanonymisation of clients in Bitcoin P2P network

Deanonymisation of clients in Bitcoin P2P network Deanonymisation of clients in Bitcoin P2P network Alex Biryukov University of Luxembourg alex.biryukov@uni.lu Dmitry Khovratovich University of Luxembourg dmitry.khovratovich@uni.lu Ivan Pustogarov University

More information

IBLT and weak block propagation performance. Kalle Rosenbaum (Popeller) & Rusty Russell (BlockStream)

IBLT and weak block propagation performance. Kalle Rosenbaum (Popeller) & Rusty Russell (BlockStream) IBLT and weak block propagation performance Kalle Rosenbaum (Popeller) & Rusty Russell (BlockStream) Invertible Bloom Lookup Tables (IBLT) Credit Gavin Andresen Based on the work of Michael T. Goodrich

More information

Bitcoin and Blockchain Technology: Addresses, Transactions, and Blocks. Ferdinando M. Ametrano

Bitcoin and Blockchain Technology: Addresses, Transactions, and Blocks. Ferdinando M. Ametrano Bitcoin and Blockchain Technology: Addresses, Transactions, and Blocks Ferdinando M. Ametrano https://www.ametrano.net/about/ Table of Contents 1. Addresses and Wallet Import Formats 2. TxIns, TxOs, UTxOs

More information

Proof-of-Work & Bitcoin

Proof-of-Work & Bitcoin CS 220: Introduction to Parallel Computing Proof-of-Work & Bitcoin Lecture 19 Bitcoin: Mining for Heat https://qz.com/1117836/bitcoin-mining-heatshomes-for-free-in-siberia/ 4/25/18 CS 220: Parallel Computing

More information

More on Address Translation. CS170 Fall T. Yang Some of slides from UCB CS162 by Kubiatowicz

More on Address Translation. CS170 Fall T. Yang Some of slides from UCB CS162 by Kubiatowicz More on Address Translation CS170 Fall 2018. T. Yang Some of slides from UCB CS162 by Kubiatowicz Topics Review of last lecture on pagetable based address translation One-level page table Muti-level paging

More information

PascalCoin - A Comprehensive Guide for Noobs

PascalCoin - A Comprehensive Guide for Noobs PascalCoin - A Comprehensive Guide for Noobs What/who/when/why by: Jason Knapp (donations welcome - 291000-95), date: Aug 16, 2017 PascalCoin (PASC) was created by Albert Molina in 2016. It is written

More information

Blockchain Frameworks

Blockchain Frameworks TechWatch Report Blockchain Frameworks Date: March 2018 Contributors: Hemant Sachdeva, Subhrojit Nag Contents 1 Objective... 3 2 Capabilities... 3 2.1 Consensus and Incentive Mechanism... 3 2.2 Limitation

More information

Ergo platform: from prototypes to a survivable cryptocurrency

Ergo platform: from prototypes to a survivable cryptocurrency January 2019 Dmitry Meshkov Ergo platform: from prototypes to a survivable cryptocurrency Outline Ergo Consensus Light Storage vision protocol clients fee Voting Smart Monetary Roadmap system contracts

More information

Catena: Efficient Non-equivocation via Bitcoin

Catena: Efficient Non-equivocation via Bitcoin Catena: Efficient Non-equivocation via Bitcoin Alin Tomescu MIT CSAIL Srinivas Devadas MIT CSAIL Abstract We present Catena, an efficiently-verifiable Bitcoin witnessing scheme. Catena enables any number

More information

Alternative Consensus Algorithms. Murat Osmanoglu

Alternative Consensus Algorithms. Murat Osmanoglu Alternative Consensus Algorithms Murat Osmanoglu Bitcoin Block i-1 Block i Block i+1 Hash i-2 Nonce i-1 Hash i-1 Nonce i Hash i Nonce i+1 tx tx tx tx tx tx tx tx tx tx tx tx Do you really need a Blockchain?

More information

EVALUATION OF PROOF OF WORK (POW) BLOCKCHAINS SECURITY NETWORK ON SELFISH MINING

EVALUATION OF PROOF OF WORK (POW) BLOCKCHAINS SECURITY NETWORK ON SELFISH MINING EVALUATION OF PROOF OF WORK (POW) BLOCKCHAINS SECURITY NETWORK ON SELFISH MINING I Gusti Ayu Kusdiah Gemeliarana Department of Electrical Engineering University of Indonesia Depok, Indonesia i.gusti79@ui.ac.id

More information

PA 4: Hash Table and Triton Blockchain, 100 pts

PA 4: Hash Table and Triton Blockchain, 100 pts PA 4: Hash Table and Triton Blockchain, 100 pts Final Submission Due: Thursday, Nov. 8th, 2018 11:59 pm Overview 1. In Programming Assignment 4, you will be implementing a Hash Table class. 2. You will

More information

I. Introduction. II. Security, Coinage and Attacks

I. Introduction. II. Security, Coinage and Attacks Abstract Proof of Stake's security has proven itself over years of testing. Advances in this technology in Blackcoin's Proof-of-Stake 3.0 have solved the issues faced with Coin-Age, Block Reward and Blockchain

More information

Master Node Setup Guide

Master Node Setup Guide Introduction Welcome to this step by step guide that will take you through the process of creating your own Masternode. This guide is aimed at the casual Windows 10 PC user who has purchased Satoshi Coin

More information

Analyzing Bitcoin Security. Philippe Camacho

Analyzing Bitcoin Security. Philippe Camacho Analyzing Bitcoin Security Philippe Camacho philippe.camacho@dreamlab.net Universidad Católica, Santiago de Chile 15 of June 2016 Bitcoin matters Map Blockchain Design Known Attacks Security Models Double

More information

Graph-based forensic investigation of Bitcoin transactions

Graph-based forensic investigation of Bitcoin transactions Graduate Theses and Dissertations Graduate College 2014 Graph-based forensic investigation of Bitcoin transactions Chen Zhao Iowa State University Follow this and additional works at: http://lib.dr.iastate.edu/etd

More information

What is Bitcoin? How Bitcoin Works. Outline. Outline. Bitcoin. Problems with Centralization

What is Bitcoin? How Bitcoin Works. Outline. Outline. Bitcoin. Problems with Centralization What is Bitcoin? How Bitcoin Works Kai Brünnler Research Institute for Security in the Information Society Bern University of Applied Sciences Bitcoin an open-source software a peer-to-peer network a decentralized

More information

BCH-SV Professional Stress Test

BCH-SV Professional Stress Test BCH-SV Professional Stress Test After the successful creation of the first blocks larger than 32MB, the stress test team identified a number of changes to the architecture of the Satoshi Shotgun to better

More information

Bitcoin and Blockchain

Bitcoin and Blockchain Bitcoin and Blockchain COS 418: Distributed Systems Lecture 18 Zhenyu Song [Credit: Selected content adapted from Michael Freedman. Slides refined by Chris Hodsdon and Theano Stavrinos] Why Bitcoin? All

More information

WEB SECURITY: WEB BACKGROUND

WEB SECURITY: WEB BACKGROUND WEB SECURITY: WEB BACKGROUND CMSC 414 FEB 20 2018 A very basic web architecture Client Server Browser Web server (Private) Data Database DB is a separate entity, logically (and often physically) A very

More information

Shadow-Bitcoin: Scalable Simulation via Direct Execution of Multi-threaded Applications

Shadow-Bitcoin: Scalable Simulation via Direct Execution of Multi-threaded Applications Shadow-Bitcoin: Scalable Simulation via Direct Execution of Multi-threaded Applications Workshop on Cyber Security Experimentation and Test August 10 th, 2015 Andrew Miller, University of Maryland amiller@cs.umd.edu

More information

Transactions as Proof-of-Stake! by Daniel Larimer!

Transactions as Proof-of-Stake! by Daniel Larimer! Transactions as Proof-of-Stake by Daniel Larimer dlarimer@invictus-innovations.com November, 28 th 2013 Abstract The concept behind Proof-of-Stake is that a block chain should be secured by those with

More information

UNIT V. Computer Networks [10MCA32] 1

UNIT V. Computer Networks [10MCA32] 1 Computer Networks [10MCA32] 1 UNIT V 1. Explain the format of UDP header and UDP message queue. The User Datagram Protocol (UDP) is a end-to-end transport protocol. The issue in UDP is to identify the

More information

BYZANTINE CONSENSUS THROUGH BITCOIN S PROOF- OF-WORK

BYZANTINE CONSENSUS THROUGH BITCOIN S PROOF- OF-WORK Informatiemanagement: BYZANTINE CONSENSUS THROUGH BITCOIN S PROOF- OF-WORK The aim of this paper is to elucidate how Byzantine consensus is achieved through Bitcoin s novel proof-of-work system without

More information

The Mini-Blockchain Scheme

The Mini-Blockchain Scheme The Mini-Blockchain Scheme J.D. Bruce July 2014. Rev 2. www.cryptonite.info Abstract Almost all P2P crypto-currencies prevent double spending and similar such attacks with a bulky blockchain scheme, and

More information

IACA Discussion List Guidelines, Use and Subscription Management

IACA Discussion List Guidelines, Use and Subscription Management IACA Discussion List Guidelines, Use and Subscription Management Instructions... 2 Posting Guidelines... 2 Managing your Subscription... 3 Frequently Asked Questions... 4 I sent a request to iacalist@iaca.net

More information