-
Notifications
You must be signed in to change notification settings - Fork 7
NANOALIAS
O NanoAlias prove uma maneira de registrar um apelido na própria blockchain, o que independe diretamente de terceiros. Desta forma o usuário pode enviar moedas usando @nanollet, ao invés de xrb_3tz9pdfskx934ce36cf6h17uspp4hzsamr5hk7u1wd6em1gfsnb618hfsafc.
-
OpenCAP: Este protocolo é similar ao e-mail, portanto oferece a possibilidade de o usuário escolher o seu “provedor”, criando seu apelido, onde considerar confiável, e apontado ao endereço.
O NanoAlias não depende autoridades externas à Blockchain, escorando apenas no dPoS. O OpenCAP é extremamente dependente do TLS, onde sua segurança é baseada em diversas autoridades certificadores, e do DNSSEC.
-
Nanode Alias: Este alias foi desenvolvido pela Nanode para a própria Nanode, nela o usuário poderia registrar um alias e aponta-lo para um endereço.
O NanoAlias não é centralizado e não é externo à Nano, dependendo apenas do dPoS. O Nanode Alias não permitia qualquer auditoria ou monitoramento dos cadastros de maneira pública, podendo ser alterado arbitrariamente pela Nanode, além disso era pago.
-
O apelido apenas pode ser registrado uma única vez:
O mesmo apelido não pode ser reivindicado por múltiplos usuários simultaneamente. O apelido deve ser único em toda a blockchain e apenas poderá apontar para um único endereço.
-
O registro deve ser imutável, uma vez registrado:
O apelido registrado não pode ser alterado por outros usuários, ou pelo próprio titular
Este sistema depende unicamente do consenso da rede, do dPoS, não oferecendo uma real prova criptográfica de titularidade, uma vez que a chave-privada é pública. Dessa forma ainda é possível que outras pessoas tentem alterar o destino do apelido, restando apenas o dPoS decidir qual informação é válida, um comportamento similar há como é feito para solucionar um fork. Uma vez que a chave privada é conhecida é possível que outros usuários executem um spam no aliás, o que trará mais trabalho para recuperar o Open. Além disso, não há como considerar uma cadeia de blocos como correta baseado no número de blocos corretamente assinados.
O usuário criará um endereço usando o próprio nome desejado. Por exemplo, se o usuário desejar o apelido de “nanollet”, basicamente o usuário irá criar uma chave publica usando a chave privada de Ed25519(key = 5BitASCII(“nanollet”))
.
Então, ele irá enviar 1 RAW para esta chave, usando o endereço que quer receber o alias. A chave privada do alias será usada para criar o Open, este open possui um representante de (xrb_3this7is7an7a1ias33333333333333333333333333333333333x9bet1jy
), para fácil identificação.
Uma vez que o Open não pode ser realizado mais de uma vez ninguém poderá alterar este bloco, exceto se o consenso da rede concordar com a substituição.
Para enviar um pagamento basta realizar o mesmo procedimento, criando a chave privada Ed25519(key = 5BitASCII(“nanollet”))
e obtendo todos os blocos desta chave publica, até localizar o Open. Uma vez que há um Open válido, deverá obter o bloco apontado no "Link" (que é o bloco que enviou o pagamento) e obter o "Account" deste bloco. Assim, o resultado será a chave pública da conta que enviou o pagamento, que foi aquele que registrou.
-
O usuário escolherá um apelido, este apelido apenas pode ser constituído dos seguintes caracteres:
.
,_
,-
ea-z
e não pode ter sido registrado anteriormente.Como exemplo poderá escolher o “nanollet”.
-
A carteira codificará este apelido usando 5Bit-ASCII, descrito baixo em detalhes.
A codificação em 5Bit-ASCII de “nanollet” é
0x892327BD17
-
A carteira utilizará o resultado do 5bit-ASCII como uma chave privada, preenchendo com null-byte.
Chave Secreta da “nanollet” é
0x892327BD17000000000000000000000000000000000000000000000000000000
e a Chave Pública é0xC839673F7CBBDE7118A18E6860D6CAEA877B90D3A9C6963AF3992168855F35F3
. -
O usuário deverá enviar um pagamento de 1 RAW para a respectiva chave pública, usando o endereço que receberá o alias.
O xrb_3tz9pdfskx934ce36cf6h17uspp4hzsamr5hk7u1wd6em1gfsnb618hfsafc envia 1 RAW para
0xC839673F7CBBDE7118A18E6860D6CAEA877B90D3A9C6963AF3992168855F35F3
. -
A chave privada do alias é usada para criar o bloco Open.
O alias cria um bloco Open usando o pagamento que acabou de receber, este bloco open possui um representante de (
xrb_3this7is7an7a1ias33333333333333333333333333333333333x9bet1jy
). -
O alias está registrado!
É recomendado que o alias reembolse o usuário, devolvendo o 1 RAW enviado.
-
O usuário insere o apelido de quem deseja receber o pagamento.
Por exemplo: @nanollet.
-
A carteira removerá o "@" e codificará este apelido usando 5Bit-ASCII, descrito baixo em detalhes.
A codificação em 5Bit-ASCII de “nanollet” é 0x892327BD17
-
A carteira utilizará o resultado do 5bit-ASCII como uma chave privada, preenchendo com null-byte e obterá a chave pública.
Chave Secreta da “nanollet” é
0x892327BD17000000000000000000000000000000000000000000000000000000
e a Chave Pública é0xC839673F7CBBDE7118A18E6860D6CAEA877B90D3A9C6963AF3992168855F35F3
. -
A carteira buscará por todos os blocos emitidos pela chave-publica até identificar um Open válido.
Deve obter todos os blocos e localizar o bloco Open, requisitando votos para confirmação se necessário. Neste caso o bloco é
0xED2E820762019C8AFFBBD6FD37B906A406E6DFCEF5DF30563B647AA876E3AE5E
. -
A carteira irá obter o bloco usando a hash do “Link” contido no Open.
Deve obter o bloco apontado no “Link” do Open. Neste caso é
0xA530B7382BCBA83131163B5FA3F99E30CEECD4F2094CA1AE7A3B9B3620DF76D4
. -
Pronto, temos endereço do alias contido no “Account” deste bloco.
O bloco obtido no passo 5 possuirá o “Account” é que a conta de quem enviou o pagamento ao Alias e que é o titular. Neste caso é
xrb_3tz9pdfskx934ce36cf6h17uspp4hzsamr5hk7u1wd6em1gfsnb618hfsafc
.
O apelido usa apenas 5bit por caractere, isto permite que o apelido tenha até 51 caracteres, ocupando os mesmos 32 bytes usados para a chave privada. Isto também restringe o número de caracteres que podem ser utilizados, evitando caracteres que são parecidos.
CHAR | ASCII | 5BIT |
---|---|---|
NULL | 0 (00000000) | 0 (00000) |
- | 45 (00101101) | 1 (00001) |
. | 46 (00101110) | 2 (00010) |
_ | 95 (01011111) | 3 (00011) |
a | 97 (01100001) | 4 (00100) |
b | 98 (01100010) | 5 (00101) |
c | 99 (01100011) | 6 (00110) |
d | 100 (01100100) | 7 (00111) |
e | 101 (01100101) | 8 (01000) |
f | 102 (01100110) | 9 (01001) |
g | 103 (01100111) | 10 (01010) |
h | 104 (01101000) | 11 (01011) |
i | 105 (01101001) | 12 (01100) |
j | 106 (01101010) | 13 (01101) |
k | 107 (01101011) | 14 (01110) |
l | 108 (01101100) | 15 (01111) |
m | 109 (01101101) | 16 (10000) |
n | 110 (01101110) | 17 (10001) |
o | 111 (01101111) | 18 (10010) |
p | 112 (01110000) | 19 (10011) |
q | 113 (01110001) | 20 (10100) |
r | 114 (01110010) | 21 (10101) |
s | 115 (01110011) | 22 (10110) |
t | 116 (01110100) | 23 (10111) |
u | 117 (01110101) | 24 (11000) |
v | 118 (01110110) | 25 (11001) |
w | 119 (01110111) | 26 (11010) |
x | 120 (01111000) | 27 (11011) |
y | 121 (01111001) | 28 (11100) |
z | 122 (01111010) | 29 (11101) |
- Build
-
Features
- SEEDFY
- NANOFY
- 2FA
- NANOALIAS