Я первоначально отправил это на Less Wrong на http://lesswrong.com/r/discussion/lw/5rg/homomorphic_encryption_and_bitcoin/ , но это, вероятно, было не место для этого.
Я много думал о Bitcoin в последнее время, и особенно о главной слабости Bitcoin: если ваш компьютер скомпрометирован, злоумышленник может скопировать Bitcoin кошелек и использовать его, чтобы украсть монеты. Плохо. Но я придумал возможное улучшение, что позволит значительно уменьшить этот риск, и в надежде на некоторую помощь, подтверждающий его жизнеспособность и заполнение в деталях.
Основная идея заключается в том, чтобы сделать так, чтобы вместо того, чтобы один компьютер, который может украсть ваши монеты, если она нарушена, то есть два компьютера (или компьютер и телефон), так что ваши монеты могут быть потрачены только если оба устройства взаимодействуют. Гораздо труднее разбить на два компьютера, принадлежащих одному и тому же человеку, чем просто один, так что это делает монеты труднее украсть. Вы также можете иметь один из компьютеров, участвующих быть третья сторона, что вы доверяете, чтобы сохранить свои файлы обеспечение, и в то время как третья сторона сможет заморозить свои средства, он не сможет их украсть. Использование сторонней таким образом, вы можете также добавить ограничение скорости вывода и задержки по времени, дальнейшее повышению уровня безопасности.
Я считаю, что это может быть сделано в полностью обратно совместимым способом, без каких-либо изменений в протокол Bitcoin, используя гомоморфное шифрование. Bitcoin основан на эллиптической кривой криптографии; получающий адрес является открытым ключом, а бумажник файл представляет собой набор закрытых ключей. Цель состоит в том, чтобы создать протокол, в котором две взаимодействующих компьютерах производят раздельное ключ, таким образом, что они могут использовать его совместно подписать транзакции позже, но ни один может подписать сделки или определить весь ключ самостоятельно. Я понимаю, что гомоморфно шифрование может быть использовано для реализации смоделированного компьютера, который делает произвольное доверенное вычисление, так что это должно быть возможно. Тем не менее, я немного нечеткой на деталях, и у меня нет времени или сравнительных преимуществ для реализации этого сам.
(Для того, чтобы иметь дело с риском один один компьютер быть потерян или поврежден, также может быть ключом переопределение, оба компьютера будет иметь общественную половину ключа переназначения, а частный половина будет находиться в автономном режиме в окне банковского вклада или что-то аналогично. Затем оба компьютер с помощью клавиши переопределения для шифрования своих половин разделенного ключа, а также отправлять зашифрованные ключи к поставщику резервного облака.)
paulfchristiano отметил, что это на самом деле не требуется гомоморфное шифрование, только безопасное вычисление 2-стороннего, который, по-видимому легче. В любом случае, я думаю, что это довольно важно; Конечные пользователи не очень хорошо удерживают свои компьютеры в безопасности, и один случай ботнета воруют все монеты можно найти бы главным бедствием.