Why I Don't Recommend Scrypt (2024)

Why I Don't Recommend Scrypt

Security

Table Of Contents

  1. 1. Scrypt Design Criteria
  2. 2. Scrypt Is Not Perfect
  3. 3. SCrypt, Decomposed
  4. 4. The First Limitation, Loop Unrolling
  5. 5. Tune-able Reduced Memory Usages
  6. 6. Further Proof
  7. 7. Putting It In Perspective
  8. 8. So Scrypt Is Still Secure
  9. 9. But Bcrypt Isn’t Perfect!

As many of you likely know, I have a “thing” for password storage. I don’t know what it is about it, but it fascinates me. So I try to keep up as best as I can on the latest trends. In the past few years, we’ve seen the rise of a new algorithm called scrypt (it’s 5 years old actually). It’s gaining more and more adoption. But I don’t recommend its use in production systems for password storage. Let me explain why:

Scrypt Design Criteria

Scrypt was not designed for password storage. It was designed as a key derivation function for generating keys from weak material (namely passwords). The prime type of attack that scrypt is designed to defeat is ASIC based attackers. It is not designed to try to favor CPU over GPU (and thereby defeat GPU based attacks). It is this fact that we can leverage to gain an advantage when used as a password hashing mechanism.

Scrypt Is Not Perfect

Before I go on to detail some algorithm decisions that were designed in scrypt, let me make one thing clear. NONE of these limitations are fatal. Everything I’m going to describe does have practical implications, and reduces the overall strength of scrypt with respect to password hashing. But it’s still practically secure compared to other algorithms (namely bcrypt and pbkdf2+sha256).

However, with that said, new issues could theoretically be found as researchers spend time using it. And considering the rise of scrypt-based crypto-currencies (namely Litecoin, Dogecoin and YACoin), there is real and significant money at stake. But enough meta talk, let’s actually talk about the algorithm and stop hand-waving.

SCrypt, Decomposed

