Для полных узлов LevelDB и, что гораздо важнее, sipas ultraprune работы на более эффективные рабочие наборах поставить нас обратно в точку, где проверка ECDSA является узким местом, а не IO.
Я хочу сделать примерно упорядоченный список известных методик можно использовать для повышения пропускной способности проверки подписи. Как это выглядит:
- Устранение избыточных проверок подписи (DONE)
- Многопоточная проверка подписи. Это легче после Sipa рефакторинга. Для большинства машин, на которых Bitcoin бежит это даст как минимум в ое ускорение (я сомневаюсь, что кто-то использует одноядерные машины больше) и для серверов, больше похож на 4-8x ускорения предполагающего это нормально, чтобы насытить все ядра.
- Реализовать Коблиц-кривой конкретных оптимизация, это метод Г и Hal объяснил, как это сделать некоторое время назад. По-видимому, это что-то вроде 20% ускорения в но может пойти выше.
- Разрешить мульти-машина sharded проверки, так что вы можете иметь несколько машин параллельно. Конечно, это приводит нас больше к "supernode" дизайн, который некоторые считают спорным.
Там также могут быть способы использования экзотических инструкций процессора, как те, в SSE3 или AES-NI. Там какая-то его обсуждение Вот, но это, кажется, относится только к бинарным кривым, а не кривым простого порядка, которые мы используем.
Много исследований было сделано в последние годы на пути сделать ECDSA быстрее, но, к сожалению, почти все они несовместимы с secp256k1 кривой Bitcoin использует. Пакетная проверка, в частности, как представляется, требует внесения изменений в подписи (по крайней мере, что я был в состоянии найти). Получение доступа к этим ускорениям будет означать глобальное обновление и жесткую вилку. Но то, что убыстрение может привести!
DJB и друзья утверждают, что с их ed25519 кривых ( "издание" для Эдвардса) и осторожное осуществление они могут сделать пакетную проверку 70,000+ подписей в секунду на дешевом четырёхъядерный Intel Westmere чип, который в настоящее время несколько поколений назад. С учетом достижений в области процессоров с течением времени, вполне вероятно, что в ближайшем будущем цитируемого программное обеспечение будет возможностью проверить многие сотни тысяч подписей в секунду, даже если держать ядро рассчитывать константу. Но основные отсчеты не являются постоянными - вполне вероятно, что в течение 10 лет или около 24-32 чипов будут стандартными даже на потребительских настольных компьютерах. В этот момент миллион подписей в секунду или больше не звучит неразумно.
Если мы успешно управлять первый жесткий вилочный процесс, кажется поэтому, что даже обычные компьютеры вы можете иметь в вашем доме (при достаточно оперативной памяти и пропускной способности) будут способны идти в ногу с движением грузов далеко сверх того, что как VISA и MasterCard ручка в сочетании ,