Автор — Брайан Армстронг, CEO Coinbase

В прошлом году я посетил конференцию Satoshi Roundtable вместе с Чарли Ли и около 70 других участниками сообщества Bitcoin.

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

Между разработчиками, майнерами и CEO биткоин-компаний проводится много встреч. Как вы знаете, сейчас существуют большие разногласия насчёт того, как масштабировать систему Bitcoin в данный момент. С одной стороны есть разработчики ядра, которые волнуются, что масштабирование блокчейна повлияет на децентрализацию. С другой стороны биткоин-компании, которым нужен рост системы. Майнеров как бы защемили с двух сторон, их мнения разделились.

Я думаю, организаторы конференции надеялись на какой-то консенсус (как в Гонконге), но к концу стало понятно, что разногласия слишком велики. Обсуждение изначально велось вокруг того, на какие компромиссы можно пойти, чтобы временно решить проблему масштабируемости. Но по мере обсуждения это краткосрочное решение заботило меня всё меньше и меньше, потому что я осознал более серьёзную проблему: систематический риск для Bitcoin, если Bitcoin Core будет единственной группой, работающей над протоколом.

В Bitcoin Core есть ряд людей с очень высоким IQ, но несколько вещей меня очень беспокоят после того, как я провёл с ними некоторое время в прошлые выходные.

  1. Некоторые из них демонстрируют очень низкие коммуникационные способности или недостаток зрелости — это вредит возможности привлечь к работе над протоколом Bitcoin новых разработчиков.
  2. Они предпочитают «идеальные» решения, а не «достаточно хорошие». И если не существует идеального решения, то они смиряются с бездействием, даже если это подвергает риску систему Bitcoin.
  3. Похоже, они убеждены в том, что Bitcoin не способен достаточно хорошо масштабироваться в долгосрочной перспективе, и любой размер блока в будущем будет мал, чего они не желают допустить.

Хотя разработчики ядра говорят, что согласны на жёсткий форк до 2 МБ (у них есть это в планах, хотя в далёком будущем), но отказываются делать это приоритетом. Они предпочитают сдерживать решения, которые могут помочь сети прямо сейчас, потому что не доверяют сообществу в возможности принимать грамотные решения в будущем. Они видят себя как главных архитекторов сети и защитников людей. Они готовы смириться с обрушением сети Bitcoin, если это не противоречит их базовым принципам.

Иметь высокий IQ недостаточно для успеха. Вам нужно ещё принимать разумные компромиссы, быть доброжелательными, общаться и быть готовыми к сотрудничеству. Любая команда, не имеющая такого желания, не сможет привлекать лучшие таланты и пострадает в долговременной перспективе. По моему мнению, главным риском для системы Bitcoin сейчас по иронии является то, что помогло ей в прошлом: разработчики ядра.

Проблемы на горизонте


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

Следующее уменьшение вдвое вознаграждения майнеров произойдёт в июле. Предположим, они тратят на майнинг одной монеты, в среднем, $250 (это цифра навскидку). После уменьшения вознаграждения себестоимость 1 BTC для них вырастет до $500. Если цена биткоина останется в районе $425, то для многих майнинг станет убыточным.

В результате может уменьшиться вычислительная мощность сети в июле. Возможно, на 10-50% (у меня нет нормального способа оценить это, если у кого-то есть, сообщите).

В худшем случае, скажем, 50% мощности вычисления хэшей уходят из сети из-за убыточности. Это значит, что мы начинаем майнить блоки каждые 20 минут вместо 10 минут. Но сейчас блоки заполняются уже на 70%. Если среднее время подтверждения опускается до 20 минут, то блоки будут заполняться на 140%, то есть начинают накапливаться в очереди.

В Bitcoin есть механизм для регулирования сложности подтверждений (proof-of-work), когда меняется мощность сети. Это происходит каждые 2016 блоков, что занимает обычно около двух недель. Но мы майним блоки каждые 20 минут, так что потребуется четыре недели.

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

Если проблемы приведут к падению цен на биткоин, то майнинг станет ещё менее прибыльным, и порочная спираль повторится.

Пока неясно, какова вероятность вышеописанного сценария (то, что я описал как наихудший сценарий). Вполне возможно, что с уменьшением вознаграждения за майнинг стоимость биткоина пойдёт вверх. И сложно предсказать, какой процент хэшинговой мощности может уйти из сети после уменьшения вознаграждения. Он может быть гораздо меньше 50%. Но я также считаю, что нет причин рисковать и невероятно безответственно играть так близко к краю пропасти. Даже сейчас сеть с 70% заполнения блоков испытывает проблемы с заторами и очередью. Любое уменьшение мощности сети усугубит проблему.

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

К счастью, отдельные участники сообщества начали говорить об этом ещё два года назад и даже покинули команду Bitcoin Core, чтобы написать новый код для увеличения пропускной способности сети. Есть способ избежать проблемы.

Что делать


  1. Первым делом нужно немедленно перейти на блоки 2 МБ. Это самое реалистичное кратковременное решение, которое выиграет нам время. Я считаю, или мы сделаем апгрейд сейчас (когда у всех достаточно времени для подготовки), или потом нам придётся делать апгрейд в экстренном порядке. Есть код для решения этой задачи. Код высокого качества, написан бывшими разработчиками ядра, и уже проверен в продакшне многими биткоин-компаниями (включая Coinbase). Апгрейд на Bitcoin Classic не означает, что мы должны оставаться на версии Classic вечно, просто это наилучший вариант устранить риски прямо сейчас. В будущем мы можем использовать код от любой группы разработчиков.
  2. Нужно наладить канал коммуникации с китайскими майнерами насчёт этого апгрейда. Их ввели в заблуждение, что только 4-5 человек в мире могут безопасно работать над протоколом биткоина, хотя на самом деле именно эта группа представляет наибольший риск для их бизнеса. Я попрошу @cnLedger в твиттере помочь перевести этот пост на китайский и помочь распространить его (апдейт: он уже переведён). Нам в сообществе нужно больше налаживать связи с китайскими майнерами.
  3. В долговременной перспективе, нужно сформировать новую группу разработки биткоин-протокола. Команду, которая будет дружественна к новым разработчикам, будет готова к разумным компромиссам и которая поможет продолжить масштабирование протокола. Об этом мы услышим в ближайшие месяц или два.

Стоит заметить, что со стороны команды Bitcoin Core поступило альтернативное решение проблемы масштабирования — так называемая система «сегрегированного свидетельства» (Segregated Witness, SegWit).





Хотя это хорошо сделанная технология, мне кажется рискованным использовать такой подход, учитывая описанную выше ситуацию. Одним из главных рисков использования новой системы является то, что она требует внедрить новый код не только на уровне ядра, но и у каждого провайдера кошельков, который генерирует транзакции. Маловероятно, что это будет сделано в короткие сроки и позволит избежать проблем с масштабированием, которые нам грозят. Количество строк кода, которые нужно написать всем участникам отрасли, на несколько порядков превышает количество строк кода для смены размера блока с 1 МБ до 2 МБ. Разработчикам ядра объяснили это на конференции, но они похоже не поменяли своё мнение относительно краткосрочного решения проблемы.

Заключение


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

Если вы хотите обеспечить успех Bitcoin, я призываю вас перейти на Bitcoin Classic в краткосрочном периоде и потом сделать всё что можно для реализации трёх шагов, описанных выше. Это наилучший путь выхода из опасной ситуации, в которой мы оказались.

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

