Comments 32

Похоже Ethereum тоже следует использовать offchain транзакции, хотя и по другой причине.

Вы плохо подготовились в данном вопросе: в Ethereum полным ходом идет разработка нового протокола LES2 и нового режима работы ноды ultra light client(ULC).
А будущее таково, что за услуги полных нод (les, whisper, swarm) клиенты будут платить, полные ноды по своему желанию смогут оставлять пул для запросов от клиентов не платящих ничего, но платящие будут в приоритете.

Фигня какая-то… В долгосрочной перспективе никаких дисков не хватит чтобы хранить весь этот объем блокчейна. Да и вообще это выглядит бессмысленно и безумно, каждому человеку хранить все транзакции всех людей в мире. Особенно на смартфоне.
Нужно придумывать что-то другое. Возможно, в той же распределенной сети должно быть средство согласованного (все тем же консенсусом) удаления мусора (т.е. того что гарантированно не нужно и не может понадобиться ни одному из участников сети, включая находящихся оффлайн) из блокчейна. Да, нужен критерий «мусора».
А про неэффективность PoW уже говорилось, здесь альтернативы придумываются.
В блокчейне биткойна можно назвать мусором, например, кошельки по которым не было никакого движения с момент их создания в прошлом. Вы предлагаете, по сути, их удалить?

Представьте себе — некто положил доллары сша и рубли СССР в стеклянную банку 50 лет назад. Одну валюту посчитали мусором один раз отменили и два раза поменяли при деноминации. Другую и сейчас можно использовать для покупок. Вы бы какую криптовалюту хотели бы получить в будущем?
Простите а как упала покупательная способность оставшейся в цене валюты за 50 лет? Хмм… погуглил и нашёл. Правда данные только до 2016-го. Итого 48 лет (с 1968-го):

Делюсь результатом, — по разным оценкам доллар обесценился в пределах от 5.4 до 19.8 раз.

Но на ваш комментарий данные цифры никак не влияют. Он по сути верен.
Вот это соревнование обычных валют в порче монеты наперегонки и стало предпосылкой появления криптовалют. Для общества потребления не выгодны потребители, которые сберегают.
Нет, мусор это не кошельки, а сама история транзакций. Если транзакция произошла, и все деньги, которые в ней участвовали, уже после этого поучаствовали во множестве других транзакций — то зачем хранить исходную? Понятно что механизм биткоина предполагает возможность верификации путем прослеживания всей цепочки до самого начала. Но здесь нужно придумывать что-то чтобы не хранить всю историю за много лет и десятилетий, а например заменять ее криптографически верифицированной информацией меньшего объема.
UFO landed and left these words here
Вы смотрите на это как разработчик. А вам советуют в комментариях подумать о сути этого, с экономической и даже, рискну, морально-человеческой точки зрения
UFO landed and left these words here
Это пока еще не критические затраты — никто не заставляет поднимать ноды. Те, кто поднимает — оплачивают их затраты самостоятельно. А вот то, что вы предлагаете убрать в угоду дешевеющим гигабайтам дисков (у меня дома уже год как 30Тб только для фильмов стоит, к примеру) ключевой принцип полного личного контроля за средствами — недопустимо.

Для решения этой задачи есть другие методы )
UFO landed and left these words here
К тезисам статьи комментарии.

Список нод сети биткойна можно посмотреть в режиме реального времени на сайте: bitnodes.earn.com

Нет никакого сюрприза в том, что 10% мировых нод размещены в одном провайдере — Hetzner! Вобще получается такой народный рейтинг провайдеров. В некоторых странах количество нод биткойна исчесстляется единицами! Однако, хорошая новость состоит в том, что нода биткойна после синхронизации пока еще нормально работает на старом 7200 rpm SATA диске.

К сожалению, на Ethereum с его клиентом Geth использовать SATA диск перестало быть возможным еще осенью 2017 года. Объем дисковых операций перестал успевать за транзакциями сети. Поэтому нода Ethereum может быть запущена на SSD диске или SSD виртуальном сервере.

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

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

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

Оба подхода иявляются принципиально разными, но хотелось бы видеть больше статей об этом и читать разные комментарии.
>количество нод биткойна исчесстляется
комбо и страйк! (без обид)

>Для биткойна это Lighting Network,
строго говоря, лайтнинг не только для битка. Там вся суть тормозов в том что если его запустить так как изначально задумывалось — встает вопрос а нафига вообще биток если можно с кем угодно.
Ну и кросс чейновые переводы — можно было бы затронуть если бы был затронут лайтнинг (спойлер — они уже работают с некоторыми криптами без переделки протоколов и лайтинга, биток да — не в списке)
Lighting Network отменяет основную идею, где все данные есть у всех и все клиенты согласны с произведёнными изменениями, блокчейн получается вообще тогда не нужен, что хочу то и ворочу
Lightning пригоден по сути для микротранзакций и для платежей с известными контрагентами. Получение суммы от неизвестного, либо суммы большей чем открытый канал и все. Идем в основную сеть и снова грузим ее.
К тому же каналы это значит заморозить деньги.
Сотни и тысячи транзакций внутри канала возможны лишь при активном взаимообмене. Односторонние платежи быстро вычерпают канал.

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

С шардами интересно, но мастерноды это уход децентрализации.

