Comments 73
Совершенно никому не нужная технология без практического применения и реализации. Такой, пук в вечность.
А вот хайп, который поднялся вокруг этого, попытка «монетизировать» blockchain за пределами bitcoin и валют, действительно очень часть являются непрактичными IT-решениями на волне популярности bitcoin'а.
Капитализация — параметр не показательный. Миллион биткоинов Накамото, намайненный в начале, возможно, утерян. А в капитализацию он тоже зачитывается. Да и другие утерянные битки (например, вследствии внезапной смерти владельца) тоже в добавляют свой вес, хотя и недоступны никому
Такую сумму сразу не продашь: покупателей не найдётся, но думается мне, что в процессе ее продажи цена битка обрушится. Но если он ее сразу продаст кому-нибудь напрямую, не через биржи, то возможно никто и не заметит ничего.
Заметят. Все кошельки, предположительно принадлежащие Накомото, известны. Движение по ним заметят сразу.
В BitCoin все участники сети каждые 2016 блоков (2 недели) смотрят разницу в полях block timestamp у принятых в основную цепь блоков и определяют difficulty для новых 2016 блоков.
При этом на это поле накладываются определённые ограничения, не дающие очень сильно играться с его значениями. Не более чем +2 часа у средних значений времени от соседних (в сети Echo) с вами блоков.
Тогда каждые 10 миллисекунд будет вознаграждение за блок (то есть почти миллион биткоинов за то время, когда должно появиться 12). Не очень хорошо для пользователей сети
В быстрой транзакции ничего плохого нет. Но блок — это не транзакция, это пачка транзакций. Например, 10 или 300 транзакций сразу. Есть системы, где блоки появляются чаще (эфириум — 15 секунд), главное, что бы сложность подстраивались. Если сложность не подстраивать, то, как я написал выше, вознаграждение за блоки будет выдаваться чаще, чем задумано.
Это кстати еще одно разумное ограничение на размер блоков и сложность mining иначе транзакции будут не успевать распространяться.
туплю, а что такого плохого в быстрой транзакции?
В быстрой транзакции плохо то, что повышается вероятность конфликтов путей движения блокчейна, с которыми нужно будет что-то делать (выбирать из них единственно правильный). При отбрасывании других путей движения блокчейна их транзакции нужно будет перепроводить.
Так же, так как система критична к синхронизации времени и связности сети, а эти параметры имеют флуктуации, то при коротком времени транзакции неизбежно появление кластеров блокчейна, имеющие значительный объем блоков и при этом имеющий разные направления движения. При войне таких кластеров победит только одна ветка, а для транзакций, находящихся в других ветках преимущество от быстрой транзакции будет стремится к нулю.
Резюме. Быстрые транзакции => большие накладные расходы на согласование веток.
Если технология блокчейна подразумевает хранение всех транзакций, то нафиг оно надо, если все клиенты перед использованием должны будут таскать с собой (хорошо, брать с серверов) всю историю всех транзакций?
Использую эмеркоин для DNS-резолвинга, прямо сейчас папка с блоками «весит» 320 МБ. Это не популярная валюта, и транзакций мало. У Биткоина сейчас размер «гроссбуха» почти 130 ГБ. Если технология станет такой же популярной, как бумажные деньги, то размер базы очень быстро начнёт исчисляться терабайтами.
Скажите мне, что я ошибаюсь и что на самом деле всё не так, иначе вся эта технология действительно кажется просто бесполезным на практике хайпом. Ну или она вынуждена будет перейти к «архивированию» базы транзакций, аналогично закрытию года в 1С :)
Примерно как «вот этому блоку верить, он 146% правильный, всё что до него — в старой базе, а мы работаем с нуля, начиная с этого блока.»
Чтобы генерировать новые блоки или создавать новую транзакцию не обязательно иметь у себя весь журнал. Даже для майнера достаточно некоего "snapshot'а" состояния сети + последние 2016 блоков (для учёта изменения сложности). Кроме того есть много мобильных клиентов, "кошельков", у которых база транзакций централизованно хранится на сервере, а они только осуществляют переводы.
С размером базы не всё так просто. Нужно ещё учесть, что её размер не может расти быстрее, чем 1 Мб / блок (т.е. на 10 минут). Даже если увеличить размер блока за счёт SegWit и других технологий, принципиальные ограничения останутся. Размер блока мы уже достигли (в среднем все блоки заполнены), поэтому скорость роста останется примерно одинаковой, скачкообразно меняясь только при вводе принципиально новых технологий формирования блоков в строй.
Онлайн-валлет — это не банк, это какой-нибудь "деньги мигом", который завтра может исчезнуть и никто не будет напрягаться, что бы вам что-то вернуть.
Ни в коем случае. Не надо мне депутатов, которые ещё и криптовалюты зарегулируют по максимуму. Кому нужна регуляция — для них уже есть доллар, рубль и банки. Мгновенные транзакции, дешёвые платежи с карты на карту, страхование вкладов. Если нравится — пользуйтесь. А криптовалюты лучше хранить в оффлайн-валлетах. А переводить через официальные десктопные клиенты. Даже если ФБР арестует какие-то севера разработчиков, ваш валлет останется на вашем компьютере.
Онлайн кошелёк локально? Когда все на javascript, как у Classic Ether Wallet? В следущий раз при открытии такого онлайн кошелька вам могут подсунуть js, который передает ключ на сервер злоумышленника (если сайт валлета взломали). Подменить бинарник кошелька-приложения тоже можно, но его обновляешь раз в год, а онлайн — каждый раз при открытии.
Я не обновляю каждый раз. Лежит локально скрипт.
Для того чтобы сформировать транзакцию вам не нужен блокчейн.
Как и для того чтобы сгенерировать новый кошелёк.
Нужно хранить все транзакции публично, что бы видеть, а не тратит ли кто-нибудь деньги второй раз. В целом, для этого хватило бы хранить балансы кошельков, но децентрализованного решения пока никто не предложил
По крайней мере на основе blockchain пишутся научные работы, а следовательно, это не просто очередной стартап.
Могу сказать, что я спокоен за студентов. Впервые вижу на Хабре статью, которая не ассоциирует блокчейн с криптовалютой.
Если рассказываете, про авторизацию через COOKIES, то стоит добавить и Authorization-заголовок с Bearer, для обращение к API, это уже стандарт. И не очень понятно, как и зачем, влезли mysql инъекции, это больше про ИБ, чем про блокчейн. Лучше учить сразу делать проекты независимыми от базы данных.
Не раскрыта тема приватных блокчейнов, где генерация блоков отдана выбранному набору узлов, а для согласования применяются алгоритмы консенсуса. Например у нас в Exonum применяется модифицированный алгоритм византийского консенсуса. А чтобы владелец блокчейна не вел тайно параллельную цепочку применяется анкоринг на публичный биткоин блокчейн.
Таким образом достигается большая производительность и не теряется доверие к системе в целом.
Наверное проще это вынести в виды консенсусов.
Разумеется описан.
http://exonum.com/doc/advanced/consensus/specification/
Я нашел описание на сайте: https://exonum.com/doc/architecture/consensus/#assumptions
На что стоит обратить внимание:
- The network is partially synchronous. Обычно сеть себя ведет как асинхронная, тут могут быть проблемы в реальной системе.
- Не сказано про network split и борьбу с ошибками. В алгоритме это мало отражено.
- Алгоритм формально не верифицирован. Есть вопросы с тем, как он протестирован. По крайней мере я не нашел соответствующей информации.
При этом утверждается, что "The same assumptions are used in PBFT (the most well-known BFT consensus) and its successors." А в статье http://pmg.csail.mit.edu/papers/osdi99.pdf написано про "2 System Model. We assume an asynchronous distributed system where nodes are connected by a network." Это противоречит утверждению об "The same assumptions" и "The network is partially synchronous", что намекает.
Доказательства есть и скоро их выложим, а что касается первого пункта, то в документации есть указание, что PBFT оперирует частично синхронной моделью.
The algorithm does not rely on synchrony to provide safety. Therefore, it must rely on synchrony toprovide liveness; otherwise it could be used to implement consensus in an asynchronous system, which is not possible.
В приватных блокчейнах обычно все немного не так. Первой в блок попадает та транзакция, которая попала в мемпул раньше, поэтому дополнительная комиссия не взымается. Обычно поток транзакций много меньше максимальной пропускной способности. А если он вдруг серьезно возрастает, то сеть просто некоторое время начинает чаще принимать блоки.
И да, учить людей работе с VCS, да и принципам, на которых они устроены — очень и очень нужно, соглашусь на правах студента.
Blockchain – это последовательный набор блоков (или же, в более общем случае, ориентированный граф), каждый следующий блок в котором включает в качестве хэшируемой информации значение хэш-функции от предыдущего блока.
Если мы возьмём последовательность коммитов на участке, когда не было мёржей, то мы увидим, что каждый последующий коммит включает хэш предыдущего. вот этот линейный кусок и есть блокчейн. Ограничение на хэш тривиально (принимается любой хэш, сложность нулевая).
Про блокчейн уже понятно, а что за сущность биткоин, как им обмениваются, как их тратят, сколько раз один биткоин может менят хозяина, есть ли кроме виртуального доверия к этой валюте, её материальное обеспечение?
В случае bitcoin не получится, там сами транзакции используются в качестве входов для будущих. Поэтому кошелек там — это просто набор транзакций, у которых есть приватный ключ от их выходов (каких-то из них).
А ведь на той же вики сказано, что сам Сатоши рекомендовал для обеспечения анонимности создавать для каждой транзакции отдельный кошелёк.
Но я бы рекомендовал в этом случае не решать задачу в 51%, а просто по тихому взломать ECDSA и перечислять на свой кошелёк деньги. См. Quantum computing attacks on ECC
Blockchain