Bitcoin
December 21, 2017Слайд 1
Изначально доклад задумывался на тему ТОЛЬКО блокчейна, но это оказалось не слишком интересно. Всех нас интересует биткоин и прочие криптовалюты (а если быть точнее, то всех интересуют деньги, которых в криптовалютах сейчас много). Но блокчейн стороной в докладе не обойду, про него тоже есть что рассказать.
Слайд 2
И для начала загадка: что общего между человеком и информацией о биткоине? (Ответ: они на 70% состоят из воды). Проблематично найти что-то полезное и при этом понятное, когда каждый школьник рассказывает о том, что такое биткоин, как его майнить, как его обналичивать, при том, что он сам его не майнит и уж тем более не обналичивает. (Кстати bitcoin.org/ недоступен)
Слайд 3
Вряд ли я расскажу вам что-то новое. Все мы умные, все мы знаем что это такое и как это работает, все мы скроллим хабр и каким-то 25 кадром у нас в голове откладывается понимание о криптовалютах, даже если не вчитываться в статьи.
Слайд 4
Биткоин создавался, как идея ДЕЦЕНТРАЛИЗАЦИИ финансовой системы в далеком 2007 году, а реализация была в 2008 году (привет айфон 3g). Сатоси Накамото — создатель биткойна. Первые транзакции сделаны им, его кошелек всем известен.
Когда мы говорим о децентрализации системы, мы предполагаем, что у нас в системе не будет никакого центра и все будут в равных правах при обмене своими сообщениями. При таких условиях есть вероятность появления в системе злоумышленника/жулика. И это проблема. И она сформулиована в так называемой Задаче византийских генералов. (Задача о нескольких узлах, которые совместными усилиями должны понять: достоверное или недостоверное сообщение им пришло) Подробно о задаче на википедии. Я лишь скажу, что задачу решили в 82 году, но с маленьким условием — количество генералов (или узлов) остается неизменным, что само собой не подходит для валютного рынка. И вот только в 2007 году при помощи технологии БЛОКЧЕЙНА (что переводится как цепочка блоков) было предложено ОБЩЕЕ решение, когда количество узлов сети может быть неограничено.
Дополнение про блокчейн:
Блокчейн — это прежде всего технология передачи СООБЩЕНИЙ. И в случае с криптовалютами люди просто договариваются, что в сообщениях будут передавать свои транзакции.
Слайд 5
Хеш функция — сворачивание любой информации (байтов) в набор информации фиксированной длинны (у биткоина SHA-256). У хеш функции есть ключевые параметры: при малейшем изменении входных параметров кардинально меняются выходные данные. И у функции нет обратного преобразования.
Коллизия - когда при разных входящих данных, получается одинаковый хеш.
В идеале не должно существовать способа отыскания коллизий более быстрого, чем полный перебор
Слайд 6
Ассиметричная криптография
Работает эта система так:
Генерируется случайный закрытый (приватный) ключ (напомним, что ключ или шифр — это последовательность символов) и по определенному алгоритму подбирается к нему другой — открытый (публичный) ключ. При этом, для любого закрытого ключа существует только один вариант открытого. Т.е. эти ключи (приватный и публичный) всегда работают в паре(связке).
Далее полученный открытый (публичный) ключ пересылается по любым открытым каналам связи отправителю тайного сообщения.
Получив открытый (публичный) ключ, отправитель при помощи него зашифровывает сообщение и отправляет его получателю у которого есть соответствующий закрытый (приватный) ключ.
Получатель расшифровывает секретное сообщение, используя свой закрытый (приватный) ключ из пары с открытым (публичным), которым было зашифровано сообщение.
Слайд 7
Для кошелька в биткойне достаточно иметь пару публичного и приватного ключа.
Как получить.
Порядок действий: включаем VPN, заходим на bitcoin.org, выбираем ОС и сам кошелек (отличаются функционалом и размерами)
Слайд 8
Транзакции
Допустим есть вася (с кошельком ab, где а - публичный ключ, b - приваный) и петя (с кошельком yz, где y - публичный ключ, z - приватный). Чтобы Вася смог перевести деньги Пете, он должен сообщить всем участникам сети, что он(кошелек с публичным ключем "a") переводит деньги на кошелек с публичным ключем "y").
Транзакция не пройдет, пока не получит полное подтверждение от системы. Все транзакции хранятся в узлах. У каждого узла хранится копия всех транзакций. Чтобы проводить транзакции не обязательно хранить все копии у себя. Если майнить, то обязательно хранить копии всех транзакций.
Слайд 9
Блокчейн.
Если ассиметричная криптография и хеш функции уже были до биткоина, то блокчейна не было до биткойна.
Есть транзакции, которые мы совершаем. Хранятся они в блоках.
Как собирается блок: берутся все транзакции, от них считается хеш. После чего хеш добавляется в заголовок блока.
В заголовке блока есть поле с хешем предыдущего блока (чтобы не было махинаций 100 блоков назад). Изменять что-то в системе не выгодно, проще потратить мощности на новые блоки.
Когда создается новый блок: добавляется предыдущий блок и перебирается поле, пока его хеш не станет меньше его фиксированного числа. (ака СЛОЖНОСТЬ) Сложность меняется каждые 2016 блоков.
Транзакция не подтверждена, пока кто-то не запишет ее в валидный блок и пока все ее не проверят.
В конце мое личное мнение.