Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
mnsx
8 лет назад

Из чего на самом деле состоит блок Биткойна?

Последнее время, достаточно часто, во время общения на биткойн ресурсах, сталкиваюсь с мнением блок-диссидентов. Это люди, по разным причинам уверенные, что проблемы размера блока не существует.

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

Вот один из примеров такого утверждения с сайта bitnovosti.com:

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

На волне актуальности этой темы я решил самостоятельно разобраться из каких транзакций на самом деле состоит блок биткоина и провести свой небольшой эксперимент.

Границы транзакций

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

  • Спам транзакции - транзакции менее $1, что на момент написания статьи было около 0.001 btc;
  • Малые транзакции - транзакции от $1 до $​10, на момент написания статьи до 0.01 btc;
  • Средние транзакции - транзакции от до​ $100, до 0.1 btc соответственно;
  • Большие транзакции - все остальные транзакции, более $100;

Следующий вопрос, который возник у меня: что считать суммой транзакции? Количество выходов у транзакции, как правило больше 1. Что-то из этого транзакция, а что-то сдача.

Я решил брать за сумму транзакции её самый маленький выход, игнорируя другие выходы. То есть, если пользователь переводит $99 и в качестве сдачи получает​ $1, то такая транзакция считается малой. Такой подход не совсем верный, ведь он даёт преимущество спам транзакциям, но для моего эксперимента такой подход приемлем.

Собираем данные

У Биткойна есть отличная особенность: его данные открыты. Все транзакции, все адреса доступны каждому. Любой может получить к ним доступ.

Для получения этих данных я обратился к API сервиса btc.com. Документация достаточно проста, что позволяет достаточно быстро начать работать с ними.

Для своего эксперимента я решил взять информацию о последних 999 блоках. На момент написания статьи последний блок был 454037. Соответственно в эксперименте участвовали блоки с 453038 по 454037.

В качестве языка программирования я выбрал JavaScript. Для того, чтобы сохранить данные я использовал базу данных neDB.

За 15 минут я набросал небольшой скрипт и отправил его собирать данные.

В итоге я получил базу данных с информацией о последних 999 блоках, общее количество транзакций, а также количество транзакций по категориям.

Анализируем данные

Когда все данные были получены и отсортированы я начал анализировать полученную информацию.

Процент спам транзакций (транзакций которые имеют хотя бы один выход менее $1) оказался почти​ 19%. Число не малое, но всё таки не 80% о которых утверждают многие пользователи.

Более того, оказалось, что примерно такая же часть транзакций относится к категории больших, минимальный выход которых превышает $100.

Малые транзакции, от 1 до 10 долларов, занимают примерно треть блоков, отнести их к спам транзакциям я не решился, всё же сумма сопоставимая с ценой чашки кофе, поездки убер или даже полноценного обеда. В общем транзакции повседневных расходов.

Большинство же транзакций в сети, около 36%, это средние транзакции, с минимальным выходом от 10 до 100$.

Вот таким получился график распределения транзакций в блоках:

Выходит, что подавляющее число транзакций в сети Биткоин, в последних 999 блоках имеют минимальный выход от 1 до 100 долларов, их общий процент приближается к 65.

Если присмотреться, то в рамках заданных границ распределение транзакций стремится к нормальному распределению Гаусса:

На мой взгляд это нормальное состояние сети, именно к такому состоянию сеть будет стремиться всегда.

И что же в итоге?

В итоге моего небольшого эксперимента получается, что число транзакций, имеющих хотя бы один выход менее $1 достаточно велико, практически пятая часть, но их количество не определяющее, и сеть в целом стремится к нормальному распределению. Подавляющее большинство транзакций имеют минимальный выход более $1 и сказать, что сеть забита мусорными транзакциями совсем нельзя.

Более того, если взглянуть на медиану месячного блока, то мы увидим, что даже если бы мы убрали 20% транзакций из сети, это ничего бы не изменило и блок всё равно оставался заполненным:

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

3
13.606 GOLOS
На Golos с February 2017
Комментарии (7)
Сортировать по:
Сначала старые