(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%

блокчейнапвот50-50новостиu75бизнес
25%
7
230
1.470 GOLOS
0
В избранное
onur1s
На Golos с 2017 M08
230
0

Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий

Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.

Зарегистрироваться
Комментарии (4)
Сортировать по:
Сначала старые