Комментарии (121)


  1. Firz
    06.03.2016 12:48
    +1

    «В худшем случае, скажем, 50% мощности вычисления хэшей уходят из сети из-за убыточности. Это значит, что мы начинаем майнить блоки каждые 20 минут вместо 10 минут. Но сейчас блоки заполняются уже на 70%. Если среднее время подтверждения опускается до 20 минут, то блоки будут заполняться на 140%, то есть начинают накапливаться в очереди.
    В Bitcoin есть механизм для регулирования сложности подтверждений (proof-of-work), когда меняется мощность сети. Это происходит каждые 2016 блоков, что занимает обычно около двух недель. Но мы майним блоки каждые 20 минут, так что потребуется четыре недели.»

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


    1. rPman
      06.03.2016 12:56

      Им нужно оплачивать расходы на электроэнергию, охлаждение и обслуживание (а кое кто может оплачивать оборудование в лизинг), и делать это приходится зачастую не в bitcoin, т.е. необходимо продавать часть (а сейчас это заметная часть).

      Форма их спекуляций не важна, купили ли они монеты и сложили в долгий ящик или майнят, постепенно накапливая эту сумму.


    1. Ajex
      06.03.2016 17:20
      +1

      Совершенно верно. Все почему-то думают, что если в какой-то момент себестоимость майнинга перекроет убыток, то майнинг прекратится. Откуда взялась эта потолочная цифра в 230 долларов за майнинг 1 биткоин. Цена почти год держалась ниже этого уровня и ничего.
      Я, например, в свое время майнил и при цене в 2 доллара за биткоин, и с тех пор до сих пор остались какие-то пару биток.
      Манинг сам себя регулирует, в случае изменения одного из параметров, система саморегулируется. При падении прибыли от майнинга, с рынка уходят слабые и неэффективные майнеры, а на уменьшение предложения, рынок реагирует спросом и увеличением цены, что добалансирует систему.
      Что же касается блоков, то и тут по моему мнению все прекрасно балансируется теми механизмами, что заложены в протокол. А именно приоритетностью транзакций, когда транзакции с большей комиссией идут первыми. Это заставит отправителей корректировать размер комиссии в зависимости от загруженности сети (как сейчас делает это стандартный клиент), а также консолидировать несколько платежей в один, для экономии. Майнеры же в свою очередь, получат дополнительный профит в виде доходов от комиссий и все счастливы. Ну кроме тех, кто пытается расшатать лодку и взять контроль над протоколом в свои руки.


  1. kronos13
    06.03.2016 14:41
    +1

    Может стоит добавить голосование к статье? Интересно посмотреть на мнение сообщества Geektimes в голосовании приверженности к внедрению системы сегрегированного свидетельства или к увеличению размера блока с 1 МБ до 2 МБ.


    1. Ajex
      07.03.2016 21:34
      +1

      Я думаю врядли эти результаты будут что-то отображать. Тут очень мало людей понимают о чем собственно речь и почему нельзя поменять какую-то константу с 1мб на 8мб, ведь больше лучше чем меньше.


      1. KasperGreen
        07.03.2016 21:42

        +1


  1. Delics
    06.03.2016 16:14

    Биткоин был сделан как пробный, революционный продукт. В условиях, когда никто ничего подобного ещё не делал.

    Конечно он требует доработок при использовании. Всем разработчикам это понятно.

    Но на него налетели банкиры, журналисты, разные бездельники и уже построили на нём целый свой мирок. Ещё и дорабатывать не дают.

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


    1. KivApple
      06.03.2016 18:23
      +1

      Банкиры ждать не будут (время — деньги), а просто забьют на биткойн. И восстановить доверие к сети будет трудно, потому что нет никаких гарантий, что через некоторое время авторы bitcoin опять не пойдут на принцип насчёт ещё одного улучшения и опять приведут к огромным убыткам из-за простоя.

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

      Вообще-то именно за счёт них сегодня bitcoin стоит 400 с лишним долларов, а не несколько центов. За счёт пиара в СМИ и многомиллионных инвестиций. А ещё за счёт простых пользователей. Так вот — большинству пользователей тоже нафиг не нужна система, в которой транзакции проходят 2 недели.

      Вы действительно хотите, что лучше пусть bitcoin будет идеальным, зато им будут пользоваться только разработчики и несколько упоротых фанатиков? Почему бы тогда не сделать форк? "Для нормальных людей" с увеличенным размером блока и быстрыми транзакциями и "для упоротых фанатиков" с маленькими блоками и недельным ожиданием подтверждений (хотя нет, проблема сама решиться из-за низкой популярности упадёт количество транзакций).


      1. bodqhrohro
        07.03.2016 02:03

        Так уже полно малопопулярных криптовалют, по большей части форков с некоторыми изменёнными алгоритмами. И оригинальный биткоин среди них чуть ли не наименее живучий, хотя бы потому, что его довольно быстро перестало быть выгодно майнить на любой кофеварке (даже пулы позиции сдают). Вся идеология полетела в тартарары и биткоин превращается из свободной децентрализованной валюты в бесцельное просаживание колоссальных вычислительных и энергетических ресурсов несколькими финансовыми воротилами. Just as planned?


        1. rPman
          07.03.2016 12:11

          по плану да, фазу централизации криптовалюты должны пройти


          1. polym0rph
            09.03.2016 03:13
            +1

            Пулам самим не выгодно собирать у себя большие мощности. Новости типа "Пул ХХХ имеет более 51% мощности сети!!!1один" очень хорошо курс просаживают, что весьма не косвенно влияет на их прибыль.
            Хотя тут можно хитрее поступать, например формально независимые пулы могут быть аффилированными.


  1. Sadler
    06.03.2016 16:15
    +6

    А оскорблять команду разработчиков было обязательно? Даже в этой статье были отсылки на IQ, незрелость и т.п. Я думаю, правильно они игнорируют этого напыщенного болвана с его Classic. Безотносительно качеств того или иного решения.


    1. KivApple
      06.03.2016 18:25
      +1

      Игнорировать хорошее решение из-за личной неприязни к его автору (пусть даже обоснованной) — как раз таки признак незрелости и детскости. Тонуть, отказываясь от спасательного круга, только потому что тот, кто его кинул, оскорбил тебя — идиотизм. Как ни крути.


      1. Ajex
        06.03.2016 18:55
        +2

        Почему вы так уверены, что решение хорошее? И разработчики classic гении, а core отсталые консерваторы?
        "Гении" из bitcoin xt предлагали 8-и мегабайтные блоки прямо здесь и сейчас, когда в этом нет совершенно ни какой необходимости.
        За прошлый год при размере блока в 1 мб прирост был около 15-20 гб, если бы пошли на поводу у "гениев", этот прирост был бы 150 гб, что заставило бы людей массово перескочить с основного клиента на легкие кошельки похоронив всю децентрализацию.
        При этом скорость транзакций бы ни как не изменилась. Даже сейчас, когда сеть ддосят мелкими транзами, основные платежи идут с той же скоростью, ну разве что раньше платил комиссию 0,0001 btc, а сейчас 0.000011 .


        1. KivApple
          06.03.2016 21:08

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


          1. Ajex
            06.03.2016 21:34

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


            1. KivApple
              06.03.2016 23:09

              Говорят, что уже сейчас транзакции без комиссии не проходят. А между прочим это позиционировалось как одна из фишек bitcoin.


              1. Ajex
                06.03.2016 23:30
                +1

                Уже отвечал ниже, транзакции без комиссии и 6 лет назад проходили с большим трудом. Сейчас же средний размер комиссии 1-3 цента за перевод, из-за ддос аттаки устроенной "доброжелателями" комиссию приходится ставить чуть больше.
                В протокол заложено то, что комиссии — это главная статья доходов майнеров после того, как генерация иссякнет. Так что никакие нулевые транзакции не есть главным преимуществом биткоина.


        1. Komei
          07.03.2016 10:50
          +1

          А почему вы боитесь прироста в 150ГБ в год? Сколько сейчас стоит винт на 2ТБ? Действительно ли это не подъёмно дорого для пользователей? Вам же SSD для хранения цепочки не нужен :)


          1. Ajex
            07.03.2016 14:43
            +1

            Вы не пробовали работать с текущей базой блоков и транзакций? Я пробовал, увлекательное занятие я вам скажу. Вся база с индексами в postgres занимает около 300 гб. Развернуться с такой базой на 500гб SSD-шке довольно тяжко.
            Базы входов и выходов по 300 млн записей (с blob-ами) каждая.
            Увеличение размера блока, не повлечет пропорционального увеличения числа транзакций, однако если сейчас из-за растущих комиссий сервисам, работающим с биткоином, приходится думать, как сократить количество платежей. В случае же безразмерных блоков, база засрется мелкими бесполезными транзакциями и с ней невозможно будет работать.
            Пример, вот есть такое казино satosidice. раньше оно работало так, тебе дается адрес, засылаешь на него некотороые число битков (обычно ставки копеечные типо 0,00001 btc), делаешь ставку 0-50 или от 50-100, потом выпадает число, если оно в вашем интервале, вы получаете свою ставку в двойном размере, если не в вашем, ты вы в пролете. Каждая выигрышная ставка добавляла в блокчейн 2 транзакции, проигрышная одну.
            Если в тот момент бы вы взглянули на блокчейн, там 80% транз были на satosidice. Комиссии были или копеечные или вообще пустые, что привело к тому, что адски засрали базу и некоторые даже требовали внести адреса этого казино в блок в самом клиенте, а кое кто даже запилил такой билд в репы какого-то дистрибутива.
            Сейчас принцип у того же казино иной. Пополняем баланс и делаем хоть миллион ставок, пока не выиграем достаточно или не проиграем все. Дальше выводим. Это здравое решение.
            Если сейчас бездумно увеличить размер блока, через пару лет база распухнет так, что работать с ней станет нереально вообще.


            1. rPman
              07.03.2016 18:26

              Как можно винить технологию в том что она дает вам возможности, из-за которых вам тяжело их же использовать, и требовать! чтобы эти возможности были вообще убраны! У вас с логикой все нормально?

              DICE-сайты дали возможность заранее провести стресс-тесты blockchain-технологии, пока цена ошибки не высока (всего то результатом был форк сети и 10к$ потери компании okpay).

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

              p.s. переносить всю базу blockchain в sql-engine — это классическая ошибка, эффективнее добавить необходимые индексы в уже существующую базу, код открыт, инструментарий не сложный (модифицировать клиент, чтобы он сохранял на диске больше информации, подготавливая необходимые вам индексы на лету)


              1. Ajex
                07.03.2016 18:50
                +1

                А кто сказал, что сеть должна подстраиваться под сервисы, а не наоборот? Как по мне все тут должно развиваться гармонично.
                Ни кто вам ничего не обязан. Если вам не подходит технология, используйте другую. Есть множество форков, где и транзакции идут быстрее и много других полезных фич.

                Имеющийся средства для работы с базой очень медлительны по сравнению с sql решениями, которые позволяют провести оптимизации средствами движков, за счет чего скорость работы возрастает в десятки раз. Говорю по собственному опыту, пришлось принимать участие в проекте, было изучено множество вариантов, все не sql-ные решения сильно страдают из-за быстродействия.


          1. KasperGreen
            07.03.2016 18:35
            +1

            Сегодня ночью винт с блокчейном сделал BzBzBzBzBzzzzzz в процессе очередного речека. У меня теперь ещё 500GB причин бояться прироста 150ГБ в год.


          1. Mad__Max
            07.03.2016 19:50

            Формально не нужен, но на практике SSD уже становится что называется must have. На обычном HDD все операции (прежде всего синхронизация и проверка новых блоков, так же проверка и ретрансляция транзакций "на лету" когда клиент онлайн) становятся чудовищно медленными, бутылочное горлышко в этом случае определенно диск даже на тощем интернет канале и слабом CPU.
            А по 100 ГБ на SSD отдавать это жестко и очередь резко урезает круг кому это доступно/согласен на такое (в результате продолжаем наблюдать сокращение количества полных нод в сети, при том что общее кол-во пользователей и совершаемых полезных транзакций продолжает наоборот расти).

            Промежуточный вариант был бы допилить полный клиент до штатной возможности размещать базу данных в 2х разных дисках — основную базу данных (она не очень большая — 1.5 Гб примерно на данный момент и растет не слишком быстро) на SSD, а полный блокчейн(уже 66 ГБ) — на HDD.
            Но пока выбор либо либо: либо HDD (место не проблема, но все слишком медленно и чем дальше тем медленней становится) либо SSD (скорость не проблема, но вот место которого нужно все больше и больше — проблема, а если увечить существенно размер блоков эта проблема начнет расти еще намного быстрее)


            1. Ajex
              07.03.2016 21:14

              Как вариант, можно такое провернуть с electrum-ом. Код сервера под питон в opensource, можно запустить собственный сервер электрума и обращаться к нему из стандартного электрумовского кошелька, который, кстати, есть уже и под мобилы.
              Установка очень простая. По моему есть даже докер сборка, так что развернуть такой сервер у себя можно в пару кликов. Самого простого вдсника за 3-5 долларов, должно хватить.
              Хотя, можно пользоваться и чужими серверами, ни какого риска, что монету уведет владелец сервера нету, с сервера запрашиваются лишь балансы для нужных адресов и происходит трансляция подписанной транзакции в сеть. Извлечь из нее информацию о публичных адресах совершенно невозможно.


              1. rPman
                07.03.2016 23:41

                electrum сервер требует полную ноду bitcoin (txindex=1) и рядом создает и обновляет онлайн еще sql базу, так что боюсь 5$ уже не обойдешься.

                p.s. hdd с ssd кешем идеально подходят для задачи хранения блокчейна, так как основные транзакции крутятся в локальных временных рамках (если построить график возраста транзакций, то это будет классическая 1/x, много молодых и мало старых)


        1. elite7
          07.03.2016 13:21

          По данным (blockchain.info/charts/transaction-fees) сборы комиссий в сутки выросли за последний год с 15 btc до 50-77 btc.
          В пересчете на 1 транзакцию это составляет 400$/btc * 70 / 270 000 транзакций в сутки = 0.10$, то есть 10 центов за транзакцию.

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


          1. Ajex
            07.03.2016 14:11

            Почему вы берете кратковременный пик в 70 бит.
            Среднее значение последнего года в районе 20-30 бит, что равно 3-4 центам, сейчас, когда сеть ддосят комиссия чуть выросла, до 6-7 центов. Но ддосерам эта аттака обходится в 5-7 тыс долл в сутки. Посомтрим. надолго ли их хватит.
            Мне последние несколько месяцев постоянно приходится принимать/отправлять небольшие платежи. Пользуюсь стандартным core клиентом и его алгоритмом расчета комиссии. В начале года средняя комиссия для моей транзакции с 1 входом и 1 выходом была меньше 0,0001 btc (как раз где-то 2-3 цента). Сейчас чуть больше 0,0001, в среднем 0,000011-0,000014. Не припомню случая, чтобы транзакция не попала в первый блок.
            Вот в других клиентах все сделано через Ж. Например с электрумом часто попадал в пролет, расчет комиссии у него кривой, часто ставит очень мало и приходится ждать. Blockchain по дефолту тоже ставит низкую комиссию. Так что сейчас, на время ддоса, не мешало бы поставить максимальный приоритет

            Застревать платежи могут из-за непонимания механизма биткоина. Если ставить фиксированный размер транзакции, она может долго не попадать в блок, т.к. вы можете не знать количества входов, а соответственно и размера получившейся транзакции.
            Для сети не важно, какая сумма в транзакции, но важно сколько входов она расходует. Например, если вы получали много мелких переводов а потом все разом решили переслать на один адрес, выставив фиксированную комиссию, приоритет вашей транзакции будет очень низким и она может не попасть ни в один блок достаточно продолжительное время.
            Вот я сейчас прикинул на стандартном кошельке. Для 100 входов (например 100 приходов по 0,001 btc) придется раскошелится на 0,01 btc, чтобы гарантированно попасть в первый блок. Если для такой транзакции поставить комиссию в 10 раз ниже (0,0001 btc), тогда она гарантированно подтвердится в течении 25 блоков. Хотя может и быстрее. Сейчас смотрю, в блокчейне полно блоков с нулевой транзакцией и кучей входов, так что вполне возможно что транза уйдет с первого блока.


            1. elite7
              07.03.2016 16:38

              Кратковременный пик был 77 биткойнов, не 70.

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

              Если взять среднее за 7 или 30 дней, то рост расходов на транзакции более плавный и больше похож на рост спроса, а не какие-то там атаки плохих ребят.

              Но странно, что всего за 7 тыс долларов в сутки, такие компании как Visa/MasterCard, ФБР, альткойны Etherium, и другие заинтересованные лица могут заблокировать супер проект дешевых переводов для бедных стран.
              То есть какие-то 7 тыс долларов в сутки позволяют заблокировать проект с капитализацией в 7 млрд долларов? Если это так, то капитализация этой штуки явно завышена.

              Почему я вообще должен знать, что сейчас идет DDoS? Последний раз моя транзакция с комсой около 11 тыс сатоши за килобайт зависла на 4 дня. Это был экономный вариант, который мне предложили автоматически. Хотя я рассчитывал на несколько часов, не более, 4 дня намного выше моих ожиданий.

              То есть получается Биткойн уже не для микроплатежей и за кофе им не заплатишь. А раз этим нельзя расплачиваться по мелочам, то нафига и кому он нужен? Обменники забанить и всё, конец проекту.


              1. Ajex
                07.03.2016 17:39
                +1

                По поводу ддоса, взгляните на график заполненности MemPool (это пул транзакций, которые не попали в блок и стоят в очереди).


                Смотрим на синий график, на несколько дней (сразу после конференции Bitcoin Roundtable 2016/02/28) число транзакций возрасло в несколько раз, а потом опять вернулось на прежний уровень. Совпадение?

                Вот еще более интересный график, на неделю число транзакций возрастает в 50 раз! А потом возвращается на прежний уровень


                Какое событие этому предшествовало? Парой недель ранее анонсирован Bitcoin XT, первая версия выкидыша Classic. Опять совпадение?

                Вот картина с начала 2015 года:


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

                Число транзакций растет плавно и прогнозируемо


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

                P.S. графики отсюда https://statoshi.info/dashboard/db/transactions

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


                1. rPman
                  07.03.2016 18:28

                  Вы что не понимаете что децентрализованные системы мгновенно не обновляются! Сейчас у нас есть целых пара лет на то чтобы решить эту проблему! через пару лет будет поздно!


                1. elite7
                  08.03.2016 02:10

                  На неделю число транзакций выросло в 50 раз — это был стресс тест (200 тыс транзакций в мемпуле), который позволил понять, что собственно DDoS вовсе не создает отказ в обслуживании в прямом смысле слова, однако резко повышает стоимость транзакций, что и есть проблема.

                  А Ваш первый график умалчивает главное — что общее число транзакций около 270 тыс в день, а размер пула в потолке около 30 тыс. Даже близко не стресс тест, который был в сентябре 2015, и занял в 10 раз больше пула.

                  То есть если в конце месяца в будний день мы имеем спрос в 300 тыс транзакций, а в день сгенерировалось чуть меньше блоков вместо средних 144, и емкость около 270 тыс, то мы имеем дефицит в 30 тыс, которые и идут в мемпул и копятся там. А если еще есть движение цены, то это еще добавляет 20-50 тыс транзакций.

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

                  Конец марта 2016 опять попадает на будний день, и вроде майнеры не вводят новые мощности, получается, что якобы «DDoS», который на самом деле просто спрос в 300 тыс транзакций, будет повторяться.


                  1. Mad__Max
                    08.03.2016 20:44
                    +1

                    Так эти 270 тыс. транзакций в день как раз уже ВКЛЮЧАЮТ в себя целенаправленный спам/DDOS (та часть доса/спама которая была в итоге включена в блоки, с учетом отсеянных их было больше 300 тыс в сутки). А нормальное количество транзакций сейчас порядка 200-220 тыс в сутки: https://blockchain.info/ru/charts/n-transactions?showDataPoints=true×pan=60days&daysAverageString=1&scale=0&address=

                    Так что "просто спрос в 300 тыс." в ближайшее время маловероятен. Хотя постепенно такой момент и приближается плавно. Разработчики об этом в курсе, но рассчитывают к этому времени реализовать более плотную "упаковку" транзакций в блоки — чтобы при сохранении того же объема (1 Мб) укладывать больше транзакций. Как резервный вариант если с этим что-то не заладится (или вдруг спрос и активность использования неожиданно быстро увеличиваться начнут) держат увеличение блока до 2 Мб.

                    30 тыс. неподтвержденных транзакций в мемпуле в этот раз вообще не было. Это кол-во использованных входов в неподтвержденных транзакциях(синий график) — тут был значительный скачок, т.к. спамеры пытались долбить сеть (забить место в блоках) "тяжелыми" (т.е. объемными — в байтах) транзакциями. Само кол-во транзакцию ожидающих подтверждения(красный график) оставалось достаточно стабильным и не превышало 7 тысяч. С учетом того что порядка половины содержимого мемпула это обычно "мусор" который там сидит часами и днями не потому что нет места в блоке, а потому что большинство майнеров просто не хотят их включать и того что в 1 блок выходящий в среднем каждые 10 минут помещается порядка 2-2,5 тысяч типовых (не раздутых специально) транзакций это вполне нормальная рабочая ситуация ни на что особо не повлиявшая. Кроме волны набросов в СМИ исходящих видимо из того же источника кто и непосредственно СПАМ/DDOS заказывал.

                    Личные наблюдения это подтверждают — никаких задержек и необходимости увеличивать комиссию относительно той что использовал в прошлом году я не заметил, хотя парочку отправлял в этот период — одна попала в 1й же найденный сетью блок, другая во 2й. Комиссию ставил в 3к сатоши (т.е. чуть больше 1 цента).


                    1. elite7
                      09.03.2016 14:43
                      +1

                      Если поизучать статистику за 5 лет по транзакциям, то можно увидеть, что спрос на транзакции неравномерен.

                      То есть максимум/минимум числа транзакций в день в течении месяца попадает в интервал [1.50; 1.84] для половины месяцев, остальные выпрыгивают из этого интервала.

                      То есть, если минимум за месяц был 100 тыс транзакций в день, то можно ожидать, что максимум будет 150 тыс, или даже 184 тысячи.

                      Так вот январский минимим где-то 123 тысячи, а февральский 168 тысяч. Значит в пике должно быть 168*1.84 = 309 тыс. Если бы спрос в феврале был небольшой, то был бы хотя бы один день на прежних 120 тысячах, но такого дня не случилось. Поэтому либо это настоящий неравномерный спрос, либо кто-то тратит деньги на постоянный многомесячный показушный спрос, На самом деле второе равносильно первому, так как если кто-то делает что-то целый месяц, то он этого хочет и может, а раз может, то сможет и три месяца и год, то есть лучше считать DDoS будет всегда и это просто такой спрос.

                      Моя последняя транзакция 3 килобайта 33к сатоши (13 центов, 9 рублей) зависла на 4 дня и я не думаю, что индивидуальный опыт является хорошим аргументом, есть же статистика по общим сборам. Тот же Statoshi.info 27 февраля показывает пик в 111к сатоши (40 центов) за килобайт для включения в ближайшие 2 блока.


    1. Blesna
      06.03.2016 19:26

      Будь выше. Игнорируй.


    1. Mad__Max
      07.03.2016 00:54

      Так это же очередная реинкарнация обиженых Хирна (Херна) и Гевина с их Bitcoin XT (теперь Bitcoin Classic). Разве что попросили одного из сочувствующих от своего имени опубликовать, чтобы своим именем как красной тряпкой не отсвечивать.
      N-й по счету наброс. Было бы странно ожидать в нем чего-то другого.


  1. amiluik
    06.03.2016 17:02
    +5

    А точно с биткоином все так плохо? Со стороны выглядит, как попытка под шумок «отжать» полномочия у команды разработчиков.

    1. Дискредитируете старую команду, как упертых консерваторов, мешающих прогрессу.
    2. Вводите в команду толпы школо..., т.е. я хотел сказать, новых проактивных разработчиков со свежими идеями.
    3. Когда работа новой команды окончательно впадает в ступор из-за разноголосицы мнений, пишете еще одну статью, где обосновываете необходимость «немного повысить» порог вхождения для новых разработчиков.
    4. Вычищаете большинство старой команды, «проактивных разработчиков».
    5.…
    6. Profit!


    1. Ajex
      06.03.2016 17:28

      На самом деле так и есть. Это просто попытка взятия контроля над протоколом.
      Закончится это все может очень плохо, например майнеры, в свою очередь могут предложить свои "улучшения", им пофигу на размер блока, однако им, например, будет интересно отодвинуть уполовинивание на пару лет, да и чо уж там, можно и максимальное число биткоинов увеличить. Это ведь такая же константа в протоколе, как и размер блока.
      Сайдченерам будет выгодно напихать в блокчейн кучу левой инфы, что еще больше раздует и без того раздутую базу.
      И т.д.… В конце концов будет куча говнофорков с копеечной ценой и низкой мощностью.


      1. rPman
        06.03.2016 17:49

        Ничего, щас zcash (ZeroCash протокол) подростает, если почистить его от болячки перемайна (10% майнинга идут в фонд) будет хорошей заменой ;)


    1. Delics
      06.03.2016 17:57
      -1

      Вообще-то плохо.

      Новые форки сейчас слишком сильно отличаются от биткойна. И это неспроста.

      Самое вопиющее:

      — слишком долгое время формирования блока (10 минут, в форках делают 0,5-2 мин)
      — редкий пересчет сложности (в форках — каждый блок пересчитывают)
      — слишком простой для ASIC алгоритм майнинга
      — маленький размер блока (хотя это можно не менять, если решить первый пункт).

      И надо что-то решить с простейшими алгоритмическими проблемами. Например, с загрузкой блокчейна. Какой смысл грузить такие данные за предыдущие годы по одной транзакции? Логично просто взять и закачать блоком все транзакции, до какой-то даты.

      ==============

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

      Естественная реакция будет «и это — валюта будущего??!» Хотя всё могло бы быть иначе.


      1. Ajex
        06.03.2016 18:10
        +1

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


        1. Delics
          06.03.2016 19:43

          > Для решения этих проблем давно используются офлайн сервисы и безблокчейновские кошельки.

          Это очень плохое решение, дискредитирующее всю идею.

          Блоки должны быть у клиента. Но не обязательно их скачивать по-одному. Это чисто алгоритмическое упрощение.


      1. rPman
        06.03.2016 18:11
        +1

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


        1. Delics
          06.03.2016 19:48
          +1

          Ну так вся история и загрузится. Просто быстрее загружать сразу много транзакций.

          Странно, что это достаточно банальное алгоритмическое решение вызывает такой протест.


          1. rPman
            06.03.2016 20:39

            До меня не сразу дошло, вы не понимаете, проблема не загрузки данных из сети, там все очень оптимально работает — сейчас большее время во время загрузки блоков тратится на их проверку (и кстати, пишут что речь идет о 5-6 часах на современных компьютерах, так как процесс оптимизирован для многопоточности).

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

            p.s. Одно время эти файлы даже выкладывались на официальном bitcoin.org, в т.ч. торент файлом но сейчас я не нашел их там.


            1. Delics
              06.03.2016 21:02

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

              Старые данные можно не проверять, заменив их на проверку хеш-кода. А текущие данные (например, за последние 3 месяца) проверять.

              Загрузка сократилась бы в разы.

              > Если что вам никто не мешает загрузить

              Мне не мешает. Но это можно было бы автоматизировать для всех.


              1. rPman
                06.03.2016 21:36
                +1

                Старые данные можно не проверять, заменив их на проверку хеш-кода. А текущие данные (например, за последние 3 месяца) проверять.
                с чем их проверять? от куда брать хешкод?

                Главная идея blockchain состоит в том что в нем записана история каждой монеты, сгенерированной и потраченной каждым пользователем. Именно проверку на соответствии дебит-кредит и корректность подписи и проводит клиент во время загрузки блоков (и при каждом запуске так же перепроверяет последние 200 кажется блоков). Мы не можем так просто взять, и не загружать историю старых монет, потому что тогда нам не будет понятно, верно ли их информация о них записана в блоках, которые нам отдали другие компьютеры по сети, которые по определению не надежны.

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


                1. Delics
                  06.03.2016 21:44

                  > с чем их проверять? от куда брать хешкод?

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

                  > Главная идея blockchain состоит в том что в нем записана история каждой монеты

                  Идея блокчейна мне известна, т.к. несколько лет назад я участвовал в разработке форка. Однако, не вижу в этой технологии проблем помесячно хранить изменения остатков сумм на кошельках.

                  Фактически, это банальное кэширование. Ничего более. Однако оно позволило бы увеличить привлекательность электронной валюты.

                  Чтобы загрузить блокчейн биткойна 5-6 часов нужно самое топовое железо, которого нет у 99% пользователей. А ведь хотелось бы и на смартфоне получить такой функционал.

                  > если я верно понимаю, уже существует механизм, позволяющий не хранить всю информацию

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


                  1. Sadler
                    06.03.2016 21:53

                    Если делать такой механизм, он должен быть строго добровольным. Кто хочет хранить всю цепочку, тот хранит, кто не хочет — хранит какую-то её часть (скажем, транзакции старее 5 лет едва ли меня заинтересуют). В конце концов, когда-нибудь сети всё равно придётся научиться забывать старые транзакции, винты не резиновые.


                    1. Delics
                      06.03.2016 21:58

                      Конечно добровольным. Это было бы идеальное решение — хочешь — скачивай «быструю версию». Хочешь — старую медленную, если не доверяешь.

                      Важно, чтобы такой механизм был доступен тем, кому он нужен (т.е. 99% новичков).

                      > когда-нибудь сети всё равно придётся научиться забывать старые транзакции, винты не резиновые.

                      Именно так. Это неизбежно.


                      1. KasperGreen
                        09.03.2016 04:28

                        Это не неизбежно
                        При 8GB в год, это 864 гигабайта через сто лет
                        Я верю в 1Tb RAM через сто лет на захудалой машине


                        1. Mad__Max
                          09.03.2016 22:15

                          8 Гб в год чего? Оперативной памяти? Так ее потребление особо не растет от количества транзакций накопившихся в истории (т.к. нет никакой надобности их все одновременно хранить в оперативке). В предыдущей версии релиза хорошенько перетряхнули код в плане оптимизаций использования памяти и пару косвенных утечек пофиксили — так использование оперативки вообще наоборот снизилось несмотря на рост потока транзакций. И из-за оперативки как раз особо никто не переживает в плане масштабирования.

                          А пот под 50 ГБ в год отъедаемого места на SSD — вот это уже сильно напрягает. Если на 100 лет замахиваться — 5 TБ SSD диск отдельно только под биткоин понадобится. Это вообще без учета увеличения блока(который рано или поздно все-таки увеличат) и кол-ва пользователей и их транзакций, т.е. если биткоин и дальше останется (застрянет) как нишевое решение для гиков т.е. сохранение примерно текущего уровня. Если предполагать дальнейшее развитие и рост популярности, хотя бы с текущими (не особо серьезными темпами) — то требования на таком отрезке времени вырастают не меньше чем на порядок.

                          Так что никаких реальных альтернатив начать "забывать" самые старые транзакции на каком-то этапе и перехода к 2х уровневой организации работы нет.
                          2х уровневая это как обычные межбанковские банковские платежи и SWIFT работают сейчас как 1й уровень и карточные платежные системы (VISA/MC) и электронные интернет платежки (PayPal, Webmoney, Яндек-Деньги и т.д.) реализуют 2й уровень, которым и пользуется большинство клиентов для повседневных целей, а к 1му обращаются только в особых случаях — для крупнейших транзакций или когда нет другого подходящего метода оплаты/перевода средств.

                          Оригинальный биткоин почему-то упорно пытаются натянуть как сову на глобус как прямую замену 2го уровня, минуя 1й. Хотя он по своим свойствам и принципиальным ограничениям для этого очень плохо подходит — в частности по скорости обработки транзакции карточки или интернет платежки он в принципе догнать не может. Зато 1й базовый уровень поверх которого строится вся остальная финансовая система способен заменять без проблем.


                          1. KasperGreen
                            09.03.2016 22:41

                            8 гигабайт в год. На эту цифру растёт размер блокчейна. Сейчас. При текущем размере блока в 1 мегабайт.

                            1 уровень. Вы верно заметили. Именно на нём место биткоина. Долгое время подтверждения и удорожание комиссии его туда и ведут. В будущем за пиццу никто не станет расплачиваться битками.

                            2 уровень. Это форки. Один (а один ли?) из них займёт место мелочи для повседневного пользования. С секундным подтверждением и без необходимости носить с собой весь блокчейн. Лично я плюсую за DASH (в прошлом DarkCoin) в нём уже есть моментальные подтверждения.


                            1. Mad__Max
                              11.03.2016 01:15

                              Именно сейчас при текущем размере блока в 1 МБ он растет намного быстрее. Даже с учетом того что реальный средний размер еще 1 МБ не достиг, а составляет где-то порядка 800 кб мы имеем 0,8x6x24x365 = 42048 МБ прироста базы данных в год.
                              На самом деле даже больше, т.к. мощность сети продолжает расти, так что блоки в среднем находятся чуть чаще чем запланированные 1 раз в 10 минут / 6 в час. И есть "оверхеад" хранения — на диске база данных занимает несколько больше места чем чистый объем транзакций в блоках — примерно на 15% больше.
                              В результате сейчас в данный конкретный момент (конец 2015го — начало 2016 г) темпы роста как раз уже подобрались к 50 ГБ/год. Когда дело дойдет до максимально полного заполнения 1 Мб блоков будет уже что-то около 60 ГБ в год.

                              А 8 ГБ это видимо если просто текущий объем (66 ГБ) поделить на все время существование сети (~7.5 лет)?
                              Ну это в полностью некорректная оценка — просто потому что первые годы, когда биткоином никто особо не пользовался база данных почти не росла, а реальные размеры блоков были в десяток-другой килобайт при том же лимите в 1 МБ. Тогда никто с ростом объема особо и не заморачивался, это обсуждалось только как теоретическая проблема в отдаленном будущем. И только последний год-полтора(будущее оказалось совсем не столь отдаленным) это вылилось в реальные проблемы — когда темпы роста объемов резко увеличились и при этом одновременно скорости обычных HDD стало уже не хватать для полноценной работы.
                              Получился двойной удар — рост объемов ускоряется, а от могущих предложить большой объем и низкую цену HDD приходится отказываться в пользу гораздо менее емких и более дорогих SSD. Что в свою очередь и спровоцировало "идеологическую войну" сторонников и противников простого увеличения лимита на размера блока.


                              1. KasperGreen
                                11.03.2016 01:52
                                +1

                                Ой. Пересчитал и стало страшно. SSD кончится через пол года? Да я просто в ужасе.

                                После этого желающие увеличить размер блока и вовсе кажутся сумасшедшими.


                    1. Ajex
                      06.03.2016 22:01

                      В результате ни кто не будет хранить кроме гиков-энтузиастов, а это сильно ударит по деценттрализации.
                      Хотя, я верю, что решения есть. Как вариант зашить текущие балансы в код и отбросить все хвосты. Но это какое-то очень дикое решение, по сути кому-то в руки доверить миллиарды. Надеюсь ни кто на такое не решится.


                      1. Sadler
                        06.03.2016 22:08

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


                        1. Ajex
                          06.03.2016 22:10

                          Откуда выкачать? Чо уж, можно тогда сделать онлайн базу с балансами и апи к ней. И привет централизация. Вы будете доверять такой базе?


                          1. Sadler
                            06.03.2016 22:11

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


                            1. Ajex
                              06.03.2016 22:18

                              Я сначала неправильно вас понял. Согласен, это решение, при чем с кучей дополнительных бонусов. По сути так можно хранить любые данные.
                              В принципе и готовые-то решения есть, тот же ipfs, осталось добавить какую-то систему проверки подлинности и это может стать решением.


                      1. Delics
                        06.03.2016 22:09

                        Никому «в руки» доверять не надо.

                        Когда кошелек работает, он быстро собирает блоки, сам суммирует остатки на кошельках и не занимает много места и памяти.

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

                        Но зачем это полный набор блоков нужно последовательно загружать и проверять новичку?

                        Вернее так — при желании он может их проверить, но может и просто довериться хеш-кодам, полученным по данным миллионов кошельков в сети.


                        1. rPman
                          09.03.2016 19:35

                          Еще раз, откуда брать хеши? у нас есть только наша p2p сеть в которой честные и могут быть не честные клиенты.

                          Если слепо доверять то можно получить вместо настоящей ветки — поддельную, вы даже будете видеть подтверждения транзакций (если злоумышленник будет обладать ресурсами для майнинга или просто подготовит такой блокчейн лично для вас чтобы сложность там была маленькая), а если при загрузке делать проверку с нуля то даже если вы получите ветку от злоумышленника она будет отброшена потому что вы получите вместе с ней и настоящую ветку блоков.


                          1. Mad__Max
                            09.03.2016 22:37
                            -1

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

                            В результате "слепков" базы будет столько же сколько версий клиента — с состояниями на дату перед выходом соответствующих версий. Пользователь при этом может выбрать последнюю (самую свежую) или любую из предыдущих на выбор и начать синхронизацию с одной из этих точек. Ну либо включить Hardcore Mode и обработать весь блокчейн с момента запуска сети в 2009м году самостоятельно не используя никаких слепков.

                            Центральная точка и вопрос доверия? Ну так скачивая готовое ПО клиента (или даже беря исходный код и компилируя его самостоятельно) все сейчас тоже в любом случае вынуждены этой центральной точкой контролируемой небольшой группой разработчиков пользоваться и ей доверять — т.к. в код который ты сам у себя добровольно запускаешь и который имеет доступ к приватным ключам и к интернету можно поместить вообще все что угодно и произвести любые действия.

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

                            P.S.
                            Создание "слепка" должно идти по строго детерминированному алгоритму, чтобы любой желающий таким заняться мог взять полный блокчейн, задать точку отсечения (# блока на котором нужно остановится) и обработав все транзакции до указанного блока включительно и получить идентичный слепок с совпадающим хэшем.


                            1. rPman
                              10.03.2016 00:15
                              -1

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

                              Вы не можете заранее узнать этот хеш! это ключевая идея blockchain, поиском этого хеша занимается майнер (задача у него стоит такая, так изменить блок, там меняется 1 число, чтобы хеш был 'красивым' с определенным количеством нулевых бит), но зато вы можете проверить без проблем, что да, этот хеш соответствует текущей сложности сети (точнее той на момент которой создан блок).

                              Вы не можете эти хеши куда то записать заранее, где то хранить и в какие то чекпоинты записывать.

                              Вся гениальная идея этих вычислений (Proof of work, доказательство работы) в том чтобы сделать механизм который бы позволил решить, какому именно майнеру мы будем доверять на конкретный момент времени,… майнеры не могут заранее это сделать, они трудятся в поте лица и решают задачу, кто решил — тот и пишет блок в базу (на самом деле он ее просто рассылает в сеть точно так же как предыдущие а клиенты проверяют и себе рисуют)


                              1. Mad__Max
                                11.03.2016 01:31

                                Кажется не понимаете / не прочитали о чем я (и другие коментаторы выше) вообще писали. Речь о быстрой начальной синхронизации(при 1м запуске новой ноды/кошелька) и возможности не хранить всю предыдущую историю (весь блокчейн) до определенной (на выбор пользователя) даты, но при этом не переходить на "тонкие" клиенты полагающиеся на добросовестность других (полноценных) нод.
                                Хэши всех уже найденных блоков вошедших в главную цепочку известны и их можно заранее записать. Как и хэш компактной базы данных представляющей собой итоговой результат "проводки" всех транзакций содержащихся в этих блоках. И дать клиенту скачать клиенту уже только эту готовую компактную базу, а не все исходные блоки на основе которых она строилась.

                                А все новые генерируемые майнерами блоки, которые будут найдены после выпуска подобного "слепка" дальше обрабатываются по старинке.


                                1. rPman
                                  11.03.2016 10:09

                                  Кто и главное как будет решать, какие хеши верные?!
                                  Вы хотите чтобы кто то доверенный делал слепок, подготавливал или как то помечал блоки чтоб они принадлежат слепку и им можно доверять?

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


                                  1. Mad__Max
                                    11.03.2016 21:47

                                    Кто угодно может сделать слепок и опубликовать его хэш, но логично чтобы это периодически делали текущие разработчики Core клиента которым на конкретном этапе развития доверяет сеть (используя публикуемое ими ПО и протоколы), а остальные желающие только с целью проверки их корректности и того что разработчикам все еще можно доверять в этом плане.

                                    Главное что нужно сделать — это чтобы разработчики написали код генерации такой базы-слепка. Который будет частью оригинального клиента — в нем большая часть необходимого кода и так уже есть, дописать не так много нужно (по сути текущий клиент такую базу сейчас и так уже ведет, только динамическую — обновляемую с получением каждого нового блока, все что нужно это только создать 2ю ее статическую копию с состоянием на определенный момент и возможность скачивать/сидировать ее по сети, а не только строить локально на базе полной цепочки блоков).
                                    С использованием этого кода любой желающий может запустить генерацию компактной базы-слепка указав только 1 параметр: номер блока на котором алгоритму следует остановится (естественно номер должен быть в прошлом — один из уже найденных и включенных в цепочку блоков на момент запуска алгоритма). Причем не важно кто и когда это делает: при условии что использовался оригинальный блокчейн из текущей наиболее длинной цепочки и не было вмешательства в программный код на выходе для конкретного блока указанного в качестве опорной точки получается только одно возможное состояние такой базы с одним конкретным хэшем. Т.е. имеем жесткое соответствие № блока — хэш. Причем это НЕ хэш этого конкретного блока — это хэш базы данных включающей результаты обработки всех транзакций от блока №0 (генезис) и до этого указанного №. В некотором роде хэш всей цепочки, хотя и формируется по другому.

                                    Чтобы не разводить бардак с кучей подобных слепков (для каждого увеличения цепочки на 1 блок теоретически можно создать свою версию) это имеет смысл делать только периодически — например на каждый десятитысячный блок (~ раз в 2 месяца).
                                    Лучше всего если это будет делать сами разработчики совместив это с выходом новых версий оригинального клиента. Примерно по такой схеме:

                                    1. Допустим на 3 июля 2016 запланирован выход 13й версии core клиента. Т.е. его публикация (сам он уже к этому моменту дописан и какое-то время тестируется самими разработчиками и альфатестерами)
                                    2. Кто-то из разработчиков запускает генерацию такой базы данных-слепка по состоянию скажем на 1 июля 2016 указав соответствующий номер блока, допустим к тому времени это будет блок №420 000. По завершении он получает копию мини-базы и ее хэш. Вычисленный хэш вписывает в соответствующем месте исходного кода, а сам становится 1м сидом этой базы (хотя этап с сидированием и не обязательный — главное вычислить и вписать хэш).
                                    3. 3 июля официально (для публики) выходит версия 13 клиента, в которой среди прочего в исходном коде есть жестко прописанный хэш минибазы v.1 (или v.13) представляющей собой компактное представление первых 420 000 блоков оригинальной цепочки.
                                    4. Начиная с 3го июля любой желающий пользователь или компания у кого есть ноды с полной копией блокчейна может запустить генерацию такого же слепка указав в качестве параметра только № = 420 000. И получить такую же копию мини-базы и ее хэш. После чего может при желании его опубликовать (где угодно — на своем корпоративном сайте, на биткоин форуме, на реддит, тут на ГТ/хабре и т.д.) в стиле — да, все ОК для базы по 420 000 блоков хэш = "хххххххххх" (совпадает с прописанном в исходных кодах версии 13 клиента). Ну либо же наоборот запустить волну паники — если хэши вдруг не совпали "а царь не настоящий!" что означает что разработчики либо как минимум ошиблись либо задумали что-то недоброе и доверять им до прояснения ситуации нельзя. Так же любой проделавший такое становится сидом распространяющим этот слепок дальше по сети.
                                    5. После этого любой обычный новый пользователь (или старый, но запускающий новую ноду на новом железе или восстанавливающий данные после сбоя и утери/повреждения данных) скачивая и устанавливая 13ю версию клиента скажем 15 июля имеет на выбор:
                                      • Качать и проверять весь блокчейн, т.е. ~ 75-80 ГБ загрузки данных по сети (примерно столько к тому моменту будет) и сутки-другие непрерывной работы машины под большой нагрузкой (включая порядка ~16 000 ГБ операций чтения/записи с диска очень мелкими блоками). Да, занимаемое место можно урезать и все 80 ГБ потом на диске не хранить, но скачать их все все-равно придется как минимум один раз и пару дней на проверку потратить тоже придется даже если включена опция удаления старых блоков.
                                      • Выбрать старт со слепка соответствующего блоку 420 000 если его не интересует предыдущая история чужих транзакций ранее этой даты. Скачать очень быстро ~ 1.5 Гб слепка, т.к. его не нужно парсить то все зависит только от скорости интернет канала. На быстром это займет буквально минут 10(как скачивание торрента на 1.5 ГБ) и проверить его хэш (еще 1-2 минуты) на предмет того что он совпадает с вписанным в исходном коде(так же можно и вручную дополнительно свериться с интузиастами уже делавшими полную синхронизацию самостоятельно — в зависимости от степени параноидальности и объема используемых в биткоинах средств). В результате за считанные десяток-другой минут имеем клиент синхронизированный с сетью до 420 000 блока включительно. Дальше остается загрузить и уже самостоятельно проверить блоки только после № 420 000 — т.е. в данном случае за последние 2 недели которые прошли после генерации слепка. Параллельно такая нода когда находится в сети так же становится одним из сидов распространяющих этот слепок. В случае повреждения данных (текущей рабочей БД) клиенту так же не нужно перекачивать и заново перепроверять все 75ГБ и тратить на это пару суток как происходит сейчас с клиентами использующими опцию по удалению старых блоков. В этом случае будет происходить быстрый откат назад на блок 420 000 и повторное скачивание и проверка блоков найденных только после этой точки.
                                    6. При выходе следующий версии скажем v. 13.1 в сентябре 2016 создается еще слепок скажем по блоку 430 000 включительно. И любой устанавливающий потом версию 13.1 имеет на выбор варианта начать с все с начала (0 блока), с последней точки (блока 430 000) или любой из предыдущих (в данный случае 1 вариант с 420 000 блокам) — в зависимости от того сколько он может позволить выделить ресурсов (места на диске и времени на обработку при начальной синхронизации) и степени желания участвовать в поддержании сети, точнее уровня доступности полной истории транзакций для всех желающих. В распространении мини-базы он в любом случае участвует.


                                    1. rPman
                                      11.03.2016 22:17

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

                                      p.s. ладно, допустим, но вы понимаете, что доверять разработчикам сейчас, пусть они будут ангелами во плоти, встроив это доверие в код, автоматически распространит это доверие на следующее поколение лет через 50, вы считаете что им так же можно будет доверять?


                                      1. KasperGreen
                                        11.03.2016 22:42

                                        Биткоин тем и хорош, что изначально самомаштабируем.

                                        И Mad__Max не совсем обезумел и верные вещи говорит.
                                        Но верно это всё для форка.

                                        Идеалогия биткойна слишком ценна сама по себе, чтобы в ней, что-то менять.

                                        DASH кстати в версии 12.2 обещает увеличить блок до 2 мегабайт. Они теперь первые кандидаты на технологию предложенную Mad__Max`ом. Ещё в неё (технологию слепков) можно запилить суперноды, которые будут хранить весь блокчейн, регулярно его считать и как и майнеры получать немножко комиссии. Вообще и майнеры сами могли бы взять на себя роль хранителей, это бы произвело новую волну в среде асиков, но открывает новый вектор атак.


                                        1. KasperGreen
                                          11.03.2016 23:00

                                          Упс. DASH оказывается ещё летом прошлого года включил поддержку супернод с вознаграждением.

                                          https://www.dash.org/ru/news/category/%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8-ru/


                1. Mad__Max
                  07.03.2016 01:26

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

                  Механизм существует, но НЕ включен по умолчанию. И он еще до конца не доделан — в принципе уже работает и можно при желании активировать, но реализация еще не полноценная с точки зрения работы сети — для всех остальных такой урезанный клиент будет аналогичен "легким" кошелькам которые ни за что не отвечают и в децентрализации и повышении надежности/устойчивости сети не помогают. Хотя и будет более надежен для владельца чем легкие кошельки т.к. не нужно кому-то стороннему доверять — все проверяется по полной программе самостоятельно как и в полноценном кошельке.

                  И информация о каждой монете по прежнему хранится. Перестает в этом случае храниться информация о всех предыдущих транзакциях проведенных с этой монетой — только последнее ее состояние и последний ее владелец.
                  В результате если какая-то монетка за свою жизнь скажем побывала в 100 кошельках (не обязательно даже разных — просто пересылалась/участвовала в обороте 100 раз), то в полном варианте будет храниться 100 записей, а в неполном только 1.

                  Реальная разница (на практике) на данный момент составляет где-то ~65 ГБ полной истории против ~1.4 ГБ описания состояниях всех существующих монет (+ ХХХ последних блоков — по выбору, но не менее 0.6 ГБ).


                  1. rPman
                    07.03.2016 12:16

                    По умолчанию блокчейн пара десятков гигабайт но команды вида getrawtransaction не работают для чужих транзакций, чтобы это заработало необходимо перегрузить всю базу включив опцию в конфиге txindex=1 и это так уже как минимум полтора года!
                    Разве не это является тем самым механизмом оптимизации хранения?


                    1. Mad__Max
                      07.03.2016 20:14
                      +1

                      Нет. По умолчанию блокчейн уже не "пару десятков" а почти 70 ГБ.

                      А txindex=1 это указание какие транзакции из полного блокчейна, который в любом случае грузится и проверяется полностью включать в индексы для быстрого прямого (без повторного "перекапывания" всего блокчейна в поиске нужной) доступа для команд типа getrawtransaction. По умолчанию для чужих транзакций это выключено и индекс очень компактный — у меня сейчас он всего ~50 Мб (0.05 ГБ). С полной индексацией (txindex=1) не знаю сколько добавится — не пробовал.
                      Грузить (через интерент с других полных нод) при активации не нужно — клиент будет лишь локальную копию на диске заново всю перепроверять и переиндексировать.

                      А возможность не хранить полную копию блокчейна реализовали только чуть больше полугода назад, с выходом 11й версии Core клиента. Регулируется через опцию -prune=N, где N объем в мегабайтах — какой кусок блокчейна(самых последних блоков) оставлять хранить на диске. Более старые автоматически удаляются. Но база данных по всем монетам (всех существующим "входам") при этом остается полной, так что клиент все входящие транзакции и новые загружаемые блоки может проверять самостоятельно — не полагаясь/не доверяя сторонним нодам в этом плане.


                      1. rPman
                        07.03.2016 23:45

                        Спасибо, я значит меня тогда ввели в заблуждение а я не проверил, думал что уменьшение объема не эффективно


              1. ftdgoodluck
                06.03.2016 22:36

                Старые данные нельзя не проверять, т.к. вы сейчас можете потратить биткоин, полученный год назад (информация о нем находится в блоке годичной давности)
                Есть SPV-клиенты (так, в частности, работает большинство мобильных), но это не 100% надежное решение


            1. Mad__Max
              07.03.2016 01:13
              +1

              Не помню чтобы выкладывались именно "проверенные" блоки — выкладывались просто блоки, чтобы их по биткоин протоколу не приходилось клиенту качать(что в старых версиях было медленно) и ноды не напрягать кучами запросов, а скачать одним файлом и быстро, а клиент прочитает уже с диска.
              Но проверять блоки — хэши, криптографические подписи, отсутствие двойных трат и т.д включая всю историю каждой монетки все-равно должен был клиент полностью сам.

              Сейчас перестали выкладывать видимо в связи с тем, что начиная с 10й версии Core клиента в нем реализовали параллельную многопоточную внеочередную загрузку блоков с множества пиров одновременно (прямо как в p2p торрентах с разбиением файлов на множество блоков и независимой скачкой каждого без соблюдения порядка их следования). И непосредственно загрузка(скачивание) по сети теперь идут быстро — нет смысла ускорять то, что и так уже быстро и эффективно работает — в этом отношении последние биткоин клиенты уже не особо уступают торрент клиентам.

              А вот насчет проверки — проверяет как обычно клиент все самостоятельно. И не смотря на действительно реализованную многопочность этого процесса, это занимает уже не часы а порядка суток на мощном компе(4-8 ядер/потоков и прилично оперативки) включая хороший SSD на котором нужно будет выделить 70-100 Гб свободного места под это дело.
              Без SSD (на обычном HDD, где не жалко 100 ГБ отдать) это рискует занять неделю непрерывной работы.


              1. KasperGreen
                07.03.2016 03:09
                +1

                На P4 и обычном винте пересчёт занимает уйму времени, больше недели. О чём думают желающие увеличить блок — для меня загадка. Возможно ни один из них не пробовал ставить клиент Bitcoin Core, или у многих есть лишний SSD под блокчейн?


                1. rPman
                  07.03.2016 12:19
                  -2

                  Вы дальше додумайте пожалуйста,… размер блока напрямую ограничивает количество транзакций в секунду, а это в свою очередь определяет, для кого будет работать весь блокчейн — только для крупных клиентов (например работодатель, скупивший разработчиков Core, ратующий за создание сайдчейна для микротранзакций а клиринговые операции отправлять в bitcoin с хорошей комиссией) или для обычных людей (которых миллиарды и потребуется на пару порядков увеличить лимит транзакций)


                  1. KasperGreen
                    07.03.2016 18:26

                    Извините. Задам вам один вопрос.
                    У вас уже стоит Bitcoin Core? Вы им пользовались?


                    1. rPman
                      07.03.2016 19:01

                      Конечно же, у меня полная нода работает уже несколько лет, хотя и не используется (т.е. стоит исключительно для сбора данных) и будет работать до тех пор, пока у меня будут в наличии ресурсы для ее поддержания (даже готов потратиться на апгрейд железа при необходимости, правда в меру своих скромных возможностей).

                      Мало того, самое смешное, bitcoin xt я не смог использовать так как вылетают ошибки при полной загрузки блоков с нуля (а скопировать имеющийся не могу из-за различий в архитектуре машин), а то и она бы была запущена.

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

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


                      1. KasperGreen
                        07.03.2016 19:05
                        +1

                        Тогда вам настоятельно рекомендую с нуля его поставить. Последние два года для сети стали настоящим бумом. Загрузка предыдущих блоков происходит сравнительно быстро. Но как только остаётся загрузить последние два года, процесс замирает. И это блок ещё не стабильно целиком заполнен.


                        1. rPman
                          08.03.2016 11:22

                          У меня клиент крашится с ошибкой. Само собой я выделяю ssd-шник для этой задачи и машину с 16гб оперативки и не самым последним процессором.


                          1. Mad__Max
                            08.03.2016 20:54

                            Странно. У меня он только на 32 бит ОС любит иногда падать при массовой загрузке/синхронизации. Разрабы в курсе(на форуме с ними переписывался вместе с несколькими другими ползователями заметившими аналогичные проблемы) — он где-то на 32бит ограничения на выделение памяти/адресации натыкается (хотя в момент вылета реально задейсвованных объем оперативки даже до 2 Гб не дотягивает судя по мониторингу ОС), но исправлять не желают т.к. 32 бит по их мнению уже совсем устелили и скоро никто их использовать не будет.

                            А вот на 64 бит никаких проблем кроме того что ОЧЕНЬ МЕДЛЕННО. Причем последний год-полтора истории синхронизируются дольше чем вся предыдущая вместе взятая.


                1. Mad__Max
                  07.03.2016 20:19

                  Причем замена P4 на более современный и мощный проц не сильно поможет. Действительно (во много раз) поможет только либо размещение на SSD либо танцы с бубном с временным переносом (на время начальной синхронизации) основной базы данных на RAM-диск (сторонними методами — сам клиент такого не умеет) и возвращением обратно после.


                  1. KasperGreen
                    07.03.2016 21:34

                    Новый i7 справляется с задачей за пару дней, на p4 больше недели. А RAM диск на over64Gb это сильно


                    1. Mad__Max
                      08.03.2016 00:02

                      На RAM диск достаточно базу данных непотраченных входов (UTXO) перенести и индексы. Сейчас это около 1.5 ГБ, вполне по зубам RAM диску даже на не слишком навернутой машине.
                      Именно к ним идет огромное количество обращений на чтение и запись мелкими порциями (обычно меньше 1 кб на операцию) и по случайным(хаотическим) адресам — от чего классические HDD просто помирают под такой нагрузкой, проводя большую часть времени не за чтением/записью, а поиском нужного участка во всю треща головками и тормозя работу всего остального.

                      А основной блокчейн (сейчас 66 ГБ) пишется и читается намного менее интенсивно и при этом довольно большими кусками — обычно целыми блоками за раз, т.е. чуть меньше 1 Мб на операцию сейчас. С такой нагрузкой HDD без проблем справляется и сможет справляться еще долго, в т.ч. при разумном увеличении размера блока.


                      1. KasperGreen
                        08.03.2016 00:14

                        Как вы и сказали, умер HDD. Теперь на SSD блокчейн.
                        Если блок не увеличат, ещё три года сможет на нём пробыть. А потом есть настройка, чтобы только частые данные на нём хранить?


                        1. Mad__Max
                          08.03.2016 01:05

                          В принципе уже есть, чуть про это тут писал: https://geektimes.ru/post/272190/#comment_9078068

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


      1. Foolleren
        06.03.2016 21:39

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


        1. Delics
          06.03.2016 21:53
          +1

          — 10 минут — это слишком долго. Очень большой запас даже для китайского интернета.

          — полноценный прогноз доходности так и так сделать не получится, т.к. внезапно добавленные мощности каких-нибудь новых ASIC могут всё изменить в любой момент. Более того, они ещё и влияют на время нахождения блока до пересчета сложности.
          Это пока нет особых проблем, пока мощности только растут. Получается, что время расчета блока уменьшается. А если начнут отпадать?

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

          — размер блока можно и оставить, если решить вопрос со временем его формирования

          — да, это так, но чисто алгоритмически старые данные можно было бы закешировать и проверять хеш-кодами. Так везде в программах делается.


          1. Foolleren
            06.03.2016 22:06

            да, это так, но чисто алгоритмически старые данные можно было бы закешировать и проверять хеш-кодами. Так везде в программах делается.

            не помню в каком коине этот вопрос решили, но решение элегантно — суперблок — в нём содержатся только содержимое кошельков без транзакций, скачивать можно до него, по сути получается ограничение времени хранения транзакций, что даже повысит анонимность, есть и другие решения как блокчейн в блокчейне(решает ещё и первый вопрос) и тп,
            и вообще почти каждый вопрос решён так или иначе в альтернативных коинах, но они уже никому не интересны, биткоин задумывался для людей, а в результате стал объектом инвестиции, просто так его уже никто не бросит и не переделает потому что срашно потерять инвестиции.
            Есть коины без пулов, есть механизмы гарантов сделки внутри блокчейна, но кто их будет раскручивать если на этом не может срубить бабла?
            PS просто надо смириться биткоин должен умереть чтобы его место заняла нормальная крипта с блекджеком и децентрализацией


            1. Delics
              06.03.2016 22:24

              > в каком коине этот вопрос решили, но решение элегантно — суперблок

              Значит и это уже реализовали в форках. Биткойну стоило бы присмотреться к этим разработкам, а не воротить нос.

              > в результате стал объектом инвестиции, просто так его уже никто не бросит и не переделает

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

              > просто надо смириться биткоин должен умереть чтобы его место заняла нормальная крипта с блекджеком и децентрализацией

              По крайней мере стоит иметь это в ввиду тем, кто покупает биткоины «для внуков» :)


  1. Joric
    06.03.2016 19:55

    Если кто не знал, транзакции без комиссии уже в прошлом (да, Bitcoin уже не тот). Майнеры просто их отбрасывают как бесполезные, предпочитая транзакции с ненулевой комиссией. Всего один пул (Eligius) сейчас майнит транзакции без комиссии и очередь к нему уже занимает в среднем шесть часов. Так что если будете платить через BitPay, добавьте хотя бы 0.0001 BTC сверху, иначе инвойс гарантировано сгорит и придется разбирать кейс с неуплатой (а всё это, как правило, решается не в вашу пользу, хорошо ещё что только пару дней потеряете на разборки, так ещё и поимеете всяких проблем с курсом и просроченными купонами).


    1. Joric
      06.03.2016 19:59

      Т.е. то, что раньше было ключевым преимуществом (транзакции без комиссии), сейчас выродилось в специфический случай с исчезающе малыми шансами на выживание, см. https://en.bitcoin.it/wiki/Free_transaction_relay_policy


      1. Ajex
        06.03.2016 21:31

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


        1. Joric
          06.03.2016 21:53

          Враньё, не были они рисковыми, они были абсюлютно равноправными при соблюдении правил про размер транзакций и даже высокоприоритетными, в зависимости от возраста монет. Года до 2014 уж точно.


          1. Ajex
            06.03.2016 21:58

            Равноправными-то равноправными, но даже в далеком 2010 году, транза без комиссии вполне могла застрять на несколько часов, это факт, так что всегда рекомендовалось ставить хотя бы какую комиссию.


            1. Delics
              06.03.2016 22:03

              Но было достаточно поставить 1 сатоши. А не как сейчас — эквивалент 5 центов.


              1. Ajex
                06.03.2016 22:08

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


                1. Joric
                  07.03.2016 00:23

                  Размер комиссии вообще не входит в формулу приоритета.

                  Чтобы послать деньги без комиссии, нужно соблюсти три условия (см. https://en.bitcoin.it/wiki/Transaction_fees)

                  1) размер транзакции в байтах, size_in_bytes < 10000
                  2) каждый источник и сама пересылаемая сумма (input_value_in_base_units) >= 0.01 BTC (10000 base units)
                  3) приоритет транзакции, priority = sum(input_value_in_base_units * input_age)/size_in_bytes >= 57600000

                  Официальная комиссия в вики — 0.0001 BTC за килобайт, нужна только если какое-то из этих условий нарушено.

                  Но так было раньше. Сейчас даже сам Сатоши свои 50 монет из генезис-блока без комисии не сможет никому отправить, если Eligius уйдёт в оффлайн. Остальные майнеры сейчас отбрасывают все zero fee транзакции, потому что это им невыгодно. Поправьте, если ошибаюсь. Я просто на собственном опыте убедился — отправляю монеты старее поповской собаки, которые раньше бы со свистом улетели в первом же блоке и они идут по 6-12 часов.


                  1. Joric
                    07.03.2016 00:39

                    В частности, например Balthazar писал, что он подтверждал только свои транзакции и транзакции с комиссией. Типа, меньше размер блока — быстрее пройдет по сети. Из-за таких майнеров вся система и катится прямиком в ад.


                    1. Foolleren
                      07.03.2016 00:47

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


                      1. rPman
                        07.03.2016 00:49

                        как? каким должно быть условие?


                        1. Foolleren
                          07.03.2016 00:59

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


                          1. Darth_Malok
                            07.03.2016 10:50

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


                            1. Foolleren
                              07.03.2016 10:58

                              задумано одно а будет так как решит обладатели 51+% мощностей, а это китайцы. у которых как раз проблемы с аплоадом.Соответственно им ни блоки по 2 мб нафиг не нужны ни транзакции без комиссии.


                          1. rPman
                            11.03.2016 22:20

                            Вот вы как разработчик красиво рисуете это условие в коде, а майнер спокойно правит исходники и убирает его, оставляя свою логику… как вы их заставите так не делать? Вы не можете сделать логику у остальных клиентов такой, чтобы они не принимали блоки от таких майнеров!

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


                            1. Foolleren
                              11.03.2016 22:34

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


                              1. rPman
                                12.03.2016 11:50

                                причем тут форк, ведь блоки таких майнеров будут соответствовать валидным блокам блокчейна.


                                1. Foolleren
                                  12.03.2016 14:13

                                  С чего это они будут соответствовать? сейчас условием включения в цепочку является правильная подпись, добавить условие по содержанию блока и оно тоже станет критерием включения,
                                  Форк это не только другой коин но и альтернативная цепочка блоков внутри одного коина.


                  1. Joric
                    07.03.2016 11:30
                    +1

                    Опечатался, читать "size_in_bytes < 1000", т.е. до килобайта. Но для типичной транзакции с одним input и двумя output получается всего 258 байт.


    1. Delics
      06.03.2016 20:32
      +2

      Потому что майнить нормально сейчас могут только обладатели дорогостоящих ASIC. Эти майнеры объединяются в доминирующие пулы и диктуют свои условия (например, не дают делать улучшения или не пропускают транзакции без комиссии).

      Простой участник сети с обычным компьютером не создает вообще никакой значимой мощности майнинга.

      Это неправильно. В форках давно перешли на алгоритм Scrypt и другие, более сложные алгоритмы, для которых намного сложнее сделать мощные ASIC.

      Понятно, что на Bitcoin Core давят банкиры/финансисты, переживающие за свои вложения и требующие всё оставить всё как есть. Но так как есть — это неправильно.


      1. Sychuan
        07.03.2016 00:00
        +1

        Понятно, что на Bitcoin Core давят банкиры/финансисты, переживающие за свои вложения и требующие всё оставить всё как есть. Но так как есть — это неправильно.

        По моему не очень понятно. Не слышал, чтобы банкиры/финансисты особенно интересовались биткоином. Вот только Греф расказывал, что купил пару монеток. Да и точно "банкиры" не заинтересованы в транзакциях по часу.


        1. polym0rph
          09.03.2016 03:27
          +1

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


    1. Ajex
      07.03.2016 14:20
      +1

      Вот транзы с 0 комиссией:
      AntPool
      https://blockchain.info/tx/f7a5f22a0a7ce6e3b2a18c3f467a04e734909650ce01eb0757848ae608b797fb

      btcc pool (с кучей входов)
      https://blockchain.info/tx/5e7f19720e515086b0808df8d911955695a832bf31b7df48137bf35520f35fca

      Это из последних 5 блоков. 2 пула принимают zero fee, да и то, я пробежался вручную по нескольким транзакциям. Уверен, что их намного больше.


      1. Joric
        07.03.2016 14:37

        Да, действительно, погуглил, AntPool тоже позиционирует себя как zero fee pool, и то, первая транзакция моталась как минимум 1ч 10м от попадания в сеть до попадания в блок, вторая вообще сильно нестандартная (12 кб без комиссии), мб она от самого пула и как-то связана с этой новостью — Chinese bitcoin conglomerate BTCC has announced a new blockchain service that prioritises bitcoin transaction confirmations for BTCC customers


        1. Mad__Max
          07.03.2016 20:23

          Вообще транзакции без комиссий довольно многие пулы принимают. Но обычно место для них в блоке четко ограничено — на уровне порядка 50 кб на блок, а остальное забивают платными транзакциями в порядке убывания удельной (на 1 кб объема) комиссии.


  1. KasperGreen
    07.03.2016 03:26
    +1

    Беспокоит, что авторы инициативы предлагают не решить проблему, а отсрочить её. А ещё не платить майнерам. И вообще выставляют особенность сети проблемой которую нужно срочно решать. Странно всё это


  1. KasperGreen
    09.03.2016 01:27
    +2

    Брайан Армстронг — легенда в области криптовалют O

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

    Всё это ИМХО лулзов ради, не воспринимайте серьёзно пожалуйста


    1. KasperGreen
      11.03.2016 23:23

      O В заголовке обнаружена ошибка! Двоеточие вместо буквы — У.
      (тонкий намёк на то, что Bitcoin`у не нужно увеличивать блок)


    1. Joric
      13.03.2016 14:44
      +2

      Ого. Я даже не обратил внимания, что он CEO Coinbase. Эта паразитическая система дискредитирует идею виртуальной наличности как таковой (Coinbase, по факту, на 100% владеет вашими деньгами).