SlideShare ist ein Scribd-Unternehmen logo
1 von 149
Downloaden Sie, um offline zu lesen
Mastering Bitcoins
Khushboo Chitre (MT17020)
Urvashi Choudhary (MT17062)
Contents
➔ Introduction.
➔ Keys, Addresses and Wallets.
➔ Transactions.
➔ The Blockchain.
➔ The Bitcoin Network.
➔ Mining and Consensus.
➔ Miscellaneous Topics.
➔ Bitcoin Weakness.
➔ Bitcoin Security.
➔ Hyperledger.
INTRODUCTION TOPICS COVERED
➔ Blockchain.
➔ Cryptocurrency.
➔ Bitcoin.
➔ Bitcoin Elements, functioning
and cryptography.
Blockchain
● It is a continuously growing list of records known as “blocks”.
● Each block is linked to the other by storing the hash of the other block.
● Linked and secured using cryptography.
● First described by Stuart Haber and W. Scott Stornetta in 1991.
● Conceptualised by Satoshi Nakamoto in 2008.
● Bitcoin cryptocurrency was the first implementation of the blockchain technology.
● Other applications: Smart Contracts, Identity Records of people etc...
Contains the Hash of previous block
H( )
Block
n
H( )
Block
n-1
……
…..
H(
)
Block
1
Properties of Blockchain
● Immutable Data.
● Decentralized.
● Accessible.
● Time Stamping.
● Tamper Resistance.
● Cryptography.
Cryptocurrency
● Digital asset
● Medium of exchange
● Uses cryptography
● Subset of digital currencies
● Uses decentralized control
Introduction to Bitcoin
● Bitcoin is the first decentralized cryptocurrency.
● It was developed by Satoshi Nakamoto in 2009.
● It holds some specific value and therefore allows us to perform transactions.
● Its protocol stack is available as an open source software and can run on a
number of devices.
● They are completely virtual with no physical existence.
Continued….
● Bitcoin consists of:
○ A decentralized peer-to-peer network (bitcoin protocol).
○ Public Transaction ledger (the blockchain).
○ Set of rules for currency issuance (consensus rules).
○ Mechanism for reaching global decentralized consensus (Proof-of-work).
History of Bitcoin.
2008
In November 2008, a paper
named ”Bitcoin: A Peer-to-Peer
Electronic Cash System” was
published by Satoshi Nakamoto.
2010
Nakamoto handed the
responsibility of the Bitcoin
Core to a group of volunteers.
2008
In August 2008, domain name
“bitcoin.org” was registered.
2009
First implementation by Satoshi
Nakamoto was released.
2017
In August 2017, first
hard-forked version named as
Bitcoin Cash was created.
2017
In November 2017, another
hard-forked version named as
Bitcoin Gold was created.
Bitcoin elements
Peer-to-peer network. Miners
Mining Consensus
Transaction
Mining Reward Keys
1bwhw2b1kj2jk1howb1fkjwbu2bsjkbjei3 rfjrn..
Addresses Digital Public Ledger
How does Bitcoin Function
A digital wallet generates transactions and broadcasts it to the
network
Nodes in the network verify a transaction
1
2
H(
)
Block
Miner creates a candidate block by including all the valid
transactions, adds the hash of the recent block to this block.
Solves a hard mathematical problem known as proof of work to
prove that enough resources have been used in verifying these
transactions.
The miner who computes this mathematical problem first wins
this global election and gets the miner reward.
3
4
5
The block is added to the blockchain where it can be verified by
other nodes. As the number of blocks are added on top of it, the
trust on that block increases.
When a miner wins, he gets a reward and new coins are
generated.
When a block is mined, the block is broadcasted into the network
and this indicates that this block has been mined and the miners
start mining another block.
6
7
8
Cryptography in Bitcoin
Properties of an Ideal Hash function:
1. Collision resistance: Given two inputs a and b, then H(a)!=H(b).
2. Preimage resistance: Given hash h(x), then it should be difficult to find out x.
3. Second Preimage resistance: Given a message ‘a’, then it should be hard to
find out another message b with h(a)=h(b) and a!=b.
Examples of Hash functions: MD-4, MD-5, SHA-1, SHA-2 etc.
Variable size input message Hash Function Fixed Size output
HASH FUNCTIONS
HASH FUNCTIONS CONTINUED...
The two main hash functions used by Bitcoin are:
● SHA-256 (returns 256 bit unsigned integers)
● RIPEMD-160 (returns 160 bit unsigned integers)
● Cryptographic system which uses pair of keys:
○ Public key, which is disclosed to everyone and ensures the authenticity of the
receiver.
○ Private key, which is a secret key which is known only to the owner and ensures that
only the owner can decrypt the message.
● Private and public keys are mathematically related.
● Computationally infeasible to guess private key given a public key.
● Bitcoin uses “Elliptic Curve Multiplication” as the basis for public key cryptography.
Public key for encryptionPrivate key for decryption
PUBLIC KEY CRYPTOGRAPHY
Elliptic Curve Cryptography
● It is a public key cryptography based on elliptic curves.
● Bitcoin uses a specific elliptic curve and set of mathematical constants, as
defined in a standard called secp256k1.
● y 2
= (x 3
+ 7)over(Fp), Where Fp is a very large prime number.
● If P and Q are two points on the curve, R= P+Q is also on the curve.
○ The ‘+’ operation is different from the mathematical operation and its
graphical representation is shown in the image.
○ In case P=Q, the line becomes a tangent and intersects the curve at exactly
only more position.
Img source: https://www.google.co.in/search?q=elliptic+curve+cryptography+picture&source=lnms&tbm=isch&sa=X&ved=0ahUKEwi7ovXR5tPaAhWLgI8KHdH5CL4Q_AUICygC&biw=1476&bih=756#imgrc=z2Qpr_i9-1PkJM:
Generating private Keys
● ‘k’ is the private key.
● ‘G’ is the generator.
● The public key is generated by repeatedly
finding points on the curve that satisfy K = k *
G.
● The point ‘G’ is specified in the secp256k1.
● It is extremely difficult to get ‘k’ from ‘K’.
Image source: Reprinted from “Mastering Bitcoin: Unlocking Digital Cryptocurrencies”
DIGITAL SIGNATURES
● Mathematical technique which is used to validate the authenticity and integrity of
the message.
● Developed by Whitfield Diffie and Martin Hellman in 1976.
● Unique to each signer.
● These are based on Public key cryptography as it uses public/private key pair.
● Digital signature provides authenticity, integrity and non-repudiation of the
communication.
● Before digitally signing the document, it is first hashed using a hashing algorithm.
● Hash converts the message to a fixed length hash which saves the time while
encrypting the message.
Alice
Computes hash
AH78….0000….
Sign using Alice’s Private key
AH78….0000….
AH78….0000
….
Digitally signed by Alice
AH78….0000
….
Sent to Bob
Decrypt using Alice's public key
Compute hash of the document
AH78….0000….
AH78….0000….
If they are same BOB can verify that
the document was digitally signed
by Alice.
KEYS, ADDRESSES
AND WALLETS
TOPICS COVERED
➔ Bitcoin Addresses.
➔ Advanced Keys and Addresses.
➔ Wallets.
Establishing Ownership
BitcoinWallets
Digital Keys
Bitcoin
Addresses
Ownership
Ownership is established through:
● Digital Keys
○ Keys represents the private keys associated
with the user.
● Bitcoin Address
○ Addresses provide a unique pseudonymous
identity.
● Bitcoin Wallet
○ Wallets store the keys and are like a small
database or file.
Bitcoin Private and Public Keys
● In case of Bitcoin, the public key is the Bitcoin address.
● But, not all bitcoin addresses are public keys, they also represent other
beneficiaries.
● Private key is used to generate the public key.
Private Key
A Number Picked at random
Public Key
Derived from Private key
Bitcoin Address
Lorem ipsum dolor sit amet,
consectetur adipiscing.
One way cryptographic function One way hash function
Private Keys
● It is simply a number picked at random.
● Private key is used to create signatures that are used to spend the coins, by proving their ownership.
● Private key must be secure at all times and must be backed up.
● The bitcoin software depends on the operating systems random number generator and produces
256 bit key.
Public Key
● The public key is calculated from the private key using elliptic curve
multiplication, which is irreversible: K = k * G where k is the private key, G is a
constant point called the Generator Point and K is the resulting public key.
Bitcoin Addresses
● A bitcoin address is a string of alphanumeric characters.
● It is derived from the public key.
● It begins with ‘1’.
● A bitcoin address can represensent a person, a company or even a script.
● The bitcoin address is presented in a base 58 number system to the user
which helps in the representation of larger numbers in a very compact way.
Wallets
● Wallets act as a container for private keys.
● It can be stored in the form of simple database or structured files.
● There are two ways of generating a wallet:
○ Deterministic
■ New private key is generated from the hash of previously generated private key.
■ All the keys are sequentially linked together.
■ The first key is known as the seed or master key.
○ Non-deterministic
■ Private key is a number which is randomly generated.
■ It is simply a collection of randomly generated private keys.
Type of Bitcoin wallets (Based on Platform).
● Desktop wallet.
○ Wallets which runs on desktop.
● Mobile wallet.
○ Wallet which can be used on an Android or Apple iOS phone.
○ Simple and easy to use.
● Web wallet.
○ Accessed through web browser.
○ Stores the user’s wallet in a server owned by a third party.
● Hardware wallet.
○ Special type of bitcoin wallet which stores the private keys of the user in secure hardware
device.
● Paper wallet.
○ Also known as cold storage, can be stored in printed form for long term storage.
TRANSACTIONS TOPICS COVERED
➔ Bitcoin transaction.
➔ Types of Transactions.
➔ Input and output.
➔ Locking and unlocking scripts.
➔ Adding transaction to the ledger.
➔ Verification and consensus.
Bitcoin Transaction
● A Transaction has one or more inputs.
● Can have multiple outputs.
● The inputs and outputs do not necessarily add up.
A Transaction is like an entry in the double entry book keeping ledger.
It basically tells the network that the owner of the bitcoin has authorised the transfer of these bitcoins
to another owner.
Input
Amount
Input
Amount
Transaction
Transaction fee
Output
Amount
Output
Amount
Bitcoin Transaction
Input
An input is where the coin value is
coming from, usually a previous
transaction output.
Output
A transaction output assigns a new owner
to the value by associating it with a key.
It imposes a requirement for a signature
for the funds to be redeemed.
This forms a chain of ownership
Alice Pays to Bob
Previous Transaction
Locked against
Alice’s key
Alice signs and
uses the
bitcoins she
owned.
Transaction
Now, Bob needs to
provide the
signature to be able
to use it.
Types of Transactions
Input signed by
Alice
Transaction
Output Amount to
Alice
Output Amount to
Bob
MOST COMMON TYPE OF TRANSACTION
● Payment is made from one address to another.
● Some amount given to new address, change goes back to the owner.
● Has one input and two outputs.
Types of Transactions
Input 1
Transaction Output
AGGREGATING TRANSACTIONS
● Aggregate several inputs to one single input.
● Just like getting a pile of notes exchanged for a single larger note.
● Has multiple inputs and one output.
Input 2
Input 3
Types of Transactions
Output 1
TransactionInput
DISTRIBUTIVE TRANSACTIONS
● Distributes input into many outputs.
● Depicts a scenario of distributing funds in commercial entities.
● Has single input and multiple outputs.
Input 1
Output 1
Output 1
Constructing a Transaction
● Transactions are constructed by the bitcoin wallets.
● The construction can be done offline, even when not connected to the bitcoin
network.
GETTING THE CORRECT INPUT
● The wallet has to find the unspent bitcoin transactions that are locked
with wallets own key.
● A full index client has all the transaction, but its too heavy.
● Wallets usually use lightweight clients which query the bitcoin network to
get the output.
● The response is reference to an unspent transaction.
CREATING OUTPUTS
● The transaction is created in the form of a
script which is locked by the key.
● When Alice pays Bob, the script creates an
encumbrance on the value and can only be
used by Bob, if her provides the key to
unlock it.
● Since, only Bob has the key corresponding
to the address, only he can unlock it and
spend it.
Transaction Visualization
0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2
The resulting transactions is sent to the neighbouring
nodes.
Bitcoin Script
● Not Turing-complete language used to perform bitcoin transactions.
● A script is attached to every transaction.
● The script consists of instructions of how the bitcoins can be used by the
user receiving them.
● A transaction is valid if the value present on the top of the stack is True
(non-zero) when the script ends.
Concept of Locking and Unlocking script
Locking Script Unlocking Script
● Locking Script is present in
the output.
● Locking script consists of
the Public/Bitcoin key which
will generate the destination
address.
● ScriptPub key
● Unlocking script is embedded in
the input which consists of the
digital signature generated by
the sender to prove his/her
identity.
● Also known as scriptSig.
Continued….
● Unlocking script is executed first using the stack.
● If the script is executed without error i.e. no leftovers in the stack, then the
main stack is copied.
● The locking script is executed.
● If the result of the locking script along with the data of the unlocking script
which was copied on the stack is True, then the bitcoins are valid and can be
spent.
Why Script is not Turing-Complete?
● No loops or complex flow control capabilities ensures that the language is
not Turing-Complete.
● In case of Bitcoin, the program needs to be terminated quickly with an
answer that whether the coins can be moved or not.
● Quick termination of program guarantees that DoS (Denial of Service) attack
cannot be performed.
Adding Transaction to the Ledger
TRANSACTION PROPAGATION
● In the bitcoin network, nodes are connected to each other.
● A new unseen transaction is immediately forwarded to other nodes in the network.
● Within a few seconds, a transaction reaches major part of the network.
BLOCK CREATION
● New transactions get added to the temporary pool of unverified transaction.
● Miners add unverified transactions to the pool and calculate a mathematical
problem.
SOLVING THE MATHEMATICAL PROBLEM
● Once a block is ready, miners solve a mathematical problem known as the proof of
work to prove the validity of the new block.
AS MORE BLOCKS ARE ADDED
● New blocks added on top of the mined block add more trust on the block.
1
2
3
4
The decentralized consensus emerges from the
following four processes.
● Independent verification of transactions by the full nodes.
● Independent aggregation of new blocks, by mining nodes couples with
demonstration of proof of work algorithm.
● Independent verification of each block before assembly into the chain.
● Independent selection of the chain with the most cumulative computation
by the miner.
Independent Verification of Transactions
● Each nodes verifies a transaction against a long list of criteria.
○ Transaction syntax and data structures are checked.
○ Input output lists must not be empty.
○ Size of the transaction should be correct.
○ Matching transaction must exist in the pool.
○ Sum of input values must be greater than the output values.
○ And many more …
● These rules can be modified to defend against attacks or to include more
transactions.
Aggregation of Transactions and Mining
● After verification of the transaction, transactions are added to the memory pool or
the mining pool.
● Transactions are added according to new block on the basis of priority, this
ensures old transactions are favoured after some duration.
● The first transaction added to the block is known as generation or coinbase
transaction which contains the reward for mining effort.
100djnd2nx3e3bdhbewkfjbewkjfbxljbfjrbkjxe
Xv3hjev32kxedxjbwkjbwkjbkjbkjcbkwjbq w3
Vx3hjrv23hxkr2brebqjwgrqixhk2nroi3hxriq3
Xvj3rv2j3rxh2dnjqxkbkj3xnriuh croi4cr3rh2
Vxr2k3rx33rjknc v 4iru4voijccbjbjbxjkbrkqxh
Create a new block
Verified Transaction Transaction Pool Candidate Block Mining the block
Validating a new block
● The newly created block is propagated to the network.
● The nodes validates the block by performing some checks, such as:
○ Block data structure is a valid one.
○ The hash of the block header is less than the target value of the difficulty.
○ The block size is less than the acceptable size of the blocks.
○ The first transaction is the coinbase transaction.
● As soon as all the nodes validates the block, it gets added to the blockchain.
THE BLOCKCHAIN TOPICS COVERED
➔ Blockchain.
➔ Structure of Blockchain.
➔ Block Header.
➔ The Genesis Block.
➔ Merkle Trees.
Blockchain
● It is an ordered block of transactions.
● Each block points to its previous block, as it contains the SHA256 hash of its
previous block.
● The previous block is also referred to as the parent block.
● A block can have only one parent block.
● But a parent block can have multiple children block.
● The very first block of the blockchain is known as Genesis block.
Structure of a Block
Table 7-1, The Structure of a Block.
Source: Chapter 7, Mastering Bitcoin.
Block Header
- Version
- Parent’s hash
- Merkle Root
- Timestamp
- Difficulty target
- Nonce
Block Header
Table 7-2, The Structure of the block header.
Source: Chapter 7, Mastering Bitcoin.
Block Identifiers
- Block header hash
- Unique SHA-256 hash generated for every block.
- Block height
- Position of a block in the blockchain.
The Genesis Block
● The first block in every blockchain is fixed.
● This block is known as the genesis block.
● Genesis block is statically encoded in the bitcoin client software.
● The hash of this block is the following :
“000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
”.
Merkle Trees
● Also known as Binary Hash tree.
● It is used in the blocks to store the summary of all the transactions present in the blocks.
● The block header stores the root of the Merkle tree.
Continued…..
● The transactions are present in the leaf
nodes of the Merkle tree.
● These transactions are stored in the
hashed form.
● SHA256 is used to hash the nodes and the
hashing is performed twice.
● The parent node consists of the hash of
its child nodes.
● If there are odd number of transactions in
the block, then the last transaction is
duplicated in order to make the number of
transactions even.
● To search for a specific transaction, only
log2
N hashes needs to be produced where
N is the number of transactions in a block. Fig. 7.2, Calculating the nodes in a Merkle Tree.
Source: Chapter 7, Mastering Bitcoin.
How Merkle Tree ensures the Integrity of a block?
● Only the merkle root is stored in the header.
● It makes sure that the transactions are not modified.
● If any transaction is modified, the root will be modified which changes the block
header and ultimately changes the block hash.
The Bitcoin
Network
➔ Peer-to-Peer Network
Architecture.
➔ Bitcoin Network.
➔ Bitcoin Node.
➔ Full Node.
➔ Simple Payment
Verification Nodes.
➔ Simple Payment
Verification .
➔ Bloom Filters.
Peer-to-Peer Network Architecture
● Bitcoin follows Peer-to-Peer Network Architecture.
● Peer-to-Peer Network Architecture is also known as P2P.
● In P2P architecture, all the participating nodes in the network are treated
equally.
● All the nodes are peers to each other.
● All the nodes are responsible in providing the same amount of services to the
network.
● These nodes are connected in the form of mesh topology.
● The network is not centralized.
The Bitcoin network represents the collection of nodes which are using the P2P
Network Architecture.
The Bitcoin Network
Bitcoin Node
● The Bitcoin nodes are treated equally in the Network.
● But the nodes can play different roles in the Bitcoin Network.
● The Bitcoin node is a collection of:
○ Routing (Network node).
○ The Blockchain database.
○ Miner.
○ Wallet services.
Full Node
● Full node consists of all the four functions which are mentioned in the
previous slide.
● It also consists of the complete copy of the blockchain with all the
transactions.
● Full nodes can perform the independent verification of the transactions.
● It waits for the updates from the network about the new transactions, verifies
them and adds it to the local copy of the blockchain maintained by the full
nodes.
● Bitcoin Core is the most popular implementation of the Full node clients.
Simple Payment Verification (SPV) Nodes
● A node which only consists of the Wallet and the Network node.
● It maintains only a subset of the blockchain.
● These nodes uses a method for the verification of the transactions known as
Simple Payment Verification.
● These are also known as Light-weight Clients.
● These nodes does not hold the entire block instead it holds only the header of
each block.
Simple Payment Verification
● It is used by some lightweight power-space constrained devices, which
cannot download the entire blockchain.
● SPV nodes verify transactions by relying on the peers to provide partial views
of relevant parts of the blockchain ondemand.
What is it?
This technique verifies whether a transaction has been included in the blockchain or not,
without actually downloading the entire blockchain.
Continued….
● An SPV node needs to download the copy of the block header of the longest
proof of work chain.
● Then the transactions are verified by referencing to their depth in the
blockchain instead of their height.
● SPV nodes establish a link between the transaction and the block that
contains it using a merkle path.
Some important points:
- SPV cannot be persuaded that a transaction exists when it does not.
- An SPV node can definitely prove that a transaction exists but cannot verify that
transaction, such as a double-spend of the same UTXO, doesn’t exist because it
doesn’t have a record of all transactions. This type of attack can be used as a
Denial-of-Service attack or as a double-spending attack against SPV nodes.
- To defend against this, an SPV node needs to connect randomly to several nodes, to
increase the probability that it is in contact with at least one honest node.
Risk involved in SPV
● SPV nodes checks whether a transaction is present in the blockchain or not
by querying about the specific transaction to all of its peers.
● This involves privacy issue, as this can reveal the address of its wallet.
To overcome the Privacy issue, a feature known as Bloom Filters was
introduced.
Bloom Filters
● Probabilistic data structure because it definitely tells that the element is not
present or may be present in the set.
● False positive results are possible due to collision property of the hashing
function.
● It is possible that two values may generate the same hash and one of the
value may not be present in the set but the filter gives the result that the
element may be present in the set.
What is it?
Bloom filter is a space efficient probabilistic data structure, that is
used to test whether an element is a member of a set.
How are bloom filters used by SPV nodes?
● SPV nodes ask their peers about a specific pattern which matches the
needed transaction without actually disclosing the entire public address.
● SPV node initializes the bloom filter as empty and it does not matches any
pattern in this state.
● SPV node will then make a list of all the address present in its wallet.
● Creates search pattern matching of the transactions to each address.
Continued….
● To check whether a transaction is present in the blockchain or not following
steps takes place:
○ Generate hash of the transaction.
○ Check the pattern of the block headers which are created after the wallet has been generated.
○ If the pattern of the transaction matches any of the pattern of the block headers, then the filter
says that the transaction may be present in the block.
○ Else it returns a result saying the transaction is not present in the block.
Example of Bloom Filter
● Let the bit vector be as the following:
● To add an element to the Bloom filter, the
value is hashed few times and the value of
the bit vector is set to 1 depending on the
hashed value.
● When the input string is “hello”, the bit
vector changes to the following:
● To test the membership of the value, hash
the value using same hash function and
check whether the pattern matches the bit
vector or not.
Mathematics of Bloom Filter
● Let k be the number of hash functions, m be the total number of bits in the
vector and n be the number of items in the set.
● Probability that certain bit will still be 0 after 1 insertion= (1-1/m)k
.
● Then, after n insertions the probability will be (1-1/m)kn
.
● So, the probability of false positives= (1-(1-1/m)kn
)k
.
MINING AND
CONSENSUS
TOPICS COVERED
➔ Mining.
➔ Proof-of-Work.
➔ Difficulty.
So Far
● Wallets
● Transactions
● Propagated to network
● Candidate block created by miner
Let’s start mining!
What is mining?
● Hash pattern generated cannot be determined in advance.
● A pattern cannot be created that will create a particular hash value.
● This ensures that the hash can be generated only by modifying the value in
the block and try again and again, until the hash matches the target value by
chance.
The process of hashing the block repeatedly, after changing a parameter in the block so
that the hash obtained matches a specific pattern or a target value.
Bitcoin Mining
Mining serves two purposes:
● New coins are created. It is like printing of new notes. The amount of coins
created per block are fixed and diminish over time.
● Ensures a block is confirmed only when enough computational power has
been devoted to it.
Proof of Work
Mining is the process of creating a new block, and solving a computationally intensive mathematical problem.
This mathematical problem is known as the “Proof of Work”.
Mining Diagrammatically
Block Data
Transaction Header Compute Hash of the block header
Matches target
hash pattern
Block Mined
Yes
No
Modify the content of the block
Nonce
How is block modified to get different hash values?
● The block header contains a file called nonce.
● This nonce is like a counter and after every iteration of the block is not mined,
it is incremented.
● Even a small change creates a completely different hash, therefore while
mining only the nonce value is modified.
Hashing while mining
● The hash function used is SHA-256.
● Only the header of the block is hashed.
● Since the merkle root is included in the hash it is not necessary to calculate
hash of the entire block.
Proof of Work
Block
------------------------------------
------------------------------------
------------------------------------
------------------------------------
Nonce String
Choose a Nonce String Compute Hash
If Hash <Target Add block to block
chain
If Hash > Target
● The probability of a miner of finding the correct solution/hash depends on the computational power of the
resources he/she has.
● More the computational power, more strings can be generated and hence the probability of finding the
solution increases.
● When the Miner finds valid solution, the solution is broadcasted to the entire network.
● The other nodes validates the solution and the block is added to the blockchain.
● The Miner gets the reward and transaction fee.
Mining Difficulty
● Bitcoin difficulty is adjusted every 2 weeks i.e. after generation of 2016 blocks.
next_difficulty = previous_difficulty * 2-weeks /time to mine last 2016 blocks
● Difficulty depends on the number of nodes present in the Bitcoin network, as the number of nodes
increases the difficulty increase i.e. the target value becomes much smaller.
MISCELLANEOUS
TOPICS
TOPICS COVERED
➔ CAP Theorem.
➔ Multi-Signatures.
➔ Hardware Wallets.
➔ Ethereum.
➔ Ethereum vs Bitcoin.
➔ Litecoin.
➔ Litecoin vs Bitcoin.
➔ Hard-forking.
CAP Theorem
● Proposed by Eric Brewer, (Symposium on Principles of Distributed Computing, 2000).
● Proven by Seth Gilbert and Nancy Lynch in 2002.
Theorem
It is impossible for a distributed data store to achieve more than two of the following
properties simultaneously: Availability, Consistency and Partition Tolerance.
Availability Consistency Partition Tolerance
Every request receives a
(non-error) response- without
guarantee that it contains the
most recent write.
Every read receives the most
recent write or an error.
The system continues to operate
despite an arbitrary number of
messages being dropped(or
delayed) by network between
nodes.
Fig(1): Pictorial representation of CAP theorem
Source:https://www.google.co.in/search?client=ubuntu&channel=fs&dcr=0&biw=1853&bih=928&tbm=isch&sa=1&ei=zfCQWpLRO4mP8wX8hLaA
Dw&q=cap+theorem&oq=cap+theorem&gs_l=psy-ab.3...48402.48402.0.48604.1.1.0.0.0.0.0.0..0.0....0...1c..64.psy-ab..1.0.0....0.Elq3o2_Ld-E#img
rc=cUR_a47RWUvYtM
CAP Theorem and Blockchain
● In case of distributed ledger, the CAP properties mean:
○ Availability
■ Network accepts transactions at any time.
○ Consistency
■ All nodes have the same ledger at the same time.
○ Partition Tolerance
■ Network is resistant to the node failure.
Continued…..
● Only two properties can be picked.
● C A System:
○ Partition Tolerance sacrificed.
○ Bitcoin can only run on networks that can reliably deliver messages.
● C P System:
○ Availability sacrificed.
○ If there is a problem in connectivity, Bitcoin read write operations cannot be performed.
● A P System:
○ Consistency sacrifice.
○ We can send a transaction but it may or may not be received by other parties.
Which CAP property is sacrificed by blockchain?
● Consistency is sacrificed.
● Because:
○ Availability and Partition tolerance are revenue generating properties.
○ Eventual consistency can be achieved by fixing transactions, in the case
of blockchain with the help of consensus.
Difference between strong consistency and eventual consistency.
A Transaction
Application
Always consistent with the database.
A Transaction
Application
Transactions are not guaranteed to be written
onto the database.
Queued, not written on
to database right away.
May or may not be
consistent at this point.
Consistently written on
the database.
Always
Consistent.
How is Eventual Consistency achieved in Bitcoin System?
● Eventual consistency states that the system eventually gets consistent after a
specific amount of time.
● In the bitcoin system, whenever a new block is generated by the miner, miner
adds the block into his/her copy of the blockchain and sends the block to
other miners for the validation purpose.
● As soon as the miner gets some confirmations, the block is added to the
global ledger after a specific amount of time.
● The average time taken by the bitcoin system to add a block to the blockchain
is 10 minutes.
● So, in this way the Bitcoin system eventually becomes consistent.
Consistency and Bitcoin system
● The Bitcoin system achieves eventual consistency and not the strong
consistency.
● We can conclude that at a specific point of time, the bitcoin system becomes
consistent, available and partition tolerant.
Introduction to Multi Signatures
● Multi Signature refers to the requirement for a transaction to have two or
more signatures before it can be executed.
● Also referred to as M-of-N transactions (Multisig).
● Some of the applications of Multisignature are:
○ 2-of-2: Husband and wife savings account, requires the signatures of both the account holders
to perform the transactions.
○ 2-of-3: Parent’s saving account for the child, requires the signature of one of the parent along
with the signature of the child.
● It is more secure as compared to the single signature transaction.
Multi Signatures in Cryptocurrencies
● The first multisignature wallet was launched in August 2013 by BitGo.
● In 2011 and 2012, Bitcoin 1.5 protocol was introduced which uses
multisignature transactions.
● Bitcoin uses 2-of-3 addresses which means that to perform a transaction 2
out of 3 signatures are enough.
● It requires multiple users to sign a transaction before it is broadcasted to the
bitcoin network.
● The above point implies that it requires multiple private keys to authorize the
transaction.
Continued….
● The required number of signatures is agreed at the start, once people agree to
create the address.
● In layman terms, we can say that the wallet is now being shared with the
multiple users.
● Multisignature in bitcoin is just a tuple of distinct user’s signatures.
Additional Points
- Standard transactions on bitcoin network are single signature transactions, however
complex multisig transactions can be supported.
- Some multisig bitcoin wallets are: Armory (Desktop Wallet), Electrum (Mobile/Desktop
wallet), Copay (Mobile and Desktop wallet).
Advantages of using Multi Signatures
● Adds additional layer of security for cryptocurrency transactions.
○ With 2-of-2 address, the two private keys can be kept on two different machines.
○ An attacker will now need two private keys in order to perform identity theft.
○ As the keys are kept on two different machines, it becomes difficult for an attacker to steal
both the private keys.
● More flexible.
○ With 2-of-3 address, any two out of three keys are sufficient to authorize a transaction.
○ If the user losses any one of the three keys, then it is still possible for the user to use two keys
and authorize the transaction.
Hardware Wallets
● It is a special type of bitcoin wallet which stores the private keys of the user in
secure hardware device.
● Major advantages are:
○ Stored in protected area of microcontrollers and are never sent out of the device in the form of
plaintext.
○ Immune to computer viruses which steals information from the software wallets.
○ Generally, the software is open source which allows the user to validate the entire operation of
the device.
○ The hardware device will confirm every transaction by the user before performing it.
TREZOR- The Bitcoin safe
● It is a secure bitcoin storage.
● It generates private keys and stores them as well in a secure manner.
● As the keys are stored in a hardware device, it cannot be attacked by a
malware.
● It can store unlimited keys.
● When the device is initialized, it generates a recovery seed.
● This recovery seed can be used if the device gets lost.
● All the data stored in the device can be retrieved in the another device using
the seed.
● It prevents keylogging when a PIN or any sensitive information is entered.
Ledger Nano- S
● Secure bitcoin hardware wallet.
● Can be connected to the computer through the USB.
● Consists of open source embedded bitcoin App.
● Built-in 4 digit security pin.
● USB connectivity.
● Generates a seed (12/18/24 words) to ensure easy recovery.
● Consists of small OLED display.
● Some other Hardware wallets such as Keep Key, Bitlox, Digital Bitbox etc.
Ethereum
● Initially described by Vitalik Buterin in a white paper(2013).
● Ethereum is:
○ an open source,
○ public,
○ blockchain based distributed computing platform,
○ Operating system featuring smart contract (scripting) functionality.
● Formal development of the Ethereum software project began in early 2014
through a Swiss Company, Ethereum Switzerland GmbH (EthSuisse).
● Development was funded by an online public crowdsale during July–August
2014, with the participants buying the Ethereum value token (ether) with
another digital currency, bitcoin.
Continued….
● Ethereum enables developers to build and deploy decentralized applications.
● Ether is the cryptocurrency which generated on Ethereum platform.
● Miners work to earn Ether.
● The transaction fees are also paid in the form of Ether.
● Ethereum is a whole network, and has its own:
○ Internet Browser.
○ Coding language.
○ Payment system.
Bitcoin vrs. Ethereum
Bitcoin
● Peer-to-peer electronic cash system which
enables online bitcoin payments.
● Block time is 10 minutes.
● Rate of generation of new bitcoins halves
every 4 years.
● Transaction fees is higher.
● It uses Proof-of-work technique.
● It works on UTXO scheme.
● The language used for Bitcoins is not
Turing-complete.
Ethereum
● Focuses on running the programming
code of any decentralized system.
● Block time is 14 to 15 seconds.
● Rate of generation of new Ether remain
constant except during hard-forking.
● Transaction fee are generally lower.
● Wants to shift to Proof-of-Stake technique.
● It does not rely on UTXO scheme.
● The language used for Ethereum is
Turing-complete.
Hard-Forking
● Change to the protocol which makes the previously invalid transaction/blocks valid or vice versa.
● Permanent divergence from the previous version of the blockchain.
● Blocks generated from the previous version will no longer be treated as valid.
● All the nodes/users need to update their version of blockchain.
● Hard forking is helpful to overcome the limitations of the previous versions.
Bitcoin Gold
● Created by Jack Liao.
● Hard forked version of bitcoin.
● Purpose is to allow everyone having the GPU graphic cards to become the member of bitcoin
network and participate in bitcoin mining.
● But the problem with Bitcoin Gold is:
○ Still in the development stages.
○ Does not provide enough resources to the users.
BITCOIN
WEAKNESS TOPICS COVERED
➔ New wallets vulnerable via old
passwords.
➔ Deanonymization
➔ Sybil attack
➔ 51% Attack
➔ Packet Sniffing
➔ Denial of Service
➔ Timejacking
Weaknesses in Bitcoin
● New wallets vulnerable via old passwords.
● Deanonymization
● Sybil attack
● 51% Attack
● Packet Sniffing
● Denial of Service
● Timejacking
New Wallets Vulnerable via Old Passwords
● Original bitcoin client stores the keys in a
wallet.dat file. This wallet is encrypted via
a password.
● When a user changes the password
wallet is encrypted using the new
password. However, the old wallet.dat file
can still be decrypted using the old
passwords.
● Backup facilities like the “Apple Time
Machine” can be used to retrieve old
copies of wallet and .dat file, and can be
drained.
Old Encrypted Wallet.dat
Newly Encrypted Wallet.dat
Both keys can be
used
If both encrOld
Encrypted
Wallet.dat
ypted files are
available.
Wallet containing private keys
Deanonymization
WHAT IS DEANONYMIZATION?
● Bitcoin network allows users to be pseudonymous, not
anonymous.
● Tracing the transactions on the network can help
deanonymize entities.
● Eg: While contacting the blockchain users use their
browsers, and if the browser gives away this information
and the third parties leak this sensitive data then, the
transactions can be linked to the user.
SOME TOOLS FOR DEANONYMIZATION
● BitConduite: Designed to identify individual entities and
characterizing various forms of entities across the
network via analysing the pattern of the transaction.
● BitFury Group : Is able to deanonymose about 15% of the
bitcoin network using its analysis tool.
● Many organisations including the governments of various
countries aim to deanonymize entities to fight crime.
Pseudonymous means that when one's true identity is not
revealed instead a unique is used. One can stay anonymous
as long as the unique id is not linked to one's actual
identity. However, once a link has been established
between the unique id and actual identify, all anonymity is
lost.
How is deanonymization done?
Step 1: Linking all public addresses of an owner
● This step is important because, entities such as large corporations have a
number of addresses to make them untraceable.
● However, since they are operated by the same entities, just by looking at the
transactions it is easy to guess that a certain cluster of addresses belongs
to a certain entity.
● By looking at the transaction in the second figure, analysers, can know that
both addresses are controlled by the same entity.
● F.Ried and M.Harrison, in “An Analysis of ”Anonymity in the bitcoin System”,
generated such clusters.
Step 2: Linking addresses to actual owners
● Once such an identification has been done, it is not difficult to link these
addresses to the actual entities. This was achieved by interacting and
performing transactions with them.
Fig: Clusters of addresses
Fig: A transaction using two addresses
SOLUTION: Maintaining anonymity
Bitcoin Mixing:
● To break the linkability and
traceability of the coins
transactions are mixed and
coins are swapped with other
addresses having the same
value.
● Mixing bitcoins is also known
as Bitcoin Laundering,
Bitcoin Washing or Bitcoin
Tumbling.
Tor- online Router
● Tor encrypts and routes traffic
through random nodes on the tor
network before reaching the final
destination.
● Therefore, it becomes difficult to
pinpoint ip addresses or systems
from which transactions were
broadcasted.
New addresses for transactions
● HD Wallets, allow users to
generate as many addresses as
possible. This will making linking
of more than a few transactions
very difficult.
● This is important because bitcoin
is public in nature and if the same
address is used always it will be
very easy to link all the
transactions to the person.
SOLUTION: Maintaining anonymity
Coin Join
● This is a market, where Marketers and Takers come
together to make special transactions, known as
CoinJoin transactions.
● Takers pay a nominal fee to the makers who mix
these coins.
● This mechanism enables mixing without Escrow and
third parties.
Use Logless VPNs
● A logless VPN, doesn't store the history of
users activities on the server.
● It encrypts all the traffic and routes it
through multiple servers at different
locations before arriving at the final location.
● Using logless VPNs to connect to bitcoin
client is another way to improve transaction
privacy
Sybil attack
● In sybil attack the attacker creates a large number of pseudonymous entities
and uses them to influence the network.
● The resistance to sybil attack is proportional to the cost of creating a new
entity in the system.
● The attacker will separate legitimate users from the rest fo the network and
connect only to the malicious nodes, which will then cause double spend
problem.
Source:
https://www.bing.com/images/search?view=detailV2&ccid=9Y%2fxq65a&id=26FCE3C96BA0985E4805561897B9B6FA59A06EF4&thid=OIP.9Y_xq65aDq5RRM8QqiTvMAHaDT&mediaurl=http%3a%2f%2fns2simulator.com%2fwp-c
ontent%2fuploads%2f2015%2f10%2fArchitecture-of-Sybil-Attack-in-Manet.png&exph=274&expw=615&q=sybil+attack&simid=608018134084618067&selectedIndex=5&ajaxhist=0
Preventing sybil Attack
Proof of Work
● A Sybil attack is based on spawning a large
number of instances to either isolate the
attacked from other nodes, or to fake support
for something.
● However, Proof of work cannot be faked by
spinning up more instances of the software,
the energy actually has to be spent.
● Even after isolating the node, the attacker
cannot make a node believe in it without
calculating the proof of work i.e considerable
amount of time and energy has to be spent for
this attack to happen.
● Moreover, a check can be put on the number of
nodes created on the network. This will make
sure that large number of nodes are not created
by just one user.
● Malicious nodes advertise, different level of
difficulty, such nodes should be boycotted from
the network.
51% Attack
● The decentralization of the the bitcoin is ensured by the fact the computing
power is distributed among the miners.
● However, if one miner has as much as 51% of mining power, he has full
control of which block gets accepted and which one gets rejected.
● He will accept only his own blocks and will possess all the coins generated.
● The chances of this attack seem low as the computing power of 51% of the
entire network is too high, however, some studies state otherwise.
51% Is Possible:A study shows that this pie chart displays the
computing power possessed by China(red) and Non-China(blue). The
presence of mining pools can definitely lead to 51% attack.
Denial of service
● This involves sending too many requests to a legitimate server and hindering its performance.
● These attacks can be at network layer that cause network saturation by consuming much available
bandwidth or application layer attacks that bring down servers by consuming its processing
resources.
● They are often facilitated by DDos botnets which masquerade as browsers i.e. human visitors.
● The attacker can try to connect to all the nodes at the same time and make them busy.
● The network can be flooded with transactions
Dos on a Node
● It is possible to send lots of requests to a node to bring it down, however, the
number would be very high.
● Moreover, the node could simply stop accepting the requests.
● Lastly, since bitcoin is developed on blockchains which is a decentralised
system, knocking out a few nodes will not affect the service provided by the
entire system.
Dos via Transaction Flooding
● Firstly, all the transactions have to be valid and legitimate or else, they will
simply be discarded by the nodes.
● Secondly, it is difficult to maintain a large number of transactions without
having to pay huge transaction fees.
● Lastly, the concept of ageing in transactions will not allow old transactions to
be abandoned and eventually they will be processed.
● The harm caused by such an event would be minimal.
Old transactions will win eventually
Timejacking
● An attacker could announce inaccurate timestamps and modify the time of
the node and get it to accept fraudulent blocks.
● Unlike other attacks it would still be possible even when all nodes maintain
communication with honest peera. A limited timestamp based disruption is
also possible against nodes that maintain synchronized clocks.
● Consequence: This can lead to double spend problem.
Timejacking continued...
● Solution:
○ This can be handled by determining acceptable time stamp ranges solely based on previous
block timestamps.
○ Use the node’s system time instead of the network time to determine the upper limit of the
block timestamps and when creating blocks.
○ Tighten acceptable time ranges.
○ Use delayed timestamp validation.
Potential Problems in Bitcoin
Hash Function Hacks
● Algorithms to compute the hash functions of SHA-256 and ECDSA standards are considered impossible to hack with
current computing powers.
● The emergence of high-performance quantum computers will increase the risk of breaching these functions. In this
case the current hash function of Bitcoin can be replaced by more complex one.
Increase in the number of users
● Bitcoin network will cope with the influx of users.
● If each user starts to use special software to hide their IP-address, the network will not work.
BITCOIN
SECURITY
TOPICS COVERED
➔ Security Principles.
➔ Develop a Bitcoin system securely.
➔ Traditional vrs Bitcoin security
Architecture.
➔ User security best practices.
Security Principles
● The main factor in Bitcoin is Decentralization.
● In Bitcoin system, end-users/nodes are responsible for all the actions.
● As the security of the network is based on Proof-of-Work, there is no need to
have encryption and the network can be open.
● A bitcoin transaction cannot be forged or modified, as every transaction
consists of its own locking/unlocking script.
● It does not reveal any private information due to which the transactions can
be broadcasted over the network.
● Bitcoin wallet can be backed up like any file.
● It can be stored in the form of multiple copies.
● It can also be printed on paper for hard-copy backup.
Develop a Bitcoin system securely
● Two things should be kept in mind while developing a Bitcoin system:
○ Don’t take control of keys away from the users/nodes.
○ Don’t take transactions off the blockchain.
● Keeping the keys on single server.
○ Many early Bitcoin users kept their keys concatenated together on a single server.
○ This approach makes the system centralized.
○ The systems got hacked and resulted in disastrous consequences for the users.
● Off blockchain system.
○ An off-blockchain transaction is a transaction which is taken off from the blockchain in order
to reduce the transaction fee.
○ This system will record the transactions on internal, centralized ledger and synchronize them
occasionally.
○ These centralized ledgers can be falsified.
Traditional vrs Bitcoin Security Architecture
Traditional security architecture is based on the root of trust, which is
the core trusted authority which handles the overall security of the
system. But as the complexity of the system increases, there is a more
possibility of a system having a bug.
Bitcoin security architecture is decentralized. The consensus system of
bitcoin creates a public ledger. A correctly validated block uses Genesis
block as a root of Trust.
User security best practices.
● Physical Bitcoin Storage.
○ Store the bitcoins in the form of hard-copy.
○ Set of bitcoins printed on paper are known as paper-wallet.
○ The bitcoins are printed in encrypted form.
○ Keeping bitcoins offline is known as cold storage.
● Use hardware wallets.
○ Hardware tamper-proof wallets can be used to store the bitcoins.
○ Special purpose hardware devices are built in order to store the bitcoins.
○ TREZOR, Ledger Nano- S and so on are some of the examples of hardware wallets.
● While using online services for the bitcoins, enable 2-factor authentication.
Continued….
● Diversifying the risk.
○ Store the bitcoins in diverse bitcoin wallets.
○ Keep very few coins in mobile wallet and other coins in desktop wallet or cold storage.
● Multi-Signature and Governance.
○ Multi-Signature wallets require more than one signature to perform a transaction.
○ It makes the system more flexible and secured.
○ The signing keys can be stored on the different locations.
● Survivability
○ Share the access details with some trusted relative or lawyer.
○ This is useful in case of the death of the bitcoin holder.
Continued….
● Don’t let others store your bitcoins.
● Do proper research on bitcoin wallet options.
● Never reuse wallet addresses.
● Keep the bitcoin software up-to-date.
HYPERLEDGER TOPICS COVERED
➔ Hyperledger.
➔ Hyperledger Fabric.
➔ Hyperledger Composer.
➔ Demo Application.
Introduction to Hyperledger
● It is not a company, not a cryptocurrency and not a blockchain.
● Hyperledger can be thought of as a software which everyone can use to create one’s own
personalised blockchain service.
● It was started in December 2015 by Linux Foundation.
● Objective of the project is:
○ To advance cross-industry collaboration by developing blockchains and distributed ledgers.
○ To offer better reliability and performance as compared to the cryptocurrencies.
○ To support global business transactions by major technological, financial and supply chain
companies.
● Currently, hyperledger hosts the following projects:
○ Hyperledger sawtooth
○ Hyperledger Iroha
○ Hyperledger Fabric
○ Hyperledger Burrow
Need and Motivation
● Blockchain is known for its decentralized operations and global consensus.
● This make it suitable for a number of applications.
● However, cryptocurrencies implementing blockchains do not offer a customised environment and
therefore cannot be easily tailored for different business needs.
● Due to their public nature, they are not the a good platform for the financial sector because these
sectors have “Data Protection Law”.
● Moreover, they do not meet the privacy standards required by the users.
● Lastly, because the current platforms deal with their own cryptocurrencies, it leads to
complications in certain countries.
Participants in Hyperledger Blockchain Network
Source: https://www.edureka.co/blog/hyperledger-fabric/
What does Hyperledger Offer?
● Permissioned Membership.
● Performance, scalability and level of trust.
● Data on a need-to-know basis.
● Rich queries and Distributed Hyperledger.
● Modular architecture supporting plug-in components.
● Protection of digital keys and sensitive data.
Introduction to Hyperledger Fabric
● Hyperledger fabric provides a blockchain framework to the private enterprises to develop the
blockchain based products, solutions and components.
● Hyperledger Fabric is:
○ Modular
○ Scalable
○ Secure
○ Permissioned membership Blockchain
● It acts as a container to hold the smart contracts, also known as “chaincode” which holds the
business logic.
● Hyperledger Fabric was initiated by Digital Asset and IBM, and has now emerged as a collaborative
cross-industry venture which is currently hosted by the Linux Foundation.
Type of participants in the network
○
○
○
Hyperledger Fabric Architecture
Source: https://vitalflux.com/quick-glance-at-hyperledger-fabric-architecture/
●
●
●
●
●
●
●
Continued….
●
●
●
●
Benefits of using Hyperledger Fabric
●
●
●
●
Introduction to Hyperledger Composer
●
●
●
●
●
Components of Hyperledger Composer
Business Network Concept
●
●
○
○
○
●
○
■
○
■
○
■
Some of the key components
●
○
○
●
○
○
●
○
○
○
Continued….
●
○
○
●
○
○
Steps to create Hyperledger Composer.
Benefits of Hyperledger Composer
●
●
●
●
Demo Application
Diamond Supply Chain
Scenario
➢
○
➢
○
Manufacturer Distributor Retailer
Transaction 1 Transaction 2
Assumptions
➢
Carat Price ($)
0- 0.5 1500
0.5- 0.75 3000
0.75- 0.9 4800
0.9-1.0 6000
1.0-2.0 25000
2.0-3.0 32000
Assumptions
➢
➢
➢
➢
Business Logic
ACL
Capabilities Manufacturer Distributor Retailer
Create Asset Yes No No
View Transactions Own Own Own
Initiate Transaction Yes (with
Distributor)
Yes (with Retailer) No
View Asset Self-owned Self-owned Self-owned
References
● Andreas M. Antonopoulos. “Mastering Bitcoin”.
● https://www.youtube.com/watch?v=RPP2f_Fn8iQ
● https://www.tutorialspoint.com/cryptography/public_key_encryption.htm
● http://searchsecurity.techtarget.com/definition/digital-signature
● https://www.bitcoinmining.com/#wipow
● https://samsclass.info/141/proj/BitDiff.htm
● https://www.coursera.org/learn/cryptocurrency/lecture/0htpQ/the-task-of-bitcoin-miners
● https://www.investopedia.com/terms/h/hard-fork.asp
● https://en.wikipedia.org/wiki/CAP_theorem#History
● http://paulkernfeld.com/2016/01/15/bitcoin-cap-theorem.html
● http://llimllib.github.io/bloomfilter-tutorial/
● https://brilliant.org/wiki/bloom-filter/
Continued….
● https://en.bitcoin.it/wiki/Hardware_wallet#KeepKey:_Your_Private_Bitcoin_Vault
● https://en.wikipedia.org/wiki/Ethereum#Comparison_to_bitcoin
● https://bitcoin.org/en/secure-your-wallet
● https://freedomnode.com/blog/70/bitcoin-best-practices-12-things-to-do-and-don-t-to-survive-in-the-
bitcoin-world
● https://decentralize.today/a-new-attack-vector-to-deanonymize-bitcoin-users-9c6dc433d4b6
● http://www.livebitcoinnews.com/bitconduite-new-simple-tool-deanonymizing-bitcoins-transactions/
● https://themerkle.com/bitfury-group-de-anonymizes-over-15-of-the-bitcoin-network-with-new-blockch
ain-analysis-tool/
● https://medium.com/@homakov/stop-calling-bitcoin-decentralized-cb703d69dc27
● https://en.bitcoinwiki.org/wiki/Bitcoin_weaknesses#Sybil_attackhttps://en.bitcoinwiki.org/wiki/Bitcoin_
weaknesses#Sybil_attack
● http://culubas.blogspot.in/2011/05/timejacking-bitcoin_802.html

