Получи случайную криптовалюту за регистрацию!

Продолжение аналогий из предыдущего поста. Речь пойдёт про пар | Of Code & Men

Продолжение аналогий из предыдущего поста. Речь пойдёт про параллельные вычисления. Они включают в себя не только собственно вычисления, но и достижение консенсуса в распределенных системах, а оттуда прямой путь до блокчейна. Так вот, алгоритмы этих систем описываются 2.5 свойствами. Почему половина? Напишу в конце.

Первые два свойства упоминаются во всех источниках:
Safety (безопасность или корректность). Она гарантирует, что система никогда не перейдет в невалидное состояние. Например, в одну телефонную будку в конкретный момент времени может зайти максимум один человек. (Если это, конечно же, не ТАРДИС.) А вот бронирование билетов на самолёты часто не удовлетворяет свойству безопасности, так что авиакомпаниям приходится иметь дело с овербукингом. В целом, это очень важное свойство, и алгоритм чаще всего не имеет смысла, если ему не удовлетворяет.
Liveness (живучесть). Это способность системы достигать прогресса в решении задачи с течением времени. Степени живучести те же самые, что и степени неблокирующей синхронизации из предыдущего поста. Пример “живучей” задачи - выкопать канаву от забора до забора. Когда-то это задача будет выполнена, потому что каждое движение лопаты идёт в зачет. А вот поиск внеземных цивилизаций вполне может оказаться “неживучей” задачей.

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

Осталось последнее свойство. Или даже половинка свойства, потому что его крайне редко упоминают. Однако, я всё же считаю его достаточно остроумным, чтобы включить сюда.
• Я бы назвал его usefulness (полезность). Допустим, вы с друзьями договорились посмотреть вечером кино. Договорились и… все остались по домам и смотрят кино дома. Свойство безопасности выполнено - никто не пострадал, свойство живучести тоже - вы достигли прогресса и посмотрели кино. Но была ли эта договоренность полезной?

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