Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 4 Jul 2013 18:45:39 +0100
From: Rafael Waldo Delgado Doblas <lord.rafa@...il.com>
To: john-dev@...ts.openwall.com
Subject: Re: Parallella: scrypt

Alexander -

Thank you for your help.

> I will focus on Litecoin integration,

>> OK.  I suggest that you spend half a day to play with Litecoin mining as
>> a user first - register with a pool, run some miners.

I will do that.

> I would like confirm this:
> Cgminer divides the work between the different host connected to the
mining
> pool,

>> I think it receives portions of work - so the pool (and not the miner)
>> divides the work.

WOPS sorry it's true, I just meant that in order to integrate Cgminer with
JtR the work would come from Cgminer, but as I have seen below this will
not the way.

> then it will send keys to be hashed with scrypt and the hash would be
> compared with the one that we want to break (normal brute-force attack).

>> No, there's no "hash that we want to break".  Instead, we're trying to
>> find such preimage (input to the hash function) that our hash value
>> would be lower than (or equal to, but that's unlikely) the current
target:
>> https://en.bitcoin.it/wiki/Target
>> Once the correct key has been found,
>> There's no one correct key, and there are many possible preimages that
>> would result in sufficiently low hash values.  However, yes, any new
>> success at generating a low enough hash value means that a block is
found.

Thank you, now I understand a little bit better this point.

> We are going to use JtR to hash the keys that has been sent to us, compare
> the hash with the ciphertext that we want to break and return if is valid
> or not.

>> No!
>> Cryptocurrency mining is quite different from how JtR works normally, so
>> there's no intent to use any JtR code for the mining addition to it.
>> You simply take portions of cgminer code and have them invoked when JtR
>> would otherwise terminate.  (We'll need to revise the exact condition of
>> when to do this or to skip it later.)

> Then in order to integrate Cgminer with JtR, I need to remove from
Cgminer:
> scrypt, sha256, fpga,gpu support and any other hash function (since we'll
> hash from JtR) and only keep Cgminner's pooling functions.

>> No, that's not right.  You need to keep cgminer's optimized and
>> specialized scrypt code (it's deeply integrated with Litecoin mining -
>> there's no scrypt on its own) for CPU and GPU.  You may probably drop
>> the rest of cgminer's crypto, as well as its "drivers" for devices other
>> than CPU and GPU, and its support for cryptocurrencies other than
>> Litecoin.

>> The rest of cgminer we might need to keep.  The integration will be in
>> invoking it at the right time and with parameters taken from the right
>> place (perhaps from john.conf?)  Also, when JtR was using a GPU for
>> password cracking, it's the exact same GPU that should be used for that
>> JtR invocation's Litecoin mining when the cracking has completed.
>> One thing I'm not sure of is cgminer's ncurses interface.  We currently
>> have no dependency on ncurses in JtR, so maybe we should exclude that in
>> order to avoid bringing in an extra library dependency.

Ok, then the cgminer integration with JtR, Is it just call from JtR to
cgminer?

I don't get what do you mean here: "Also, when JtR was using a GPU for
password cracking, it's the exact same GPU that should be used for that JtR
invocation's Litecoin mining when the cracking has completed."

> Also Cgminer can work in solo mode
>> Do you mean without a pool?
> but I suppose that this not that much interesting
>> Yes.

Yes I read about it but is not useful any more.

> and in anyway for JtR communication only changes the key set
> that we are going to hash.

>> There's no JtR communication.

When I said communication I meant, the communication between JtR code with
Cgminer code because I thought that we will use JtR to calcule the hashes.

> Cgminer also suports bitcoin then also bcrypt will be needed to a full
> Cgminer but since Katja still working on it I will comment any bitcoin
> reference for now.

>> Bitcoin has nothing to do with bcrypt.
>> I'll leave it up to you whether to keep cgminer's Bitcoin mining code in
>> the tree integrated into JtR.  On one hand, this is a more popular
>> cryptocurrency and more people may be interested in the capability right
>> now, but on the other Bitcoin mining will almost entirely move to ASICs
>> soon(er), where GPUs won't be able to compete (and CPUs already can't).
>> Thus, Litecoin mining on GPUs may have a slightly longer useful lifetime
>> (maybe a couple of years, vs. Bitcoin's a few months remaining - just a
>> guess).

WOPS. sorry I mistook bcrypt with SHA-256 forget about I said.

Alexander


2013/7/4 Solar Designer <solar@...nwall.com>

> Rafael -
>
> I'm afraid that you're almost totally confused about this mining stuff.
> You need to read something on it.  I am not very familiar with it too,
> but I am not quite as ignorant about it. ;-)
>
> Question to folks in here who are more familiar with cryptocurrency
> mining - what would be good resources for Rafael to quickly familiarize
> himself with Bitcoin and Litecoin?  Maybe some pages on the wiki at
> https://en.bitcoin.it/wiki/Main_Page ?  This includes pages on the
> protocol, etc.
>
> I will comment on Rafael's confusion below, but I'd appreciate it if
> someone more familiar with this reviews my comments and corrects me if
> I'm wrong about anything.
>
> On Thu, Jul 04, 2013 at 04:38:46PM +0100, Rafael Waldo Delgado Doblas
> wrote:
> > I will focus on Litecoin integration,
>
> OK.  I suggest that you spend half a day to play with Litecoin mining as
> a user first - register with a pool, run some miners.
>
> > I would like confirm this:
> >
> > Cgminer divides the work between the different host connected to the
> mining
> > pool,
>
> I think it receives portions of work - so the pool (and not the miner)
> divides the work.
>
> > then it will send keys to be hashed with scrypt and the hash would be
> > compared with the one that we want to break (normal brute-force attack).
>
> No, there's no "hash that we want to break".  Instead, we're trying to
> find such preimage (input to the hash function) that our hash value
> would be lower than (or equal to, but that's unlikely) the current target:
>
> https://en.bitcoin.it/wiki/Target
>
> > Once the correct key has been found,
>
> There's no one correct key, and there are many possible preimages that
> would result in sufficiently low hash values.  However, yes, any new
> success at generating a low enough hash value means that a block is found.
>
> > it will be shared with the pool in
> > order to generate the Litecoins that would be shared between the all
> hosts.
>
> Yes.  So miners are paid even when they're unsuccessful at generating
> any blocks (as long as some other miners in the same pool are occasionally
> successful).  Miners also share some proof-of-work even when they're
> unsuccessful at achieving a low enough hash value to generate a block.
> They need to do this in order for the pool to credit them for trying -
> but I am not familiar with this at all.
>
> > We are going to use JtR to hash the keys that has been sent to us,
> compare
> > the hash with the ciphertext that we want to break and return if is valid
> > or not.
>
> No!
>
> Cryptocurrency mining is quite different from how JtR works normally, so
> there's no intent to use any JtR code for the mining addition to it.
>
> You simply take portions of cgminer code and have them invoked when JtR
> would otherwise terminate.  (We'll need to revise the exact condition of
> when to do this or to skip it later.)
>
> > Also Cgminer can work in solo mode
>
> Do you mean without a pool?
>
> > but I suppose that this not that much interesting
>
> Yes.
>
> > and in anyway for JtR communication only changes the key set
> > that we are going to hash.
>
> There's no JtR communication.
>
> > Then in order to integrate Cgminer with JtR, I need to remove from
> Cgminer:
> > scrypt, sha256, fpga,gpu support and any other hash function (since we'll
> > hash from JtR) and only keep Cgminner's pooling functions.
>
> No, that's not right.  You need to keep cgminer's optimized and
> specialized scrypt code (it's deeply integrated with Litecoin mining -
> there's no scrypt on its own) for CPU and GPU.  You may probably drop
> the rest of cgminer's crypto, as well as its "drivers" for devices other
> than CPU and GPU, and its support for cryptocurrencies other than
> Litecoin.
>
> The rest of cgminer we might need to keep.  The integration will be in
> invoking it at the right time and with parameters taken from the right
> place (perhaps from john.conf?)  Also, when JtR was using a GPU for
> password cracking, it's the exact same GPU that should be used for that
> JtR invocation's Litecoin mining when the cracking has completed.
>
> One thing I'm not sure of is cgminer's ncurses interface.  We currently
> have no dependency on ncurses in JtR, so maybe we should exclude that in
> order to avoid bringing in an extra library dependency.
>
> > Then it doesn't matter if Cgminer supports CPU mining or not because this
> > work will be accomplish by JtR core since we will only use Cgminer to
> > connect with the rest of the Litecoin network.
>
> Wrong.
>
> > Cgminer also suports bitcoin then also bcrypt will be needed to a full
> > Cgminer but since Katja still working on it I will comment any bitcoin
> > reference for now.
>
> Bitcoin has nothing to do with bcrypt.
>
> I'll leave it up to you whether to keep cgminer's Bitcoin mining code in
> the tree integrated into JtR.  On one hand, this is a more popular
> cryptocurrency and more people may be interested in the capability right
> now, but on the other Bitcoin mining will almost entirely move to ASICs
> soon(er), where GPUs won't be able to compete (and CPUs already can't).
> Thus, Litecoin mining on GPUs may have a slightly longer useful lifetime
> (maybe a couple of years, vs. Bitcoin's a few months remaining - just a
> guess).
>
> Alexander
>

Content of type "text/html" skipped

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.