Weitere ähnliche Inhalte

Was ist angesagt?

Basics of Blockchain Technology
Basics of Blockchain TechnologyBasics of Blockchain Technology
Basics of Blockchain TechnologyNasir Bhutta
 
Blockchain data structures and fundamental
Blockchain data structures and fundamentalBlockchain data structures and fundamental
Blockchain data structures and fundamentalCodium Club
 
Introduction to Cryptocurrency (Bitcoin)
Introduction to Cryptocurrency (Bitcoin)Introduction to Cryptocurrency (Bitcoin)
Introduction to Cryptocurrency (Bitcoin)Kashif Khans
 
The Blockchain - The Technology behind Bitcoin
The Blockchain - The Technology behind Bitcoin The Blockchain - The Technology behind Bitcoin
The Blockchain - The Technology behind Bitcoin Jérôme Kehrli
 
Ethereum in a nutshell
Ethereum in a nutshellEthereum in a nutshell
Ethereum in a nutshellDaniel Chan
 
Multi-Signature Crypto-Wallets: Nakov at Blockchain Berlin 2018
Multi-Signature Crypto-Wallets: Nakov at Blockchain Berlin 2018Multi-Signature Crypto-Wallets: Nakov at Blockchain Berlin 2018
Multi-Signature Crypto-Wallets: Nakov at Blockchain Berlin 2018Svetlin Nakov
 
