Proof of Work (PoW) is the original blockchain consensus algorithm, and is used in projects such as Bitcoin. It is the mechanism that enables users on a blockchain network to reach an agreed ‘truth’. A proof of work is essentially an answer to a complex mathematical problem. It takes a lot of work to find the Nonce but is easy for others to validate.PoW solves the Byzantine Generals Problem as it achieves a majority agreement without any central authority, in spite of the presence of unknown/potentially untrustworthy parties and despite the network not being instantaneous.This presentation brings out the concept Byzantine Generals proof and its connect with Bitcoin.
Showing posts with label BITCOIN. Show all posts
Showing posts with label BITCOIN. Show all posts
Sunday, March 31, 2019
Saturday, November 17, 2018
BLOCKCHAIN TECHNOLOGY OVERVIEW & CRYPTOCURRENCY CRIMES: CBI ACADEMY
Sharing this presentation here in this post that brings an exhaustive overview of the Blockchain Technology and emerging Cryptocurrencies crimes.The presentation was given at CBI Academy on 16 Nov 18 by self :
Monday, April 02, 2018
Bitcoin Address Generation : The Internals Behind
ECDSA stands for Elliptic Curve Digital Signature Algorithm and uses an
elliptic curve and a finite field to "sign" data in such a way that
third parties can verify the authenticity of the signature while the
signer retains the exclusive ability to create the signature. The Bitcoin addressing system is not a simple deal.In order to maintain that a public key cannot be deciphered easily to any identity and in future if ECDSA is compromised at all, still,the anonymity remains.So suppose you have a ECDSA based private key,the following post content will give a step by step sequence of how the final bitcoin address is derived :
Sequence flow chart is shown below :
Image courtesy : https://www.safaribooksonline.com/library/view/mastering-bitcoin-2nd/9781491954379/assets/mbc2_0405.png |
Your sample private key :
18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
Public key derived is
0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B2
3522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582
BA6
Site reference : https://www.bitaddress.org
Screen shot below :
Now perform SHA-256 hashing on the hex of the public key as shown below in the screenshot :
The SHA-256 output received is
600ffe422b4e00731a59557a5cca46cc183944191006324a447bdb2d98d4b408
Now we take RIPEMD-160 Hash of the above output and get this as follows as seen vide the screenshot :
010966776006953d5567439e5e39f86a0d273bee
Now add Add version byte in front of RIPEMD-160 hash (0x00 for Main Network).so that the above output becomes :
00010966776006953D5567439E5E39F86A0D273BEE
Further to above,Perform SHA-256 hash on the extended RIPEMD-160 result ie
so we get
445c7a8007a93d8733188288bb320a8fe2debd2ae1b47f0f50bc10bae845c094
445c7a8007a93d8733188288bb320a8fe2debd2ae1b47f0f50bc10bae845c094
and now we perform SHA-256 hash on the result of the this recent SHA-256 hash as seen below in the screenshot...and we get this as
d61967f63c7dd183914a4ae452c9f6ad5d462ce3d277798075b107615c1a8a30
Now take the first 4 bytes of the second SHA-256 hash and this is the address checksum ie D61967F6
and then add the 4 checksum bytes at the end of extended RIPEMD-160
hash as hashed above and we get the 25-byte binary Bitcoin Address.
00010966776006953D5567439E5E39F86A0D273BEED61967F6
Now the last step...we Convert the result from a byte string into a base58 string using Base58Check encoding at https://incoherency.co.uk/base58/
Bitcoin Address :
16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
Useful links :
Friday, March 30, 2018
Compiling Bitcoin Core Source Code : Ubuntu 16.04 LTS
1. Bitcoin Core is the reference implementation of bitcoin and anyone ON
with any projects around bitcoin would need to compile the bitcoin
source code to create the bitcoind for his/her own node. Ubuntu is usually the operating system recommended to run Bitcoin Core.This post will build upon with screenshots as done and terminal commands as executed to compile the same vide GIT.
2. The machine I have used here is a Ubuntu 64 bit running on a virtual box platform with the following details as seen in the screenshot :
Now on I will just share the terminal commands as i executed in the terminal :
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git
Search for Bitcoin github and click the first link as seen below :
Goto the link as seen below at https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md
sudo git clone https://github.com/bitcoin/bitcoin.git
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
sudo apt-get install libboost-all-dev
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
sudo apt-get install libminiupnpc-dev
sudo apt-get install libzmq3-dev
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
sudo apt-get install libqrencode-dev
sudo ./autogen.sh
sudo ./configure --disable-wallet #
sudo make
and the last command
sudo make install
....and you r ready to go.....
Monday, March 19, 2018
BLOCKCHAIN ,BITCOIN & CRYPTOCURRENCIES WORLD : MECHANICS AND CYBER CRIME
The world of Blockchain and Cryptocurrencies is undeniably amazing and has infinity to explore at hands.Recently I took on a 4 hour session at the prestigious Central Bureau of Investigations,CBI Academy ,Ghaziabad, vide Indian Technical and Economic Cooperation Programme organised by Ministry of External Affairs,to cover right from scratch to overview of mechanics and architecture of how this world works.Sharing here the presentation for info and awareness of anyone who is interested to take a dip in this domain and related cyber crime activities.
Subscribe to:
Posts (Atom)