Bitcoin Forum
April 20, 2024, 07:28:11 AM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Even or Odd Point  (Read 259 times)
AlexanderCurl (OP)
Newbie
*
Offline Offline

Activity: 3
Merit: 168


View Profile
November 14, 2022, 11:25:36 AM
Last edit: March 31, 2023, 10:38:39 AM by AlexanderCurl
Merited by hugeblack (4), vapourminer (2), odolvlobo (1), ABCbits (1)
 #1

A-one.
No Gods or Kings. Only Bitcoin
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713598091
Hero Member
*
Offline Offline

Posts: 1713598091

View Profile Personal Message (Offline)

Ignore
1713598091
Reply with quote  #2

1713598091
Report to moderator
1713598091
Hero Member
*
Offline Offline

Posts: 1713598091

View Profile Personal Message (Offline)

Ignore
1713598091
Reply with quote  #2

1713598091
Report to moderator
_Counselor
Member
**
Offline Offline

Activity: 107
Merit: 61


View Profile
November 14, 2022, 12:55:50 PM
 #2

So, to test number N you need N+2 add/sub operations.
Isn't it easier to just iterate over all the points from 1 to N? Smiley
PrivatePerson
Member
**
Offline Offline

Activity: 173
Merit: 12


View Profile
November 14, 2022, 08:24:15 PM
 #3

How can knowledge of an even or odd point help in hacking secp256k1?
NotATether
Legendary
*
Offline Offline

Activity: 1582
Merit: 6671


bitcoincleanup.com / bitmixlist.org


View Profile WWW
November 15, 2022, 06:55:11 PM
 #4

So, to test number N you need N+2 add/sub operations.

Yeah, except the points are in random order so you have no way of knowing how far from the median the point is - which would imply that the computation would be faster.

This is still going to be prohibitively expensive for large N. It is O(n). Any method with a runtime greater than O(log N) is not going to be practical in cryptography.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
CrunchyF
Jr. Member
*
Offline Offline

Activity: 54
Merit: 26


View Profile
November 17, 2022, 02:39:31 PM
Last edit: November 17, 2022, 02:52:15 PM by CrunchyF
 #5


here you only need to know the range where point is and find the right sequence of powers of 2 down.
This method also computationally quite hard. for example for puzzle #120 the sequence will  be around 46 values if you put lower 2^30 in bloomfilter.



Alexander, can u explain how you arrive to a sequence of 46 values of power of 2 with a bloomfilter of size 2^30 for puzzle 120?
Thanks
CrunchyF
Jr. Member
*
Offline Offline

Activity: 54
Merit: 26


View Profile
November 17, 2022, 03:54:24 PM
 #6


here you only need to know the range where point is and find the right sequence of powers of 2 down.
This method also computationally quite hard. for example for puzzle #120 the sequence will  be around 46 values if you put lower 2^30 in bloomfilter.



Alexander, can u explain how you arrive to a sequence of 46 values of power of 2 with a bloomfilter of size 2^30 for puzzle 120?
Thanks

46  is approximately. i cannot of course know it exactly.
here is the code. you can test any secp256k1 range value.
the same will be with point operations.
p=120 # 2^120
puzzle = 1231052970201832551532555186137109517 #value to test

pows = [2**0,2**1,2**2,2**3,2**4,2**5,2**6,2**7,2**8,2**9,
        2**10,2**11,2**12,2**13,2**14,2**15,2**16,2**17,2**18,2**19,
        2**20,2**21,2**22,2**23,2**24,2**25,2**26,2**27,2**28,2**29,
        2**30,2**31,2**32,2**33,2**34,2**35,2**36,2**37,2**38,2**39,
        2**40,2**41,2**42,2**43,2**44,2**45,2**46,2**47,2**48,2**49,
        2**50,2**51,2**52,2**53,2**54,2**55,2**56,2**57,2**58,2**59,
        2**60,2**61,2**62,2**63,2**64,2**65,2**66,2**67,2**68,2**69,
        2**70,2**71,2**72,2**73,2**74,2**75,2**76,2**77,2**78,2**79,
        2**80,2**81,2**82,2**83,2**84,2**85,2**86,2**87,2**88,2**89,
        2**90,2**91,2**92,2**93,2**94,2**95,2**96,2**97,2**98,2**99,
        2**100,2**101,2**102,2**103,2**104,2**105,2**106,2**107,2**108,2**109,
        2**110,2**111,2**112,2**113,2**114,2**115,2**116,2**117,2**118,2**119,
        2**120,2**121,2**122,2**123,2**124,2**125,2**126,2**127,2**128,2**129,
        2**130,2**131,2**132,2**133,2**134,2**135,2**136,2**137,2**138,2**139,
        2**140,2**141,2**142,2**143,2**144,2**145,2**146,2**147,2**148,2**149,
        2**150,2**151,2**152,2**153,2**154,2**155,2**156,2**157,2**158,2**159,
        2**160,2**161,2**162,2**163,2**164,2**165,2**166,2**167,2**168,2**169,
        2**170,2**171,2**172,2**173,2**174,2**175,2**176,2**177,2**178,2**179,
        2**180,2**181,2**182,2**183,2**184,2**185,2**186,2**187,2**188,2**189,
        2**190,2**191,2**192,2**193,2**194,2**195,2**196,2**197,2**198,2**199,
        2**200,2**201,2**202,2**203,2**204,2**205,2**206,2**207,2**208,2**209,
        2**210,2**211,2**212,2**213,2**214,2**215,2**216,2**217,2**218,2**219,
        2**220,2**221,2**222,2**223,2**224,2**225,2**226,2**227,2**228,2**229,
        2**230,2**231,2**232,2**233,2**234,2**235,2**236,2**237,2**238,2**239,
        2**240,2**241,2**242,2**243,2**244,2**245,2**246,2**247,2**248,2**249,
        2**250,2**251,2**252,2**253,2**254,2**255,2**256]

pattern = []
p = 120
puzzle = 1231052970201832551532555186137109517
print(f'Puzzle: {puzzle}')
p = p - 1
act1 = puzzle - pows[p]
print(f'{puzzle} - {pows[p]} = {act1}')
p = p - 1
counter = 0
while p > 0:
    if act1 < pows[p]:
        p = p - 1
        continue
    else:
        counter += 1
        save = act1
        act1 -= pows[p]
        print(f'{counter}: {save} - {pows[p]} = {act1} power=[{p}]')
        pattern.append(p)
        p = p - 1
s = ''
for p in pattern:
    s += 'p' + str(p) + ','
print(s)

the actual code to achieve that i will not share. guess anyone with coding skills can do it from this explanation alone.
it will require good knowledge of combinatorics in order to try it.


Ok maybe I understand.
46 is the average length of the power of 2 sequence? that's right?
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!