There are 4 input variables to scrypt:

  1. int N - A factor to control the overall CPU/Memory cost
  2. int r - A factor to control the blocksize for each mixing loop (memory usage)
  3. int p - A factor to control the number of independent mixing loops (parallelism)
  4. int dkLen - The result hash.
    Scrypt is basically composed of a chain of 4 operations (with Java-style pseudo-code)

  5. PBKDF2+SHA256 expansion

    The input is expanded from the raw password and salt to a value that’s 128 * p * r bytes long.

    byte[] blocks = new byte[128 * r * p];// Expand the password and salt to the full buffer length using a single iterationblocks = pbkdf2_sha256.hash(password, salt, 1, 128 * r * p);
  6. Block Mixing

    The block array is then mixed (in block sizes of 128 \* r bytes).

    for (int i = 0; i < p; i++) { blocks[128 * r * i : 128 * r] = roMix(r, blocks[128 * r * i : 128 * r], N);}

    Note that this can be parallelized, since each iteration works on a separate chunk of data (they can be done in separate threads for example).

    The mixing algorithm:

    byte[128 * r] roMix(int r, byte[128 * r] block, int n) { byte[] X = block; byte[] V = new byte[128 * r * N]; // Create array for (int i = 0; i < N; i++) { V[i] = X; X = blockMix(X); } for (int i = 0; i < N; i++) { int j = integerify(X) mod N; X = blockMix(X XOR V[j]); } return X;}

    The blockmix function is pretty simple, just an implementation of the Salsa20/8 algorithm in a loop (not worth typing out).

    The Integerify function simply interprets the argument as a little-endian integer (converts a byte array into an integer value)

  7. PBKDF2+SHA256 compression

    The block array is used as the salt in a single iteration of PBKDF2+SHA256 to compress the password again

    byte[] derivedKey = new byte[dkLen];derivedKey = pbkdf2_sha256.hash(password, blocks, 1, dkLen);

The First Limitation, Loop Unrolling

So, one of the benefits of scrypt is that it uses a lot of memory to compute a hash. This means that, when used with appropriate settings, it should be extremely hard to parallelize scrypt. The reason for this is that existing commodity hardware (CPU and GPUs) are typically more memory constrained than they are computation constrained. So while a GPU can compute a small amount of memory in extreme parallel (upwards of 7,000 concurrent calculations), the added memory constraints of scrypt basically make ASIC attacks impractical (and, by chance, GPU attacks). Or at least that’s the theory.

In practice, there’s a feature of the algorithm that let’s us defeat this. Basically, the main body of memory is in a single array. This array is computed in the “memory expansion” phase. Then, the block mixing phase uses that array to modify another, much smaller value. That smaller value is then used to compute the final result.

What that means for us, is that we can avoid pre-computing that original large array entirely. Since the array is deterministically created, we can simply “unroll” the operations that created a particular array element locally every time we need to access that memory segment.

So, we can modify the mixing function above to the following:

byte[128 * r] roMix(int r, byte[128 * r] block, int n) { byte[] X = block; // Create array for (int i = 0; i < N; i++) { X = blockMix(X) } for (int i = 0; i < N; i++) { int j = integerify(X) mod N; byte[] V = block; for (int k = 0; k < j; k++) { V = blockMix(V); } X = blockMix(X XOR V); } return X;}

Let’s check out an example using numbers. Using the recommended interactive parameters of:

int N = 16384; // 2^14int r = 8;int p = 1;

Using those values, we can compute the total amount of memory required as 128 \* r \* N + 128 \* r \* p, which in this case be approximately 16mb.

Using the attack described above, we could reduce that total amount to a little bit over 128 \* r \* p, which would be in this case 1kb.

So we reduced the memory usage by 5 orders of magnitude…

But we also increased the amount of CPU work. Using those same settings, we increased the amount of work by a factor of 8192 (on average, so N/2).

One of the prime advantages of scrypt is that it is memory-hard. This term is a little bit misleading, so let’s dig on that for a second. Memory-hard, as termed by scrypt, is basically the principle that the algorithm is difficult to a constant time-memory trade-off factor. So while we may be able to change the amount of memory that scrypt uses, if we reduce it we must do significantly more work to compensate.

And as it turns out, that is true. When we do the math on the above attack, it turns out that it would take several thousand times the work to create the hash. So practically, we’re no better off. Well, we are better off as we can now attack on both memory constrained and memory unconstrained systems.

I was the first person to identify and disclose this issue publicly on this thread.

Tune-able Reduced Memory Usages

The above loop traded off the entire large array for re-computation. We can actually take it a step futher tune the above attack to use the exact amount of memory we want. We can do this by storing only a portion of the values. If we want to half the memory usage, we’d store every other value, and then when requesting a value that’s not there, re-compute it. For example:

byte[128 * r] roMixHalf(int r, byte[128 * r] block, int n) { byte[] X = block; byte[] V = new byte[128 * r * N / 2]; // Create array for (int i = 0; i < N; i++) { V[i] = X; X = blockMix(X); X = blockMix(X); // since we skip by 2 } for (int i = 0; i < N; i++) { int j = integerify(X) mod N; byte[] T = V[Math.floor(j / 2)]; if (j % 2 == 1) { T = blockMix(T); } X = blockMix(X XOR T); } return X;}

Using this method, you can reduce the memory by any integer factor you choose (powers of 2 are going to be easier). This allows you to tune to the system you’re building or working with (less memory, more CPU).

Further Proof

YACoin is a scrypt-based crypto currency. Using it as a base for real-world testing of mining, we can see that at its current settings (N=2^15, r=1, p=1), CPU is as fast as GPU. Note that those settings result in it using 4mb of RAM.

It’s worth noting that those mining numbers are approximately the same as with bcrypt. Which indicates that scrypt at those settings is approximately as difficult to attack as bcrypt. Further Reading.

Putting It In Perspective

To put it in perspective, scrypt requires approximately 1000 times the memory of bcrypt to achieve a comparable level of defense against GPU based attacks (again, for password storage). On one hand, that’s still fine, as bcrypt uses 4kb, which means the equivalent effective scrypt protection occurs at 4mb. And considering the recommended settings are in the 16mb range, that should be clear that scrypt is definitively stronger than bcrypt.

This proves that scrypt is demonstrably weaker than bcrypt for password storage when using memory settings under 4mb. This is why the recommendations are 16mb or higher. If you’re using 16+mb of memory in scrypt (p=1, r=8 and N=2^14, or p=1, r=1 and N=17), you are fine.

So Scrypt Is Still Secure

As I indicated before, scrypt is still very much secure. The point that I want to make clear is that it was not explicitly designed for password storage, and it wasn’t designed to mitigate the risks of GPU based attacks. Couple that with often-weak settings and you can wind up in a situation where you’re significantly weaker than today.

And that’s why I don’t recommend it for password storage. Bcrypt is well understood, supported and tested.

I want to make one thing clear, as a Key Derivation Function, it is still very much useful and secure. It’s only when used for password storage that I’m talking about.

But Bcrypt Isn’t Perfect!

Absolutely not! Bcrypt definitely has issues. One of the most glaring ones is the 72 character password limit. That’s definitely an issue (although not a fatal one). On the other hand, as far as I’ve seen there’s been no successful research into defeating bcrypt aside from pure computer horsepower (brute forcing).

The answer is, in my opinion, to stick with bcrypt for now. Encrypt the output using a strong cipher (AES-128-CBC) with a key rotation policy if you have high value passwords.

Cryptographers are currently designing new algorithms specifically for password storage. They are still very early into the process, but there’s already been some promising research happening. It’ll take a number of years before it completes, but it’s progress. Check out the Password Hashing Competition.

So that’s why I don’t recommend production systems switch to scrypt today.

PHP Programming Security Password-Hashing Language Agnostic Cryptography

prev:The Tale Of The Wrecked Fire Engine next:An Opinion On The Future Of PHP

Why I Don't Recommend Scrypt (2024)

FAQs

Is scrypt a good algorithm? ›

Advantages and Applications of Scrypt

Reduced energy consumption compared to other algorithms like SHA-256. Scrypt mining is four times faster than mining BTC. Great solution for encrypting wallets, files, and passwords.

Is scrypt good for passwords? ›

For password protection, Argon2, bcrypt, and scrypt are recommended due to their configurable memory and cost parameters that can increase computational strength against attacks.

How secure is scrypt? ›

Scrypt is an algorithm with a high level of security, in fact, the security level is adjustable.

What algorithm does scrypt use? ›

Scrypt is used in many cryptocurrencies as a proof-of-work algorithm (more precisely, as the hash function in the Hashcash proof-of-work algorithm). It was first implemented for Tenebrix (released in September 2011) and served as the basis for Litecoin and Dogecoin, which also adopted its scrypt algorithm.

What is the easiest Scrypt coin to mine? ›

Monero (XMR) is one of the easiest cryptocurrencies to mine using a home computer. Monero is a privacy-focused crypto based on the CryptoNote protocol and utilizes the RandomX hash function to create increasingly complicated mathematical equations.

What is the difficulty of Scrypt? ›

Current Digitalcoin Scrypt Difficulty

The current DGC difficulty is 17.01 at block 2,595,862, resulting in a Digitalcoin Scrypt mining difficulty increase of 0.00% in the last 24 hours.

Can scrypt be decrypted? ›

scrypt dec decrypts infile and writes the result to outfile if specified, or the standard output otherwise. The user will be prompted to enter the passphrase used at encryption time to generate the derived encryption key. scrypt info provides information about the encryption parameters used for infile.

Does Bitcoin use scrypt? ›

Key Takeaways. Bitcoin and Litecoin use different cryptographic algorithms: Bitcoin uses SHA-256 encryption algorithm, and Litecoin uses Scrypt.

How much memory does scrypt use? ›

Estimating scrypt memory usage

scrypt requires 𝑁 times the hash block size memory. Because of BlockMix, the hash block size is 2𝑟 the underlying hash output size. In scrypt, that hash is the Salsa20 core, which operates on 64-bytes blocks. For 𝑁 = 16384 and 𝑟 = 8 that would be 16 MiB.

Is Scrypt slow? ›

Scrypt is a slow-by-design key derivation function designed to create strong cryptographic keys. Simply put, the purpose of the Scrypt hash is to create a fingerprint of its input data but to do it very slowly.

Is Scrypt memory hard? ›

Scrypt is a memory-hard function, which is designed to be hard to evaluate using specialized hardware, such as an ASIC or FPGA. This is because the evaluation of Scrypt requires a lot of memory, and memory is inherently general-purpose and thus costs about the same across different platforms.

What are the safest algorithms? ›

Best Encryption Algorithms
  • AES. The Advanced Encryption Standard (AES) is the trusted standard algorithm used by the United States government, as well as other organizations. ...
  • Triple DES. ...
  • RSA. ...
  • Blowfish. ...
  • Twofish. ...
  • Rivest-Shamir-Adleman (RSA).
Nov 11, 2022

Does Dogecoin use Scrypt? ›

Dogecoin uses the Scrypt algorithm as its Proof-of-Work(PoW)algorithm. The Scrypt algorithm is a memory-hard function,which means it requires a lot of memory to solve,making it difficult to mine using ASIC(Application-Specific Integrated Circuit)machines.

Does Ethereum use Scrypt? ›

All transactions taking place in the Ethereum network need to get approved by the miners. Miners use a Hashing Scrypt (Ethash) to solve computationally hard puzzles for successfully mining the blocks of transactions, in the Ethereum Blockchain Network.

Which coins use Scrypt? ›

Scrypt Coins
#NameAlgorithm
1DOGE DogecoinScrypt
2LTC LitecoinScrypt
3SYS SyscoinScrypt
4XWC WhiteCoinScrypt
43 more rows

What miner supports Scrypt? ›

For mine Litecoin and other Scrypt-based coins, you can use the Guiminer-scrypt fork.

What is the hash rate for Scrypt mining? ›

Based the mining hardware inputs provided, 56,169.89651861 Digitalcoin Scrypt can be mined per day with a Digitalcoin Scrypt mining hashrate of 9,500.00 MH/s, a block reward of 5 DGC, and a Digitalcoin Scrypt difficulty of 17.01.

What can a Scrypt miner mine? ›

Litecoin (LTC) is a cryptocurrency created as a fork of Bitcoin in 2011. It uses a hashing algorithm called Scrypt that requires specifically designed mining software and hardware.

What is the best Scrypt miner? ›

Best Scrypt Mining Hardware List
  • Bitmain. Antminer L7. $18,500.00 MSRP. ...
  • GoldShell. Goldshell LT6. $5,499.00 MSRP. ...
  • GoldShell. Goldshell LT5 Pro. $7,999.00 MSRP. ...
  • Innosilicon. A6+ LTC Master. $3,000.00 MSRP. ...
  • GoldShell. Goldshell LT5. $10,999.00 MSRP. ...
  • GoldShell. Goldshell LT LITE. ...
  • Bitmain. Antminer L3+ ...
  • GoldShell. Goldshell Mini DOGE Pro.

Does Scrypt use salt? ›

The Scrypt calculation function takes several input parameters: the password (bytes sequence), the salt (bytes sequence), iterations count, block size for each iteration, parallelism factor and the output key length (number of bytes for the derived key).

What Scrypt algorithm does Dogecoin use? ›

Dogecoin uses a simplified variant of the hashing algorithm, Scrypt. It also uses the “proof-of-work” protocol, enabling it to receive work from other Scrypt based networks. Dogecoin mining is less power-intensive than Bitcoin algorithm SHA-256.

Is scrypt reversible? ›

The attackers cannot reverse the scrypt to find a pre-image. The only meaningful way is the password cracking by trying all possible passwords up to some length, checking the common password list, and trying combinations, or various other methods.

Which algorithm is better SHA-256 or scrypt? ›

SHA-256 and Scrypt are both cryptographic hash functions just like how apples and oranges are fruits, but they have different nutritional values, tastes, and origins. SHA256 is computationally-intensive, while Scrypt is designed to be computationally and memory-intensive.

What is the hardest encryption to decrypt? ›

AES 256-bit encryption is the strongest and most robust encryption standard that is commercially available today. While it is theoretically true that AES 256-bit encryption is harder to crack than AES 128-bit encryption, AES 128-bit encryption has never been cracked.

What is mined on Scrypt? ›

Scrypt is a password-based essential derivation function and a proof-of-work consensus hash function used for mining certain cryptocurrencies. It is another secure alternative to SHA-256 used by Bitcoin and has been widely adopted by leading blockchains, mainly Litecoin.

What coin will overtake Bitcoin? ›

This price is expected to rise in the on-coming year (2022), with quite a few experts in finance and cryptocurrency believing that ether will overtake bitcoin. Here are a few reasons as to why people believe that Ethereum will overtake bitcoin in the coming future.

Which algorithm is best for Bitcoin mining? ›

Mining algorithm: which are the most used?
  • Mining algorithm: which are the most used? ...
  • Ethash, “the Ethereum algorithm” ...
  • Scrypt, the most complete cryptographic function. ...
  • X11, the Dash algorithm. ...
  • Equihash, an algorithm based on a complex mathematical problem. ...
  • Cryptonight, the first algorithm for anonymous coins.

Does Scrypt use sha256? ›

No. scrypt is not a hash function as SHA-256 is a hash function. Depending on who speaks, scrypt is a [password-based | memory-hard | purposely slow] [[key] derivation] | [function | hash].

What are the advantages of Scrypt algorithm? ›

Benefits of Scrypt Mining
  • Scrypt Algorithm confirms crypto currencies transaction quickly as it is designed to utilize high speed memory.
  • It can generate crypto currency that is able to handle bulk transactions and can instantly mine the block in the network.

What is the work factor of Scrypt? ›

scrypt provides three work factors that can be customized: N, r and p. N, which has to be a positive power of two, is the general work factor and scales CPU time in an approximately linear fashion. r is the block size of the internally used hash function and p is the parallelization factor.

Which is the fastest mining algorithm? ›

FLR-mining is the fastest algorithm among the five methods.

What is the fastest most scalable cryptocurrency? ›

Cardano (ADA): Cardano (ADA)'s transaction speed is one of its most important features. Cardano can process more than 1,000 transactions per second (TPS), which is comparable to other high-speed Blockchain platforms like EOS and is significantly faster than Bitcoin's transaction speed.

Which cryptocurrency algorithm is best? ›

Top Crypto Trading Algorithms of 2023
  • Stoic- It is a private equity long-term bot by Cindicator. ...
  • Cryptohopper – It is one of the good automated bots for managing all of the cryptocurrency exchange accounts in one location is called Cryptohopper. ...
  • Shrimpy is concentrated on maintaining long-term investments.
Jan 11, 2023

Which algorithms uses the least memory? ›

Explanation: The Depth Search Algorithm or DFS requires very little memory as it only stores the stack of nodes from the root node to the current node.

Which algorithm consumes less memory? ›

It depends upon what type of search you are performing.in general case on a tree based searching methods Depth-First Search takes less memory since only the nodes on the current path are stored, but in Breadth First Search, all of the tree that has generated must be stored.

Which algorithm makes the most efficient use of memory? ›

In this problem, the Best-Fit Algorithm makes the most efficient use of memory because it was the only algorithm that meet all the memory requests.

What is worst case of an algorithm? ›

Worst case is the function which performs the maximum number of steps on input data of size n. Average case is the function which performs an average number of steps on input data of n elements.

Which is the most successful algorithm? ›

The Merge Sort algorithm is by far one of the most important algorithms that we have today. It is a comparison-base sorting algorithm that uses the divide-and-conquer approach to solve a problem that once was a O(n^2). It was invented by the mathematician John von Neumann in 1945.

Which searching algorithms are worst case? ›

The best-case performance for the Linear Search algorithm is when the search item appears at the beginning of the list and is O(1). The worst-case performance is when the search item appears at the end of the list or not at all. This would require N comparisons, hence, the worse case is O(N).

What is the best Scrypt miner for Dogecoin? ›

Top Dogecoin ASIC Miner Hardware
Hash Rate, MH/sPower Consumption
Antminer L79,500.003,425W
Antminer L3+504.00800W
BW L21 Scrypt Miner550.00950W
Goldshell Mini Doge PRO205.00220W
1 day ago

What is the best algorithm for mining Dogecoin? ›

The hashing algorithm that Dogecoin uses is the same as that used by Litecoin, which is called the Scrypt hashing algorithm. Litecoin and Dogecoin operating systems are so similar that it is possible even to mine them together at the same time because of their relative similarity.

Can I mine DOGE with a GPU? ›

There are three different types of hardware equipment available for DOGE mining: GPU: A graphics processing unit (GPU) is more potent than a central processing unit (CPU) and is in charge of a computer system's digital rendering. It is effective for mining cryptocurrencies because of its rapid speed.

What is the most profitable coin to mine today? ›

Monero (XMR), which has a market cap close to $3 billion, is still one of the most lucrative coins you can seek to mine. Mining The present payout for mining Monero is 2.15 XMR per block, and 2,272,762 blocks are anticipated to be produced.

Will mining still be profitable in 2023? ›

Cryptocurrency mining is still profitable in 2023, but it may not be as rewarding as in the past. That's accurate for a variety of factors, including the fact that cryptocurrency prices were significantly lower than their peaks for the majority of 2022 and into early 2023.

What is the most profitable coin? ›

Bitcoin – Coin With the Potential to Become one of the Most Profitable Crypto. Bitcoin was the first digital asset to come into existence in the crypto space. In fact, for its early investors, BTC has been the most profitable cryptocurrency to invest in.

How much is Bitcoin Scrypt in USD? ›

The live price of Bitcoin Scrypt is $ 0.0321852 per (BTCS / USD) today with a current market cap of $ 566,972.70 USD. 24-hour trading volume is $ 0 USD.

Why does Litecoin use Scrypt instead of SHA 256? ›

It is the faster and easier algorithm in comparison of SHA-256. The new crypto currencies are preferring to use Scrypt over SHA-256 due to its convenient operations. Scrypt is comfortable to run on an available CPU and requires less energy than that of SHA-256. It is the reason why it is adopted by most of the miners.

What is the most utilized crypto coin? ›

1. Bitcoin (BTC) Created in 2009 by Satoshi Nakamoto, Bitcoin (BTC) is the original cryptocurrency. As with most cryptocurrencies, BTC runs on a blockchain, or a ledger logging transactions distributed across a network of thousands of computers.

Is Scrypt better than SHA256? ›

SHA-256 and Scrypt are both cryptographic hash functions just like how apples and oranges are fruits, but they have different nutritional values, tastes, and origins. SHA256 is computationally-intensive, while Scrypt is designed to be computationally and memory-intensive.

What is the strongest crypto algorithm? ›

AES 256-bit encryption is the strongest and most robust encryption standard that is commercially available today.

Which crypto has best algorithm? ›

Top Crypto Trading Algorithms of 2023
  • Stoic- It is a private equity long-term bot by Cindicator. ...
  • Cryptohopper – It is one of the good automated bots for managing all of the cryptocurrency exchange accounts in one location is called Cryptohopper. ...
  • Shrimpy is concentrated on maintaining long-term investments.
Jan 11, 2023

Does Bitcoin use Scrypt? ›

Key Takeaways. Bitcoin and Litecoin use different cryptographic algorithms: Bitcoin uses SHA-256 encryption algorithm, and Litecoin uses Scrypt.

What is the strongest hashing algorithm? ›

To the time of writing, SHA-256 is still the most secure hashing algorithm out there. It has never been reverse engineered and is used by many software organizations and institutions, including the U.S. government, to protect sensitive information.

Why use Scrypt? ›

Simply put, the purpose of the Scrypt hash is to create a fingerprint of its input data but to do it very slowly. A common use-case is to create a strong private key from a password, where the new private key is longer and more secure.

How much memory does Scrypt use? ›

scrypt requires 𝑁 times the hash block size memory. Because of BlockMix, the hash block size is 2𝑟 the underlying hash output size. In scrypt, that hash is the Salsa20 core, which operates on 64-bytes blocks. For 𝑁 = 16384 and 𝑟 = 8 that would be 16 MiB.

Which is the most unbreakable algorithm? ›

There is only one known unbreakable cryptographic system, the one-time pad, which is not generally possible to use because of the difficulties involved in exchanging one-time pads without their being compromised. So any encryption algorithm can be compared to the perfect algorithm, the one-time pad.

What are the weakest cryptographic algorithms? ›

Encryption algorithms such as TripleDES and hashing algorithms such as SHA1 and RIPEMD160 are considered to be weak. These cryptographic algorithms do not provide as much security assurance as more modern counterparts.

What type of encryption does Tesla use? ›

While we use Bugcrowd as a platform for rewarding all issues, please report vehicle and product related issues directly to VulnerabilityReporting@tesla.com, using our PGP key to encrypt reports containing sensitive information.

Which crypto has the most advanced technology? ›

Cardano is arguably the most secure blockchain technology. It is also the largest smart contract platform running on proof-of-stake technology.

Top Articles
Latest Posts
Article information

Author: Zonia Mosciski DO

Last Updated:

Views: 6060

Rating: 4 / 5 (51 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Zonia Mosciski DO

Birthday: 1996-05-16

Address: Suite 228 919 Deana Ford, Lake Meridithberg, NE 60017-4257

Phone: +2613987384138

Job: Chief Retail Officer

Hobby: Tai chi, Dowsing, Poi, Letterboxing, Watching movies, Video gaming, Singing

Introduction: My name is Zonia Mosciski DO, I am a enchanting, joyous, lovely, successful, hilarious, tender, outstanding person who loves writing and wants to share my knowledge and understanding with you.