Building Apps with Ethereum Smart Contract
Building Apps with Ethereum Smart ContractBuilding Apps with Ethereum Smart Contract
Building Apps with Ethereum Smart ContractVaideeswaran Sethuraman
 
Bootstrapping in Compiler
Bootstrapping in CompilerBootstrapping in Compiler
Bootstrapping in CompilerAkhil Kaushik
 
Basic introduction in blockchain, smart contracts, permissioned ledgers
Basic introduction in blockchain, smart contracts, permissioned ledgersBasic introduction in blockchain, smart contracts, permissioned ledgers
Basic introduction in blockchain, smart contracts, permissioned ledgersKoen Vingerhoets
 
Introduction to bitcoin
Introduction to bitcoinIntroduction to bitcoin
Introduction to bitcoinWolf McNally
 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain TechnologyPalakGulati10
 

Was ist angesagt? (20)

Basics of Blockchain Technology
Basics of Blockchain TechnologyBasics of Blockchain Technology
Basics of Blockchain Technology
 
Strings in c++
Strings in c++Strings in c++
Strings in c++
 
Blockchain data structures and fundamental
Blockchain data structures and fundamentalBlockchain data structures and fundamental
Blockchain data structures and fundamental
 
Introduction to Cryptocurrency (Bitcoin)
Introduction to Cryptocurrency (Bitcoin)Introduction to Cryptocurrency (Bitcoin)
Introduction to Cryptocurrency (Bitcoin)
 
