Could you stop posting foolishness in my thread (sic!)
who is still (since years) posting here foolish ideas?
At the beginning he wanted to sell us the FPGA as the ultimate solution and now it's become ASIC after all.
This German guy is clearly a pro.
Here is a Bitcoin address generator running on ESP32 ... for just a few Dollar
// dev module default 4mb huge app partition
// output format: private key*compressed public key*counter
#include "secp256k1.h"
#include "secp256k1_preallocated.h"
uint8_t secret[32];
double life = 0;
void setup() {
delay(1);
Serial.begin(115200);
}
void loop() {
secp();
life++;
}
// --------------------------------------------------------------------------------------------
void secp(){
secp256k1_context *ctx = NULL;
int res;
size_t len;
size_t context_size = secp256k1_context_preallocated_size(SECP256K1_CONTEXT_VERIFY | SECP256K1_CONTEXT_SIGN);
ctx = secp256k1_context_create(SECP256K1_CONTEXT_VERIFY | SECP256K1_CONTEXT_SIGN);
// generate random private key - full 8 bit range 0-ff
for (int i = 0; i<32; i++) {
secret
= random(0,256);
}
// computing corresponding pubkey
secp256k1_pubkey pubkey;
res = secp256k1_ec_pubkey_create(ctx, &pubkey, secret);
// serialize the pubkey in compressed format
uint8_t pub[33];
len = sizeof(pub);
secp256k1_ec_pubkey_serialize(ctx, pub, &len, &pubkey, SECP256K1_EC_COMPRESSED);
print_hex(secret, sizeof(secret));
Serial.print("*");
print_hex(pub, sizeof(pub));
Serial.print("*");
Serial.println(life);
secp256k1_context_destroy(ctx);
}
// ---------------------------------------------------------------------------------------
void print_hex(const uint8_t * data, size_t data_len){
char arr[3];
for(int i=0; i if(data<0x10){ Serial.print("0"); }
Serial.print(data, HEX);
}
}