Онлайн образование. Биткойн

Содержание

Слайд 2

Bitcoin Архитектуры и паттерны проектирования Егор Зуев

Bitcoin

Архитектуры и паттерны проектирования

Егор Зуев

Слайд 3

Меня хорошо слышно && видно?

Меня хорошо слышно && видно?

Слайд 4

Содержание Свойства биткоина Основные структуры UTXO Адреса Форматы приватных ключей Переводы

Содержание

Свойства биткоина
Основные структуры
UTXO
Адреса
Форматы приватных ключей
Переводы
Merkle root
Своя ценность
Майнинг
Где применять

Слайд 5

Свойства биткоина 01

Свойства биткоина

01

Слайд 6

Свойства Использует POW консенсус Транзакции жестко зависят от предыдущих Долгая сборка блока (около 10 минут)

Свойства

Использует POW консенсус
Транзакции жестко зависят от предыдущих
Долгая сборка блока (около

10 минут)
Слайд 7

Основные структуры 02

Основные структуры

02

Слайд 8

Блок const block = { // https://bitcoin.org/en/developer-reference#getblock "result": { "hash": "0000000000000000000b0f271558b6ae0bb31389d4072bb11f3b9cda51e1357a",

Блок

const block = { // https://bitcoin.org/en/developer-reference#getblock "result": { "hash": "0000000000000000000b0f271558b6ae0bb31389d4072bb11f3b9cda51e1357a", //

block hash "confirmations": 1991, // how much blocks has been mined after this one "size": 1321265, // total block size in bits "height": 613657, // index of block "merkleroot": "02154accdf90a96c97e875eade90511b9be40e7ad170d4c3e550e82eeb24ad2e", "tx": [ "b6e94d3f3de925dd6333d228d83565d0939ed80672a094adb95c3c871404d873", "9edd802b68ef48ab424c507bdc827bc7aa2e9f8ca08d5a3607fe526053bc3a29", ], "time": 1579506481, // when has been generated "nTx": 2031, // total amount of included txs "previousblockhash": "0000000000000000000abe0f6730244cc05e1fff93aaaa72c310bd4676996c76" // ref to previous block }, "error": null, "id": 1 }
Слайд 9

Транзакция const tx = { txid: '3b29b258f6c1ebc0b4fc750e3e9950f859e3c7cb5fd843e8049905ef18aa08c1', hash: '74654e6e4ace830d24f02d5fea20686521f7196f95152a6ec2276eee8c27b33b', size: 380,

Транзакция

const tx = { txid: '3b29b258f6c1ebc0b4fc750e3e9950f859e3c7cb5fd843e8049905ef18aa08c1', hash: '74654e6e4ace830d24f02d5fea20686521f7196f95152a6ec2276eee8c27b33b', size: 380, vin:

[{ txid: 'db43b8c11cd89682c4182c7f9a8561b2836da822a3ece440d103e0d5c1551521', vout: 1, sequence: 4294967295 }], vout: [{ value: 0.1868556, n: 0, scriptPubKey: { asm: 'OP_HASH160 84604c5bbb939737139437dcd6d3b31da59746ee OP_EQUAL', hex: 'a91484604c5bbb939737139437dcd6d3b31da59746ee87', reqSigs: 1, type: 'scripthash', addresses: ['3DkxUnb3EMH1BoJiW6yMGrSLqAJBbC3BR6'] } }], blockhash: '0000000000000000000b0f271558b6ae0bb31389d4072bb11f3b9cda51e1357a', confirmations: 2031, time: 1579506481, blocktime: 1579506481 }
Слайд 10

UTXO 03

UTXO

03

Слайд 11

UTXO UTXO (unspent transaction output) Транзакции в биткоине устроены по принципу

UTXO

UTXO (unspent transaction output)
Транзакции в биткоине устроены по принципу “входы-выходы”
Представим,

что у Alice есть монета, достоинством 1 btc. Она хочет перевести Bob 0.4 btc, и Denis – 0.6btc
Alice создает транзакцию, где кладет на вход свою монету 1btc, а в выходах указывает адрес Denis и для него сумму (0.6btc), и для адреса Bob (0.4btc)
Когда Alice отправляет транзакцию в блокчейн, ее монета (1btc) считается потраченной, и в тот же момент у Bob появляется новая монета достоинством (0.4 btc), и у Denis – 0.6btc
Вот эти не потраченные монеты Bob и Denis и называются UTXO
Слайд 12

Адреса 04

Адреса

04

Слайд 13

Виды адресов P2PKH: pay to public key hash (начинаются с “1”)

Виды адресов

P2PKH: pay to public key hash (начинаются с “1”)
P2SH: pay

to script hash (начинаются с “3”)
Bech32: segwit (начинаются с “bc1”)
Слайд 14

Merkle root 05

Merkle root

05

Слайд 15

Merkle root

Merkle root

Слайд 16

Типы приватных ключей 06

Типы приватных ключей

06

Слайд 17

Виды приватных ключей WIF Mnemonic (bip39)* Hex private key

Виды приватных ключей

WIF
Mnemonic (bip39)*
Hex private key

Слайд 18

Hierarchical Deterministic Wallets Есть мнемоник / xpriv ключ С помощью специального

Hierarchical Deterministic Wallets

Есть мнемоник / xpriv ключ
С помощью специального пути, мы

можем получить конкретный приватный ключ, вычисляемый на основе этого пути (bip32)
Слайд 19

Майнинг 07

Майнинг

07

Слайд 20

Как происходит валидация Раз в определенный промежуток времени (около 10 минут)

Как происходит валидация

Раз в определенный промежуток времени (около 10 минут)
Майнер собирает

блок (заголовок блока)
Этот заголовок должен включать специальное число – nonce
Проверка простая: hash(block header) < target, where target – hardcoded hash
Решить можно лишь перебирая nonce
Слайд 21

Что можно еще делать? 08

Что можно еще делать?

08

Слайд 22

Что можно? Блокчейн – это не о крипте Блокчейн – это

Что можно?

Блокчейн – это не о крипте
Блокчейн – это о ценности.

Пользователи сами определяют ценность
Хороший пример: смарт контракты (Ethereum / hyperledger)
Слайд 23

Опрос https://otus.ru/polls/6414/

Опрос

https://otus.ru/polls/6414/