Data signature in blockchain adopts heap encryption
One of the characteristics of blockchain projects (especially public chains) is open source. Through open source code, to improve the credibility of the project, so that more people can participate. But the open source code also makes it easier for attackers to attack blockchain system. In the past two years, there have been a number of hacker attacks. Recently, the anonymous currency verge (xvg) was attacked again. The attacker locked a vulnerability in the xvg code, which allowed malicious miners to add false timestamps on the block, and then quickly dig out new blocks. In a few hours, the attacker obtained nearly $1.75 million worth of digital currency. Although the subsequent attack was successfully stopped, no one can guarantee whether the attacker will attack again in the future
of course, blockchain developers can also take some measures
one is to use professional code audit services,
the other is to understand the security coding specifications and take preventive measures
the security of cryptographic algorithm
with the development of quantum computer, it will bring a major security threat to the current cryptosystem. Blockchain mainly relies on elliptic curve public key encryption algorithm to generate digital signature for secure transactions. Currently, the most commonly used ECDSA, RSA, DSA, etc. can not withstand quantum attacks in theory, and there will be greater risks. More and more researchers begin to pay attention to cryptographic algorithms that can resist quantum attacks
of course, in addition to changing the algorithm, there is another way to improve the security:
refer to bitcoin's treatment of public key address to rece the potential risk of public key disclosure. As users, especially bitcoin users, the balance after each transaction is stored in a new address to ensure that the public key of the address where bitcoin funds are stored is not leaked
security of consensus mechanism
the current consensus mechanisms include proof of work (POW), proof of stake (POS), delegated proof of stake (dpos), practical Byzantine fault tolerance (pbft), etc
POW faces 51% attack. Because POW depends on computing power, when the attacker has the advantage of computing power, the probability of finding a new block will be greater than that of other nodes. At this time, the attacker has the ability to cancel the existing transaction. It should be noted that even in this case, the attacker can only modify his own transaction, but not the transaction of other users (the attacker does not have the private key of other users)
in POS, attackers can attack successfully only when they hold more than 51% token, which is more difficult than 51% computing power in pow
in pbft, when the malicious nodes are less than 1 / 3 of the total nodes, the system is secure. Generally speaking, any consensus mechanism has its own conditions. As an attacker, we also need to consider that once the attack is successful, the value of the system will return to zero. At this time, the attacker does not get any other valuable return except destruction
for the designers of blockchain projects, they should understand the advantages and disadvantages of each consensus mechanism, so as to select an appropriate consensus mechanism or design a new consensus mechanism according to the needs of the scene
security of smart contract
smart contract has the advantages of low operation cost and low risk of human intervention, but if there are problems in the design of smart contract, it may bring greater losses. In June 2016, the Dao, the most popular funding project of Ethereum, was attacked. The hacker obtained more than 3.5 million Ethereum coins, which later led to the bifurcation of Ethereum into Eth and etc
there are two aspects of the proposed measures:
one is to audit the security of smart contract, and the other is to follow the principle of smart contract security development
the security development principles of smart contract are: to be prepared for possible errors, to ensure that the code can correctly handle the bugs and vulnerabilities; Release smart contracts carefully, do well in function test and security test, and fully consider the boundary; Keep smart contracts simple; Pay attention to the threat intelligence of blockchain and check and update in time; Be clear about the characteristics of blockchain, such as calling external contracts carefully
security of digital wallet
there are three main security risks in digital wallet: first, design defects. At the end of 2014, a user lost hundreds of digital assets e to a serious random number problem (repeated r value). Second, the digital wallet contains malicious code. Third, the loss of assets caused by the loss or damage of computers and mobile phones
there are four main countermeasures:
one is to ensure the randomness of the private key
The second is to check the hash value before installing the software to ensure that the digital wallet software has not been tampered with The third is to use cold wallet The fourth is to back up the private keyin fact, blockchain uses the basic principles of modern cryptography to ensure its security mechanism. The knowledge system involved in the field of cryptography and security is very complicated. Here, I only introce the basic knowledge of cryptography related to blockchain, including hash algorithm, encryption algorithm, information digest and digital signature, zero knowledge proof, quantum cryptography, etc. Through this lesson, you can learn how to ensure the confidentiality, integrity, authentication and non repudiation of the blockchain using cryptography technology
basic course lesson 7 basic knowledge of blockchain security
1. Hash algorithm (hash algorithm)
hash function (hash), also known as hash function. Hash function: hash (original information) = summary information. Hash function can map any length of binary plaintext string to a shorter (generally fixed length) binary string (hash value)
a good hash algorithm has the following four characteristics:
1. One to one correspondence: the same plaintext input and hash algorithm can always get the same summary information output
2. Input sensitivity: even if the plaintext input changes slightly, the newly generated summary information will change greatly, which is greatly different from the original output
3. Easy to verify: plaintext input and hash algorithm are public, anyone can calculate by themselves, and whether the output hash value is correct
4. Irreversibility: if there is only the output hash value, the hash algorithm can never dece the plaintext
5. Conflict avoidance: it is difficult to find two plaintexts with different contents, but their hash values are the same (collision)
for example:
hash (Zhang San lent Li Si 100000 yuan for 6 months) = 123456789012
such a record as 123456789012 is recorded in the account book
it can be seen that hash function has four functions:
simplify information
it is easy to understand, and the information after hashing becomes shorter
identification information
you can use 123456789012 to identify the original information, and summary information is also called the ID of the original information
hidden information
the account book is a record like 123456789012, and the original information is hidden
verification information
if Li Si cheated that Zhang San only lent Li Si 50000 when repaying, both parties can verify the original information with the hash value of 123456789012 recorded before
hash (Zhang San lent Li Si 50000 for 6 months) = 987654321098
987654321098 is completely different from 123456789012, which proves that Li Si lied, Then the information can't be tampered
common hash algorithms include MD4, MD5 and Sha series algorithms, and Sha series algorithms are basically used in mainstream fields. Sha (secure hash algorithm) is not an algorithm, but a group of hash algorithms. At first, it was SHA-1 series, and now the mainstream applications are sha-224, SHA-256, sha-384 and sha-512 algorithms (commonly known as SHA-2). Recently, Sha-3 related algorithms have been proposed, such as keccak-256 used by Ethereum
MD5 is a very classic hash algorithm, but unfortunately, both it and SHA-1 algorithm have been cracked. It is considered by the instry that its security is not enough to be used in business scenarios. Generally, sha2-256 or more secure algorithm is recommended
hash algorithm is widely used in blockchain. For example, in blocks, the latter block will contain the hash value of the previous block, and the content of the later block + the hash value of the previous block will jointly calculate the hash value of the later block, which ensures the continuity and non tamperability of the chain< Encryption and decryption algorithm is the core technology of cryptography, which can be divided into two basic types: symmetric encryption algorithm and asymmetric encryption algorithm. According to whether the key used in the encryption and decryption process is the same or not, the two modes are suitable for different needs, just forming a complementary relationship, and sometimes can be combined to form a hybrid encryption mechanism
symmetric cryptography (also known as common key cryptography) has the advantages of high computational efficiency and high encryption strength; Its disadvantage is that it needs to share the key in advance, which is easy to leak and lose the key. The common algorithms are des, 3DES, AES and so on
asymmetric cryptography (also known as public key cryptography) is different from the encryption and decryption key, and its advantage is that it does not need to share the key in advance; Its disadvantage is that it has low computational efficiency and can only encrypt short content. Common algorithms include RSA, SM2, ElGamal and elliptic curve series. Symmetric encryption algorithm is suitable for the encryption and decryption process of a large number of data; It can't be used in signature scenario: and it often needs to distribute the key in advance. Asymmetric encryption algorithm is generally suitable for signature scenario or key agreement, but it is not suitable for large amount of data encryption and decryption< Third, information digest and digital signature
as the name suggests, information digest is to hash the information content to obtain a unique digest value to replace the original and complete information content. Information digest is the most important use of hash algorithm. Using the anti-collision feature of hash function, information digest can solve the problem that the content has not been tampered
digital signature is similar to signing on paper contract to confirm contract content and prove identity. Digital signature is based on asymmetric encryption, which can be used to prove the integrity of a digital content and confirm the source (or non repudiation)
we have two requirements for digital signature to make it consistent with our expectation for handwritten signature. First, only you can make your own signature, but anyone who sees it can verify its validity; Second, we want the signature to be only related to a specific file and not support other files. These can be achieved by our asymmetric encryption algorithm above
in practice, we usually sign the hash value of information instead of the information itself, which is determined by the efficiency of asymmetric encryption algorithm. Corresponding to the blockchain, it is to sign the hash pointer. In this way, the front is the whole structure, not just the hash pointer itself< Zero knowledge proof means that the verifier can make the verifier believe that a certain conclusion is correct without providing any additional information to the verifier
zero knowledge proof generally meets three conditions:
1. Completeness: authentic proof can make the verifier successfully verify
2. Soundness: false proof can not make the verifier pass the verification
3. Zero knowledge: if you get proof, you can't get any information other than the proof information from the proof process< With more and more attention paid to the research of quantum computing and quantum communication, quantum cryptography will have a huge impact on the information security of cryptography in the future
the core principle of quantum computing is that qubits can be in multiple coherent superposition states at the same time. Theoretically, a large amount of information can be expressed by a small number of qubits and processed at the same time, which greatly improves the computing speed
in this way, a large number of current encryption algorithms are theoretically unreliable and can be cracked, so the encryption algorithm has to be upgraded, otherwise it will be broken by quantum computing
as we all know, quantum computing is still in the theoretical stage, which is far from large-scale commercial use. However, the new generation of encryption algorithms should consider the possibility of this situation.
first, data security: blockchain makes data flow "at ease"
with its trustworthiness, security and non tamperability, blockchain liberates more data. A typical case is used to illustrate how blockchain promotes the generation of big data for gene sequencing. Blockchain sequencing can use the private key to limit access rights, so as to avoid the legal restrictions on indivial access to gene data, and use distributed computing resources to complete the sequencing service at low cost. The security of blockchain makes sequencing an instrialized solution, realizing global scale sequencing, thus promoting the massive growth of data< Second, data open sharing: blockchain guarantees data privacy
the government has a large number of high-density and high-value data, such as medical data, population data, etc. The opening of government data is the general trend, which will have an inestimable impetus to the development of the whole economy and society. However, the main difficulty and challenge of data opening is how to open data while protecting personal privacy. Data desensitization technology based on blockchain can ensure data privacy and provide a solution for data opening under privacy protection. Data desensitization technology mainly uses hash processing and other encryption algorithms. For example, enigma based on blockchain technology can protect the privacy of data and eliminate information security problems in data sharing by computing data without accessing the original data. For example, employees of a company can safely open the path to access their salary information and jointly calculate the average salary within the group. Each participant can know his or her relative position in the group, but he or she knows nothing about the salaries of other members< The schematic diagram of data hash desensitization processing
3. Data storage: blockchain is a kind of database storage technology that can not be tampered with, full history, strong endorsement
blockchain technology, through all nodes in the network participate in the calculation together, and verify the authenticity of their information to achieve the consensus of the whole network, it can be said that blockchain technology is a specific database technology. So far, our big data is still in a very basic stage. The data based on the consensus of the whole network and the reliable blockchain data are tamperable and historical, which makes the quality of the data gain unprecedented strong trust endorsement, and also makes the development of the database enter a new era< Data analysis: blockchain ensures data security
data analysis is the core of realizing data value. In data analysis, how to effectively protect personal privacy and prevent core data leakage has become the primary consideration. For example, with the application of fingerprint data analysis and the popularization of genetic data detection and analysis, more and more people worry that once personal health data is leaked, it may lead to serious consequences. Blockchain technology can prevent this kind of situation through multi signature private key, encryption technology and secure multi-party computing technology. When the data is hashed and placed on the blockchain, the use of digital signature technology can enable those authorized people to access the data. The private key not only ensures the privacy of data, but also can be shared with authorized research institutions. The data is stored on the decentralized blockchain and analyzed without accessing the original data. It can not only protect the privacy of the data, but also provide it to the global scientific research institutions and doctors for sharing. As the basic health database of all mankind, it will bring great convenience to solve the sudden and difficult diseases in the future
v. data circulation: blockchain protects the rights and interests related to data
for valuable data assets of indivials or institutions, blockchain can be used to register them. Transaction records are recognized, transparent and traceable throughout the network, making clear the source, ownership, use right and circulation path of big data assets, which is of great value to data asset transaction
on the one hand, blockchain can break the threat of intermediary ing data, which is concive to the establishment of a trusted data asset trading environment. Data is a very special commodity, which is essentially different from ordinary commodities. It is mainly characterized by unclear ownership and "being owned after seeing and ing", which also determines that the traditional commodity intermediary transaction method can not meet the needs of data sharing, exchange and transaction. Because the intermediary center has the conditions and the ability to and save all the flowing data, it is extremely unfair to the data procers. This threat can not be eliminated only by commitment, and the existence of this threat has become a huge obstacle to the flow of data. Based on the decentralized blockchain, it can break the threat of ing data in the intermediary center and protect the legitimate rights and interests of data owners
on the other hand, blockchain provides a traceable path, which can effectively solve the problem of data right confirmation. Through multiple nodes participating in the calculation in the network, blockchain can participate in the calculation and recording of data together, and verify the effectiveness of their information. It can not only carry out information anti-counterfeiting, but also provide a traceable path. The transaction information of each block is strung together to form a complete detailed list of transactions. The context of each transaction is very clear and transparent. In addition, when people have doubts about the "value" of a block, they can easily trace back the historical transaction records, and then judge whether the value is correct, and identify whether the value has been tampered or recorded incorrectly
with the protection of blockchain, big data will naturally become more active
the tokens of crowdfunding projects on coin Ying China platform are all developed based on blockchain technology, and relevant information will be recorded on the blockchain.
asymmetric encryption algorithm is a function that converts the original plaintext file or data into a series of unreadable ciphertext codes by using an encryption key. The encryption process is irreversible. Only holding the corresponding decryption key can the encrypted information be decrypted into readable plaintext. Encryption enables private data to be transmitted through the public network under the condition of low risk, and protects the data from being stolen and read by the third party
the core advantage of blockchain technology is decentralization, which can realize point-to-point transaction, coordination and cooperation based on decentralized credit in a distributed system without mutual trust by means of data encryption, time stamp, distributed consensus and economic incentive, so as to solve the high cost and low cost of centralized institutions Low efficiency and data storage insecurity provide solutions
the application fields of blockchain include digital currency, token, finance, anti-counterfeiting traceability, privacy protection, supply chain, entertainment, etc. with the popularity of blockchain and bitcoin, many related top domain names have been registered, which has a great impact on the domain name instry.
in the distributed network of blockchain, the communication and trust between nodes need to rely on digital signature technology, which mainly realizes the identity confirmation and information authenticity and integrity verification
digital signature
digital signature (also known as public key digital signature, electronic signature) is a kind of common physical signature written on paper, but it uses the technology in the field of public key encryption to identify digital information. A digital signature usually defines two complementary operations, one for signature and the other for verification. Only the sender of information can proce a digital string which can not be forged by others. This digital string is also an effective proof of the authenticity of the information sent by the sender. Simply prove that "I am who I am."
In today's era of high development of the Internet, we are using the Internet more and more frequently, which has become an indispensable and important tool in our life. In particular, the mobile phone used for Internet communication has been used as a medium. In today's era, we are using mobile payment more and more, There are more and more ways to move. So what is digital currency? What do you know about it{ But generally speaking, it is a form of money< p> Finally, for such a form of transaction, it's all for the convenience of our daily life, and it's also for serving our own broad masses of people, so we don't have to worry about the advantages and disadvantages of digital currency and mobile payment
1.1. Introction
practitioners in the computer instry should be very familiar with the word hash. Hash can realize the mapping of data from one dimension to another, and hash function is usually used to realize this mapping. Generally, y = hash (x) is used in the instry. The hash function can calculate a hash value y by calculating X
hash function characteristics in blockchain:
function parameters are string type
fixed size output
is computationally efficient
collision free means that the conflict probability is small: X= y => hash(x) != Hash (y)
hide the original information: for example, the verification of transactions between nodes in the blockchain only needs to verify the information entropy of the transaction, and does not need to compare the original information. The nodes do not need to transmit the original data of the transaction, only the hash of the transaction, Common algorithms include Sha series and MD5
1.2. Hash is widely used in blockchain. One of them is called hash pointer
hash pointer, which means that the value of the variable is calculated from the actual data and points to the actual data location, That is, it can not only represent the actual data content, but also the storage location of the actual data. The figure below shows the schematic diagram of hash pointer
< / UL >in order to ensure the data security of users, the blockchain system is implemented through a cryptographic algorithm. Specifically, it is implemented through a public cryptographic algorithm mechanism. We all know how a cryptographic algorithm can have a secret key, and the public secret key algorithm is a pair of (that is, two) secret keys, just like tiger amulet, which are used together. One is called public key, which can be disclosed to others. The private key should be kept by itself. In the blockchain system, the public key is used to identify the identity, and the private key is equivalent to the key to decrypt. But the difference is that a public key is only for a unique private key, that is to say, if you forget the private key, it will not be retrieved for you, In the blockchain system, it will not help you retrieve the private key, so you should keep the private key properly
in the blockchain system structure, the data encrypted with public key must be decrypted with the corresponding private key, while the data encrypted with private key
must be decrypted with the corresponding public key, so the data encrypted with private key (usually called "signature") must be decrypted with the corresponding public key, which can play a great role
for a simple example, if Zhang San wants to send a check to Li Si, how can it be sent? In the past, it would be taken by the bookkeeper, so Zhang San thought of a way. He encrypted the check with Li Si's public key, and then signed his name (signed with his private key). At this time, other people would not use it even if they got the check, because only Li Si had his private key, That is, only Li Si can use this check. This function design is called "script system" in the blockchain system
therefore, the private key encrypted by the blockchain digital signature cannot be decrypted by the original encrypted private key, but must be decrypted by the corresponding public key.
