Никто не говорит о блоках, в которых есть не рассосавшиеся транзакции.
Для простоты можно считать что во всех блоках есть нерассосавшиеся транзакции. Т.к., ещё раз, уменьшение размера в три раза ничего не решает.
Ну... Для кого как. Для меня - решает.
Пылятся они только потому, что оборот небольшой. Начнётся более широкое хождение биткойна - залёживаться монеты не будут. А раз так, то и удаляться старые транзакции станут чаще.
Я думаю какая-то часть будет постоянно в обороте, а какая-то осядет в долгосрочных сбережениях. Хранить деньги в биткоинах имеет смысл -- инфляции они не подвержены.
А часть будет перманентно утеряна...
И что? В любом случае, транзакции, предшествующие данной интересуют нас интересует только в момент генерации блока. Как только транзакция получила достаточное количество подтверждений, все транзакции, выходы которых являлись входами для данной можно смело выкидывать за ненадобностью.
Пускай майнеры их хранят. Кто же против-то?
Хранить их должен каждый полноценный участник сети, а не только майнеры.
Ещё раз:
нафига?. Не знаю, как тебя, а лично меня (как клиента) интересует только последний блок (чтобы проверить, нет ли там переводов для/от меня) и хеш предпоследнего блока (для минимальной проверки последнего блока на валидность). Нафига, спрашивается, мне всю цепочку хранить?
А вот это уже бред. В документе чётко сказано, что все транзакции широковещательно расползаются по сети. А фильтруются они майнерами путём включения/не включения в блок. Идеологически неверно напрягать все клиента работой, которой уже занимаются майнеры.
Идеологически неверно НЕ проверять блоки. Майнеры ведь могут включить в блоки неправильные транзакции с целью наживы.
Сеть - она на то и сеть, что мы предполагаем, что
большая часть вычислительной мощности сети принадлежит добросовестным узлам (не в сговоре со злоумышленником). Таким образом, мне, как клиенту, глубоко фиолетово, каких левых транзакций напихает в свой блок злоумышленник. Ведь я уверен, что он не успеет нагенерить достаточно длинную цепочку фальшивых блоков раньше основной сети.
Сам Сатоши пишет что упрощённые клиенты возможны там, где особой надёжности не требуются, а все кто имеет возможность должны пользоваться полноценным клиентом который проверяет всё.
Возможно, существуют задачи, в которых требуется подобная проверка. Для бытовых же целей (когда речь идёт о десятках-сотнях BTC) сети вполне можно доверять.
Если в сети появится существенное количество клиентов которые блоки не проверяют, но распространяют, то пострадают неполноценные клиенты -- они сами между собой будут раздавать обманные блоки от майнеров и сделают видимость того, будто эти блоки приняты сетью.
А кто сказал, что простой клиент должен что-то распространять?
Простой клиент должен иметь минимальный функционал:
1. Цепляться за полноценные клиенты (майнеры).
2. Генерировать транзакции.
3. Принимать блоки.
Всё. Участвовать в распространении транзакций/блоков по сети, да и просто принимать транзакции он не должен. Ибо незачем ему это.
Да, можно требовать двух подтверждений. Но вероятность что один майнер выдаст два блока подряд весьма существенная.
Почему двух-то? Уже сейчас клиент считает транзакцию не подтверждённой, пока не получил цепочку хотя бы из шести блоков! А если пользователь параноик, или просто что-то подозревает, то он может и сотни подтверждений дождаться, прежде чем верить транзакции!
Насчёт идеологии, я боюсь вы вообще её не правильно понимаете.
Безопасность биткоинов основана на том, что сами участиники сети заинтересованы в своей же безопасности. А если их много, то мала вероятность того, что они войдут в преступный сговор. И именно поэтому консенсус реально работает.
Неполноценные клиенты не являются участниками сети вообще. В идеале они должны только опрашивать другие узлы, но не передавать сами блоки и чужие тразнакции, т.к. они могут только навредить.
Узлы которые проверяют транзакции, но не являются майнерами сети помогают, но не сильно. Большое количество таких узлов сильно затрудняет многие атаки и делает возможным существование неполноценных клиентов.
Но реально важны именно майнеры. В идеале должно существовать большое количество майнеров с равными вычислительными возможностями: в этом случае очень мала вероятность что они войдут в сговор ради собственной наживы.
Но уже сейчас есть тенденция к консолидации вычислительных ресурсов среди небольшого кол-ва лиц -- через пулы и арендуемые фермы. Например, пул deepbit контролировал почти 50% выч. ресурсов, а может даже больше.
Не важно сколько людей занимается хэшированием, они выполняют тупую работу. Важно что все транзакции проверяет и выбирает deepbit, и он может делать что угодно. Если даже сейчас у него ресурсов не хватает, что будет если он объединится с несколькими другими пулами? За ними стоят люди и их можно подкупить. Ситуацию с пулами смотрим здесь:
http://www.bitcoinwatch.com/И такая ситуация наблюдается при том, что майнингом можно заниматься лично без проблем. Люди используют пулы только из-за лени и нежелания зависеть от случая.
А что будет если непосредственно работа с транзакциями будет отнимать много ресурсов? Тогда персональный майнинг будет совершенно не рационален, им будет заниматься лишь кучка идеологически озабоченных, а нормальные люди будут работать через пулы.
До этого момента всё в точности соответствует тому, что говорю я.
Если пока что проблем с пулами не возникало это не означает что они не возникнут в будущем. Рано или поздно они осознают возможную выгоду, и найдутся люди чтобы организовать сговор.
Собственно, пока что пулы текущие правила вполне устраивают -- по 50 BTC за блок вполне нормально. В будущем эта халява прекратится, награды уменьшатся. Тогда пулы могут принять решение увеличить комиссию за транзакцию. Или, например, продолжать выдавать по 50 BTC за блок.
Далее, предположим, 10 крупнейших пулов договорятся принимать блоки только друг от друга, игнорируя блоки от других пулов и независимых участников. Таким образом они ограничат конкеренцию.
Далее, к примеру, они могут выпустить свой, слегка пропатченный клиент. Хочешь чтобы твои транзакции проводились -- пользуйся одобренным пулами клиентом и плати комиссию. Иначе биткоинами пользоваться не получится.
Так что, ещё раз, биткоин будет безопасным только в том случае, если майнером сможет быть каждый с домашним компьютером -- тогда этим смогут заниматься миллионы и их забороть будет сложно. (А ещё лучше если те, кто майнерами быть не могут/не хотят помогали первым -- фильтровали кривые транзакции и блоки, не давали забить сеть фальшивыми клиентами.)
Блин! Не надо путать пулы и майнеров.
Где я сказал, что обычный пользователь должен потерять возможность соло майнинга!? Ткните пальцем!
Я лишь предложил разделить функционал
простого и
полноценного клиента! Чтобы у пользователя был выбор: хочет он майнить, или нет?
Хочет - пожалуйста. Запустил полноценный клиент, прицепился к нему программой-майнером и майни на здоровье.
Не хочет - запустил простой клиент и не тратит свои трафик, место на винте для задач, которые с успехом решают другие.
Можно, например, оставить полноценный функционал только в bitcoind.exe, а из bitcoin.exe его убрать.
Или же, оставить его и в bitcoin.exe, но сделать, чтобы он включался лишь когда тот запущен со специальным ключиком. Или голочку в настройках добавить. Или в файле конфигурации.
Вариантов много. Но главное, что
у пользователя должен быть выбор!Если обычный клиент (не майнер) историю хранить не будет вообще, а пулы не будут забывать чистить историю от рассосавшихся транзакций и устаревших блоков, то проблему будет решена весьма и весьма радикально.
Да можно ещё более радикально -- выделить одну trusted party подписывать блоки. Хуле там, зачем нам вообще майнинг?
Вопрос лишён смысла. Поэтому отвечать на него не буду.
Я знаю. Но новичку будет непросто объяснить, что из-за атаки спецслужб ему теперь надо совершать какие-то дикие телодвижения.
А как ты новичку объясняешь что после запуска клиент часа три тарахтит винтом скачивая транзакции?
Полноценный нод не для среднего пользователя. Когда в сети были только энтузиасты это имело смысл, а теперь от этого только больше проблем.
Вот и я о том же! У пользователя должна быть возможность иметь не только полноценный узел, но и простой клиент.
IMHO обычный пользователь должен пользоваться 3rd-party поставщиком услуг а не работать напрямую с сетью.
При этом возможно создание клиента, который приватные ключи хранит локально а за всем остальным обращается на сервер.
Вариантов много. Должны быть и сторонние поставщики услуг. И софт для полноценного узла. И простой клиент. Повторяю:
у пользователя должен быть выбор! Больше выбора - система гибче и удобнее.
то уже при цепочке из 6 блоков (а столько по умолчанию клиент считает достаточным критерием достоверности) подделать её раньше основной сети практически не реально. Таким образом, я не вижу оснований не доверять сети.
То есть больше часа ждать подтверждений? Ну спасибо.
Вообще-то, все так и делают. Вряд ли кто-то станет доверять транзакции и например, оказывать кому-то услугу, если не набралось хотя бы 6 подтверждений! А многие ещё сильнее перестраховываются.
Я ещё раз советую перечитать. Легковесная проверялка должна через опрос сети убедиться что более длинной цепочки ни у кого нет.
Т.о. злоумышленнику будет достаточно того, чтобы к этим тонким клиентам настоящая цепочка не попала. Например, спомощью ботнета сделать кучу фейковых клиентов которые будут давать только цепочку злоумышленника и гасить настоящую. Забить ими IRC каналы и т.д.
А дальше он может делать с легковесными клиентами всё что угодно, не ограничиваясь даже дабл-спендингом.
Ещё раз: как он сможет гарантировать, что легковесные клиенты будут цепляться ИМЕННО к его дотнету? Вот у клиента есть список известных ему узлов, к которым он цепляется. Зачем он полезет на IRC за новыми узлами, если и к этим нормально цеплается? Насколько я понял, IRC - запасной вариант, на случай, если ни к кому из списка подцепиться не удалось. И как злоумышленник обеспечит это? Как он узнает, чт клиент зацепился
только к его узлам и не получает блоки из других источников?