Week 2
Final Project
Week 2
What are public and private keys?
To understand block chain technology and ultimately how it enables Bitcoin other cryptocurrencies and smart contracts equires us to understand a collection of related technologies and terms. Over the next few videos, we'll explore each individually and then finally bring them all together. To understand public and private keys, we first need to understand what cryptography is. The connection is that public and private keys are one way to enable cryptography. The term cryptography is a Greek word which means secret writing. It's a way to send a message to someone so that others cannot read the message. The message may be, "Hello, my friend." But as it travels over a network, the words hello my friend cannot be seen by others. It goes from a state of plain text, one that can be read, to cipher text, one that can't. It is said to be encrypted. When the message arrives at its destination, it must be decrypted so that it can be read again. One of the many forms of cryptography is called the Public Key Infrastructure or PKI. It involves two keys, a public key and a private key. Everyone can see the public key, but only you have the private key and it must be kept secret. Imagine that you have a locked mailbox. The public key is the address of the mailbox. A person can insert money or a message into that mailbox but cannot retrieve it. The only way to retrieve the contents is to use your private key. As long as nobody gets that private key, your money and messages are secure. Let's now look at this example in the digital world. Computing PKI was invented in the 1970s and provides a simple, clever, and powerful solution to cryptography. The first step is to have your private key generated. There's a lot of software to do this as a private key is basically a random mix of the letters A through F and some numbers. You can try it yourself at bitaddress.org. Here is an example of a digital private key. When a private key is generated, its pair is also created. That's the public key and it's created using a complex algorithmic process. The process makes it possible to generate the public key from the private key but makes it exceptionally difficult to figure out the private key from the public key. In other words, it's basically one directional in creation. Now, how do we use this? Whenever you want someone to send you something secret, you first send them your public key. The other person locks the message with your public key and then sends the message to you. You then open the message with your private key. Someone who tries to intercept the message will be unable to unlock the message. Only you can because you keep your private key and never share it with anyone. We'll discuss later that your keys are stored in what is called a wallet on your computer or smartphone. So, we've seen how PKI enables cryptography. However, let's use PKI to enable proof of authenticity. Specifically, if you send a message to someone else, how can they know that it was sent by you for sure? For this we'll use a digital signature. A long time ago, documents were sent in envelopes that were often sealed with wax with a unique stamp in the wax. This way, the receiver knew that the envelope came from a trusted source and that it had not been tampered with on its journey. A digital signature is the digital version of the wax seal. Digital signatures use public/private key pairs to function. When sending an electronic message, the message is signed with a private key. When the message is received and the recipient has your public key, it verifies that the signature was created with the private key pair of the sender. This PKI-based digital signature authenticates that the sender is who they say they are. If someone attempted to bluff ping you by using another private key, the recipient using your public key would immediately know it was not from you because the public key would not authenticate the private key of the sender.
The immutable distributed ledger
A blockchain is a database, but it's unlike most databases that have come before it in that it has two specific core qualities that make it unique and powerful. It's a distributed database and its entries are immutable. In other words, it doesn't sit on one all-powerful server and the data stored in it cannot be deleted or edited. But before I go too deeply into this, let's quickly recap traditional databases. In a traditional structured database, data is stored in columns and rows in multiple tables. Usually a table stores related data. For example, a table might contain a person's name and address. It will also contain a unique key called a primary key for each row that can be used to connect one table to another. In a billing system for example, another table might contain invoice information for a purchase. The address of the buyer will likely be referenced via a primary key. Databases have become very sophisticated and can have complex logic built into them. In a client/server architecture, the database lives on a single logical server. Data is queried from the client presented as a request to the server which then runs the query and produces a result for the client. In web-based architectures, there are often at least three tiers, the web client, the web server, and the database. Much like client/server, both the web server and database server are centralized. Often workload is distributed among many physical servers. In this way, they can be said to be distributed, but logically they are governed by central rules. This physical distribution design helps with redundancy and increased performance. As a result of social media and massive disparate data sources, databases are increasingly unstructured. While techniques such as natural language processing and text analytics help to manage the data, the overall physical database architecture is largely the same. Somewhere in the environment is a set of rules on who can use the database and what rights each user has. It served the world well and continues to be the dominant model for data management. What makes this database architecture useful and powerful also makes it vulnerable. Anyone with the right credentials can access and there are too many ways to hack the system as many high-profile cases have demonstrated over the past few years. Massive credit card thefts from well-known retailers have all been too common. A blockchain database is structured in the sense that it contains specific blocks of data organized in a particular way. However, there is a big difference in how the database is hosted. Unlike in a traditional database environment, a copy of the blockchain database resides on every computer that participates in a given blockchain. For example, all Bitcoin users will have a full copy of the Bitcoin blockchain database on their computing device. There is no central server. It is not hierarchical. In fact, we call it peer to peer since the architecture is flat. In a simplified description, when a person first joins a blockchain-based environment, the full database is downloaded to their device. Next, as each transaction takes place in the blockchain, say Bitcoin currency is sent from one person to another, each transaction is recorded in every instance of the blockchain database. In this way, it is said to be a distributed database. In fact, there is an industry preference to refer to the database as a Distributed Ledger or DLT, Distributed Ledger Technology. Unlike a traditional database, for a transaction to be processed and inserted into the blockchain ledger, consensus must be reached by all participating devices. In addition, minors who we discussed earlier create the necessary hash signatures that allow new blocks to be appended to the database. Since minors conduct significant work in terms of processing power and electricity, their successful effort in finding the NNS that created the winning hash, called proof of work, provides integrity because we don't want it to be too easy to add blocks. Without proof of work, adding blocks to the block chain would be too easy and could make it vulnerable to robust hacking attempts. Finally, a blockchain distributed ledger is immutable. This means that entries made can never be edited or deleted. That's really different from a traditional database. It also means that once a transaction takes place, there is no recourse. If a mistake is made, it's permanent. For example, if you make the wrong payment amount or send money to the wrong person, assuming it's a valid transaction, it cannot be reversed. Outside of the good nature of the person with whom the mistake was made to return the money or correct the amount, you're out of luck.
This week I was more into the Technology part in Block chain because inside the Block chain there are few main methods that i should have proper idea Like Private Key and Public Key , distributed ledger these are few main methods and technology that I have found will help to improve my project when it come to the Implement stage


Comments
Post a Comment