Title: C# Public Key von Private Key VERY SLOW Post by: daboehla on August 01, 2015, 05:51:06 PM 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; EDIT: Topic im englischen Bereich: https://bitcointalk.org/index.php?topic=1141038.0 Title: Re: C# Public Key von Private Key VERY SLOW Post by: daboehla on August 01, 2015, 06:32:15 PM 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); Title: Re: C# Public Key von Private Key VERY SLOW Post by: herzmeister on August 07, 2015, 02:21:20 PM 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 Title: Re: C# Public Key von Private Key VERY SLOW Post by: hexafraction on August 20, 2015, 07:39:55 PM 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. |