From 012cde705a77135df98cd577b892da2b416b35fd Mon Sep 17 00:00:00 2001 From: CalDescent Date: Tue, 5 Apr 2022 09:03:14 +0100 Subject: [PATCH] REDUCED_SIGNATURE_LENGTH lowered from 8 to 4 This still gives more than enough uniqueness to prevent mempow nonces from being pre-calculated. Could potentially go even lower still? --- .../java/org/qortal/controller/OnlineAccountsManager.java | 4 +++- src/main/java/org/qortal/transform/Transformer.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/qortal/controller/OnlineAccountsManager.java b/src/main/java/org/qortal/controller/OnlineAccountsManager.java index a2a359fa..cfe57264 100644 --- a/src/main/java/org/qortal/controller/OnlineAccountsManager.java +++ b/src/main/java/org/qortal/controller/OnlineAccountsManager.java @@ -28,6 +28,8 @@ import java.util.*; import java.util.concurrent.TimeoutException; import java.util.stream.Collectors; +import static org.qortal.transform.Transformer.REDUCED_SIGNATURE_LENGTH; + public class OnlineAccountsManager extends Thread { private class OurOnlineAccountsThread extends Thread { @@ -415,7 +417,7 @@ public class OnlineAccountsManager extends Thread { LOGGER.info("Unable to compute online accounts without having a recent block"); return false; } - byte[] reducedRecentBlockSignature = Arrays.copyOfRange(recentBlockData.getSignature(), 0, 8); + byte[] reducedRecentBlockSignature = Arrays.copyOfRange(recentBlockData.getSignature(), 0, REDUCED_SIGNATURE_LENGTH); byte[] mempowBytes; try { diff --git a/src/main/java/org/qortal/transform/Transformer.java b/src/main/java/org/qortal/transform/Transformer.java index 3f2a44d3..f84327cd 100644 --- a/src/main/java/org/qortal/transform/Transformer.java +++ b/src/main/java/org/qortal/transform/Transformer.java @@ -18,7 +18,7 @@ public abstract class Transformer { public static final int SIGNATURE_LENGTH = 64; public static final int TIMESTAMP_LENGTH = LONG_LENGTH; - public static final int REDUCED_SIGNATURE_LENGTH = 8; + public static final int REDUCED_SIGNATURE_LENGTH = 4; public static final int MD5_LENGTH = 16; public static final int SHA256_LENGTH = 32;