Есть еще перспективные варианты вместо chain использовать направленный граф типа tangle, но там тоже проблема с объемами хранения не решена.
Технологически с лайтнингом все понятно. Непонятно приживется ли идея морозить средства в канале.
В том то и проблема что прижиться она может только в случае нескольких больших пулов, с которыми у клиентов есть каналы, а эти пули соотв. держат каналы между собой. То есть что то вроде визы и мастеркарда в крипте (упрощенно, я понимаю что это не так). Но тогда выхватываем централизацию. Не монополия, но централизация. Не уверен что это плохо, но народ в массе своей недоволен.
то-есть все плюсы, децентрализация, анонимность, независимость, отменяются в ближайшее время и мы получаем те же банки, разве что владельцы другие и при этом у них даже статуса банка не будет по крайней мере поначалу, печаль, революции значит не будет
Фишка в том, что «банком» может быть любой. Купил сервер, купил канал, купил асик/видюху, нашел клиентов и вперед. Нет лицензий, нет обязанности слушаться других. Клиент может спокойно уйти от нерадивого «банка» к другому.
Полная децентрализация — иллюзия, и сказка для маленьких. Она просто неэффективна.
Должна быть децентрализация для решения проблем, а не децентрализация ради децентализации. Олигополия вполне себе рабочая схема, если у олигархов есть конфликт интересов, и не возможен полный сговор.
ну не правда, децентрализация эффективна если предположить что все честные и не будут 2 раза одними деньгами платить то всё уже сейчас работает, нужно лишь найти эффективный способ борьбы с недобросовестными пользователями и тогда можно будет имея телефон оплачивать всё что угодно и моментально, даже наличка не нужна будет, а главное не будет манипуляции с количеством денег если есть заданный процент инфляции и бесконечночное количество койнов то можно через 5 лет всех обеспечить криптой и привести все страны к единой независимой валюте, скорее всего не обойдётся без жертв, но что поделать.

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

Это пока нет лицензии. Как только появятся такие крупные игроки, надобность в лицензии вам серьёзные дяди в костюмах быстро организуют. Негоже прибыли мимо бюджета ходить. Собственно, верность моего суждения уже сейчас прекрасно иллюстрируют замашки органов власти на лицензирование майнинга.
Личный опыт с эфром. Официальный Ethereum Wallet в режме light client не работает. Да это пока бета, но она совсем не работает, клиент не может найти ни одной ноды за несколько дней.
В дефолтном режиме, он начинает синхронизироваться и даже может за 3-7 дней синхронизироваться с нуля. Очень сильно нагружает компьютер, работать при этом становиться невозможно. У меня нормальный стационарный комьютер, ssd, что уж там с ноутбуками становиться я не знаю.
Но если его пару дней не запускать, то потом досинхронизироваться очень сложно.
Использовать Parity или myetherwallet я опасаюсь.

В биткойне юзал Bitcoin Core и Electrum. Вообще никаких проблем.

Когда последний раз смотрел, у них была открытая бага такого плана, что полный клиент игнорировал параметр-ограничение на количество подключений легких нод, как воркэраунд эти рукосуи поставили дефолтное значение лимита подключений в 0. Т.к. практически никто его не меняет, полных нод готовых обслуживать легких клиентов сейчас в сети нет.
Для обеспечения надёжности хранить старые состояния не требуется, достаточно последнего актуального состояния и уверенности в том, что оно корректно. Благодаря этому в Ethereum не два а три типа узлов
Это точно так же справедливо и для Bitcoin:
  • полный узел хранящий все блоки
  • полный узел с опцией -prune (хранит только непотраченные выходы)
  • легкий клиент.

Майнеры уже некоторое время хранят базу данных в RAM-драйве.
Для этого нужно много-много-много RAM…
мне не совсем понятно почему нельзя использовать нормальные базы данных, и зачем нужен вообще блокчейн как таковой? есть другие уже рабочие способы обеспечения неизменяемости данных и репликации между нодами, зачем этот майнинг? ну и самая большая непонятка с мощностью майнинга, если сеть подстраивается под 10 минут на блок то в чём смысл увеличения мощностей майнинга?
Bitcoin: A Peer-to-Peer Electronic Cash System
пересказывать документацию вряд ли вам кто будет. Поверхностно — это игровая ситуация, мощности увеличиваются не потому что кто то приказал а потому что майнерам хочется заработать больше. Это искусственно созданная игровая ситуация, поскольку решение этой игры дает решение проблемы траста — чем больше мощностей тем меньше вероятность того что чейн перерасчитают толстые дяди с толстыми компьютерами. Что позволяет нам с некоторой долей оптимизма рассчитывать на то что правила консенсуса выполняются не только текущим моментом но и задним числом (то есть то что есть в чейне не перепишется) при этом у чейна нет хозяина. Если Вы с этим несогласны — предложите свою схему НАДЕЖНОГО (не в плане стабильности а в плане доверия) децентрализованного хранилища. Если у Вас есть такая схема и Вы не знаете как ее монетизировать — скажите мне, я помогу.
Зачем требуется хранить трассу смартконтракта? Ведь достаточно хранить список операций с базой данных, которые он выполнил.

Прошу прощения, я не совсем корректно выразился. Сами трассы в базе данных не хранятся, но там есть вся необходимая для их получения информация:


  • Код контрактов.
  • История состояний (в промежутках между вызовами).
  • Аргументы, передаваемые при вызове.

Подробнее можно прочитать тут: https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction#tracing-prerequisites


Что это даёт?


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


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


Вариантов здесь может быть несколько:


  • Ожидаемое поведение контракта.
  • Неожиданное, но корректное поведение контракта.
  • Проэксплуатированная уязвимость.

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

Only those users with full accounts are able to leave comments. Log in, please.