Как стать автором
Обновить

Комментарии 73

Бесполезный хайп. Через годик уляжется.
Совершенно никому не нужная технология без практического применения и реализации. Такой, пук в вечность.
Давайте разделим технологию и хайп. Биткоин появился в 2009 году. Прошло уже 8 лет, капитализация достигла $ 67 млрд. и у меня назвать это «пуком в вечность» как то рука не поднимается. Это — весьма существенно для «open source» валюты.

А вот хайп, который поднялся вокруг этого, попытка «монетизировать» blockchain за пределами bitcoin и валют, действительно очень часть являются непрактичными IT-решениями на волне популярности bitcoin'а.
проще просто сказать, что капитализация битка больше чем у роснефти

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

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

Такую сумму сразу не продашь: покупателей не найдётся, но думается мне, что в процессе ее продажи цена битка обрушится. Но если он ее сразу продаст кому-нибудь напрямую, не через биржи, то возможно никто и не заметит ничего.

Заметят. Все кошельки, предположительно принадлежащие Накомото, известны. Движение по ним заметят сразу.

Он может отдать ключи от кошельков.

Тогда у кошельков будет минимум два владельца

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

Как отличить перевод между своими кошельками и между чужими?

Не очень понял вопрос. Какими своими и какими чужими?

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

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


Но опять же, предсказать реакцию рынка на это сложно.

Не факт, возможно кто то из счастливчиков нашел коллизию.
В мире полно таких «бесполезных» штук, стоимость которых формируется «договорённостью» заинтересованных сторон. Начиная с предметов «искусства» или «раритетов» (картины, корзины, кошёлки и маленькие собачонки), заканчивая продажей игроков за 100 млн.долларов. Тут главное не оказаться последним, заскочившим в поезд МММ.
Интересно вот что. Как вы сказали, сложность подстраивается таким образом, чтобы время генерации блока составляло около 10 минут. Т.е. если блок сгенерировался менее чем за 10 минут (например, количество майнеров выросло), то для следующего блока сложность будет увеличена. Вопрос в том, как система измеряет время, прошедшее с момента генерации предыдущего блока? Получается, должен быть какой-то ЕДИНЫЙ доверенный источник временных меток? Но, насколько мне известно, в Bitcoin такой источник не используется. Как решается эта задача?

В BitCoin все участники сети каждые 2016 блоков (2 недели) смотрят разницу в полях block timestamp у принятых в основную цепь блоков и определяют difficulty для новых 2016 блоков.


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

… от соседних (в сети Echo) с вами блоков узлов.
Понял, спасибо за ответ. Т.е. если узел, сформировавший очередной блок, укажет timestamp не соответствующий критериям, другие узлы просто не примут этот блок.
НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь
В биткоине содержатся в MemPool blockchair.com/bitcoin/mempool/transactions. Все участники сети передают транзакции.
Это кстати еще одно разумное ограничение на размер блоков и сложность mining иначе транзакции будут не успевать распространяться.
туплю, а что такого плохого в быстрой транзакции?

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

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

Резюме. Быстрые транзакции => большие накладные расходы на согласование веток.

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

В вопросах безопасности самым уязвимым местом чаще всего являются действия самого пользователя.
Здравствуйте, я не много читал про блокчейн и я — мимокрокодил.
Если технология блокчейна подразумевает хранение всех транзакций, то нафиг оно надо, если все клиенты перед использованием должны будут таскать с собой (хорошо, брать с серверов) всю историю всех транзакций?
Использую эмеркоин для DNS-резолвинга, прямо сейчас папка с блоками «весит» 320 МБ. Это не популярная валюта, и транзакций мало. У Биткоина сейчас размер «гроссбуха» почти 130 ГБ. Если технология станет такой же популярной, как бумажные деньги, то размер базы очень быстро начнёт исчисляться терабайтами.

Скажите мне, что я ошибаюсь и что на самом деле всё не так, иначе вся эта технология действительно кажется просто бесполезным на практике хайпом. Ну или она вынуждена будет перейти к «архивированию» базы транзакций, аналогично закрытию года в 1С :)
Примерно как «вот этому блоку верить, он 146% правильный, всё что до него — в старой базе, а мы работаем с нуля, начиная с этого блока.»
Все на самом деле так. Просто терабайты — это совсем не так страшно звучит, как, скажем 20 лет назад, — объем информации в Интернет уже миллионами экзабайт исчисляется. Ну а полную ноду (содержащую весь список транзакций) не обязательно хранить каждому участнику, и «хвост» начиная с блоков, которым можно верить, выглядит довольно разумным компромиссом между надежностью и компактностью.

Чтобы генерировать новые блоки или создавать новую транзакцию не обязательно иметь у себя весь журнал. Даже для майнера достаточно некоего "snapshot'а" состояния сети + последние 2016 блоков (для учёта изменения сложности). Кроме того есть много мобильных клиентов, "кошельков", у которых база транзакций централизованно хранится на сервере, а они только осуществляют переводы.


С размером базы не всё так просто. Нужно ещё учесть, что её размер не может расти быстрее, чем 1 Мб / блок (т.е. на 10 минут). Даже если увеличить размер блока за счёт SegWit и других технологий, принципиальные ограничения останутся. Размер блока мы уже достигли (в среднем все блоки заполнены), поэтому скорость роста останется примерно одинаковой, скачкообразно меняясь только при вводе принципиально новых технологий формирования блоков в строй.

365*24*60min*1MB/10min=52.56GB/year — на столько увеличивает журнал за год.
image

