Skip to main content

SCRUMble ! - New Book about SCRUM

 SCRUMble ! Hello Blog Readers! Thank you for all your support and encouragement. I have something exciting for you all. I have recently written and published a new book called 'SCRUMble !'. It is currently available on pothi store. It will be soon available on Amazon and Flipkart as well. Please get your copy and do let me know your reviews. -Abhishek Sathe SCRUMble ! Written and Published by: Abhishek Sathe                                                                              Distributed by: pothi.com Order your copy now:  https://store.pothi.com/book/abhishek-sathe-scrumble/ Coming soon on Amazon and Flipkart About the book: Scrum is a framework for solving complex problems largely adapted by Software Development field. There are multiple ag...

Bitcoins and Blockchain

Bitcoin is a form of cryptocurrency that was invented in 2009.

Bitcoin Blockchain is the database of all past bitcoin transactions. Its updated on average roughly every 10 minutes by Bitcoin miners.

To understand how does bitcoin transfer actually work consider the transfer between Alice(pseudonym 01as) and Bob(pseudonym 43js):

  • Alice broadcasts her intent to transfer 1 bitcoin (1 BTC) to Bob to the network of bitcoin miners.
  • Alice learns Bob's public address(43js) which is similar to learning Bob's email address.
  • Alice then creates a transaction from one of her bitcoin address(01as) to one of Bob's bitcoin address(43js)
  • Alice signs her transaction with her private key which is similar to password for her public bitcoin address.
  • Alice sends the transaction to the bitcoin network.
  • A miner processes the transaction confirming her signature is valid and that her private key gives her authority to transfer 1BTC to Bob. This work done by a miner is visible to everyone else.
  • Every other node in the network has chance to check the miner's work. If the miner did the work correctly then the miner gets a reward.
Bitcoin Mining is intended to distribute the power of processing bitcoin transactions so that every node gets a fair chance and no one party can block or reverse transactions or reward themselves large amounts of bitcoins out of nowhere.

Proof of work:
Block chain is maintained by anonymous peers on the network. So bitcoin requires that each block proves that a significant amount of work was invested in its creation to ensure that untrustworthy peers who want to modify past blocks have to work harder than honest peers who only want to add new blocks at the end of block chain. In short, proof of work is a piece of data which is difficult (costly, time consuming) to produce but easy for others to verify and which satisfies certain requirements. Bitcoin uses hash code proof of work system.

Double Spending Problem:
If Alice transfers 10 bitcoins to Bob but before this transaction she secretly tries to send the same amount of money to someone else resulting into Bob not actually receiving any bitcoins. This is called Double Spending.

Solution to Double Spending problem using Bitcoins:
Double Spending problem is solved using bitcoin miners.
Bitcoin miners listen to all ongoing transactions and record it into transaction block. Along with transactions, these miners will also include an extra transaction for themselves as a credit for the work they have done.

Some Interesting facts:
  • Bitcoin wallet is a container for private keys corresponding to respective bitcoin address.
  • Public key is calculated from private key using elliptic curve multiplication which is irreversible.
  • Bitcoin address is derived from public key through the use of one-way cryptographic hashing. The algorithms used are the Secure Hash Algorithm and the RACE Integrity Digest.
  • Maximum number of bitcoins that can be generated in 21 million. Once we get close to this limit or reach this limit then the miners do not get a reward. But a transaction fees serves a purpose of incentives for these miners.
  • Smallest possible unit in bitcoin is 0.00000001 BTC. This unit is known as Satoshi. This name comes from Satoshi Nakamoto which is a pseudoname for the bitcoin inventor.
  • Genesis block is the first block in a transaction block chain.
  • Largest chain means the chain which has most amount of work put into it.
  • Fork of a chain somehow there is more than one version of the history. Forks are used in fradulant transactions. 



Comments

Post a Comment

Popular posts from this blog

Bipartite and semihamiltonian graphs

Bipartite Graph: A graph is bipartite if its vertex set can be partitioned into two subsets X and Y so that every edge has one end in X and one end in Y; such a partition (X,Y) is called bipartition of the graph, and X and Y its parts. ex.- Notation: We denote a bipartite graph G with bipartition (X,Y) by G[X,Y]. Complete Bipartite Graph: If G[X,Y] is simple and every vertex in X is joined to every vertex in Y, then G is called a Complete Bipartite graph. ex.- Semi-Hamiltonian Graph: A semi-Hamiltonian graph is a graph that contains a Hamiltonian path, but not a Hamilton cycle. Hamiltonian Path: A Hamiltonian path in an undirected or directed graph is a path which visits each vertex exactly once. ex.- C-A-D-B-E is a Hamiltonian path Hamiltonian Cycle: A Hamiltonian cycle or a Hamiltonian Circuit is a Hamiltonian path which is a cycle. This post will be useful in understanding a question: "The nabhi kamal grapg is:" (A)Bipartite graph (B)Semi-...

Accessibility : An Important consideration in software development

What is Accessibility? Accessibility is a very important piece of consideration in today's market. It means the quality of being able to be reached or entered. Accessibility focuses on how a physically or mentally disabled person accesses or benefits from a site, system or application.  Conformance with accessibility guidelines while developing a web page or an app is important. What does accessibility mean for software development? Accessibility isn't about taking away functionality or making things difficult for the software development team. It is about making sure all possible users have a way to use the system.  How do information architects and web designers/developers design web pages to be compatible with assistive devices is an important aspect when thinking about accessibility. What does accessibility mean for software testing? Accessibility Testing checks if a product is accessible to the people having disabilities. We need to understand ...

Android 102

This post is in continuation with an earlier post : Android 101 1. Common attributes used in views and viewgroups: -layout_width -layout_height -layout_marginTop -layout_marginBottom -layout_marginLeft -layout_marginRight -layout_gravity: specifies how child views are positioned -layout_weight: specifies how much of the extra space in the layout should be allocated to the view -layout_x -layout_y 2. LinearLayout: arranges views in a single column or a single row. Child views can be arranged either vertically or horizontally. 3.AbsoluteLayout: enables you to specify the exact location of its children using layout_x and layout_y. AbsoluteLayout has been deprecated since android 1.5 4.TableLayout: groups views into rows and columns. You use <TableRow> element to designate a row in the table. Each row can contain one or more views. Each view you place within a row forms a cell. The width of each column is determined by the largest width of each cell in that column. 5....