Bitcoin Forum
October 23, 2017, 08:36:08 AM *
News: Latest stable version of Bitcoin Core: 0.15.0.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: C# Public Key von Private Key VERY SLOW  (Read 797 times)
daboehla
Sr. Member
****
Online Online

Activity: 397


EthTeam.com


View Profile WWW
August 01, 2015, 05:51:06 PM
 #1

Hallo zusammen,

ich versuche derzeit aus einem private key den dazugehörigen public key zu errechnen.
z.b.: priv. key: 26760d07c7b06da3ac7d27946b4853e0665c50e0a8b705269b2cfd48f061de2b  -> 1A9yKFpmH1GFFeLLv2XGhP41BKCFgRgykN
Dazu habe ich mir den Sourcecode von Bitcoin Address Utility (https://en.bitcoin.it/wiki/Bitcoin_Address_Utility) heruntergeladen.

Hab im Sourcecode die Stelle gefunden, an welcher der Public Key in die Textbox geschrieben wird und zum Test mal 100 Mal durchlaufen lassen.

Nun ist mein Problem, dass es SEHR lange dauert... 100 mal generieren -> 10s -> ca 10 Keys/s
Jemand eine Idee warum das so lange dauert ?

Wenn ich mir vanitygen anschaue, die erstellt ja ca 1 Million pro Sekunde.

Gib es eine schnellere Möglichkeit den public key mit C# zum rechnen ?

Hier mein Testcode:
Code:
               DateTime start = DateTime.Now;
                for (int i = 0; i < 100; i++) {
                    KeyPair kp = new KeyPair(txtPrivHex.Text, compressed: compressToolStripMenuItem.Checked);
                    string pubkey = kp.AddressBase58;
                }
                double elapsedsecs = (DateTime.Now - start).TotalSeconds;

EDIT: Topic im englischen Bereich:
https://bitcointalk.org/index.php?topic=1141038.0

Ethereum Classic Mining Pool - Cheapest PPS - 1% - Ethteam.com - Stratum: etc-de.ethteam.com:8008 / etc-us.ethteam.com:8008
1508747768
Hero Member
*
Offline Offline

Posts: 1508747768

View Profile Personal Message (Offline)

Ignore
1508747768
Reply with quote  #2

1508747768
Report to moderator
1508747768
Hero Member
*
Offline Offline

Posts: 1508747768

View Profile Personal Message (Offline)

Ignore
1508747768
Reply with quote  #2

1508747768
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1508747768
Hero Member
*
Offline Offline

Posts: 1508747768

View Profile Personal Message (Offline)

Ignore
1508747768
Reply with quote  #2

1508747768
Report to moderator
1508747768
Hero Member
*
Offline Offline

Posts: 1508747768

View Profile Personal Message (Offline)

Ignore
1508747768
Reply with quote  #2

1508747768
Report to moderator
1508747768
Hero Member
*
Offline Offline

Posts: 1508747768

View Profile Personal Message (Offline)

Ignore
1508747768
Reply with quote  #2

1508747768
Report to moderator
daboehla
Sr. Member
****
Online Online

Activity: 397


EthTeam.com


View Profile WWW
August 01, 2015, 06:32:15 PM
 #2

Hab den Code nochmals genau untersucht und die Operation gefunden, die so lange braucht.

Ist die Umrechnung vom Private Key zum Public Key mit den "komischen" Elliptic Curves....
Kann es sein das die Library(Org.BouncyCastle) so langsam ist ? :/

Soweit ich das System von Bitcoin verstanden habe, gibt es keinen Ausweg aus dieser Operation ...?

Folgender Code braucht 100ms:

Code:
            Org.BouncyCastle.Math.BigInteger Db = new Org.BouncyCastle.Math.BigInteger(1, _privKey);
            ECPoint dd = point.Multiply(Db);

Ethereum Classic Mining Pool - Cheapest PPS - 1% - Ethteam.com - Stratum: etc-de.ethteam.com:8008 / etc-us.ethteam.com:8008
herzmeister
Legendary
*
Offline Offline

Activity: 1764



View Profile WWW
August 07, 2015, 02:21:20 PM
 #3

gibt ja inzwischen auch eine offizielle BigInteger-Implementierung von MS, vielleicht ist die performanter https://msdn.microsoft.com/en-us/library/system.numerics.biginteger(v=vs.110).aspx

aber is sicher nich ohne, diese Dependency in der verwendeten Library zu ändern

https://localbitcoins.com/?ch=80k | BTC: 1LJvmd1iLi199eY7EVKtNQRW3LqZi8ZmmB
hexafraction
Sr. Member
****
Offline Offline

Activity: 378

Tips welcomed: 1CF4GhXX1RhCaGzWztgE1YZZUcSpoqTbsJ


View Profile
August 20, 2015, 07:39:55 PM
 #4

Das Algorithmus von vanitygen ist im Unterschied zu Ihren Algorithmus. Vanitygen macht "point-addition", aber man musst fur Private zum Public "point multiplication" machen. Point-addition ist schneller als Point multiplication, aber point addition kann nur eine Suche von alles private keys machen (Zu secret exponent wird immer wieder inkrementiert).

Entschuldigung, leider ist mein Deutsch schrecklich.

I have recently become active again after a long period of inactivity. Cryptographic proof that my account has not been compromised is available.
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!