Так если все начнут пользоваться такими вот light-версиями, не проверяя корректность всей цепочки, то не кажется ли, что безопасность всей децентрализированной системы, заложенной в дизайне, немного страдает?

Есть куча online-wallet, грубо говоря банков, зачем вам таскать с собой 100 тысяч бумажных денег, когда они спокойно могут храниться в хранилище. Прибавьте к этому, что не все транзакции так уж необходимо, чтобы попадали в blockchain, а только банковские взаиморасчеты (segwit), то получите вменяемую систему.

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

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

Ни в коем случае. Не надо мне депутатов, которые ещё и криптовалюты зарегулируют по максимуму. Кому нужна регуляция — для них уже есть доллар, рубль и банки. Мгновенные транзакции, дешёвые платежи с карты на карту, страхование вкладов. Если нравится — пользуйтесь. А криптовалюты лучше хранить в оффлайн-валлетах. А переводить через официальные десктопные клиенты. Даже если ФБР арестует какие-то севера разработчиков, ваш валлет останется на вашем компьютере.

Да даже во многих онлайн валлетах ключи храняться локально и никуда не передаются. Если онлайн валлет умрет, возьмете ключи и подсуните их другому онлайн-валлету.

Онлайн кошелёк локально? Когда все на javascript, как у Classic Ether Wallet? В следущий раз при открытии такого онлайн кошелька вам могут подсунуть js, который передает ключ на сервер злоумышленника (если сайт валлета взломали). Подменить бинарник кошелька-приложения тоже можно, но его обновляешь раз в год, а онлайн — каждый раз при открытии.

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

Конечно, не нужен. Но речь про онлайн-валлет была. Если у вас скрипт локально, как у NEM, это просто валлет на js. Не отличается особо от валлета на питоне или qt/c++. Это вполне безопасно, в отличии от кошельков на сайтах.

НЛО прилетело и опубликовало эту надпись здесь

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

Читать курс, конечно, необходимо. Возможно он должен быть про детали реализации. Потому что в bitcoin применено очень много интересных решений. То есть необходимо рассказать, что такое адрес, как устроена транзакция, как реализовывать различные виды смарт-контрактов, что такое segwit, transaction malleability. Все это крайне поучительно в плане distributed crypto systems.
По крайней мере на основе blockchain пишутся научные работы, а следовательно, это не просто очередной стартап.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

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


Если рассказываете, про авторизацию через COOKIES, то стоит добавить и Authorization-заголовок с Bearer, для обращение к API, это уже стандарт. И не очень понятно, как и зачем, влезли mysql инъекции, это больше про ИБ, чем про блокчейн. Лучше учить сразу делать проекты независимыми от базы данных.

[я буду внимательней читать пост в следующий раз]

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

Наверное проще это вынести в виды консенсусов.

Gorthauer87, а ваш алгоритм («модифицированный алгоритм византийского консенсуса») описан где-нибудь?

Я нашел описание на сайте: https://exonum.com/doc/architecture/consensus/#assumptions


На что стоит обратить внимание:


  1. The network is partially synchronous. Обычно сеть себя ведет как асинхронная, тут могут быть проблемы в реальной системе.
  2. Не сказано про network split и борьбу с ошибками. В алгоритме это мало отражено.
  3. Алгоритм формально не верифицирован. Есть вопросы с тем, как он протестирован. По крайней мере я не нашел соответствующей информации.

При этом утверждается, что "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.
НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь

Где то 120000 сатоши

Дайте ссылку на собранный учебник пожалуйста.
В защиту «блокчейна вне биткоина»: по сути, блокчейн есть «очень сильно» линейный случай git-репозитория. Вот про git студентам надо рассказывать обязательно, git-scm в помощь.
Ну, кажется, проводить вот такое отношение эквивалентности не совсем корректно (но поправьте меня, если я ошибаюсь). А вот проводить аналогию именно в этом аспекте — уже имеет смысл, да.

И да, учить людей работе с VCS, да и принципам, на которых они устроены — очень и очень нужно, соглашусь на правах студента.
Определение из поста:
Blockchain – это последовательный набор блоков (или же, в более общем случае, ориентированный граф), каждый следующий блок в котором включает в качестве хэшируемой информации значение хэш-функции от предыдущего блока.

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

Один из плюсов биткоина — что нет людей, которые обещают материально гарантировать его стоимость. А значит они не могут внезапно отказаться от обещаний и таким образом обрушить курс. Биткоин стоит примерно столько, сколько обещает пользы, а не сколько за ним заводов или слитков золота.

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

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

А не слишком много места это потребует? Судя по инфе с вики, каждому кошельку соответствует 512 битный адрес (открытый ключ). Если принять что каждый житель Земли (7 млрд) имеет кошелёк, то на хранение информации только об адресах (но не о средствах на счёте) нужно примерно 64*7=448 гигабайт места.

А ведь на той же вики сказано, что сам Сатоши рекомендовал для обеспечения анонимности создавать для каждой транзакции отдельный кошелёк.
Так, а если я наконец дособеру пару квантовых суперкомпьютеров, то смогу ли я в одно лицо совершить атаку 51%?
Ну, если вы сможете научить эти суперкомпьютеры решать задачу полного перебора быстрее, чем обычные (см. алгоритм Гровера), то да, атака 51% возможна.

Но я бы рекомендовал в этом случае не решать задачу в 51%, а просто по тихому взломать ECDSA и перечислять на свой кошелёк деньги. См. Quantum computing attacks on ECC
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории