Мы получили запрос в службу поддержки о неудачной транзакции, и, после обсуждения с отправившим запрос пользователем, мы попросили его разрешения опубликовать сообщение на bitcointalk и позволить сообществу определить, как следует решить этот вопрос. Он согласился, если мы не будем раскрывать его транзакцию, поэтому мы поднимаем этот вопрос.
Мы публикуем его в ветке ANN, потому что не можем не подчеркнуть, насколько для нас важно найти общий консенсус относительно того, что должно произойти в этой ситуации, т.к. это может иметь долгосрочные последствия для будущего, и мы хотим отнестить ко всем справедливо и показать полную прозрачность.
Мы будем уважать решение сообщества, каким бы оно ни было. Чтобы было ясно, мы никого не обвиняем в злых намерениях, мы изложим факты и убедительно просим всех высказать свое мнение.
Пользователь связался с нами, и это информация, предоставленная нам:
1. Он не сохранил приватный ключ Ноты (Note).
2. Он не сохранил публичный адрес Ноты.
3. Он не сохранил Гарантийное Письмо.
4. Он не помнит точный % использованных пожертвований.
5. Он может подписать сообщение с адреса, который использовался для депозита на Whirlwind.
С нашей точки зрения ситуация выглядит так:
То, что пользователь может подписать сообщение с депозитного адреса, безусловно, полезно, но это само по себе не доказывает ничего, кроме того факта, что он действительно сделал депозит.
Как было сказано ранее, наши базы данных (серверная часть + 3 подписанта) содержат только публичные адреса Нот и их соответствующие балансы. Мы не храним временные метки, информацию о депозитах/платежах/снятиях средств. Мы использовали этот подход, чтобы сохранить конфиденциальность Нот, даже если в какой-то момент произойдет взлом базы данных.
В этой конкретной ситуации это огромная проблема, потому что у нас самих нет возможности связать депозит с Нотой, поэтому, если мы не получим Гарантийное письмо, это в лучшем случае просто игра в угадайку, и нам нужно верить на слово пользователю, поскольку у нас больше не с чем работать. У нас также нет возможности проверить, был ли уже частично или полностью израсходован баланс ноты, потому что мы не знаем, о какой именно Ноте речь.
Мы проверили базы данных и обнаружили более 1 Ноты с очень похожим балансом; мы рассчитали, используя то, что пользователь вспомнил, это его процент пожертвования, но цифры не в точности совпадают. Это указывает на то, что либо он не помнит правильно %, либо нам лгут; опять же, у нас нет возможности проверить. На самом деле другая возможность состоит в том, что он уже потратил свою Ноту, и ни одна из тех, что мы видим в базе данных, не принадлежат ему.
Система построена таким образом, что наше ручное вмешательство никогда не потребуется, если только пользователь сам не совершит ошибку. Учитывая, что в какой-то момент мы децентрализуем сервис и будет больше валидаторов, ручное вмешательство станет только сложнее, поэтому нам нужно согласовать какую-то «стандартную процедуру». Важно отметить, что если пользователь когда-либо найдет свой закрытый ключ, он сможет без проблем вывести средства, средства останутся на мультиподписи (при условии, что мы не идентифицируем Ноту, не удалим ее из базы данных и не вернем деньги вручную).
Для нас это проигрышная ситуация, независимо от того, что мы решим сделать, поскольку «решение» ее каким-либо образом будет означать, что мы не соблюдаем наши собственные правила, которые четко указаны везде. (сохраните свой закрытый ключ или вы потеряете доступ к вашим средствам, а для обращения в службу поддержки вам необходимо предоставить LoG).
У нас есть следующие варианты, если кто-то увидит лучшее решение, сообщите нам:
1. Вернуть ему деньги из нашего резерва и рискнуть создать опасный прецедент, а также рискнуть взять на себя удар в случае, если нам солгали. (Нота останется с полным балансом и активной, потому что мы не будем знать, которую из них удалить)
2. Временно отключить все Ноты с аналогичным балансом и подождать, пока другие держатели Нот не свяжутся с нами, чтобы снова включить их. Если по прошествии некоторого времени 1 Нота останется неизменной, и мы не получим никаких запросов по ней, мы будем считать, что она принадлежит этому пользователю, и вернем ему деньги. Мы все равно рискуем взять на себя удар, потому что оставшийся держатель Нот может просто не обратить внимания на ситуацию и узнать об этом только после того, как мы вернем деньги. Это еще один опасный прецедент, которого мы хотели бы избежать любой ценой.
3. Пользователи должны действовать, исходя из того, что Whirlwind представляет собой как сеть, и соблюдать правила, в этом случае мы ничем не сможем помочь, и пользователь потеряет доступ к своим средствам, предполагая, что это правда, и что он действительно потерял приватный ключ.
Независимо от того, каков будет результат, это должно послужить важным уроком для всех, чтобы никогда не вносить депозит, прежде чем убедиться, что вы сохранили свой закрытый ключ Ноты. Если у вас есть доступ к нему, вы не столкнетесь с какими-либо проблемами.
Ждем ваших мнений.
Прочитать на английском