Search content
Sort by

Showing 20 of 25 results by akaki
Post
Topic
Board Development & Technical Discussion
Re: Pollard's kangaroo ECDLP solver
by
akaki
on 08/12/2024, 17:51:16 UTC
what is the order of magnitude in Address/s that can be achieved by commercial GPUs and an optimized code to solve the puzzles without knows public keys, for example puzzle 66.

The number of address/s should be near 10^15 (Peta-addresses/s) to 10^18 (Exa-addreses/s) to solve such puzzles in seconds. Remember each extra bit increment the difficult twice the previous value.

Whaaat  Huh 10^15 addresses/s with a GPU, is it with NVIDIA H100 ?

I was proud of a GPU code that can do SHA256 alone at a rate of 10^10 addresses/s, so I can't imagine adding address calculations and at the same time reducing latency 10^5 times.

Hats off to those who solved previous puzzles, at this level it requires state funded resources.

Post
Topic
Board Development & Technical Discussion
Re: Pollard's kangaroo ECDLP solver
by
akaki
on 02/12/2024, 04:55:32 UTC
hello,

what is the order of magnitude in Address/s that can be achieved by commercial GPUs and an optimized code to solve the puzzles without knows public keys, for example puzzle 66.

thanks
Post
Topic
Board Development & Technical Discussion
Topic OP
about pools for solving Puzzle 66
by
akaki
on 09/06/2024, 18:11:29 UTC
Hello,

Seing the difficulty for solving Puzzle 66, I'm thinking about joining a pool.

I came across this one https://btcpuzzle.info/ that seems serious. They clame they've checked already >10% of the range for Puzzle 66.

Here are some statistics :

- They devided the search range into 33,554,400 parts
- 1 range a time is assigned to someone
- Each range has 1,1 trillion keys
- The price is 5$ to check 350 ranges in three days.
- with this, the average speed of the pool is 24756 ranges in 24 hours
- This means there are 2 years left to solve Puzzle 66

It could be very reasonnable to do it if and only if they are :

1) trustworthy --> I have no idea
2) fast enough
3) much better than other pools --> does someone have any names ?

My thinking is that if the pool has chances to win, it's not a lottery but an investment because the gains will be distributed proportionally to one's contribution. So even 1$ would be worth it !


Thanks in advance for providing any feedback.
Post
Topic
Board Development & Technical Discussion
Topic OP
signatures and the building of a lattice
by
akaki
on 03/03/2023, 23:40:12 UTC
Hello,

In the context of presence of biased nonces, I've read in several places that if one doesn't have enough signatures to build a lattice of the required dimension, valid ECDSA signatures should be generated for this purpose.
However, I don't understand how this can help as one will generate "i=1..n" signatures with "Ki=ai+ bi*prvkey" using random (ai, bi) that doesn't provide any informaion about Ki.

Are there any hints for properly choosing (ai, bi) ?
The most obvious one is to have the same bias of Ki (difficult to achieve) but this is not enough, right ?
Post
Topic
Board Development & Technical Discussion
Re: solomining probability calculator
by
akaki
on 05/02/2023, 10:43:56 UTC
the correct answer in my opinion is

1- [chance with 50 PH/s for 3h] = [chance with 25 PH/s for 6h] = [chance with 5 PH/s for 30h]

because it takes into account the shares submitted.

The problem can be generalized to :

is [x draws in n attempts] = or > [x/y draws in y*n attempts] ?

My answer is based on these extreme case examples :

1) Alice gambles on the 6 numbers of the dice and rolls it 1 time  --> Alice is 100% sure of hitting a number

2) Bod gambles on 1 number of the dice but rolls it 6 times          --> Bob may not hit a number (even if he gambles on the same number). But he is "expected" to hit a number if he increases the number of his attempts.

For me this is why strictly speaking [x draws in n attempts] > [x/y draws in y*n attempts]

3) Let's assume that Bob gambles always on the same number    --> The probability of hitting this number at least one = 66.5% in 6 rolls or = 98.7% in 24 rolls (1-(5/6)^n for the formula).

In the case of bitcoin mining, the winning number is new every 10 min. Then what matters is the available hash rate during these 10 min.

The discussion is interesting, I'll be glad of hearing clarifications from experts.
Post
Topic
Board Pools
Merits 1 from 1 user
Re: citb0in Solo-Mining Group - BLOCK SOLVERS (english)
by
akaki
on 16/01/2023, 11:40:22 UTC
⭐ Merited by citb0in (1)
Since the draws are independent for mining each new block, the chances are constant as long as the hash rate is constant and no matter how many times you repeat the mining attempts.
Correct.

For me there is a huge mistake in the calculation of the winning chances
[...]
If the project of @Willi9974 is also based on the assumption that we increase the chances by mining for longer periods of time, then a lot of people might be loosing their money.

You seem to have something mixed up. Willi9974 meant the following: if you would for example mine with an existing total amount "x" with 25 PH/s hashrate for 6h duration, then the chances of a block hit are exactly the same as if you would mine with the same amount "x" with 50 PH/s for 3h duration, which with 5 PH/s hashrate for 30h duration. And this is a correct statement.

Solo mining as it is done here and also by Willi9984 is clear to everyone and should be considered gambling. You should only bet as much as you are willing to lose.
The values are derived from solochance.com. For further questions about the calculation and the background, you are welcome to contact the developer in this thread.


Sorry, I insist because people might be fooled (and loose money) by the chances of mining a block that were announced.

You say that I'm correct about the Gambler's Fallacy but you are still talking about time. Hashrate and only hashrate matters for the probability of mining a block.

[chance with 50 PH/s for 3h] > [chance with 25 PH/s for 6h] > [chance with 5 PH/s for 30h] that is simply because you can remove "for xh".

The post should be edited to :

Chances to mine a block are :

at   1 PH/s --> 1 in 267.342 per block
at 2.5 PH/s --> 1 in 106,937 per block
at   5 PH/s --> 1 in  53,468 per block
at  10 PH/s --> 1 in  26,734 per block
at  25 PH/s --> 1 in  10,694 per block
at  50 PH/s --> 1 in   5,347 per block

The calculation in "solochance.com" is also wrong. I don't know if it's intentionally to just encourage people to use a solo-mining service.



Post
Topic
Board Pools
Re: citb0in Solo-Mining Group - BLOCK SOLVERS (english)
by
akaki
on 15/01/2023, 18:31:49 UTC
Hello,

For me there is a huge mistake in the calculation of the winning chances :

Quote
Chance calculation to hit a block in solo mining using different hashrate examples:

at   1 PH/s --> 1 in 267.342 per block or 1 in 1.857 per 24h
at 2.5 PH/s --> 1 in 106,937 per block or 1 in   743 per 24h
at   5 PH/s --> 1 in  53,468 per block or 1 in   371 per 24h
at  10 PH/s --> 1 in  26,734 per block or 1 in   186 per 24h
at  25 PH/s --> 1 in  10,694 per block or 1 in    74 per 24h
at  50 PH/s --> 1 in   5,347 per block or 1 in    37 per 24h

You can't say for example that there are 144 blocks mined each 24h (=1 each 10 min) and thus if we run the miner 24h non-stop we multiply our chances by 144.
Yet this is the reasonning applied as for example : with a hash rate of 50 PH/s --> chance per block = 1/5347 --> chance per 24h = 144/5347 = 1/37 which is false.

Since the draws are independent for mining each new block, the chances are constant as long as the hash rate is constant and no matter how many times you repeat the mining tentatives.

There is a topic in wikipedia that gives a better explanation : https://en.wikipedia.org/wiki/Gambler%27s_fallacy

If the project of @Willi9974 is also based on the assumption that we increase the chances by mining for longer periods of time, then a lot of people might be loosing their money.
Post
Topic
Board Development & Technical Discussion
Re: Pollard's kangaroo ECDLP solver
by
akaki
on 14/09/2022, 18:06:58 UTC
what will be time for kangaroo to find privkey on ranges:

2**115 bit
2**110 bit
2**105 bit
2**95 bit

?

JeanLuc already gave the ressources that were needed to solve puzzles 110 and 115 using his algorithm :

#120 --> 60  days using 256 Tesla V100 (not yet solved, only prediction)
#115 --> 13  days using 256 Tesla V100
#110 --> 2.1 days using 256 Tesla V100

For the other puzzles, it will depend on which algorithm was used and on ressources involved.

