Funções Criptográficas no Solidity

Neste artigo, exploraremos algumas das funções de criptografia mais usadas no Solidity e sua importância no desenvolvimento de contratos inteligentes .

Também discutiremos como essas funções podem ser usadas para aumentar a segurança e a confiabilidade dos contratos inteligentes. Então, vamos nos aprofundar e dar uma olhada mais de perto nas funções de criptografia do Solidity.

As funções criptográficas desempenham um papel fundamental na proteção de contratos inteligentes. O Solidity possui uma variedade de funções criptográficas para você garantir que os contratos inteligentes que você desenvolve sejam seguros.



O que é Hashing no Solidity?

Na criptografia, uma função de hash é um algoritmo que produz texto codificado de tamanho fixo, tomando uma quantidade arbitrária de dados como entrada.

A saída pode ser completamente diferente mesmo para a menor mudança na entrada.

As funções criptográficas fornecidas pelo Solidity incluem:

Função Propriedades
keccak256(bytes de memória) retorna (bytes32) Calcula um hash Keccak-256 da entrada
sha256 (bytes de memória) retorna (bytes32) Calcula o hash SHA-256 da entrada
ripemd160(bytes de memória) retorna (bytes32) Fornece o hash RIPEMD-160 da entrada
ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) retorna (endereço) Recupere o endereço associado à chave pública da  assinatura da curva elíptica usada para criptografia ou retorne Zero se ocorrer um erro. Os parâmetros correspondem aos valores da Assinatura ECDSA.

A função de hash mais comumente usada no Solidity é o SHA-3 (Secure Hash Algorithm 3).

SHA-3 é uma função hash criptográfica que gera uma saída de comprimento fixo a partir de uma entrada arbitrária.

A saída gerada pelo SHA-3 geralmente é representada no formato hexadecimal.

O Solidity fornece a função keccak256, que é uma implementação do SHA-3.

A função keccak256 recebe uma entrada de comprimento variável e gera uma saída de 256 bits.

A saída gerada pelo keccak256 é determinística, o que significa que a mesma entrada sempre gera a mesma saída.

O exemplo a seguir mostra o funcionamento das funções criptográficas fornecidas pelo solidity:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
pragma solidity ^0.8.0;
contract SolidityTest {
// The given function converts a string to keccak256 Hash Form //
function encrypt_String_To_keccak256(string memory mrx) public pure returns(bytes32){
bytes32 ample= keccak256(abi.encodePacked(mrx));
return ample;
}
// The given function converts a string to SHA256 Hash Form //
function encrypt_String_To_SHA256(string memory mrx) public pure returns(bytes32){
bytes32 ample= sha256(abi.encodePacked(mrx));
return ample;
}
// The given function converts a string to a ripemd Hash Form //
function encrypt_String_To_Ripemd(string memory mrx) public pure returns(bytes32){
bytes32 ample= ripemd160(abi.encodePacked(mrx));
return ample;
}
// ecrecover() will provide the address of the public key
function get_Address(string memory mrx, uint8 v, bytes32 r, bytes32 s) public pure returns (address){
bytes32 ample=keccak256(abi.encodePacked(mrx));
address mrx_address= ecrecover(ample, v, r, s);
return mrx_address;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Assinaturas digitais

Os contratos inteligentes usam assinaturas digitais para garantir a autenticidade e integridade dos dados.

As assinaturas digitais podem ser criadas e verificadas usando várias funções do Solidity.

O Solidity usa o algoritmo de assinatura digital de curva elíptica (ECDSA) para assinaturas digitais. Para criar assinaturas digitais, o ECDSA é usado como um algoritmo de criptografia de chave pública.

Para verificar assinaturas digitais, o Solidity fornece a função ecrecover .

Quatro parâmetros são passados ​​para a função ecrecover: o valor de hash dos dados assinados, o parâmetro v, o parâmetro r e o parâmetro s da assinatura.

A função retorna a chave pública do signatário se a assinatura for válida e retorna 0x0 caso contrário.


Conclusão

Pode-se concluir que as funções criptográficas são uma maneira eficaz de você realizar uma variedade de operações criptográficas, incluindo hashing, criptografia, geração de assinaturas digitais e geração de números aleatórios, por meio de contratos inteligentes, para que os dados sejam seguros , privados e autêntico .

Com funções de criptografia, você pode desenvolver aplicativos mais sofisticados, complexos e fáceis de usar que são confiáveis ​​para os usuários usando funções de criptografia.

Para evitar armadilhas de segurança comuns durante o desenvolvimento de contratos inteligentes, é crucial entendermos as limitações e possíveis vulnerabilidades dessas funções.
Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone