Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
onur1s
6 лет назад

(50/50) Bitcoin Blockchain часть 1. Ключи и адреса.

Блокчейн - это распределённая база данных, способная хранить любую информацию, будь то договора, ФИО граждан Малайзии или цвет глаз сотрудников Apple. Для хранения данных в классической базе данных используются специально выделенные для этих целей сервера, и управляются они одной компанией. Блокчейн контролируется всеми участниками сети, и один участник не может повлиять на хранящиеся данные без согласия остальных участников.


Блокчейн биткоина хранит информацию о транзакциях, и... всё. В блокчейне биткоина нет данных о балансах кошельков, но зная, сколько на кошелёк было поступлений средств, баланс всегда можно посчитать.


Приватный ключ - это случайное число от 1 до ((2 256)-1). Обычно берут число размером 256 бит
В памяти компьютера для хранения одного числа выделено "половина ячейки" памяти, которая по размеру равна "половине байта", или четырём битам. Я выделяю эти размеры в кавычки, потому что на самом деле в память записывается как минимум один байт. Максимально возможное число для хранения в четырёх битах - 1111 в двоичной, 15 в десятичной, или f в шестнадцатиричной системе счисления. Это одно и то же число, но записанное в разных системах счисления. Максимально возможное значение приватного ключа - (2 256)-1 = 115792089237316195423570985008687907853269984665640564039457584007913129639935 в десятичной системе счисления, что равно числу ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff в шестнадцатиричной. Для хранения 64 знаков шестнадцатиричного числа выделяется как раз 256 байт.


Публичный ключ - это координаты точки на конечном поле кривой SECP256k1. Она имеет вид y 2=x 3-7. Эта точка находится путём умножения приватного ключа на базовую точку G в конечном поле y 2 mod p = (x 3 - 7) mod p.
mod - остаток от деления
G(55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424)
p = 2 256-2 32-2 9-2 8-2 7-2 6-2 4-1 = 115792089237316195423570985008687907853269984665640564039457584007908834671663
Звучит сложно, знаю, но кратко и просто этот алгоритм не описать. Позже я напишу отдельную статью, в которой подробно опишу этот алгоритм.


Адрес кошелька получают из публичного ключа, применив две функции хэширования. Сначала public key хэшируется, используя функцию SHA256, затем полученный хэш ещё рах хэшируется функцией RIPEMD160, после чего полученный хэш переводится в Base58Check. SHA256 и RIPEMD160 являются криптографически стойкими хэш-функциями, которые я опишу в отдельной статье вместе с кодировкой Base58.

TEXT.RU - 100.00%

10
1.459 GOLOS
На Golos с August 2017
Комментарии (4)
Сортировать по:
Сначала старые