I'm also curious to know how long it would take to solve each of the puzzles from 1 to 120 using JeanLuc's algorithm. Then, one can derive a simple low of complexity of the puzzle.
Post
Topic
Board Development & Technical Discussion
Merits 5 from 3 users
Re: why it works? it should'nt
by
akaki
on 06/09/2022, 18:05:40 UTC
⭐ Merited by garlonicon (2) ,vapourminer (2) ,Welsh (1)
If r is wrong then s is also wrong.

The right s should be 99827946738399009248825444711200031423675392728917187111450168157978195192231.

If you are using both wrong r and s, you are just balancing the equation to get d.
Post
Topic
Board Development & Technical Discussion
Re: why it works? it should'nt
by
akaki
on 06/09/2022, 17:43:16 UTC
r is wrong.

ECDSA multiplication using k*Gpoint gives :

R=(42804120235550333264601566912095829673031312040987116166863779393812842042729, 68663269101170998966556989191669958292218975994528865773618353809041762691493)

thus r=Rx=42804120235550333264601566912095829673031312040987116166863779393812842042729
Post
Topic
Board Mining
Merits 4 from 1 user
Re: eternal question : difficulty of bitcoin mining (with maths this time)
by
akaki
on 21/08/2022, 20:59:57 UTC
⭐ Merited by hugeblack (4)
Hey guys,

i've been always trying to figure out how exactly the mining process works with bitcoin but always failed to understand it.

All i know that the block hash should have a lot of zeros but what hashes what to get this value is what i am trying to understand. I have googled, watched YouTube, but still i can't get it well enough.

i would really be thankful if someone can explain to me in a easy way on how the mining process works with the following example block number 750452:

It's block hash is: 0000000000000000000420d2e347f016f63d9045b7895589e5eff33893cf833f

Merkle root: ef108a25a975f6c2f5528e0e1b2d4162686a8f878a0ca9b40e59d1845d8c9798

Nonce: 263795775

previous block hash: 000000000000000000084d88e5ac59edd7c34c20d6b5addf18aae6f1040ac215

Now can anyone explain for me please?




If you are asking about the theory, here is a link to understand step by step how the process works. I've never found anything giving a better explanation to start with :
 https://medium.com/fcats-blockchain-incubator/understanding-the-bitcoin-blockchain-header-a2b0db06b515

It's just the theory behind the process for bitcoin. In reality folks use dedicated hardware (asics) and thousands of them to have any chance of succeeding before the others. The discussion in this post was about the probability of success.
Post
Topic
Board Mining
Re: eternal question : difficulty of bitcoin mining (with maths this time)
by
akaki
on 21/08/2022, 10:14:30 UTC
Thanks @kano, @a1 Hashrate LLC2022, @NotATether.

My intention was also to have a post that anyone googling mining difficulty can find.

I recommend these two articles that studied statistically the mining difficulty problem :

- https://www.zora.uzh.ch/id/eprint/173483/1/SSRN-id3399742-2.pdf
- https://doi.org/10.2139/ssrn.3399742

