А теперь представьте себе ситуацию.
Вы послали транзакцию. Пакет молока в магазине купили типа.
Я вижу вашу транзакцию и рассылаю в сеть сообщение "а я конфликт обнаружил, заблокируйте его"
Или к этому сообщению надо еще обе транзакции прикрепить?
Воот, уже начинаются "или" варианты конкретных деталей функционирования - значит, есть надежда, что алгоритм не так уж безнадёжен на уровне концепта.
Да, лучшим решением, думаю, будет упаковать обе транзакции в сообщение специального типа:
{невалидные_транзакции_А_&_Б;транзакции_прилагаются: ...}
Их ведь всё равно по сети рассылать, если они валидные.
А что будет если вся сеть инвалидирует транзакции А и Б и забудет про них.
И тут вы снова в сеть посылаете транзакцию А! (или Б). Опять 100500 компов только
тем и занимаются что ваши транзакции друг у друга инвалидируют
Ну в принципе, как и в биткойне с double-spent и прочими невалидными транзакциями, не?
Кстати, а какой интервал вы разрешаете между транзакциями А и Б?
А то я, допустим, купил автомобиль. Послал типа транзакцию А.
А через месяц посылаю со своей ноды сообщение "ай-яй. конфликт!" и бабки возвращаются мне обратно.
Не. Ну понятно, что интервал надо выбрать более-менее разумный. То есть, достаточно короткий (скажем, минуту), чтобы транзакция достаточно отреплицировалась, и при этом не ждать вечность. После этого, если не обнаружено конфликта - продавец должен подписать транзакцию своим ключём, что означает, что платёж он подтвердил. Если после этого появляется ещё одна транзакция с тем же номером и ID (счётом) отправителя, подписанная только отправителем - она просто отвергается. А если вдруг каким-то образом всплывает не замеченная сетью такая же транзакция, подписанная получателем - откатываются обе.
Если провести аналогию с биткойном: до подписания получателем транзакция болтается в "мемпуле", после подписания - перемещается в "блок" (точнее, в кандидата на "смайненый блок"), далее через какой-то интервал - в "блокчейн".
После этого, конечно, ничего вернуть уже не получится.
Зато, есть и свои плюсы: отправить шиткойны "в никуда" - не получится. И транзакции не будут месяцами болтаться в "несмайненных" - либо туда, либо обратно.
Взаимо-симметричное (ложнонегативное) утверждение к "потратить дважды" - будет звучать, как "не потратить ни разу".
Аналогичное к "нельзя потратить чужие коины" - будет "никто не может ограничить возможность потратить свои".
Внушает. Логика на уровне Канта, Платона и Декарта. Кто вас этому так научил?
Ну, так-то - любой приличный букварь, хоть по статистике, хоть по системному анализу.
Ну, или в вякипедию хоть заглянули бы, прежде, чем своё толкование известных понятий изобретать.
С чего вы вообще взяли, что утверждения (мои и ваши) должны быть ложнонегативны?
Либо - ложнопозитивны. Я же сказал, ошибки первого и второго рода - взаимно-симметричные, а не просто так, с потолка. А у вас - мокрое vs. мягкое:
Я вам понятным русским языком объясняю: имеются два вида проблем.
Вас жена послала купить в магазине хлеб. Если вы хлеб не купили - это ошибка алгоритма
первого рода. Если вы купили не хлеб, а портвейн - второго. Про какие-то ложнонегативности
я речь вообще не вел.
Тоже, конечно, ошибки - но совсем другого рода.