stas: (Default)
stas ([personal profile] stas) wrote2020-04-21 12:46 pm

ethereum

Читаю сейчас книгу про то, как устроен Ethereum VM. Поразительная вещь - разрабатывая систему с нуля во втором десятилетии 21 века, люди умудрились сделать так, что там возможны и integer overflow/underflow, и uninitialized memory reference, и race conditions - в несколько извращённой форме, поскольку система по дизайну однопотоковая, но таки удалось!
Можно говорить, что проблема в компиляторах типа solidity, которые компилируют такой код без всяких проблем, а сама VM не виновата (от чего всё равно не легче, кстати), но хотя бы с overflows можно и на уровне VM бороться.

И, разумеется, все эти проблемы в реальных контрактах могут стоить владельцам реальных - ну т.е. воображаемых, но для них вполне реальных - денежных потерь. И уже стоили. Собственно, мега-форк экосистемы на Ethereum и Ethereum Classic произошёл именно из-за одного такого бага. Там, кажется, попятили виртуальных печенюшек на сумму в 50 млн. Конечно, вряд-ли все 50 млн можно будет обналичить, да и не факт, что вообще что-то можно будет, но сама по себе история впечатляет.

Такое впечатление, что опыт последних 30 лет никого ничему не научил. Т.е. я понимаю, что сделать систему без багов невозможно, все дела, но когда речь идёт о граблях, на которые наступают уже много десятилетий, может можно хотя бы не раскладывать их прямо на дороге?
juan_gandhi: (Default)

[personal profile] juan_gandhi 2020-04-22 04:49 am (UTC)(link)
А кто их будет слушать? Вот меня на работе желающих слушать почти нету. Ну чо там, type safety, она же не фиксит никакой баг. Вот будет баг...

Ох, как все это достало, конечно.
e2pii1: (Default)

[personal profile] e2pii1 2020-04-22 08:02 am (UTC)(link)
Что хорошо для отсеивания тупых необязательно лучший выбор для финансового софта (если не требуется высочайшей производительности)


cjelli: (hal9000)

[personal profile] cjelli 2020-04-22 04:29 pm (UTC)(link)
Джоэль имеет в виду, что тем, кого ищут писать финансовый софт, не надо идти учиться в университет - достаточно техникумов.

[identity profile] http://users.livejournal.com/sorcerer-/ 2020-04-22 08:15 am (UTC)(link)
Качество дискуссии так себе, особенно позабавил мап-редьюс.
juan_gandhi: (Default)

[personal profile] juan_gandhi 2020-04-22 06:20 am (UTC)(link)
Да, могли бы. Я вообще не понимаю такой херни как "неинициализированная переменная".

[identity profile] http://users.livejournal.com/sorcerer-/ 2020-04-22 08:06 am (UTC)(link)
Для этого надо хорошо разбираться в перформансе.