Conclusion is that the Hypergeometric Distribution is the correct model and not Poisson Distribution as commonly accepted (also assumed in Satochi's white paper).
Nevetheless, I agree that the way I stated the problem is incomplete. We should also do the calculation knowing that" there is competition with X hash power.

Overall, I agree that the ratio of own hash power to the network hash power can be a good approximation.
Post
Topic
Board Mining
Merits 14 from 4 users
Topic OP
eternal question : difficulty of bitcoin mining (with maths this time)
by
akaki
on 13/08/2022, 10:45:52 UTC
⭐ Merited by hugeblack (6) ,o_e_l_e_o (4) ,a1 Hashrate LLC2022 (2) ,mikeywith (2)
Let's assume we try to mine the next block after block No.749256 whose hash is : 00000000000000000009b06cb40e4302fc0dab3f8031f058351e904e14be2b45.
  --> current difficulty is 19 leading zeros (76 zero bits=19*4) out of 256
  --> the size of the population is N=2^256

In big-endian representation, double_sha256 outcome should have 76 ending zeros. This is equivalent to saying that the leading 180 bits can be any number
  --> total number of possible solution is K=2^180

Let's assume we use one Antminer S19 PRO with a hashpower of 110TH/s for 10 min
 --> total number of attempts is n=66*10^15

One double_sha256 outcome that fulfills the difficulty requirement is sufficient
 --> k=1

To sum up the mining problem, here are the parameters to calculate the probability of mining a block in 10 min :

  N is the population size                                                            =  2^256
  n is the number of draws (double_SHA256 checks)                     = 66*10^15
  K is the number of known success states in the population          = 2^180
  k is the number of wanted successes                                         = 1


This problem is dealt with in probability theory and statistics by the hypergeometric distribution (definition from wikipedia):
Quote
is a discrete probability distribution that describes the probability of k successes (random draws for which the object drawn has a specified feature) in n draws, without replacement, from a finite population of size N that contains exactly K objects with that feature, wherein each draw is either a success or a failure.


The formula for the calculation is available on wikipedia : https://en.wikipedia.org/wiki/Hypergeometric_distribution

Is anyone able to calculate the result for the example I have given ? The values seem too big using Python or Matlab.

We find references to this early post regarding the difficulty of mining but it doesn't give a rigourous answer https://bitcointalk.org/index.php?topic=1682.0.

Kind regards
Post
Topic
Board Development & Technical Discussion
Merits 8 from 4 users
Topic OP
checking address or pubkey of unspendable bitcoins
by
akaki
on 02/01/2022, 08:55:08 UTC
⭐ Merited by o_e_l_e_o (4) ,hugeblack (2) ,NeuroticFish (1) ,ETFbitcoin (1)
Hi,

I would like to understand how one can verify that bitcoins in a given address are unspendable.

To me, there are N points on the field of the elleptic curve. That makes (N+1)/2 points with distinct x coordinates (=half side of the symetrical field)

Therefore, there are (N+1)/2 points left, such as (x,y)!=k*G with k in [0,N].

For example:

If I pick x=0 (for which I'm almost sure it cannot result from k*G), we can derive two points :

P1=(0 , 64828261740814840065360381756190772627110652128289340260788836867053167272156)
Adress1=15wJjXvfQzo3SXqoWGbWZmNYND1Si4siqV

P2=(0 , 50963827496501355358210603252497135226159332537351223778668747140855667399507)
Adress2=1MqALQs6ea1ACgwRurqgaBDWzxYPoXCXzu

These adresses are valid (even active in the blockchain). However, they don't have a private key.

Then, is it possible to know if a public key has a private key (i.e. derived from k*G) ?

Regards,

Mr. Akaki
Post
Topic
Board Development & Technical Discussion
Re: Pollard's kangaroo ECDLP solver
by
akaki
on 26/12/2021, 00:43:28 UTC
Hi,

One question regarding the performance of the algorithm.

It's stated that for puzzle #120, the :
Quote
Expected time: ~2 months on 256 Tesla V100.

This is really mind boggling  Shocked. But does someone know how long it took  (or a time approximation) to solve puzzle #115 using 4 Tesla V100 ?

To me it took (60/2^5)*(256/4)= 4 months, which is surely not reasonnable.



Post
Topic
Board Development & Technical Discussion
Re: zero point of secp256k1
by
akaki
on 20/12/2021, 19:46:22 UTC
Yes, indeed I calculate (-k*G + k*G) as any other EC addition using this function :

Code:
   LamAdd = ((b[1] - a[1]) * modinv(b[0] - a[0], P)) % P
As I said before, there is no exists inverse of zero (a[0] = b[0], b[0]-a[0] = 0)

If you modinv() function returning something with a zero argument, this is mean that is a wrong (or simplified - without error checking) implementation of modular multiplicative inverse. And that is why you're getting unexpected strange numbers in result.

Basically, zero-point, or identity point cannot be calculated, it is defined as [0;1;0] in projective coordinates or [P,0] in affine. Due to all of this, addition algorithms should contain  something like "if (p1.y != p2.y and p1.x == p2.x) return zero"


Thanks, I updated my modinv function.

conclusion of discussion:
Code:
-k*G+k*G=(0,P) for k€Z, with P = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F

The N*G result for k=1 is just coincidence.
Post
Topic
Board Development & Technical Discussion
Re: zero point of secp256k1
by
akaki
on 20/12/2021, 15:33:28 UTC
Maybe the zero infinity point is just an abstract notion and therefore we are not allowed to calculate (-k*G + k*G) as a normal addition.
You can't calculate -P+P in a "normal" way, because this points have same X, so it will lead to division by zero (or, if we talking about EC math - multiplicative modular inverse of zero which doesn't exist).

Quote from: akaki
-2*G + 2*G=(49667982834466148699028630885550314015746939561788444090107179747772288677390, 37758011528734597361759657276645959964664126776856991748971785837209648797521).
Nobody can't help you here, until you explain how exactly you're calculated this numbers


Yes, indeed I calculate (-k*G + k*G) as any other EC addition using this function :

Code:
def ECadd(a, b):
    LamAdd = ((b[1] - a[1]) * modinv(b[0] - a[0], P)) % P
    x = (LamAdd * LamAdd - a[0] - b[0]) % P
    y = (LamAdd * (a[0] - x) - a[1]) % P
    return x, y

It seems to work for K=1 as I get N*G (verified by EC multiplication).

What would be the modification to have the correct result for any K ? If it's not supposed to be always the same, does it have any link with k=1 ?




Post
Topic
Board Development & Technical Discussion
Re: zero point of secp256k1
by
akaki
on 20/12/2021, 12:18:19 UTC
Quote
Therefore, there is probably a different "infinity" point for each pair (-k*G, k*G), which is in accordance with the fact that addition of x-axis symetrical points forms parallel lines.
No, the point is the same. For every public key Q you have nQ=O, where O is the infinity point (0,0). If you have different results, then (as _Counselor mentioned) "you should check your calculations". For two points, where you have d and (-d), your y-value of the public key after addition should be equal

Aditions of the pairs (-k*G, k*G) gives each time a different (x,y) result, so please don't add entropy to the discussion.

Maybe the zero infinity point is just an abstract notion and therefore we are not allowed to calculate (-k*G + k*G) as a normal addition.

Yet, having -1*G + 1*G = N*G could help finding a relationship with -k*G + k*G that gives a point with arbitrary-looking cooridnates. An example was given with k=2.
Any help is welcome after verification.
Post
Topic
Board Development & Technical Discussion
Re: zero point of secp256k1
by
akaki
on 20/12/2021, 09:00:56 UTC
Therefore, could we consider N*G as the zero ?
It is not zero, it is called infinity point. Essentially to compute k*G if k%N = 0 then we get point at infinity.

(-k*G+k*G)= N*G only for (k=1).
That is true for all k values and the result is point at infinity.
Code:
-k*G + k*G = (N-k)*G + k*G = (N-k+k)*G = N*G = 0*G = infinity

I'm not sure about that, we can also write:
Code:
-1*G + 1*G = N*G
-2*G + 2*G = (-1*G - 1*G) + (1*G +1*G) = 2N*G
...
-k*G + k*G = N*K*G

Therefore, there is probably a different "infinity" point for each pair (-k*G, k*G), which is in accordance with the fact that addition of x-axis symetrical points forms parallel lines.

However, in reality with k=2, we get a point not equal to 2N*G and with no apparent link to N*G :
 -2*G + 2*G=(49667982834466148699028630885550314015746939561788444090107179747772288677390, 37758011528734597361759657276645959964664126776856991748971785837209648797521).

So for me the question still needs clarifications.

Before generalizing the formula to any K<N, let's just understand what happens with k=2 that is different from k=1.
Post
Topic
Board Development & Technical Discussion
Re: zero point of secp256k1
by
akaki
on 19/12/2021, 20:10:45 UTC
I'm not 100% sure for this, but you can't subtract this way in ECC.

Think of this. 1*G - 1*G would be equal with 1*G + (-1)*G, right? But, -1 is outside the range. In finite fields, -1 is equal with N-1 which is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364139.

So, what you really do is 1*G + (N-1)*G which is N*G. Apparently, k*G + (-k)*G is always N*G, but I need this to be confirmed. Anyway, check: How to subtract two points on an elliptic curve?

yes, by -1*G, I mean  also (N-1)*G.

I'm sure of my calculations. At least the apparent result is that (-k*G+k*G)= N*G only for (k=1). This could be possible since the addition of pairs (-k*G,k*G) on the curve form parallel lines.

Then, the question is about the link between the sums.

For K=1:
(20860373710434931919338205163613943089612844706565330860427609212248504954008, 28589774168867891354814021154080592739878697919018203946384876578134205873990) = N*G

For K=2:
(49667982834466148699028630885550314015746939561788444090107179747772288677390, 37758011528734597361759657276645959964664126776856991748971785837209648797521) = x*G