Bitcoin Forum
May 14, 2024, 03:02:01 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 [2] 3 4 »
21  Bitcoin / Hardware / Re: [Work in progess] Burnins Avalon Chip to mining board service on: September 23, 2013, 01:39:34 PM
To those who are getting "Idled 1 miners"-style messages in cgminer, it might be worth checking if you're hitting the cgminer overtemperature cutoff. I don't know how it is where you live, but where I am, it has been getting warmer. As a result, sometimes my Bitburners would hit the default cutoff of 60 degrees and then stop. The overtemperature cutoff is especially suspect if your miners stop once a day (since ambient temperature has a strong daily fluctuation).

The relevant cgminer option is "--avalon-cutoff" eg. "--avalon-cutoff 65" to raise it to 65 degrees. If ambient temperatures are increasing, I would also overclock a bit less, since higher temperatures seem to correlate with higher HW errors.
22  Bitcoin / Development & Technical Discussion / Re: NSA and ECC on: September 23, 2013, 05:37:32 AM
Quote
I guess we can narrow down our investigation to the G point and the P (since we still don't seem to know what is so great about 1024 aka 2^10).
An explanation on G would be nice to have, yes.  As for p, someone would need to dig into the implementation of optimized reduction algorithms to explain why t being less than 1024 is helpful.  I've implemented a secp256k1 specific reduction algorithm before (link to source), but it's been awhile and I didn't take the time to intuitively understand exactly which Mersenne-like primes make the method work effectively.  Nor do I understand why they chose the smallest p, and not the largest.  Perhaps that particular p allowed a small (a,b) for the curve?  I recall there being better (less code required) Mersenne-like primes to choose.

I'm not sure if this is the optimisation you're after, but section 2.2.6 of http://www.springeronline.com/sgw/cda/pageitems/document/cda_downloaddocument/0,11996,0-0-45-110359-0,00.pdf (from here: http://cacr.uwaterloo.ca/ecc/) describes the property as: the prime must be a sum or difference of powers of 2^32. secp256k1 doesn't have this property exactly, which is why your code has all that shifting in it.
23  Bitcoin / Group buys / Re: [Group Buy#1] Avalon ASICs CHIPS! Using JohnK as escrow! FINISHED! on: September 18, 2013, 09:51:39 AM
Well, it looks like it's finally over. This morning, Avalon did a bunch of refunds. This group buy was one of them: https://blockchain.info/tx/730e45ef0d59847973bb9e80e6e05c014787e5c91b01094647a39d7a5ab76199.

(1JrwWrt3TYUzMYFEBLX5hTo1zFsEY6tWZN is an Avalon-controlled address. 1GxGpQrAS345PvYJaW4YANFiJQuRurLVjL is John (John K.)'s refund address for this group buy, as indicated in https://bitcointalk.org/index.php?topic=141672.msg3111564#msg3111564.)
24  Bitcoin / Hardware / Re: Klondike - 16 chip ASIC Open Source Board - Preliminary on: July 08, 2013, 02:03:13 PM
1000 results:
374/364/175/64/19/1/2/1/0/0
(which is 1007 nonces = close to expected average of 1000)
I'm surprised so many have 0. If only we could test for a "dead" work unit and discard them. Tongue
Then you could increase all hashing performance by a massive 37% (based on that result) Cheesy

... and yet this is something I looked into a long time ago (almost 2 years) early on when I first found out about bitcoin, but never completed my work on it ...
By the looks of those results I should get back to it one day and finish it ... but I doubt I'll bother since it probably won't yield anything Tongue
It started as a program to optimise hashing (and found all the GPU optimisations independently)
Those results look very close the theoretical values for the relevant Poisson distribution (lambda = 1). The first 11 theoretical values are: {367.88, 367.88, 183.94, 61.313, 15.328, 3.0657, 0.51094, 0.072992, 0.009124, 0.001014, 0.000101}. This makes sense, since mining is a Poisson process.

Something I learned: multiple nonces within one work unit occurs about 2/3 as often as a single nonce. So you should be prepared to handle multiple nonces.
25  Alternate cryptocurrencies / Altcoin Discussion / Re: [XPM] [ANN] Primecoin Prerelease Announcement - Introducing Prime Proof-of-Work on: July 03, 2013, 04:53:04 PM
for a POW algorithm to be useful for blockchain verification it must be

 - hard to derive (for transaction verifiers)
 - controllable difficulty (so as more nodes are added, the difficulty can rise)
 - easy to prove (for relaying nodes)

hash algorithms are good here.  An algorithm with primes sounds like it would be based around the factorising problem (e.g. as used in RSA) - but the question is how Sunny has designed it to be variable - perhaps the difficulty is set by the length of required prime in bits, and the POW is two primes and a factor that meet the difficulty.  This would be very very ASICable compared with scrypt, but I don't think any off the shelf ASIC cores would exist (unlike with SHA256)

Interested to see what Sunny has come up with here.

Will

Here is something which might work. It is based on Pratt certificates (see http://en.wikipedia.org/wiki/Pratt_certificate).

Mining process
The miner attempts to find a large prime n which has the following properties:
  • The most significant 256 bits are equal to the merkle root
  • The prime is large enough to meet the difficulty target
The miner can do this by trying random large integers (the least significant bits are the "nonce") and running many iterations of the Miller-Rabin test. With enough Miller-Rabin iterations, the miner can be quite confident that they actually have a prime.

Proof of work
To generate the proof of work, the miner generates a Pratt certificate for their large prime n. Generation of a Pratt certificate is very hard; it requires the factorisation of n - 1, which is requires exponential time in the size of n. Yet it is easy to verify a Pratt certificate; verification is polynomial time in the size of n. For example, factorisation of a 1024 bit integer is about 7 million times as difficult as a 512 bit integer (according to http://en.wikipedia.org/wiki/General_number_field_sieve), yet it is only 16 times as difficult to verify.

This meets the criteria for a useful proof-of-work: hard to generate, easy to verify, adjustable difficulty and incorporates the merkle root.

Mining pools are more complicated to implement, since integer factorisation is not as trivially parallellisable as hashcash. This might explain why the initial client is solo-mine only.

It also has the property of being sensitive to improvements in factorisation algorithms. This makes it somewhat resistant to ASICs, since algorithm improvements may invalidate ASIC designs, so ASIC developers may not wish to take on the risk.

(Edit: linear -> polynomial)
26  Bitcoin / Hardware / Re: Margin price estimation of USB Block Erupter on: June 25, 2013, 06:11:07 PM
Don't know if this helps...

Top Left:
A symbol that resembles Phillips
HC574
BE76439
UuG648G

Top Middle:
A030
T2313A
MUDB
OF2670

Top Right:
SILABS
CP2102
DCLOCW
1311+

Bottom Right:
Z1021A1
ZAOP11


Here's my identification of the parts. The layout seems to match this identification. I've also included a per-unit price estimation, based on 10,000 unit quantities at digikey.

Top left: NXP Semiconductor 74HC574 (octal D-type flip-flop), about 0.12 USD
Top middle: Atmel ATTiny2313 (8 bit microcontroller), about 0.72 USD
Top right: Silicon Laboratories CP2102 (USB to UART interface), about 2.30 USD
Bottom right: Alpha & Omega Semiconductor AOZ1021 (3A synchronous buck regulator), about 0.50 USD
27  Bitcoin / Hardware / Re: How can I clock Avalon to 325 MHz and beyond? on: June 21, 2013, 11:35:19 AM
Question: what should be buf[6] and buf[7] for 325MHz, 350MHz, and 375MHz?

   if (frequency == 256) {
      buf[6] = 0x03;
      buf[7] = 0x08;
   } else if (frequency == 270) {
      buf[6] = 0x73;
      buf[7] = 0x08;
   } else if (frequency == 282) {
      buf[6] = 0xd3;
      buf[7] = 0x08;
   } else if (frequency == 300) {
      buf[6] = 0x63;
      buf[7] = 0x09;
   }

Use these at your own risk!

For 325 MHz: buf[6] = 0x2b and buf[7] = 0x0a
For 350 MHz: buf[6] = 0xf3 and buf[7] = 0x0a
For 375 MHz: buf[6] = 0xbb and buf[7] = 0x0b
The meaning of these values is documented on page 6 of the Avalon ASIC (A3256-Q48) datasheet.
28  Bitcoin / Hardware / Re: BFL BitForce SC Firmware source code on: June 18, 2013, 02:09:56 AM
What do you think could be added to the block header?

Could you also explain what the effect of the chips being less-than-optimal.
I personally don't think anything will be added to the block header within 5 years, since that would have the effect of making lots of existing ASICs useless. Also, if anyone wants to "add" some extra data to a block, they can already do this (in a way that's compatible with all existing miners) by using the coinbase.

What I mean by less-than-optimal is that since the SHA-256 constants are not hardcoded, some logic can't be optimised out at compile time. Within an ASIC, this would manifest as increased die area or power consumption. But I have no experience with ASIC design, so for all my ignorance it could be an insignificant 0.0001% increase or an embarassing 10% increase.
29  Bitcoin / Hardware / Re: BFL BitForce SC Firmware source code on: June 17, 2013, 12:41:22 PM
From reading the firmware source and looking at the released datasheet, the BFL chips interestingly do not have certain SHA-256 constants hardwired. The firmware is responsible for setting the SHA-256 initial hash value for the first hash, as well as the padding and length of both the first and second hashes.

What this means is that (for example) if an extra field were to be appended to the block header, the BFL chips could handle this change (via. a firmware upgrade), but the Avalon chips couldn't. This also means that the BFL chips are slightly less-than-optimal (I have no idea how much less than optimal), since some extra gates will be required to handle the possibility that those "constants" can change.
30  Bitcoin / Hardware wallets / Re: Lets talk hardware wallets... on: June 17, 2013, 12:19:07 PM
I like Trezor and I will most likely be ordering a few.

Hardware wallets are needed in order for Bitcoin to get to the next level. Getting the average user to secure their computing environment against malware is a next to impossible task, and hardware wallets circumvent this issue.

I suspect we'll be seeing more projects of similar nature materialize in the coming months.
allten and I have been working on the Bitsafe, another hardware wallet. Its development history actually extends goes back further than Trezor's. There are assembled open-source development boards available (see https://bitcointalk.org/index.php?topic=152517.0;all), as well as prototype open-source firmware (see https://bitcointalk.org/index.php?topic=78614.0).

The Bitsafe project was picked up by Butterfly Labs, who are helping us bring it to market later this year. They have (understandably) decided to not do the preorder thing.

Does anyone know if Armory would be supporting this? I hope armory would support this so then I don't need a whole offline computer just for signing transactions.
I spoke to etotheipi at Bitcoin 2013 and he was very enthusiastic about hardware wallets. He felt that they complemented Armory well. Anyway, I think Armory is well-positioned to support hardware wallets, after all, a hardware wallet is basically an offline signing wallet.
31  Bitcoin / Hardware / Re: Klondike - 16 chip ASIC Open Source Board - Preliminary on: May 03, 2013, 01:45:44 PM
Generally start with one say, 0.1uF capacitance, and if it doesn't work, try changing the value lower or higher (depending on the frequency you need decoupling at) - once that is ideal, the best thing to do is add more of the exact same value capacitor in parallel.  this increases the capacitance but also DECREASES the paraistic inductance, so it gets BETTER and has more decoupling capacitance.

note : People used to add say, 0.1uF, 10nF, 100pF caps in parallel because in theory this would give a wide range of decoupling

the problem is it produces anti-resonance where the coupling gets worse.  it's a very, very tricky thing to try and fine tune, and should be avoided in 95% of cases.

my suggestion - put pads for lots of 0603 0.1uF capacitances, but only populate the reference PCB amount.  if you need more or have to tweak, the pads are right there for it.  It's standard practice to have pads for parts you don't actually populate going into production.
Thankyou for this. My experience has been exclusively with low-frequency stuff.

I think you could easily adjust the core voltage with some sort of programmable resistor on the buck reg. Not sure if such a thing is readily available but it should be. You could probably use a few FETs shorting out a binary series of resistor values to adjust the voltage divider.

eDiT: Oh geez, here you go...

http://ww1.microchip.com/downloads/en/DeviceDoc/22107a.pdf
(Now that I think about it you could probably use an analog output from the PIC as control voltage on the regulator but that would take some digging into to figure out)
According to the IR3895 datasheet, if Vref is grounded, then the output voltage can be adjusted by changing the voltage on the Vp pin. So you can easily add the capability to adjust the ASICs' core voltage.
32  Bitcoin / Hardware / Re: Klondike - 16 chip ASIC Open Source Board - Preliminary on: May 02, 2013, 05:36:17 PM
Smaller is harder but I'm not sure it matters. One of those magnifying circular light dealies is recommended. Parts count is the killer. I just finished the prelim parts list and pushed it to github. There's 320 parts on that 10x10cm board. Ouch!

(Someone please send me a Pick n Place machine)
70% of those parts are decoupling caps for the ASICs. Is it really necessary to have 14 per ASIC? As a back-of-the-envelope calculation, I get about 5 nC of charge per clock cycle (based on 1.5 A @ 282 MHz). With 0.8 uF of lumped capacitance, neglecting ESR/ESL, that's about a 7 mV drop, which is small. Maybe you can get away with less? Maybe you can use larger capacitance values but fewer caps overall?

I suppose the only way to know is to do some in-circuit testing on actual ASICs.
33  Bitcoin / Hardware / Re: Klondike - 16 chip ASIC Open Source Board - Preliminary on: April 30, 2013, 10:09:54 AM
Quote from: BkkCoins
I looked on heatsinkusa and could only see a $12.35 option for 4" wide cut to 4" length. I guess I didn't find the right one. Can you give me a link to the $5 one? I'd like to see and if it's right then I'll just tell people they could order those, though I think even cheaper options could turn up.

I see they have a 4" wide option with 2" high fins for $12. Maybe that is large if we want to stack them close together.

They also have 3.5 and 4.2" inch sizes with .75" high fins for about $4 and $5 respectively. If 3.5x4" is big enough, $4.36 is pretty cheap.

Those 2" high heatsinks are quite beefy. The site claims a thermal resistance of 1.4 degrees C/watt for a 3"x4" section (presumably with natural convection). With such a thermal resistance, it looks like you can dissippate the heat of 16 chips with a slow/quiet fan, or perhaps no fan at all.
34  Bitcoin / Hardware / Re: DIY PCB with AVALON - [OP Makeover - Forming List of Developers] on: April 30, 2013, 09:58:23 AM
OK, I have a preliminary Schematic for engineering discussion.
https://www.dropbox.com/s/9c51uivncr5hhnp/DIY_AVALON_Rough_Draft1.sch.pdf

https://www.dropbox.com/s/ypqbam0uxwtcav9/BOM_Rough_Draft1.xls

Please take the engineering with a grain of salt. I would love to have some EE's look it over and
offer suggestions for improvement. I'm still having difficulty solving the math to yield values for
the following components:
C2?
C3?
R4?
C6?
c7?
L2?

Any help would be appreciated.

thanks,
     Allten
I'll join others here in saying that it's going to be much more cost effective to use a switching regulator with integrated MOSFETs. The NCP3170 looks appropriate.

As for C6, C7 and L2, these appear to form a low-pass LC filter. The corner frequency of such a filter is 1 / (2 * pi * sqrt(L * C)), and the filter is second-order. So for example, if L = 100 nH and C = 44 uF, the corner frequency is 75 kHz. This means the 642 kHz input ripple current is reduced by a factor of (642 / 75)^2 which is about 70. How low do you want the input ripple current to be?
35  Bitcoin / Group buys / Re: [Group Buy#1] Avalon ASICs CHIPS! Using JohnK as escrow! FINISHED! on: April 28, 2013, 11:28:46 AM
Shipping info sent.
36  Bitcoin / Group buys / Re: [Group Buy] Avalon ASICs CHIPS! Using JohnK as Escrow! Send coins to confirm! on: April 26, 2013, 07:15:08 AM
I'm in for 500 chips. I paid 40.01 BTC (TX ID: d5ac6ffd20f4ad6ecc4ae1975dafdd8e31fe4179ecf264a502509379171ecb5a).

I may throw in another 20 BTC if I can get the funds in time.
37  Bitcoin / Hardware / Re: DIY PCB with AVALON - [OP Makeover - Forming List of Developers] on: April 25, 2013, 01:44:58 PM
Need Help: Can anyone find the specification for the maximum current slew rate on
the USB power signal? I've been looking, but no luck.

Thanks.
This is not quite what you're looking for, but: the USB 2.0 specification, section 7.2.4.1, states that the capacitive load presented by the device must not exceed 10 uF. I interpret this to mean that the current slew rate can be as high as you want (limited only by the inductance of the USB cable), as long as your current surges are in 10 uF gulps.
38  Bitcoin / Hardware / Re: DIY PCB with AVALON - [OP Makeover - Forming List of Developers] on: April 24, 2013, 01:04:46 PM
Here are the register values:

256 MHz: 0x03 0x08
270 MHz: 0x73 0x08
282 MHz: 0xd3 0x08
300 Mhz: 0x63 0x09

edit: A bit of pondering over the numbers...

Second byte is multiplier 0x08 * 32 = 256
First byte, low bits 3 is constant so probably sets something up, mode or ?.
The first byte, high bits are half of the offset added to the second byte. Not sure how that works but it does.
Here's another interpretation: each of those 2 byte register values can be interpreted as a little-endian integer, with bits 4 - 11 giving the core clock rate in 2 MHz increments. I would hypothesise that the 32 MHz clock is being pre-divided by 16, then multiplied by the factor given in this register. If that's true, it should be possible to tweak the clock rate in 2 MHz increments. If any of these DIY boards have a programmable power supply, then it could be just like the GPU days, with people tweaking their boards to get that extra few percent.

(As for why the clock isn't just 2 MHz to begin with, perhaps the 32 MHz is also used as a serial clock.)

Yes, when a target hash is found it outputs a serial stream. But remember there are 10 chips on each sub-module board. I believe the work is streamed in serially thru all 10 chips. I say this because that's how the driver outputs the work - as a long stream where each portion is a range of work for each chip. But when a result occurs it has to collect/monitor from all 10 chips. I would guess that a wire'OR type return path could be used as long as a collision doesn't occur, or can be detected. Otherwise you have 10 output lines coming back and each needs to polled for detecting data. I'm speculating here.

The probability of two (or more) ASICs in a set of 10 hitting a valid nonce at the same time is about 2e-18. You could OR together all 10 outputs, ignore collisions, and get away with it (you'll lose a negligible portion of valid results).
39  Bitcoin / Hardware wallets / Re: Hardware Bitcoin wallet - a minimal Bitcoin wallet for embedded devices on: April 13, 2013, 03:47:53 PM
Here's an update:

In October 2012, allten contacted me. He had designed some hardware but needed some firmware, while I had some firmware but only a hardware prototype. So we combined our efforts. He sent me a special development version of the BitSafe:




I spent some time porting the firmware to the BitSafe. I think the BitSafe will be the "home" of the hardware-bitcoin-wallet firmware, though much of that codebase is and will remain platform-independent. If you want to get your hands on some actual hardware, see https://bitcointalk.org/index.php?topic=152517.0.

The images above make the BitSafe look misleadingly large. This one gives a better sense of scale:


My immediate goals for the firmware have concentrated on integration with other parts of the Bitcoin infrastructure.
  • The deterministic wallet implementation now uses the (proposed) BIP 0032 specification. This should allow wallets to be imported/exported across other BIP 0032-compatible Bitcoin clients.
  • The wire protocol is being changed to make it more similar to that of slush/stick's Trezor. This should make it easier for Bitcoin clients to support hardware wallets in general.
  • I began working on a P2SH (multisignature) address generator, to facilitate secure multisignature reception of funds. However, I've put that on hold to focus on more basic use cases.

Finally, since the last update, a difficult but significant goal has appeared. Gavin Andresen proposed a secure payment protocol (see https://gist.github.com/gavinandresen/4120476) which makes address rewrite attacks much more difficult. The problem with asking "Send 0.0461 BTC to 1QLbz7JHiBTspS962RLKV8GndWFwi5j6Qr?" is that an attacker could covertly rewrite this address and it is difficult for a user to determine whether a given address is genuine or not. With the proposed payment protocol, the prompt would be something like "Send 0.0461 BTC to mtgox.com?", where the name is validated using some sort of certificate chain.

Such a solution has been alluded to in this thread (see https://bitcointalk.org/index.php?topic=78614.msg880376#msg880376) and elsewhere, but Gavin Andresen's proposal looks likely to become "the standard". So I would like to implement it.
40  Bitcoin / Bitcoin Discussion / Re: [ANN] BitSafe Hardware Wallet Now Shipping on: March 15, 2013, 03:56:55 AM
I'm currently building an open source POS for Bitcoin merchants.

Do you have any documentation on the API?

If possible I would like to integrate with my POS so that a customer comes in to pay via BTC, I raise the transaction at POS and present a USB port to the customer to plugin and approve the transaction.
This is a wonderful idea. I've wanted something like this for a long time.

Does the device store transaction data, or does it just look at transactions given to it by the PC to determine how many bitcoins the transaction is sending?
The device doesn't store blocks, block headers, or any transaction data. This makes it somewhat difficult to use in a POS situation. It's still possible: there is a "get master public key" command which allows the POS terminal to derive every address in a wallet. From there, the POS terminal can scan the blockchain and build a transaction. This is a lot of legwork for the POS terminal. Another disadvantage is that the user sacrifices privacy, since the POS terminal knows every address in the wallet.

A description of the wire protocol can be found at https://github.com/someone42/hardware-bitcoin-wallet/blob/master/PROTOCOL. I'm trying to make it like the one described here: https://bitcointalk.org/index.php?topic=125383.0.

This looks awesome!

One question:
Is it possible to make a paper backup of your wallet AND encrypt it?  Do you just make the paper backup while the wallet is not encrypted, or can you make the paper backup of the encrypted wallet and decrypt it once it has been digitized again?
You would need to have the correct encryption key in order to initiate a backup, but once you do, the paper backup can be encrypted or unencrypted. Encrypted paper backups can buy you time if the paper is compromised, whereas unencrypted paper backups protect you against you forgetting the wallet passphrase Smiley.
Pages: « 1 [2] 3 4 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!