Жаргон шахтеров! первый урок для новичка.

Тема в разделе "Для новичков", создана пользователем SirTom, 9 дек 2016.

  1. SirTom

    SirTom новичок

    Хэлоу всем биткоин зависимым и всем кто "только попробовать".
    Вникая в мир криптовалют мы сталкиваемся с проблемой связанной с пониманием того что нам пытаются донести наши более продвинутые юзеры в много численных видео и блогах.
    Жду новичков с такими проблемами для обмена опытом и обсуждений шахтерского сленга.

    список основных терминов.
    http://www.kamforex.ru/bitcoin_8.php
     
    BitTrader, dietbear13 и Jerar нравится это.
  2. SirTom

    SirTom новичок

    наверно все входящие на этот форум уже знают что такое биткоин и другие криптовалюты но большинство из нас разобрались в этих терминах благодаря многочисленным словарям. Их полно на просторах интернета но все они ограничеваются 20 основными понятиями такими как: криптовалюта, кошелек для криптовалют, сатоши, блокчейн, и т.д. но полного развернутого словаря я не нашел. например для меня остается загадка что такое бэд шар и зачем мне нужна сылка на него?
     
    BitTrader нравится это.
  3. oldminer78

    oldminer78 Посткоиновец

  4. SirTom

    SirTom новичок

    Сатоши("Satoshi") - минимально возможная сумма в сети биткойн, как копейка или цент!

    1 satoshi = 0.00000001 BTC - 1 сатоши - одна сто стомиллионная часть биткоина;
    1 uBTC = 0.00000100 BTC - 1 микробиткоин - одна миллионная часть биткоина;
    1 mBTC = 0.00100000 BTC - 1 миллибиткоин - одна тысячная часть биткоина.

    Актуальный курс сатоши к биткоину и сатоши к рублю есть в виджете на главной странице нашего форума справа. С помощью калькулятора криптовалют вы сможете узнать сколько будет сатоши в рублях.

    ссылка на обсуждение.
    https://bitalk.org/threads/69/
     
    BitTrader нравится это.
  5. SirTom

    SirTom новичок

    BitTrader и oldminer78 нравится это.
  6. oldminer78

    oldminer78 Посткоиновец

    на здоровье)), сам когда-то был инициатором его создания, но так и не доделал до конца
     
    BitTrader нравится это.
  7. Jerar

    Jerar Постоянный пользователь

    Замечательная тема, обязательно присоединюсь к обсуждению
    Сейчас занят, штудированием форумов, голова прям кипит от инфы)

    На тему подписался, главное чтоб автор и дальше развивал данную тему.
     
    BitTrader нравится это.
  8. SirTom

    SirTom новичок

    Привет, %username%!
    Я расскажу и покажу как работает основа генерации денег в криптовалютах — майнинг. Как создается первый блок, новые блоки и как появляются деньги из ниоткуда.
    Чтобы было проще понять, мы напишем свой импровизированный майнер для импровизированной криптовалюты HabraCoin.

    Сначала упрощенный ликбез, куда без него.

    Кошельки

    Каждый кошелек — это случайно сгенерированная пара ключей. Собственно, адрес кошелька — это хэш от публичного ключа. Так его можно однозначно идентифицировать.

    Транзакция

    Это запись о том, с какого кошелька на какой какая сумма переводятся. А так же, время и дата операции. Эта запись (её хэш) подписывается закрытым ключом отправителя и рассылается всем в округе в ожидании подтверждения.

    Подтверждение

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

    Блок

    Это служебные данные + список транзакций + номер кошелька майнящего + волшебное число.

    Цепочка блоков

    Последовательность, в которой каждый следующий блок включает в себя Id предыдущего.

    Начало

    Итак, есть некоторое количество народа, можно один. Назовём его Хаброша. Он решает запустить свою систему криптовалюты HabraCoin.

    Поскольку выделенных серверов у этой валюты нет, то все её участники равноправны и должны как-то договариваться о валидности транзакций. То есть, нужен механизм, который обеспечит:

    1. Неотвратимость транзакций.
    2. Возможность любому проверить их валидность.


    Для этого он формирует блок из существующих на данный момент неподтвержденных транзакций, номера предыдущего блока, номера своего кошелька и т.д. Для самого первого блока транзакций у нас нет, номера предыдущего блока у нас нет, ничего толком нет. Только адрес кошелька Хаброши да дата со временем.

    Так же, в алгоритме HabraCoin указаны следующие вещи.

    1. Желательно, чтобы новые блоки создавались раз в 10 минут. Если через какое то время мы посмотрим, и окажется, что их больше чем надо было, то рассчитать новую сложность их генерации каждые 100 блоков
    2. За то, что кто-то создает валидный блок, ему полагается награда в 50 HabraCoins + комиссия
    3. «Побеждает» тот блок, в котором больше всех транзакций


    Ограничение скорости

    Как мы видим, сам факт создания блока говорит о том, что его создатель получает за это вознаграждение. И чтобы это вообще имело смысл, скорость и сложность создания блоков следует ограничить. Иначе сами понимаете, тонны блоков из ничего и никакого толку.

    В криптовалютах используется способ ограничения сложности, который заключается в проблеме вычисления хэша заданного значения. Если быть точнее, то меньше определенного значения.
    Если кто не в курсе, хэш, например f7c9f52d1ebf8c6aef8986fb127ba1bdeec58521f7eb46f026b708df26a40912 — это какое никакое, а число. В десятичной системе оно выглядит как 112078102004378042284884826242280406284022042488488848628408208468422468268028. То есть, хэши можно сравнивать, складывать вычитать и всё такое.
    Так вот. Чтобы все признали блок валидным, его хэш должен быть меньше максимально возможного минус определеного всеми значения, называемого сложностью.
    Например, хэш у нас 4 байта, максимально возможное значение его FFFFFFFF16. А сложность, допустим, 10010. Вычитаем одно из другого, получается, наш хэш должен быть меньше чем FFFFFF9B16

    Как этого добиться?

    Если помните, все блоки состоят из нескольких полей. Мы берем эти поля, конкатенируем, получаем из них массив байт. Это массив байт отдаем хэш функции, получаем результат и смотрим: меньше то, что получилось с учетом текущей сложности, или нет?
    Если нет, то изменяем этот массив байт до тех пор, пока не получим нужное значение. А именно:

    В каждом блоке есть поле, называемое nonce. Это число размером несколько байт, которое нужно увеличивать на единицу, дописывать к блоку и опять считать от него хэш. Поскольку хорошие хэш функции выдают более-менее равновероятностные значения, то мы не знаем заранее, сколько раз придется повторять процесс. Может 1-2 раза, а может миллиарды.

    Тот, кому удалось получить хэш, удовлетворяющий условиям сложности, рассылает всем блок с включенными в него транзакциями. На случай, если несколько человек сделали это одновременно, вводится условие, что несколько цепочек блоков существовать вместе не могут, а побеждает самая длинная. Таким образом, если у нас есть две цепочки:

    Block1->Block2->Block3A
    Block1->Block2->Block3B

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

    Комиссия


    Все у себя в кошельках видели поле «комиссия» при совершении транзакции. Эта комиссия идет людям, занимающимся генерацией блоков. То есть, они в первую очередь будут выбирать из всех транзакций, ожидающих подтверждения, те, которые содержат в себе комиссию. После формирования блока считается, что вся комиссия, содержащаяся в транзакциях, отходит к его (блока) создателю.
    То есть, когда кончится вознаграждение за генерацию блока (если это прописано в алгоритме валюты), то майнерам останется лишь комиссия, а халявные транзакции могут быть никогда не обработаны.

    Давайте смоделируем ситуацию и поможем Хаброше скрафтить какой нибудь блок.

    Под спойлером программа (в виде Junit теста), которая ради приличия генерирует 2 случайных пары ключей, формирует какое то подобие транзакции (даже подписывает её, все по честному!), а потом ищет такую к ней добавку, чтобы первые 2 байта хэша были нулевыми. Типа сложность такая. Работает пару минут, а потом действительно выдает хэш, который можно быстро проверить, сконкатенировав байты транзакции и счетчика.

    Код программы


    Пример получившегося блока:

    1824B9ADF09908222CF65069FDE226D32F165B3CF71B7AA0039FDFEF75EAA61610909EBFFBAC023480FC87FCF640C4A
    009B82C4A6D25A0F4B8A732AE54EF733E792681137BA378577DFDC2732D192DAF323966EAD4ADC9635D7A12EDD50E34
    9F660622D186AF3C03BF7D265F2AA7EB125056F4BF45BE519E8B22B845B28065110000006400000142E5D667CB01CEE
    EDD0AC15EC4C491819A99030BD5FEF7CD2B469F2B90BA13D7981EDCD0708353D13390B8564F496C44FAC2777B0AF79D
    C94CBF36D0CC0F047E807889F34C4DC5FEB724699C257391F84F3DDD70B84F841D115F4EFEAF4E58779042F35257E5C
    035046037DE740718D199A8F06AD7A58E37CCCD4CC5E95295DCC2C5F3C70847BD59FA57BCC5FF4B208F93948FCFD763
    EC1E5C85B61C43EB64B77A9F53B28785D7DE2335333003260A0839D53927976751A8D8967B2BB325909D86E82BC4125
    2A28ECF6F0E7476BB99B29585EB0E75410000

    И хэш для него:

    000008ACF935A8E3E453AC538706F560155943C6B0A77E5F5FCA7939D5FFE589676A6B3CD7AC78845786C50449D1A6F
    91003EDCA7B5D8B12AC36CCA36A00844A

    https://habrahabr.ru/ - интересные статьи.
     
    BitTrader и Jerar нравится это.
  9. Serg281116

    Serg281116 новичок

    С терминами все ясно, но представить остальное, вызывает повышение температуры в мозгу.
     
    BitTrader нравится это.
  10. dietbear13

    dietbear13 новичок

    например тема Майнинга?)

    может кто кинет основные понятия?
     
    BitTrader нравится это.
  11. Andrey777

    Andrey777 новичок

    А что такое майнинг?
     
    BitTrader нравится это.
  12. SirTom

    SirTom новичок

    в первом посте ссылка на основные понятия.

    Майнинг (от англ. mining, добыча в шахте) - использование компьютера, фермы, асиков для добычи криптовалюты. По сути, компьютер потребляет электричество, а свои вычислительные мощности использует, чтобы найти нужную последовательность кода, т.е. решает математические задачи. Майнинг можно назвать "печатным станком", поскольку криптовалюту можно обменять на фиат или товары. Подтверждение транзакции (англ. transaction confirmation) - процедура, выполняемая автоматически сетью Bitcoin. При отправке Биткойнов некоторое количество произвольно выбранных компьютеров подтверждают подлинность транзакции, после получения нескольких подтверждений транзакция считается действительной и более никто никогда не сможет утверждать, что такой транзакции не было
     
    BitTrader нравится это.
  13. Alex595

    Alex595 новичок

    ООоо Круто, что у вас такая тема есть - буду изучать
     
    BitTrader нравится это.