Секреты блокчейна


  • Freeland

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

    “The Times 03 / Янв / 2009 Канцлер готов оказать повторную помощь банкам”.

    Говорят, это отсылка к номеру газеты The Times от 3 января 2009 года,
    выпущенной в разгар финансового кризиса, что Сатоши Накомото говорит
    о неплатежеспособности банковского сектора.
    В том же блокчейне биткоина хранится молитва

    “Benedictus Sanguis eius pretiosissimus.
    Benedictus Iesus in sanctissimo altaris Sacramento.
    Ave Maria, gratia plena, Dominus tecum. Benedicta tu in mulieribus, …

    А также нерабочий исходник игры Жизнь на basic; ASCII-арты, тексты песен, фотографии с чьей-то свадьбы, стихотворения, цитаты и тд..

    Возникает вопрос: как это сумели записать в блокчейн? Если биткоин рассчитан лишь на транзакции, а не на хранение произвольных данных.

    Все просто.
    Берутся произвольные данные и делятся на части по 20 байт (20 символов, если в кодировке ANSI), затем каждая такая строка преобразуется в адрес кошелька. После формируется транзакция с отправкой чуть-чуть монет на полученный список адресов.
    То есть данные кодируются в адреса кошельков.
    При этом можно считать, что отправленные монеты сжигаются, исчезают.
    В теории максимум за одну транзакцию можно записать около 250кб.
    Но на практике лучше не более чем по 3 кб.

    В нашем MFCoin Blockchain также хранится множество пасхалок.
    Я написал инструмент для их просмотра , вам необходимо лишь ввести ID транзакции и посмотреть что в ней может быть закодировано.


  • Freeland

    Например, что хранится в нашем блокчейне:

    • серия фримена,
    • рецепт пирога,
    • цитаты с bash,
    • текст Оды,
    • несколько анекдотов,
    • 1200 сообщений с оф.чата mfcoinru.

    Я написал инструмент для записи текстов в блокчейн, если кто-то хочет записать свое послание, то цена вопроса 100 mfc, напишите в личку.


  • Freeland

    Также есть способ вручную декодировать транзакции. Например используя Block Explorer.
    Пример транзакции:
    69b162089ddf1e359117fe63b37f3a391fa26264e637edb3dc00818525a0643f
    Если перейдете по ссылке: https://block2.mfcoin.net/api/getrawtransaction?txid=69b162089ddf1e359117fe63b37f3a391fa26264e637edb3dc00818525a0643f&decrypt=0

    то увидите 0_1538514929371_5a7a5564-e307-442a-af14-28b0b99352a4-image.png длинную строку,
    которую можно перевести из шестнадцатеричного вида в текст:
    0_1538514987019_89dbf5f3-5410-4d50-8499-56488b495bc5-image.png

    Также раскодировать пасхалку в транзакции можно посмотрев на список адресов куда монеты в данной транзакции были отправлены. Далее берем любой Base58 декодер, берем адрес из списка и переводим его в HEX-вид. Например первый адрес из этой транзакции:

    • Адрес: MsaZKfUDaW9MmW8QGwMAFPqJzqE5QLyifW
    • Base58->HEX: 33df20e7ede0fe20f2ee2c20f7e5e3ee20ede520e75e8fe54d
      Отбрасываем первые 2 и последние 8 символов. Далее:
    • HEX->Text: Я знаю то, чего не з
      таким образом раскодировали 1-ый адрес транзакции.

  • Freeland

    В blockchain Elicoin в транзакцию
    http://block.elicoin.net/?page=tx&id=c3b27c367babcc12b9f259af10c234c7b7a98ca8f4a27f4571f79667ce4aad94

    Я записал:
    Hello to you from Mr Freeman, Elicoin users. Come to us: @mfcoinru
    )))