Громко не смейтесь: с блокчейнами никогда раньше не пересекался, и потому мой вопрос для знающих людей наверняка идиотский. Примечание: речь ведётся только лишь об аспекте доверия блокчейнам как платформам, а не о криптовалютах и, господи прости, майнинге и трейдинге. К тому же апологеты блокчейна уверяют, что у него есть сотни других применений кроме валют и платежей (supply chain safety, distributed secure voting, и т.д.).
Итак. Утверждается, что блокчейн представляет из себя последовательность записей, подлинность которой защищена криптографически. Реплик последовательностей много, между ними прокинут распределённый консенсус, и подделка одной из последовательностей будет выявлена остальными участниками.
Вопрос. Каким образом в открытой системе, к которой якобы анонимно может подключиться кто угодно, обеспечивается защита от злонамеренного большинства? Есть N клиентов, хранящих реплики. Злодеи добавляют N+1, которые в нужный момент подтверждают подлинность цепочки хешей сфабрикованной последовательности, добропорядочные же участники при этом не просто остаются в меньшинстве, а уже сами могут быть распределенно обвинены в подлоге. Понятно, что можно вести рейтинг, смотреть на дату добавления клиента, обращать внимание на резкое добавление большого количества узлов, блочить подозрительные диапазоны IP, навесить fingerprinting и tamper-proofing на уровне бинарного кода и т.д. и т.п. Но все эти защиты, реализованные на средненьком уровне, снимаются школо-хацкерами. Хорошие IP покупаются (за рупь пучок криминального происхождения, чуть подороже — легальные датацентровые, еще чуть подороже — адреса на backbone–провайдерах из residential–диапазонов). Злые клиенты могут быть добавлены сильно загодя и плавно, дабы накопить рейтинг и историю пребывания не привлекая внимания. (Ну ок, хорошая бинарная защита потребует мастерства покойного Криса Касперски, но то тоже решаемо).
Посмотрел на разхайпованный Ethereum, вокруг которого якобы крутятся сумасшедшие бабки и интерес крупных инвесторов. Не как к криптовалюте, а именно как к распределенной платформе. И что же я вижу? Жалких 12380 узлов. Разбавить их вполне реально и для злодея-одиночки, что уж говорить о крупных игроках. А шумихи-то, будто участников, блин, миллиард.
PS. Кстати, вот и частичный ответ на мой вопрос — количество добропорядочных нод должно быть огромным. Но когда это осуществится на практике, если вообще осуществится? И как понять, что уже существующие участники добропорядочные, а не засланные с первого дня казачки, ждущие сигнала к пробуждению?
Здравствуйте, serj.e, Вы писали:
SE>Громко не смейтесь: с блокчейнами никогда раньше не пересекался, и потому мой вопрос для знающих людей наверняка идиотский. Примечание: речь ведётся только лишь об аспекте доверия блокчейнам как платформам, а не о криптовалютах и, господи прости, майнинге и трейдинге. К тому же апологеты блокчейна уверяют, что у него есть сотни других применений кроме валют и платежей (supply chain safety, distributed secure voting, и т.д.).
SE>Итак. Утверждается, что блокчейн представляет из себя последовательность записей, подлинность которой защищена криптографически. Реплик последовательностей много, между ними прокинут распределённый консенсус, и подделка одной из последовательностей будет выявлена остальными участниками.
SE>Вопрос. Каким образом в открытой системе, к которой якобы анонимно может подключиться кто угодно, обеспечивается защита от злонамеренного большинства?
Для данной атаки нужно владеть не 51% хостов, а 51% криптотокенов. Так что цена владения криптотокенами и является главной составляющей делающей атаку сложной в реализации.
SE>Вопрос. Каким образом в открытой системе, к которой якобы анонимно может подключиться кто угодно, обеспечивается защита от злонамеренного большинства? Есть N клиентов, хранящих реплики. Злодеи добавляют N+1, которые в нужный момент подтверждают подлинность цепочки хешей сфабрикованной последовательности, добропорядочные же участники при этом не просто остаются в меньшинстве, а уже сами могут быть распределенно обвинены в подлоге.
Для кого-то что-то подтвердить невозможно — подлинность криптографических подписей и валидность блоков каждая нода проверяет самостоятельно. Т.е. если злонамереннные ноды пришлют ерунду, даже если их миллион, а правильная нода только одна, они отправятся на сутки (или сколько там в конфиге прописано) в бан. После чего сеть нормальных нод восстановит консенсус.
Далее рассматриваю только блокчейны для криптовалют (не блокчейнов ради блокчейнов), потому что экономика криптовалют настраивается так чтобы в любой момент стоимость мощностей нужных для успешной атаки была больше чем прибыль от атаки.
Допустим злонамеренное большинство решило прислать одной несчастной ноде свои N+1 блоков, которые полностью валидны (т.е. подписи тех транзакций что есть верные, хэши блоков тоже верные). Но ещё в зловредной цепочке вычислительная сложность (сумма сложностей блоков) должна быть больше чем в той цепочке которую пришлют честные ноды. А суммарная сложность честной цепочки огромная, (обычно) гораздо больше чем может быть у злонамеренной, и растёт очень быстро, так как честные майнеры продолжают работу.
Прочитай исходную статью Сатоши, и что-нибудь из первых последователей. Более поздние акцентируют внимание на деталях, которые важны когда простые уязвимости уже решены.
Здравствуйте, hi_octane, Вы писали:
_>Допустим злонамеренное большинство решило прислать одной несчастной ноде свои N+1 блоков, которые полностью валидны (т.е. подписи тех транзакций что есть верные, хэши блоков тоже верные). Но ещё в зловредной цепочке вычислительная сложность (сумма сложностей блоков) должна быть больше чем в той цепочке которую пришлют честные ноды. А суммарная сложность честной цепочки огромная, (обычно) гораздо больше чем может быть у злонамеренной, и растёт очень быстро, так как честные майнеры продолжают работу.
Выделил главное. Если злонамеренных большинство, то они могут производить больше работы, чем хоть и честное, но меньшинство.
Большинство в биткоине (и не только) считается именно по объему проделанной работы. Кто больше сделал — тот и большинство. А там, где решение не по proof-of-work, там объем работы и сложность цепочек не важна.
Единственная защита, что
1. получить большинство — сложно и требует вложения больших ресурсов
2. после того как станет известно о таком подлоге, никто из честных более не захочет вкладываться в эту сеть, и она умрет, и большие ресурсы, вложенные на первом шаге, окажутся выкинутыми напрасно.
F>Единственная защита, что F>1. получить большинство — сложно и требует вложения больших ресурсов F>2. после того как станет известно о таком подлоге, никто из честных более не захочет вкладываться в эту сеть, и она умрет, и большие ресурсы, вложенные на первом шаге, окажутся выкинутыми напрасно.
В истории биткойна были моменты когда большинство манипулировало сетью и действовало злонамеренно против некоторых участников сети — во время борьбы со спамом очень мелкими транзакциями крупные майнеры на какое-то время перестали включать их в блоки. Формально это была наглая манипуляция, но от биткойна никто не отказался.
Здравствуйте, serj.e, Вы писали:
SE>Посмотрел на разхайпованный Ethereum, вокруг которого якобы крутятся сумасшедшие бабки и интерес крупных инвесторов. Не как к криптовалюте, а именно как к распределенной платформе. И что же я вижу? Жалких 12380 узлов. Разбавить их вполне реально и для злодея-одиночки, что уж говорить о крупных игроках. А шумихи-то, будто участников, блин, миллиард.
Большинство там считается не в узлах, а в террахешах в секунду, и в них значения намного более впечатляющие, ни злодею-одиночке, ни крупному игроку не по зубам, проще купить себе все эфиры.)
Здравствуйте, jahr, Вы писали:
J>Здравствуйте, serj.e, Вы писали:
SE>>Посмотрел на разхайпованный Ethereum, вокруг которого якобы крутятся сумасшедшие бабки и интерес крупных инвесторов. Не как к криптовалюте, а именно как к распределенной платформе. И что же я вижу? Жалких 12380 узлов. Разбавить их вполне реально и для злодея-одиночки, что уж говорить о крупных игроках. А шумихи-то, будто участников, блин, миллиард.
J>Большинство там считается не в узлах, а в террахешах в секунду, и в них значения намного более впечатляющие, ни злодею-одиночке, ни крупному игроку не по зубам, проще купить себе все эфиры.)
А что это меняет? Выигрывает та цепочка транзакций, копий которой в сети больше, чем копий других. Можно подменить всю цепочку так, что бы на твоем кошельке стало много койнов. Блокчейн со временем становится только больше, соответственно количество узлов, где хранится блокчейн уменьшается, и система становится более уязвимой. Я уже писал об этом.
Здравствуйте, jahr, Вы писали:
J>Здравствуйте, Qulac, Вы писали:
Q>>Выигрывает та цепочка транзакций, копий которой в сети больше, чем копий других.
J>Ошибка именно здесь. Выигрывает та цепочка, в которой больше террахешей, даже если ее генерирует один узел.
Это если большинство узлов правильные, а если нет?
P.S. Вообще правила в такой системе устанавливаются большинством узлов. Как захотело большинство, так и будет.
Q>Это если большинство узлов правильные, а если нет?
Q>P.S. Вообще правила в такой системе устанавливаются большинством узлов. Как захотело большинство, так и будет.
Конечно, группа узлов может просто отказаться от текущих правил и работать по другим правилам. Но это будет просто запуск новой монеты, эти узлы не смогут обмениваться операциями с "правильными" узлами, повлиять как-то на их баланс, получить от них деньги или отправить деньги им, даже если их будет подавляющее большинство. Этого же эффекта можно добиться еще проще, просто начав работать на новом порту, например.) Только какое отношение это будет иметь к обсуждаемому эфиру, например?
Здравствуйте, jahr, Вы писали:
J>Здравствуйте, Qulac, Вы писали:
Q>>Это если большинство узлов правильные, а если нет?
Q>>P.S. Вообще правила в такой системе устанавливаются большинством узлов. Как захотело большинство, так и будет.
J>Конечно, группа узлов может просто отказаться от текущих правил и работать по другим правилам. Но это будет просто запуск новой монеты, эти узлы не смогут обмениваться операциями с "правильными" узлами, повлиять как-то на их баланс, получить от них деньги или отправить деньги им, даже если их будет подавляющее большинство. Этого же эффекта можно добиться еще проще, просто начав работать на новом порту, например.) Только какое отношение это будет иметь к обсуждаемому эфиру, например?
Вот видишь, новую монету можно начать так, что у кого-то прибавится денег, я думаю, что наверняка есть способ сделать тоже самое без новой монеты.
А вообще,проблема в том, что чем меньше узлов, тем больше возможностей повлиять на работу сети с разными вредоносными целями. Вот когда блокчейн так распухнет, что придется его хранить в отдельных дата-центрах, могут придти люди из фбр и вырубить рубильник. А главное, что эта проблема "зашита" в саму технологию.
Здравствуйте, Qulac, Вы писали:
Q>Вот видишь, новую монету можно начать так, что у кого-то прибавится денег, я думаю, что наверняка есть способ сделать тоже самое без новой монеты.
Вы, пожалуйста, сформулируйте тезис, который Вы пытаетесь доказать. Разумеется, Вы можете создать монету, в которой у Вас в кошельке будет 100500 денег, вот только на количестве Ваших биткойнов это никак сказаться не может, Вы не сможете использовать свои новосозданные монеты как биткойны (расплатиться с кем-то, кто принимает биткойны, отправить их на биржу как биткойны и т.п.), ситуация точно такая же, как с долларами и долларами, которые Вы нарисовали фломастером.
Q>А вообще,проблема в том, что чем меньше узлов, тем больше возможностей повлиять на работу сети с разными вредоносными целями. Вот когда блокчейн так распухнет, что придется его хранить в отдельных дата-центрах, могут придти люди из фбр и вырубить рубильник. А главное, что эта проблема "зашита" в саму технологию.
Проблема в том, что Вы очень плохо знаете предмет, о котором рассуждаете.) Попробуйте, например, посчитать, когда именно потребуется дата-центр для хранения данных или что потребуется сделать ФБР чтобы помешать Вам хранить данные в IPFS, например.)
Здравствуйте, jahr, Вы писали:
J>Здравствуйте, Qulac, Вы писали:
Q>>Вот видишь, новую монету можно начать так, что у кого-то прибавится денег, я думаю, что наверняка есть способ сделать тоже самое без новой монеты.
J>Вы, пожалуйста, сформулируйте тезис, который Вы пытаетесь доказать. Разумеется, Вы можете создать монету, в которой у Вас в кошельке будет 100500 денег, вот только на количестве Ваших биткойнов это никак сказаться не может, Вы не сможете использовать свои новосозданные монеты как биткойны (расплатиться с кем-то, кто принимает биткойны, отправить их на биржу как биткойны и т.п.), ситуация точно такая же, как с долларами и долларами, которые Вы нарисовали фломастером.
Как оставшиеся в меньшинстве узлы, смогут доказать, что это они биткойн, а не я?
Q>>А вообще,проблема в том, что чем меньше узлов, тем больше возможностей повлиять на работу сети с разными вредоносными целями. Вот когда блокчейн так распухнет, что придется его хранить в отдельных дата-центрах, могут придти люди из фбр и вырубить рубильник. А главное, что эта проблема "зашита" в саму технологию.
J>Проблема в том, что Вы очень плохо знаете предмет, о котором рассуждаете.) Попробуйте, например, посчитать, когда именно потребуется дата-центр для хранения данных или что потребуется сделать ФБР чтобы помешать Вам хранить данные в IPFS, например.)
А Вы фанат этой технологии я смотрю. На счет дата-центра это я утрировал конечно. До дата-центров дело не дойдет именно по тем причинам что я уже привел: меньше узлов — больше уязвимость плюс накладные расходы из-за большого блокчейна. Не будь этого, мы бы щас в любом магазине бы криптой расплачивались.
Здравствуйте, Qulac, Вы писали:
Q>Как оставшиеся в меньшинстве узлы, смогут доказать, что это они биткойн, а не я?
Начнем с простого: кому именно доказать? Магазину, принимающему биткойн? Майнеру, собирающему транзакции для нового блока? Им ничего доказывать не придется, они сами увидят, что Вы — не биткойн, Ваши сообщения не пройдут их валидацию, которая прописана в коде биткойна, который работает на их узле независимо от того, что работает на других узлах.
Это не Вы им сообщаете, сколько монет у Вас в кошельке, они сами вычисляют, сколько их там исходя из своих данных. Новые данные они добавляют к своим только после того, как их провалидируют и не обнаружат никаких проблем. Каким боком сюда вообще большинство или меньшиснство узлов, как оно влияет на этот процесс по-вашему?
Здравствуйте, jahr, Вы писали:
J>Здравствуйте, Qulac, Вы писали:
Q>>Как оставшиеся в меньшинстве узлы, смогут доказать, что это они биткойн, а не я?
J>Начнем с простого: кому именно доказать? Магазину, принимающему биткойн? Майнеру, собирающему транзакции для нового блока? Им ничего доказывать не придется, они сами увидят, что Вы — не биткойн, Ваши сообщения не пройдут их валидацию, которая прописана в коде биткойна, который работает на их узле независимо от того, что работает на других узлах.
Когда я писал:
P.S. Вообще правила в такой системе устанавливаются большинством узлов. Как захотело большинство, так и будет.
Я имел в виду не технический, а социальный аспект. В этом случае, как решит большинство пользователе криптовалюты, так и будет и не факт что они встанут на сторону меньшей сети. Блокчей не заменяет коллективного модератора. Вон захотело большинство сделать форк и сделали, курс от этого играет, а ты ни чего с этим поделать не можешь и ни какой блокчейн от этого тебя не защиитит.
J>Это не Вы им сообщаете, сколько монет у Вас в кошельке, они сами вычисляют, сколько их там исходя из своих данных. Новые данные они добавляют к своим только после того, как их провалидируют и не обнаружат никаких проблем. Каким боком сюда вообще большинство или меньшиснство узлов, как оно влияет на этот процесс по-вашему?
Да это всё уже было, с Виталиком Бутериным, который не захотел какие-то там обязательства исполнять, которые были записаны в блокчейне, и решил форкнуть свою валюту, как она там, Ethereum, чтобы не давать денег кому-то там. И форкнул. Я может какие детали попутал, но в целом примерно так.
Здравствуйте, ForkCoder, Вы писали:
Q>>P.S. Вообще правила в такой системе устанавливаются большинством узлов. Как захотело большинство, так и будет.
FC>Вообще правила устанавливаются хозяином кода.
А как определяется, кто хозяин кода? Это ж не корова, которой клеймо можно на жопе выжечь, это просто буквы. Хозяин букв — не слишком естественное понятие.