Ethereum
EthereumEthereum
Ethereum
 
Smart contracts
Smart contractsSmart contracts
Smart contracts
 
Cryptography
CryptographyCryptography
Cryptography
 
The Blockchain - The Technology behind Bitcoin
The Blockchain - The Technology behind Bitcoin The Blockchain - The Technology behind Bitcoin
The Blockchain - The Technology behind Bitcoin
 
Ethereum in a nutshell
Ethereum in a nutshellEthereum in a nutshell
Ethereum in a nutshell
 
Introduction to Cryptography
Introduction to CryptographyIntroduction to Cryptography
Introduction to Cryptography
 
Multi-Signature Crypto-Wallets: Nakov at Blockchain Berlin 2018
Multi-Signature Crypto-Wallets: Nakov at Blockchain Berlin 2018Multi-Signature Crypto-Wallets: Nakov at Blockchain Berlin 2018
Multi-Signature Crypto-Wallets: Nakov at Blockchain Berlin 2018
 
Building Apps with Ethereum Smart Contract
Building Apps with Ethereum Smart ContractBuilding Apps with Ethereum Smart Contract
Building Apps with Ethereum Smart Contract
 
Bootstrapping in Compiler
Bootstrapping in CompilerBootstrapping in Compiler
Bootstrapping in Compiler
 
Basic introduction in blockchain, smart contracts, permissioned ledgers
Basic introduction in blockchain, smart contracts, permissioned ledgersBasic introduction in blockchain, smart contracts, permissioned ledgers
Basic introduction in blockchain, smart contracts, permissioned ledgers
 
Introduction to bitcoin
Introduction to bitcoinIntroduction to bitcoin
Introduction to bitcoin
 
Hash crypto
Hash cryptoHash crypto
Hash crypto
 
Cryptography and Network security # Lecture 4
Cryptography and Network security # Lecture 4Cryptography and Network security # Lecture 4
Cryptography and Network security # Lecture 4
 
Blockchain
BlockchainBlockchain
Blockchain
 
Bitcoin technology
Bitcoin technologyBitcoin technology
Bitcoin technology
 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain Technology
 

Ähnlich wie Tmc mastering bitcoins ppt

Blockchain and Bitcoin
Blockchain and BitcoinBlockchain and Bitcoin
Blockchain and BitcoinHugo Rodrigues
 
Bitcoins: Application of blockchain technology
Bitcoins: Application of blockchain technologyBitcoins: Application of blockchain technology
Bitcoins: Application of blockchain technologyShiv Sahni
 
Total privacy of transactions, Mimblewimble and Grin
Total privacy of transactions, Mimblewimble and GrinTotal privacy of transactions, Mimblewimble and Grin
Total privacy of transactions, Mimblewimble and GrinEugene Pavlenko
 
Bitcoin practical and useful
Bitcoin practical and usefulBitcoin practical and useful
Bitcoin practical and usefulPrivKey, LLC
 
Blockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOsBlockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOsBogdan Fiedur
 
SMART Seminar Series: "Blockchain and its Applications". Presented by Prof Wi...
SMART Seminar Series: "Blockchain and its Applications". Presented by Prof Wi...SMART Seminar Series: "Blockchain and its Applications". Presented by Prof Wi...
SMART Seminar Series: "Blockchain and its Applications". Presented by Prof Wi...SMART Infrastructure Facility
 
Understanding hd wallets design and implementation
Understanding hd wallets  design and implementationUnderstanding hd wallets  design and implementation
Understanding hd wallets design and implementationArcBlock
 
Intro to Blockchain Slides
Intro to Blockchain SlidesIntro to Blockchain Slides
Intro to Blockchain SlidesShannon Wells
 
A Quick Start To Blockchain by Seval Capraz
A Quick Start To Blockchain by Seval CaprazA Quick Start To Blockchain by Seval Capraz
A Quick Start To Blockchain by Seval CaprazSeval Çapraz
 

Ähnlich wie Tmc mastering bitcoins ppt (20)

Blockchain and Bitcoin
Blockchain and BitcoinBlockchain and Bitcoin
Blockchain and Bitcoin
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Bitcoins: Application of blockchain technology
Bitcoins: Application of blockchain technologyBitcoins: Application of blockchain technology
Bitcoins: Application of blockchain technology
 
Block chain introduction
Block chain introductionBlock chain introduction
Block chain introduction
 
Total privacy of transactions, Mimblewimble and Grin
Total privacy of transactions, Mimblewimble and GrinTotal privacy of transactions, Mimblewimble and Grin
Total privacy of transactions, Mimblewimble and Grin
 
Bitcoin Internal
Bitcoin InternalBitcoin Internal
Bitcoin Internal
 
Bitcoin p2p money
Bitcoin p2p moneyBitcoin p2p money
Bitcoin p2p money
 
Bitcoin practical and useful
Bitcoin practical and usefulBitcoin practical and useful
Bitcoin practical and useful
 
Crypto
CryptoCrypto
Crypto
 
Intro to blockchain
Intro to blockchainIntro to blockchain
Intro to blockchain
 
Brief Introduction to Blockchain Security
Brief Introduction to Blockchain SecurityBrief Introduction to Blockchain Security
Brief Introduction to Blockchain Security
 
Blockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOsBlockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOs
 
SMART Seminar Series: "Blockchain and its Applications". Presented by Prof Wi...
SMART Seminar Series: "Blockchain and its Applications". Presented by Prof Wi...SMART Seminar Series: "Blockchain and its Applications". Presented by Prof Wi...
SMART Seminar Series: "Blockchain and its Applications". Presented by Prof Wi...
 
Understanding hd wallets design and implementation
Understanding hd wallets  design and implementationUnderstanding hd wallets  design and implementation
Understanding hd wallets design and implementation
 
Intro to Blockchain Slides
Intro to Blockchain SlidesIntro to Blockchain Slides
Intro to Blockchain Slides
 
Blockchain introduction
Blockchain introductionBlockchain introduction
Blockchain introduction
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
A Quick Start To Blockchain by Seval Capraz
A Quick Start To Blockchain by Seval CaprazA Quick Start To Blockchain by Seval Capraz
A Quick Start To Blockchain by Seval Capraz
 

Kürzlich hochgeladen

Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445ruhi
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)Delhi Call girls
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...Neha Pandey
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...tanu pandey
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$kojalkojal131
 
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.CarlotaBedoya1
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Onlineanilsa9823
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 

Kürzlich hochgeladen (20)

Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
 
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 

Tmc mastering bitcoins ppt

  • 1. Mastering Bitcoins Khushboo Chitre (MT17020) Urvashi Choudhary (MT17062)
  • 2. Contents ➔ Introduction. ➔ Keys, Addresses and Wallets. ➔ Transactions. ➔ The Blockchain. ➔ The Bitcoin Network. ➔ Mining and Consensus. ➔ Miscellaneous Topics. ➔ Bitcoin Weakness. ➔ Bitcoin Security. ➔ Hyperledger.
  • 3. INTRODUCTION TOPICS COVERED ➔ Blockchain. ➔ Cryptocurrency. ➔ Bitcoin. ➔ Bitcoin Elements, functioning and cryptography.
  • 4. Blockchain ● It is a continuously growing list of records known as “blocks”. ● Each block is linked to the other by storing the hash of the other block. ● Linked and secured using cryptography. ● First described by Stuart Haber and W. Scott Stornetta in 1991. ● Conceptualised by Satoshi Nakamoto in 2008. ● Bitcoin cryptocurrency was the first implementation of the blockchain technology. ● Other applications: Smart Contracts, Identity Records of people etc... Contains the Hash of previous block H( ) Block n H( ) Block n-1 …… ….. H( ) Block 1
  • 5. Properties of Blockchain ● Immutable Data. ● Decentralized. ● Accessible. ● Time Stamping. ● Tamper Resistance. ● Cryptography.
  • 6. Cryptocurrency ● Digital asset ● Medium of exchange ● Uses cryptography ● Subset of digital currencies ● Uses decentralized control
  • 7. Introduction to Bitcoin ● Bitcoin is the first decentralized cryptocurrency. ● It was developed by Satoshi Nakamoto in 2009. ● It holds some specific value and therefore allows us to perform transactions. ● Its protocol stack is available as an open source software and can run on a number of devices. ● They are completely virtual with no physical existence.
  • 8. Continued…. ● Bitcoin consists of: ○ A decentralized peer-to-peer network (bitcoin protocol). ○ Public Transaction ledger (the blockchain). ○ Set of rules for currency issuance (consensus rules). ○ Mechanism for reaching global decentralized consensus (Proof-of-work).
  • 9. History of Bitcoin. 2008 In November 2008, a paper named ”Bitcoin: A Peer-to-Peer Electronic Cash System” was published by Satoshi Nakamoto. 2010 Nakamoto handed the responsibility of the Bitcoin Core to a group of volunteers. 2008 In August 2008, domain name “bitcoin.org” was registered. 2009 First implementation by Satoshi Nakamoto was released. 2017 In August 2017, first hard-forked version named as Bitcoin Cash was created. 2017 In November 2017, another hard-forked version named as Bitcoin Gold was created.
  • 10. Bitcoin elements Peer-to-peer network. Miners Mining Consensus Transaction Mining Reward Keys 1bwhw2b1kj2jk1howb1fkjwbu2bsjkbjei3 rfjrn.. Addresses Digital Public Ledger
  • 11. How does Bitcoin Function A digital wallet generates transactions and broadcasts it to the network Nodes in the network verify a transaction 1 2
  • 12. H( ) Block Miner creates a candidate block by including all the valid transactions, adds the hash of the recent block to this block. Solves a hard mathematical problem known as proof of work to prove that enough resources have been used in verifying these transactions. The miner who computes this mathematical problem first wins this global election and gets the miner reward. 3 4 5
  • 13. The block is added to the blockchain where it can be verified by other nodes. As the number of blocks are added on top of it, the trust on that block increases. When a miner wins, he gets a reward and new coins are generated. When a block is mined, the block is broadcasted into the network and this indicates that this block has been mined and the miners start mining another block. 6 7 8
  • 14. Cryptography in Bitcoin Properties of an Ideal Hash function: 1. Collision resistance: Given two inputs a and b, then H(a)!=H(b). 2. Preimage resistance: Given hash h(x), then it should be difficult to find out x. 3. Second Preimage resistance: Given a message ‘a’, then it should be hard to find out another message b with h(a)=h(b) and a!=b. Examples of Hash functions: MD-4, MD-5, SHA-1, SHA-2 etc. Variable size input message Hash Function Fixed Size output HASH FUNCTIONS
  • 15. HASH FUNCTIONS CONTINUED... The two main hash functions used by Bitcoin are: ● SHA-256 (returns 256 bit unsigned integers) ● RIPEMD-160 (returns 160 bit unsigned integers)
  • 16. ● Cryptographic system which uses pair of keys: ○ Public key, which is disclosed to everyone and ensures the authenticity of the receiver. ○ Private key, which is a secret key which is known only to the owner and ensures that only the owner can decrypt the message. ● Private and public keys are mathematically related. ● Computationally infeasible to guess private key given a public key. ● Bitcoin uses “Elliptic Curve Multiplication” as the basis for public key cryptography. Public key for encryptionPrivate key for decryption PUBLIC KEY CRYPTOGRAPHY
  • 17. Elliptic Curve Cryptography ● It is a public key cryptography based on elliptic curves. ● Bitcoin uses a specific elliptic curve and set of mathematical constants, as defined in a standard called secp256k1. ● y 2 = (x 3 + 7)over(Fp), Where Fp is a very large prime number. ● If P and Q are two points on the curve, R= P+Q is also on the curve. ○ The ‘+’ operation is different from the mathematical operation and its graphical representation is shown in the image. ○ In case P=Q, the line becomes a tangent and intersects the curve at exactly only more position. Img source: https://www.google.co.in/search?q=elliptic+curve+cryptography+picture&source=lnms&tbm=isch&sa=X&ved=0ahUKEwi7ovXR5tPaAhWLgI8KHdH5CL4Q_AUICygC&biw=1476&bih=756#imgrc=z2Qpr_i9-1PkJM:
  • 18. Generating private Keys ● ‘k’ is the private key. ● ‘G’ is the generator. ● The public key is generated by repeatedly finding points on the curve that satisfy K = k * G. ● The point ‘G’ is specified in the secp256k1. ● It is extremely difficult to get ‘k’ from ‘K’. Image source: Reprinted from “Mastering Bitcoin: Unlocking Digital Cryptocurrencies”
  • 19. DIGITAL SIGNATURES ● Mathematical technique which is used to validate the authenticity and integrity of the message. ● Developed by Whitfield Diffie and Martin Hellman in 1976. ● Unique to each signer. ● These are based on Public key cryptography as it uses public/private key pair. ● Digital signature provides authenticity, integrity and non-repudiation of the communication. ● Before digitally signing the document, it is first hashed using a hashing algorithm. ● Hash converts the message to a fixed length hash which saves the time while encrypting the message.
  • 20. Alice Computes hash AH78….0000…. Sign using Alice’s Private key AH78….0000…. AH78….0000 …. Digitally signed by Alice AH78….0000 …. Sent to Bob Decrypt using Alice's public key Compute hash of the document AH78….0000…. AH78….0000…. If they are same BOB can verify that the document was digitally signed by Alice.
  • 21. KEYS, ADDRESSES AND WALLETS TOPICS COVERED ➔ Bitcoin Addresses. ➔ Advanced Keys and Addresses. ➔ Wallets.
  • 22. Establishing Ownership BitcoinWallets Digital Keys Bitcoin Addresses Ownership Ownership is established through: ● Digital Keys ○ Keys represents the private keys associated with the user. ● Bitcoin Address ○ Addresses provide a unique pseudonymous identity. ● Bitcoin Wallet ○ Wallets store the keys and are like a small database or file.
  • 23. Bitcoin Private and Public Keys ● In case of Bitcoin, the public key is the Bitcoin address. ● But, not all bitcoin addresses are public keys, they also represent other beneficiaries. ● Private key is used to generate the public key. Private Key A Number Picked at random Public Key Derived from Private key Bitcoin Address Lorem ipsum dolor sit amet, consectetur adipiscing. One way cryptographic function One way hash function
  • 24. Private Keys ● It is simply a number picked at random. ● Private key is used to create signatures that are used to spend the coins, by proving their ownership. ● Private key must be secure at all times and must be backed up. ● The bitcoin software depends on the operating systems random number generator and produces 256 bit key.
  • 25. Public Key ● The public key is calculated from the private key using elliptic curve multiplication, which is irreversible: K = k * G where k is the private key, G is a constant point called the Generator Point and K is the resulting public key.
  • 26. Bitcoin Addresses ● A bitcoin address is a string of alphanumeric characters. ● It is derived from the public key. ● It begins with ‘1’. ● A bitcoin address can represensent a person, a company or even a script. ● The bitcoin address is presented in a base 58 number system to the user which helps in the representation of larger numbers in a very compact way.
  • 27. Wallets ● Wallets act as a container for private keys. ● It can be stored in the form of simple database or structured files. ● There are two ways of generating a wallet: ○ Deterministic ■ New private key is generated from the hash of previously generated private key. ■ All the keys are sequentially linked together. ■ The first key is known as the seed or master key. ○ Non-deterministic ■ Private key is a number which is randomly generated. ■ It is simply a collection of randomly generated private keys.
  • 28. Type of Bitcoin wallets (Based on Platform). ● Desktop wallet. ○ Wallets which runs on desktop. ● Mobile wallet. ○ Wallet which can be used on an Android or Apple iOS phone. ○ Simple and easy to use. ● Web wallet. ○ Accessed through web browser. ○ Stores the user’s wallet in a server owned by a third party. ● Hardware wallet. ○ Special type of bitcoin wallet which stores the private keys of the user in secure hardware device. ● Paper wallet. ○ Also known as cold storage, can be stored in printed form for long term storage.
  • 29. TRANSACTIONS TOPICS COVERED ➔ Bitcoin transaction. ➔ Types of Transactions. ➔ Input and output. ➔ Locking and unlocking scripts. ➔ Adding transaction to the ledger. ➔ Verification and consensus.
  • 30. Bitcoin Transaction ● A Transaction has one or more inputs. ● Can have multiple outputs. ● The inputs and outputs do not necessarily add up. A Transaction is like an entry in the double entry book keeping ledger. It basically tells the network that the owner of the bitcoin has authorised the transfer of these bitcoins to another owner. Input Amount Input Amount Transaction Transaction fee Output Amount Output Amount
  • 31. Bitcoin Transaction Input An input is where the coin value is coming from, usually a previous transaction output. Output A transaction output assigns a new owner to the value by associating it with a key. It imposes a requirement for a signature for the funds to be redeemed. This forms a chain of ownership
  • 32. Alice Pays to Bob Previous Transaction Locked against Alice’s key Alice signs and uses the bitcoins she owned. Transaction Now, Bob needs to provide the signature to be able to use it.
  • 33. Types of Transactions Input signed by Alice Transaction Output Amount to Alice Output Amount to Bob MOST COMMON TYPE OF TRANSACTION ● Payment is made from one address to another. ● Some amount given to new address, change goes back to the owner. ● Has one input and two outputs.
  • 34. Types of Transactions Input 1 Transaction Output AGGREGATING TRANSACTIONS ● Aggregate several inputs to one single input. ● Just like getting a pile of notes exchanged for a single larger note. ● Has multiple inputs and one output. Input 2 Input 3
  • 35. Types of Transactions Output 1 TransactionInput DISTRIBUTIVE TRANSACTIONS ● Distributes input into many outputs. ● Depicts a scenario of distributing funds in commercial entities. ● Has single input and multiple outputs. Input 1 Output 1 Output 1
  • 36. Constructing a Transaction ● Transactions are constructed by the bitcoin wallets. ● The construction can be done offline, even when not connected to the bitcoin network. GETTING THE CORRECT INPUT ● The wallet has to find the unspent bitcoin transactions that are locked with wallets own key. ● A full index client has all the transaction, but its too heavy. ● Wallets usually use lightweight clients which query the bitcoin network to get the output. ● The response is reference to an unspent transaction.
  • 37. CREATING OUTPUTS ● The transaction is created in the form of a script which is locked by the key. ● When Alice pays Bob, the script creates an encumbrance on the value and can only be used by Bob, if her provides the key to unlock it. ● Since, only Bob has the key corresponding to the address, only he can unlock it and spend it. Transaction Visualization 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2 The resulting transactions is sent to the neighbouring nodes.
  • 38. Bitcoin Script ● Not Turing-complete language used to perform bitcoin transactions. ● A script is attached to every transaction. ● The script consists of instructions of how the bitcoins can be used by the user receiving them. ● A transaction is valid if the value present on the top of the stack is True (non-zero) when the script ends.
  • 39. Concept of Locking and Unlocking script Locking Script Unlocking Script ● Locking Script is present in the output. ● Locking script consists of the Public/Bitcoin key which will generate the destination address. ● ScriptPub key ● Unlocking script is embedded in the input which consists of the digital signature generated by the sender to prove his/her identity. ● Also known as scriptSig.
  • 40. Continued…. ● Unlocking script is executed first using the stack. ● If the script is executed without error i.e. no leftovers in the stack, then the main stack is copied. ● The locking script is executed. ● If the result of the locking script along with the data of the unlocking script which was copied on the stack is True, then the bitcoins are valid and can be spent.
  • 41. Why Script is not Turing-Complete? ● No loops or complex flow control capabilities ensures that the language is not Turing-Complete. ● In case of Bitcoin, the program needs to be terminated quickly with an answer that whether the coins can be moved or not. ● Quick termination of program guarantees that DoS (Denial of Service) attack cannot be performed.
  • 42. Adding Transaction to the Ledger TRANSACTION PROPAGATION ● In the bitcoin network, nodes are connected to each other. ● A new unseen transaction is immediately forwarded to other nodes in the network. ● Within a few seconds, a transaction reaches major part of the network. BLOCK CREATION ● New transactions get added to the temporary pool of unverified transaction. ● Miners add unverified transactions to the pool and calculate a mathematical problem. SOLVING THE MATHEMATICAL PROBLEM ● Once a block is ready, miners solve a mathematical problem known as the proof of work to prove the validity of the new block. AS MORE BLOCKS ARE ADDED ● New blocks added on top of the mined block add more trust on the block. 1 2 3 4
  • 43. The decentralized consensus emerges from the following four processes. ● Independent verification of transactions by the full nodes. ● Independent aggregation of new blocks, by mining nodes couples with demonstration of proof of work algorithm. ● Independent verification of each block before assembly into the chain. ● Independent selection of the chain with the most cumulative computation by the miner.
  • 44. Independent Verification of Transactions ● Each nodes verifies a transaction against a long list of criteria. ○ Transaction syntax and data structures are checked. ○ Input output lists must not be empty. ○ Size of the transaction should be correct. ○ Matching transaction must exist in the pool. ○ Sum of input values must be greater than the output values. ○ And many more … ● These rules can be modified to defend against attacks or to include more transactions.
  • 45. Aggregation of Transactions and Mining ● After verification of the transaction, transactions are added to the memory pool or the mining pool. ● Transactions are added according to new block on the basis of priority, this ensures old transactions are favoured after some duration. ● The first transaction added to the block is known as generation or coinbase transaction which contains the reward for mining effort. 100djnd2nx3e3bdhbewkfjbewkjfbxljbfjrbkjxe Xv3hjev32kxedxjbwkjbwkjbkjbkjcbkwjbq w3 Vx3hjrv23hxkr2brebqjwgrqixhk2nroi3hxriq3 Xvj3rv2j3rxh2dnjqxkbkj3xnriuh croi4cr3rh2 Vxr2k3rx33rjknc v 4iru4voijccbjbjbxjkbrkqxh Create a new block Verified Transaction Transaction Pool Candidate Block Mining the block
  • 46. Validating a new block ● The newly created block is propagated to the network. ● The nodes validates the block by performing some checks, such as: ○ Block data structure is a valid one. ○ The hash of the block header is less than the target value of the difficulty. ○ The block size is less than the acceptable size of the blocks. ○ The first transaction is the coinbase transaction. ● As soon as all the nodes validates the block, it gets added to the blockchain.
  • 47. THE BLOCKCHAIN TOPICS COVERED ➔ Blockchain. ➔ Structure of Blockchain. ➔ Block Header. ➔ The Genesis Block. ➔ Merkle Trees.
  • 48. Blockchain ● It is an ordered block of transactions. ● Each block points to its previous block, as it contains the SHA256 hash of its previous block. ● The previous block is also referred to as the parent block. ● A block can have only one parent block. ● But a parent block can have multiple children block. ● The very first block of the blockchain is known as Genesis block.
  • 49. Structure of a Block Table 7-1, The Structure of a Block. Source: Chapter 7, Mastering Bitcoin. Block Header - Version - Parent’s hash - Merkle Root - Timestamp - Difficulty target - Nonce
  • 50. Block Header Table 7-2, The Structure of the block header. Source: Chapter 7, Mastering Bitcoin.
  • 51. Block Identifiers - Block header hash - Unique SHA-256 hash generated for every block. - Block height - Position of a block in the blockchain.
  • 52. The Genesis Block ● The first block in every blockchain is fixed. ● This block is known as the genesis block. ● Genesis block is statically encoded in the bitcoin client software. ● The hash of this block is the following : “000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f ”.
  • 53. Merkle Trees ● Also known as Binary Hash tree. ● It is used in the blocks to store the summary of all the transactions present in the blocks. ● The block header stores the root of the Merkle tree.
  • 54. Continued….. ● The transactions are present in the leaf nodes of the Merkle tree. ● These transactions are stored in the hashed form. ● SHA256 is used to hash the nodes and the hashing is performed twice. ● The parent node consists of the hash of its child nodes. ● If there are odd number of transactions in the block, then the last transaction is duplicated in order to make the number of transactions even. ● To search for a specific transaction, only log2 N hashes needs to be produced where N is the number of transactions in a block. Fig. 7.2, Calculating the nodes in a Merkle Tree. Source: Chapter 7, Mastering Bitcoin.
  • 55. How Merkle Tree ensures the Integrity of a block? ● Only the merkle root is stored in the header. ● It makes sure that the transactions are not modified. ● If any transaction is modified, the root will be modified which changes the block header and ultimately changes the block hash.
  • 56. The Bitcoin Network ➔ Peer-to-Peer Network Architecture. ➔ Bitcoin Network. ➔ Bitcoin Node. ➔ Full Node. ➔ Simple Payment Verification Nodes. ➔ Simple Payment Verification . ➔ Bloom Filters.
  • 57. Peer-to-Peer Network Architecture ● Bitcoin follows Peer-to-Peer Network Architecture. ● Peer-to-Peer Network Architecture is also known as P2P. ● In P2P architecture, all the participating nodes in the network are treated equally. ● All the nodes are peers to each other. ● All the nodes are responsible in providing the same amount of services to the network. ● These nodes are connected in the form of mesh topology. ● The network is not centralized.
  • 58. The Bitcoin network represents the collection of nodes which are using the P2P Network Architecture. The Bitcoin Network
  • 59. Bitcoin Node ● The Bitcoin nodes are treated equally in the Network. ● But the nodes can play different roles in the Bitcoin Network. ● The Bitcoin node is a collection of: ○ Routing (Network node). ○ The Blockchain database. ○ Miner. ○ Wallet services.
  • 60. Full Node ● Full node consists of all the four functions which are mentioned in the previous slide. ● It also consists of the complete copy of the blockchain with all the transactions. ● Full nodes can perform the independent verification of the transactions. ● It waits for the updates from the network about the new transactions, verifies them and adds it to the local copy of the blockchain maintained by the full nodes. ● Bitcoin Core is the most popular implementation of the Full node clients.
  • 61. Simple Payment Verification (SPV) Nodes ● A node which only consists of the Wallet and the Network node. ● It maintains only a subset of the blockchain. ● These nodes uses a method for the verification of the transactions known as Simple Payment Verification. ● These are also known as Light-weight Clients. ● These nodes does not hold the entire block instead it holds only the header of each block.
  • 62. Simple Payment Verification ● It is used by some lightweight power-space constrained devices, which cannot download the entire blockchain. ● SPV nodes verify transactions by relying on the peers to provide partial views of relevant parts of the blockchain ondemand. What is it? This technique verifies whether a transaction has been included in the blockchain or not, without actually downloading the entire blockchain.
  • 63. Continued…. ● An SPV node needs to download the copy of the block header of the longest proof of work chain. ● Then the transactions are verified by referencing to their depth in the blockchain instead of their height. ● SPV nodes establish a link between the transaction and the block that contains it using a merkle path.
  • 64. Some important points: - SPV cannot be persuaded that a transaction exists when it does not. - An SPV node can definitely prove that a transaction exists but cannot verify that transaction, such as a double-spend of the same UTXO, doesn’t exist because it doesn’t have a record of all transactions. This type of attack can be used as a Denial-of-Service attack or as a double-spending attack against SPV nodes. - To defend against this, an SPV node needs to connect randomly to several nodes, to increase the probability that it is in contact with at least one honest node.
  • 65. Risk involved in SPV ● SPV nodes checks whether a transaction is present in the blockchain or not by querying about the specific transaction to all of its peers. ● This involves privacy issue, as this can reveal the address of its wallet. To overcome the Privacy issue, a feature known as Bloom Filters was introduced.
  • 66. Bloom Filters ● Probabilistic data structure because it definitely tells that the element is not present or may be present in the set. ● False positive results are possible due to collision property of the hashing function. ● It is possible that two values may generate the same hash and one of the value may not be present in the set but the filter gives the result that the element may be present in the set. What is it? Bloom filter is a space efficient probabilistic data structure, that is used to test whether an element is a member of a set.
  • 67. How are bloom filters used by SPV nodes? ● SPV nodes ask their peers about a specific pattern which matches the needed transaction without actually disclosing the entire public address. ● SPV node initializes the bloom filter as empty and it does not matches any pattern in this state. ● SPV node will then make a list of all the address present in its wallet. ● Creates search pattern matching of the transactions to each address.
  • 68. Continued…. ● To check whether a transaction is present in the blockchain or not following steps takes place: ○ Generate hash of the transaction. ○ Check the pattern of the block headers which are created after the wallet has been generated. ○ If the pattern of the transaction matches any of the pattern of the block headers, then the filter says that the transaction may be present in the block. ○ Else it returns a result saying the transaction is not present in the block.
  • 69. Example of Bloom Filter ● Let the bit vector be as the following: ● To add an element to the Bloom filter, the value is hashed few times and the value of the bit vector is set to 1 depending on the hashed value. ● When the input string is “hello”, the bit vector changes to the following: ● To test the membership of the value, hash the value using same hash function and check whether the pattern matches the bit vector or not.
  • 70. Mathematics of Bloom Filter ● Let k be the number of hash functions, m be the total number of bits in the vector and n be the number of items in the set. ● Probability that certain bit will still be 0 after 1 insertion= (1-1/m)k . ● Then, after n insertions the probability will be (1-1/m)kn . ● So, the probability of false positives= (1-(1-1/m)kn )k .
  • 71. MINING AND CONSENSUS TOPICS COVERED ➔ Mining. ➔ Proof-of-Work. ➔ Difficulty.
  • 72. So Far ● Wallets ● Transactions ● Propagated to network ● Candidate block created by miner Let’s start mining!
  • 73. What is mining? ● Hash pattern generated cannot be determined in advance. ● A pattern cannot be created that will create a particular hash value. ● This ensures that the hash can be generated only by modifying the value in the block and try again and again, until the hash matches the target value by chance. The process of hashing the block repeatedly, after changing a parameter in the block so that the hash obtained matches a specific pattern or a target value.
  • 74. Bitcoin Mining Mining serves two purposes: ● New coins are created. It is like printing of new notes. The amount of coins created per block are fixed and diminish over time. ● Ensures a block is confirmed only when enough computational power has been devoted to it. Proof of Work Mining is the process of creating a new block, and solving a computationally intensive mathematical problem. This mathematical problem is known as the “Proof of Work”.
  • 75. Mining Diagrammatically Block Data Transaction Header Compute Hash of the block header Matches target hash pattern Block Mined Yes No Modify the content of the block
  • 76. Nonce How is block modified to get different hash values? ● The block header contains a file called nonce. ● This nonce is like a counter and after every iteration of the block is not mined, it is incremented. ● Even a small change creates a completely different hash, therefore while mining only the nonce value is modified.
  • 77. Hashing while mining ● The hash function used is SHA-256. ● Only the header of the block is hashed. ● Since the merkle root is included in the hash it is not necessary to calculate hash of the entire block.
  • 78. Proof of Work Block ------------------------------------ ------------------------------------ ------------------------------------ ------------------------------------ Nonce String Choose a Nonce String Compute Hash If Hash <Target Add block to block chain If Hash > Target ● The probability of a miner of finding the correct solution/hash depends on the computational power of the resources he/she has. ● More the computational power, more strings can be generated and hence the probability of finding the solution increases. ● When the Miner finds valid solution, the solution is broadcasted to the entire network. ● The other nodes validates the solution and the block is added to the blockchain. ● The Miner gets the reward and transaction fee.
  • 79. Mining Difficulty ● Bitcoin difficulty is adjusted every 2 weeks i.e. after generation of 2016 blocks. next_difficulty = previous_difficulty * 2-weeks /time to mine last 2016 blocks ● Difficulty depends on the number of nodes present in the Bitcoin network, as the number of nodes increases the difficulty increase i.e. the target value becomes much smaller.
  • 80. MISCELLANEOUS TOPICS TOPICS COVERED ➔ CAP Theorem. ➔ Multi-Signatures. ➔ Hardware Wallets. ➔ Ethereum. ➔ Ethereum vs Bitcoin. ➔ Litecoin. ➔ Litecoin vs Bitcoin. ➔ Hard-forking.
  • 81. CAP Theorem ● Proposed by Eric Brewer, (Symposium on Principles of Distributed Computing, 2000). ● Proven by Seth Gilbert and Nancy Lynch in 2002. Theorem It is impossible for a distributed data store to achieve more than two of the following properties simultaneously: Availability, Consistency and Partition Tolerance. Availability Consistency Partition Tolerance Every request receives a (non-error) response- without guarantee that it contains the most recent write. Every read receives the most recent write or an error. The system continues to operate despite an arbitrary number of messages being dropped(or delayed) by network between nodes.
  • 82. Fig(1): Pictorial representation of CAP theorem Source:https://www.google.co.in/search?client=ubuntu&channel=fs&dcr=0&biw=1853&bih=928&tbm=isch&sa=1&ei=zfCQWpLRO4mP8wX8hLaA Dw&q=cap+theorem&oq=cap+theorem&gs_l=psy-ab.3...48402.48402.0.48604.1.1.0.0.0.0.0.0..0.0....0...1c..64.psy-ab..1.0.0....0.Elq3o2_Ld-E#img rc=cUR_a47RWUvYtM
  • 83. CAP Theorem and Blockchain ● In case of distributed ledger, the CAP properties mean: ○ Availability ■ Network accepts transactions at any time. ○ Consistency ■ All nodes have the same ledger at the same time. ○ Partition Tolerance ■ Network is resistant to the node failure.
  • 84. Continued….. ● Only two properties can be picked. ● C A System: ○ Partition Tolerance sacrificed. ○ Bitcoin can only run on networks that can reliably deliver messages. ● C P System: ○ Availability sacrificed. ○ If there is a problem in connectivity, Bitcoin read write operations cannot be performed. ● A P System: ○ Consistency sacrifice. ○ We can send a transaction but it may or may not be received by other parties.
  • 85. Which CAP property is sacrificed by blockchain? ● Consistency is sacrificed. ● Because: ○ Availability and Partition tolerance are revenue generating properties. ○ Eventual consistency can be achieved by fixing transactions, in the case of blockchain with the help of consensus.
  • 86. Difference between strong consistency and eventual consistency. A Transaction Application Always consistent with the database. A Transaction Application Transactions are not guaranteed to be written onto the database. Queued, not written on to database right away. May or may not be consistent at this point. Consistently written on the database. Always Consistent.
  • 87. How is Eventual Consistency achieved in Bitcoin System? ● Eventual consistency states that the system eventually gets consistent after a specific amount of time. ● In the bitcoin system, whenever a new block is generated by the miner, miner adds the block into his/her copy of the blockchain and sends the block to other miners for the validation purpose. ● As soon as the miner gets some confirmations, the block is added to the global ledger after a specific amount of time. ● The average time taken by the bitcoin system to add a block to the blockchain is 10 minutes. ● So, in this way the Bitcoin system eventually becomes consistent.
  • 88. Consistency and Bitcoin system ● The Bitcoin system achieves eventual consistency and not the strong consistency. ● We can conclude that at a specific point of time, the bitcoin system becomes consistent, available and partition tolerant.
  • 89. Introduction to Multi Signatures ● Multi Signature refers to the requirement for a transaction to have two or more signatures before it can be executed. ● Also referred to as M-of-N transactions (Multisig). ● Some of the applications of Multisignature are: ○ 2-of-2: Husband and wife savings account, requires the signatures of both the account holders to perform the transactions. ○ 2-of-3: Parent’s saving account for the child, requires the signature of one of the parent along with the signature of the child. ● It is more secure as compared to the single signature transaction.
  • 90. Multi Signatures in Cryptocurrencies ● The first multisignature wallet was launched in August 2013 by BitGo. ● In 2011 and 2012, Bitcoin 1.5 protocol was introduced which uses multisignature transactions. ● Bitcoin uses 2-of-3 addresses which means that to perform a transaction 2 out of 3 signatures are enough. ● It requires multiple users to sign a transaction before it is broadcasted to the bitcoin network. ● The above point implies that it requires multiple private keys to authorize the transaction.
  • 91. Continued…. ● The required number of signatures is agreed at the start, once people agree to create the address. ● In layman terms, we can say that the wallet is now being shared with the multiple users. ● Multisignature in bitcoin is just a tuple of distinct user’s signatures. Additional Points - Standard transactions on bitcoin network are single signature transactions, however complex multisig transactions can be supported. - Some multisig bitcoin wallets are: Armory (Desktop Wallet), Electrum (Mobile/Desktop wallet), Copay (Mobile and Desktop wallet).
  • 92. Advantages of using Multi Signatures ● Adds additional layer of security for cryptocurrency transactions. ○ With 2-of-2 address, the two private keys can be kept on two different machines. ○ An attacker will now need two private keys in order to perform identity theft. ○ As the keys are kept on two different machines, it becomes difficult for an attacker to steal both the private keys. ● More flexible. ○ With 2-of-3 address, any two out of three keys are sufficient to authorize a transaction. ○ If the user losses any one of the three keys, then it is still possible for the user to use two keys and authorize the transaction.
  • 93. Hardware Wallets ● It is a special type of bitcoin wallet which stores the private keys of the user in secure hardware device. ● Major advantages are: ○ Stored in protected area of microcontrollers and are never sent out of the device in the form of plaintext. ○ Immune to computer viruses which steals information from the software wallets. ○ Generally, the software is open source which allows the user to validate the entire operation of the device. ○ The hardware device will confirm every transaction by the user before performing it.
  • 94. TREZOR- The Bitcoin safe ● It is a secure bitcoin storage. ● It generates private keys and stores them as well in a secure manner. ● As the keys are stored in a hardware device, it cannot be attacked by a malware. ● It can store unlimited keys. ● When the device is initialized, it generates a recovery seed. ● This recovery seed can be used if the device gets lost. ● All the data stored in the device can be retrieved in the another device using the seed. ● It prevents keylogging when a PIN or any sensitive information is entered.
  • 95. Ledger Nano- S ● Secure bitcoin hardware wallet. ● Can be connected to the computer through the USB. ● Consists of open source embedded bitcoin App. ● Built-in 4 digit security pin. ● USB connectivity. ● Generates a seed (12/18/24 words) to ensure easy recovery. ● Consists of small OLED display. ● Some other Hardware wallets such as Keep Key, Bitlox, Digital Bitbox etc.
  • 96. Ethereum ● Initially described by Vitalik Buterin in a white paper(2013). ● Ethereum is: ○ an open source, ○ public, ○ blockchain based distributed computing platform, ○ Operating system featuring smart contract (scripting) functionality. ● Formal development of the Ethereum software project began in early 2014 through a Swiss Company, Ethereum Switzerland GmbH (EthSuisse). ● Development was funded by an online public crowdsale during July–August 2014, with the participants buying the Ethereum value token (ether) with another digital currency, bitcoin.
  • 97. Continued…. ● Ethereum enables developers to build and deploy decentralized applications. ● Ether is the cryptocurrency which generated on Ethereum platform. ● Miners work to earn Ether. ● The transaction fees are also paid in the form of Ether. ● Ethereum is a whole network, and has its own: ○ Internet Browser. ○ Coding language. ○ Payment system.
  • 98. Bitcoin vrs. Ethereum Bitcoin ● Peer-to-peer electronic cash system which enables online bitcoin payments. ● Block time is 10 minutes. ● Rate of generation of new bitcoins halves every 4 years. ● Transaction fees is higher. ● It uses Proof-of-work technique. ● It works on UTXO scheme. ● The language used for Bitcoins is not Turing-complete. Ethereum ● Focuses on running the programming code of any decentralized system. ● Block time is 14 to 15 seconds. ● Rate of generation of new Ether remain constant except during hard-forking. ● Transaction fee are generally lower. ● Wants to shift to Proof-of-Stake technique. ● It does not rely on UTXO scheme. ● The language used for Ethereum is Turing-complete.
  • 99. Hard-Forking ● Change to the protocol which makes the previously invalid transaction/blocks valid or vice versa. ● Permanent divergence from the previous version of the blockchain. ● Blocks generated from the previous version will no longer be treated as valid. ● All the nodes/users need to update their version of blockchain. ● Hard forking is helpful to overcome the limitations of the previous versions.
  • 100. Bitcoin Gold ● Created by Jack Liao. ● Hard forked version of bitcoin. ● Purpose is to allow everyone having the GPU graphic cards to become the member of bitcoin network and participate in bitcoin mining. ● But the problem with Bitcoin Gold is: ○ Still in the development stages. ○ Does not provide enough resources to the users.
  • 101. BITCOIN WEAKNESS TOPICS COVERED ➔ New wallets vulnerable via old passwords. ➔ Deanonymization ➔ Sybil attack ➔ 51% Attack ➔ Packet Sniffing ➔ Denial of Service ➔ Timejacking
  • 102. Weaknesses in Bitcoin ● New wallets vulnerable via old passwords. ● Deanonymization ● Sybil attack ● 51% Attack ● Packet Sniffing ● Denial of Service ● Timejacking
  • 103. New Wallets Vulnerable via Old Passwords ● Original bitcoin client stores the keys in a wallet.dat file. This wallet is encrypted via a password. ● When a user changes the password wallet is encrypted using the new password. However, the old wallet.dat file can still be decrypted using the old passwords. ● Backup facilities like the “Apple Time Machine” can be used to retrieve old copies of wallet and .dat file, and can be drained. Old Encrypted Wallet.dat Newly Encrypted Wallet.dat Both keys can be used If both encrOld Encrypted Wallet.dat ypted files are available. Wallet containing private keys
  • 104. Deanonymization WHAT IS DEANONYMIZATION? ● Bitcoin network allows users to be pseudonymous, not anonymous. ● Tracing the transactions on the network can help deanonymize entities. ● Eg: While contacting the blockchain users use their browsers, and if the browser gives away this information and the third parties leak this sensitive data then, the transactions can be linked to the user. SOME TOOLS FOR DEANONYMIZATION ● BitConduite: Designed to identify individual entities and characterizing various forms of entities across the network via analysing the pattern of the transaction. ● BitFury Group : Is able to deanonymose about 15% of the bitcoin network using its analysis tool. ● Many organisations including the governments of various countries aim to deanonymize entities to fight crime. Pseudonymous means that when one's true identity is not revealed instead a unique is used. One can stay anonymous as long as the unique id is not linked to one's actual identity. However, once a link has been established between the unique id and actual identify, all anonymity is lost.
  • 105. How is deanonymization done? Step 1: Linking all public addresses of an owner ● This step is important because, entities such as large corporations have a number of addresses to make them untraceable. ● However, since they are operated by the same entities, just by looking at the transactions it is easy to guess that a certain cluster of addresses belongs to a certain entity. ● By looking at the transaction in the second figure, analysers, can know that both addresses are controlled by the same entity. ● F.Ried and M.Harrison, in “An Analysis of ”Anonymity in the bitcoin System”, generated such clusters. Step 2: Linking addresses to actual owners ● Once such an identification has been done, it is not difficult to link these addresses to the actual entities. This was achieved by interacting and performing transactions with them. Fig: Clusters of addresses Fig: A transaction using two addresses
  • 106. SOLUTION: Maintaining anonymity Bitcoin Mixing: ● To break the linkability and traceability of the coins transactions are mixed and coins are swapped with other addresses having the same value. ● Mixing bitcoins is also known as Bitcoin Laundering, Bitcoin Washing or Bitcoin Tumbling. Tor- online Router ● Tor encrypts and routes traffic through random nodes on the tor network before reaching the final destination. ● Therefore, it becomes difficult to pinpoint ip addresses or systems from which transactions were broadcasted. New addresses for transactions ● HD Wallets, allow users to generate as many addresses as possible. This will making linking of more than a few transactions very difficult. ● This is important because bitcoin is public in nature and if the same address is used always it will be very easy to link all the transactions to the person.
  • 107. SOLUTION: Maintaining anonymity Coin Join ● This is a market, where Marketers and Takers come together to make special transactions, known as CoinJoin transactions. ● Takers pay a nominal fee to the makers who mix these coins. ● This mechanism enables mixing without Escrow and third parties. Use Logless VPNs ● A logless VPN, doesn't store the history of users activities on the server. ● It encrypts all the traffic and routes it through multiple servers at different locations before arriving at the final location. ● Using logless VPNs to connect to bitcoin client is another way to improve transaction privacy
  • 108. Sybil attack ● In sybil attack the attacker creates a large number of pseudonymous entities and uses them to influence the network. ● The resistance to sybil attack is proportional to the cost of creating a new entity in the system. ● The attacker will separate legitimate users from the rest fo the network and connect only to the malicious nodes, which will then cause double spend problem. Source: https://www.bing.com/images/search?view=detailV2&ccid=9Y%2fxq65a&id=26FCE3C96BA0985E4805561897B9B6FA59A06EF4&thid=OIP.9Y_xq65aDq5RRM8QqiTvMAHaDT&mediaurl=http%3a%2f%2fns2simulator.com%2fwp-c ontent%2fuploads%2f2015%2f10%2fArchitecture-of-Sybil-Attack-in-Manet.png&exph=274&expw=615&q=sybil+attack&simid=608018134084618067&selectedIndex=5&ajaxhist=0
  • 109. Preventing sybil Attack Proof of Work ● A Sybil attack is based on spawning a large number of instances to either isolate the attacked from other nodes, or to fake support for something. ● However, Proof of work cannot be faked by spinning up more instances of the software, the energy actually has to be spent. ● Even after isolating the node, the attacker cannot make a node believe in it without calculating the proof of work i.e considerable amount of time and energy has to be spent for this attack to happen. ● Moreover, a check can be put on the number of nodes created on the network. This will make sure that large number of nodes are not created by just one user. ● Malicious nodes advertise, different level of difficulty, such nodes should be boycotted from the network.
  • 110. 51% Attack ● The decentralization of the the bitcoin is ensured by the fact the computing power is distributed among the miners. ● However, if one miner has as much as 51% of mining power, he has full control of which block gets accepted and which one gets rejected. ● He will accept only his own blocks and will possess all the coins generated. ● The chances of this attack seem low as the computing power of 51% of the entire network is too high, however, some studies state otherwise. 51% Is Possible:A study shows that this pie chart displays the computing power possessed by China(red) and Non-China(blue). The presence of mining pools can definitely lead to 51% attack.
  • 111. Denial of service ● This involves sending too many requests to a legitimate server and hindering its performance. ● These attacks can be at network layer that cause network saturation by consuming much available bandwidth or application layer attacks that bring down servers by consuming its processing resources. ● They are often facilitated by DDos botnets which masquerade as browsers i.e. human visitors. ● The attacker can try to connect to all the nodes at the same time and make them busy. ● The network can be flooded with transactions
  • 112. Dos on a Node ● It is possible to send lots of requests to a node to bring it down, however, the number would be very high. ● Moreover, the node could simply stop accepting the requests. ● Lastly, since bitcoin is developed on blockchains which is a decentralised system, knocking out a few nodes will not affect the service provided by the entire system.
  • 113. Dos via Transaction Flooding ● Firstly, all the transactions have to be valid and legitimate or else, they will simply be discarded by the nodes. ● Secondly, it is difficult to maintain a large number of transactions without having to pay huge transaction fees. ● Lastly, the concept of ageing in transactions will not allow old transactions to be abandoned and eventually they will be processed. ● The harm caused by such an event would be minimal. Old transactions will win eventually
  • 114. Timejacking ● An attacker could announce inaccurate timestamps and modify the time of the node and get it to accept fraudulent blocks. ● Unlike other attacks it would still be possible even when all nodes maintain communication with honest peera. A limited timestamp based disruption is also possible against nodes that maintain synchronized clocks. ● Consequence: This can lead to double spend problem.
  • 115. Timejacking continued... ● Solution: ○ This can be handled by determining acceptable time stamp ranges solely based on previous block timestamps. ○ Use the node’s system time instead of the network time to determine the upper limit of the block timestamps and when creating blocks. ○ Tighten acceptable time ranges. ○ Use delayed timestamp validation.
  • 116. Potential Problems in Bitcoin Hash Function Hacks ● Algorithms to compute the hash functions of SHA-256 and ECDSA standards are considered impossible to hack with current computing powers. ● The emergence of high-performance quantum computers will increase the risk of breaching these functions. In this case the current hash function of Bitcoin can be replaced by more complex one. Increase in the number of users ● Bitcoin network will cope with the influx of users. ● If each user starts to use special software to hide their IP-address, the network will not work.
  • 117. BITCOIN SECURITY TOPICS COVERED ➔ Security Principles. ➔ Develop a Bitcoin system securely. ➔ Traditional vrs Bitcoin security Architecture. ➔ User security best practices.
  • 118. Security Principles ● The main factor in Bitcoin is Decentralization. ● In Bitcoin system, end-users/nodes are responsible for all the actions. ● As the security of the network is based on Proof-of-Work, there is no need to have encryption and the network can be open. ● A bitcoin transaction cannot be forged or modified, as every transaction consists of its own locking/unlocking script. ● It does not reveal any private information due to which the transactions can be broadcasted over the network. ● Bitcoin wallet can be backed up like any file. ● It can be stored in the form of multiple copies. ● It can also be printed on paper for hard-copy backup.
  • 119. Develop a Bitcoin system securely ● Two things should be kept in mind while developing a Bitcoin system: ○ Don’t take control of keys away from the users/nodes. ○ Don’t take transactions off the blockchain. ● Keeping the keys on single server. ○ Many early Bitcoin users kept their keys concatenated together on a single server. ○ This approach makes the system centralized. ○ The systems got hacked and resulted in disastrous consequences for the users. ● Off blockchain system. ○ An off-blockchain transaction is a transaction which is taken off from the blockchain in order to reduce the transaction fee. ○ This system will record the transactions on internal, centralized ledger and synchronize them occasionally. ○ These centralized ledgers can be falsified.
  • 120. Traditional vrs Bitcoin Security Architecture Traditional security architecture is based on the root of trust, which is the core trusted authority which handles the overall security of the system. But as the complexity of the system increases, there is a more possibility of a system having a bug. Bitcoin security architecture is decentralized. The consensus system of bitcoin creates a public ledger. A correctly validated block uses Genesis block as a root of Trust.
  • 121. User security best practices. ● Physical Bitcoin Storage. ○ Store the bitcoins in the form of hard-copy. ○ Set of bitcoins printed on paper are known as paper-wallet. ○ The bitcoins are printed in encrypted form. ○ Keeping bitcoins offline is known as cold storage. ● Use hardware wallets. ○ Hardware tamper-proof wallets can be used to store the bitcoins. ○ Special purpose hardware devices are built in order to store the bitcoins. ○ TREZOR, Ledger Nano- S and so on are some of the examples of hardware wallets. ● While using online services for the bitcoins, enable 2-factor authentication.
  • 122. Continued…. ● Diversifying the risk. ○ Store the bitcoins in diverse bitcoin wallets. ○ Keep very few coins in mobile wallet and other coins in desktop wallet or cold storage. ● Multi-Signature and Governance. ○ Multi-Signature wallets require more than one signature to perform a transaction. ○ It makes the system more flexible and secured. ○ The signing keys can be stored on the different locations. ● Survivability ○ Share the access details with some trusted relative or lawyer. ○ This is useful in case of the death of the bitcoin holder.
  • 123. Continued…. ● Don’t let others store your bitcoins. ● Do proper research on bitcoin wallet options. ● Never reuse wallet addresses. ● Keep the bitcoin software up-to-date.
  • 124. HYPERLEDGER TOPICS COVERED ➔ Hyperledger. ➔ Hyperledger Fabric. ➔ Hyperledger Composer. ➔ Demo Application.
  • 125. Introduction to Hyperledger ● It is not a company, not a cryptocurrency and not a blockchain. ● Hyperledger can be thought of as a software which everyone can use to create one’s own personalised blockchain service. ● It was started in December 2015 by Linux Foundation. ● Objective of the project is: ○ To advance cross-industry collaboration by developing blockchains and distributed ledgers. ○ To offer better reliability and performance as compared to the cryptocurrencies. ○ To support global business transactions by major technological, financial and supply chain companies. ● Currently, hyperledger hosts the following projects: ○ Hyperledger sawtooth ○ Hyperledger Iroha ○ Hyperledger Fabric ○ Hyperledger Burrow
  • 126. Need and Motivation ● Blockchain is known for its decentralized operations and global consensus. ● This make it suitable for a number of applications. ● However, cryptocurrencies implementing blockchains do not offer a customised environment and therefore cannot be easily tailored for different business needs. ● Due to their public nature, they are not the a good platform for the financial sector because these sectors have “Data Protection Law”. ● Moreover, they do not meet the privacy standards required by the users. ● Lastly, because the current platforms deal with their own cryptocurrencies, it leads to complications in certain countries.
  • 127. Participants in Hyperledger Blockchain Network Source: https://www.edureka.co/blog/hyperledger-fabric/
  • 128. What does Hyperledger Offer? ● Permissioned Membership. ● Performance, scalability and level of trust. ● Data on a need-to-know basis. ● Rich queries and Distributed Hyperledger. ● Modular architecture supporting plug-in components. ● Protection of digital keys and sensitive data.
  • 129. Introduction to Hyperledger Fabric ● Hyperledger fabric provides a blockchain framework to the private enterprises to develop the blockchain based products, solutions and components. ● Hyperledger Fabric is: ○ Modular ○ Scalable ○ Secure ○ Permissioned membership Blockchain ● It acts as a container to hold the smart contracts, also known as “chaincode” which holds the business logic. ● Hyperledger Fabric was initiated by Digital Asset and IBM, and has now emerged as a collaborative cross-industry venture which is currently hosted by the Linux Foundation.
  • 130. Type of participants in the network ○ ○ ○
  • 131. Hyperledger Fabric Architecture Source: https://vitalflux.com/quick-glance-at-hyperledger-fabric-architecture/
  • 134. Benefits of using Hyperledger Fabric ● ● ● ●
  • 135. Introduction to Hyperledger Composer ● ● ● ● ●
  • 138. Some of the key components ● ○ ○ ● ○ ○ ● ○ ○ ○
  • 140. Steps to create Hyperledger Composer.
  • 141. Benefits of Hyperledger Composer ● ● ● ●
  • 144. Assumptions ➢ Carat Price ($) 0- 0.5 1500 0.5- 0.75 3000 0.75- 0.9 4800 0.9-1.0 6000 1.0-2.0 25000 2.0-3.0 32000
  • 147. ACL Capabilities Manufacturer Distributor Retailer Create Asset Yes No No View Transactions Own Own Own Initiate Transaction Yes (with Distributor) Yes (with Retailer) No View Asset Self-owned Self-owned Self-owned
  • 148. References ● Andreas M. Antonopoulos. “Mastering Bitcoin”. ● https://www.youtube.com/watch?v=RPP2f_Fn8iQ ● https://www.tutorialspoint.com/cryptography/public_key_encryption.htm ● http://searchsecurity.techtarget.com/definition/digital-signature ● https://www.bitcoinmining.com/#wipow ● https://samsclass.info/141/proj/BitDiff.htm ● https://www.coursera.org/learn/cryptocurrency/lecture/0htpQ/the-task-of-bitcoin-miners ● https://www.investopedia.com/terms/h/hard-fork.asp ● https://en.wikipedia.org/wiki/CAP_theorem#History ● http://paulkernfeld.com/2016/01/15/bitcoin-cap-theorem.html ● http://llimllib.github.io/bloomfilter-tutorial/ ● https://brilliant.org/wiki/bloom-filter/
  • 149. Continued…. ● https://en.bitcoin.it/wiki/Hardware_wallet#KeepKey:_Your_Private_Bitcoin_Vault ● https://en.wikipedia.org/wiki/Ethereum#Comparison_to_bitcoin ● https://bitcoin.org/en/secure-your-wallet ● https://freedomnode.com/blog/70/bitcoin-best-practices-12-things-to-do-and-don-t-to-survive-in-the- bitcoin-world ● https://decentralize.today/a-new-attack-vector-to-deanonymize-bitcoin-users-9c6dc433d4b6 ● http://www.livebitcoinnews.com/bitconduite-new-simple-tool-deanonymizing-bitcoins-transactions/ ● https://themerkle.com/bitfury-group-de-anonymizes-over-15-of-the-bitcoin-network-with-new-blockch ain-analysis-tool/ ● https://medium.com/@homakov/stop-calling-bitcoin-decentralized-cb703d69dc27 ● https://en.bitcoinwiki.org/wiki/Bitcoin_weaknesses#Sybil_attackhttps://en.bitcoinwiki.org/wiki/Bitcoin_ weaknesses#Sybil_attack ● http://culubas.blogspot.in/2011/05/timejacking-bitcoin_802.html