-
Notifications
You must be signed in to change notification settings - Fork 37.7k
Description
Bitcoin Core currently only support to using RDRAND / RDSEED instruction on x86 architecture when requiring to generate a ultra high quality random numbers. For example, a private key.
https://github.com/bitcoin/bitcoin/blob/master/src/random.h
https://github.com/bitcoin/bitcoin/blob/master/src/random.cpp
ARM later added two new similar instructions as well, RNDR (similar to RDRAND) / RNDRRS (similar to RDSEED).
https://developer.arm.com/documentation/ddi0601/2022-12/AArch64-Registers/RNDR--Random-Number
https://developer.arm.com/documentation/ddi0601/2022-12/AArch64-Registers/RNDRRS--Reseeded-Random-Number
OpenSSL also had a similar feature request on last year. (Implemented)
openssl/openssl#15627
openssl/openssl#15361
https://github.com/openssl/openssl/blob/master/providers/implementations/rands/seeding/rand_cpu_arm64.c
I hope this feature is also available on Bitcoin Core as Bitcoin Core also can using on ARM machine (E.g. A Mac computer using Apple silicon, Raspberry Pi...).