News for hackers. Stuff that matters.

dmdox

ad hominem, seriously? What does article submission history have to do with anything anyway. Most lurkers don't submit articles. Did you confuse comments and submissions?
Re:Ask HN: How can I use Bitcoin as currency? on Friday February 25, 2022 @08:43AM (#30467134)
You are confusing BCH with BSV, which was started by a guy who claims to be Satoshi.

Lightning Network is not Bitcoin. It is a separate payments platform, being pushed by a for-profit company, Blockstream. It is never non-custodial. You always require a third-party to authorize and process your transactions for you. Since it doesn't use mining / blockchain, it is vulnerable to all the centralization problems that Bitcoin was supposed to solve.

Re:Ask HN: How can I use Bitcoin as currency? on Thursday February 24, 2022 @01:38PM (#30458458)
There was a schism in the Bitcoin community in 2017 over this issue, which led to the forking of BCH (Bitcoin Cash) as a separate cryptocurrency:

https://www.coinbase.com/price/bitcoin-cash

The main difference being that BCH has lower on-chain fees (half a penny per transaction). And BCH does not have Replace-By-Fee (RBF), making it much more difficult (but not impossible) to reverse transactions maliciously. Adoption of BCH has been disappointing, as cryptocurrency continues to be seen mostly as a speculative investment rather than a replacement for cash.

Re:Factoring composite numbers into nearly equal factors on Sunday February 13, 2022 @06:30PM (#30326681)
If you're interested in investigating more, take a look at "Continued Fraction Factorization". This is essentially the first step of that more advanced algorithm.

From the continued fraction of √n, you get a series of best rational approximations a/b to √n. Each such approximation gives you:

a/b ~ √n

a² ~ b² n

The first approximation is a = floor(√n), b = 1

These approximations satisfy |a² - b² n| < 2 √n.

(this can be used for generating relations as input to Dixon's method)

Re:Factoring composite numbers into nearly equal factors on Friday February 11, 2022 @03:12PM (#30306442)
Right.

Define L = (a+b)/2 and R = (a-b)/2, so that a * b = L² - R² for all a, b.

If there exist positive integers a, b such that a * b = n with |a-b| <= k n^(1/4) [constant k]

Then there exist L, R (either both integers or both half-integers) with L² - R² = n and |R| <= (1/2) k n^(1/4)

From which one can deduce:

R² <= (k²/4) √n

L² - R² >= L² - (k²/4) √n

n >= L² - (k²/4) √n

L² <= n + (k²/4) √n

L <= √(n + (k²/4) √n)

L <= √n + k²/8

If k <= 1, then L must be ceil(√n) or ceil(√n) - 1/2

If k <= 2√2, then L must be ceil(√n), ceil(√n) - 1/2, or ceil(√n) + 1/2

(my original estimate of 2 steps was due a slight miscalculation)

Adding epsilon would re-introduce an exponential component to the search. In fact, epsilon = 3/4 gives you total power. But this is only relevant if the reduction (https://cstheory.stackexchange.com/a/4785) can be made precise enough to bound L, U to within a fixed small epsilon. It could even be the case that you can bound to an arbitrarily small epsilon, but only at the expense of exploding other parameters. (B, T, k).

Re:Factoring composite numbers into nearly equal factors on Monday February 07, 2022 @09:23PM (#30254228)
This is polynomial time in the number of bits.

I did make one mistake. I forgot to mention the half-integer case for x and y, which requires some additional logic. I implemented it fully python:

https://gdl.space/obiyukevit.py

N is 256-bit a sample number.

Re:Factoring composite numbers into nearly equal factors on Monday February 07, 2022 @06:09PM (#30252778)
There's a trivial algorithm to do this in polynomial time. Let x = ceil(sqrt(n)). Let y = sqrt(x^2 - n). If y is an integer, then x^2 - y^2 = n = (x - y)(x + y). This provides the factorization a*b with a, b closest together. If y is an not an integer, increment x by one, recompute y, and try again. If n is a product of two numbers that differ by less than n^(1/4), this will find those numbers in 1 or 2 steps.