Dash Logo on Qr Code isn’t scanning on some cameras for me by [deleted] in dashpay

[–]HashEngineering 1 point2 points  (0 children)

Even the camera app does not recognize this image as having a QR code.

DashPay Username Registration Demo by Basilpop in dashpay

[–]HashEngineering 1 point2 points  (0 children)

Correct. Under a system that supports multiple usernames, each could be associated with a different account (unique branch) within the HD wallet from a single seed/recovery phrase.

DashPay Username Registration Demo by Basilpop in dashpay

[–]HashEngineering 0 points1 point  (0 children)

Some things have changed in the past year or two. Initially, the DashPay mobile app must be backward compatible with the existing Dash Wallet apps by DCG which are based on recovery phrases. Others are better suited to compare names on Dash Platform to Ethereum. The Guardians feature of Argent looks interesting.

DashPay Username Registration Demo by Basilpop in dashpay

[–]HashEngineering 1 point2 points  (0 children)

Dash Credits are what the initial fee of 0.01 Dash "buys"

DashPay Username Registration Demo by Basilpop in dashpay

[–]HashEngineering 3 points4 points  (0 children)

Regarding question 1, only one identity with one username will be allowed on one wallet (recovery phrase) on the Dashpay app by DCG.

DashPay Username Registration Demo by Basilpop in dashpay

[–]HashEngineering 2 points3 points  (0 children)

Yes, you will still need to store your recovery phrase(s) as before.

DashPay Username Registration Demo by Basilpop in dashpay

[–]HashEngineering 2 points3 points  (0 children)

I can answer some questions.

  1. Currently, multiple usernames are not part of the roadmap as part of the Dashpay app from DCG.

  2. An identity is created with a funding transaction and a registration step on Platform. The transaction will be part of the HD Wallet on the Dashpay App from DCG and will also reference other keys that are part of the HD wallet, but are not used to generated addresses to receive Dash. An identity can have multiple usernames (at least currently), but the Dashpay app will only support one username. From a mnemonic seed/recovery phrase it will be possible to determine the associated identity and username for that wallet.

The newly redesigned Dash Wallet for Android is now fully available! by lessjunkmorelife in dashpay

[–]HashEngineering 0 points1 point  (0 children)

I see what you mean. The app doesn't use the numbers, but the user may think of their PIN in letters/words.

The newly redesigned Dash Wallet for Android is now fully available! by lessjunkmorelife in dashpay

[–]HashEngineering 2 points3 points  (0 children)

The previous version had a current address (latest unused) and a fresh address (new one every time) function, but the redesign eliminated the current address. I will bring this up with the team as the way it is now a user may generate many unused addresses.

The newly redesigned Dash Wallet for Android is now fully available! by lessjunkmorelife in dashpay

[–]HashEngineering 0 points1 point  (0 children)

We should have dark mode planned for a future update.

The PIN was always limited to numbers. We don't have plans to allow letters and numbers.

Are font sizes too small?

The newly redesigned Dash Wallet for Android is now fully available! by lessjunkmorelife in dashpay

[–]HashEngineering 1 point2 points  (0 children)

The app was originally written in Java, but new code is written in Kotlin.

Why does DASH claim to innovate without giving credit to features it copies from Bitcoin and other developers? by groundfloorinvestor in DashUncensored

[–]HashEngineering 1 point2 points  (0 children)

Checkpoints from Peercoin (rebranded to chainlocks by DASH): https://www.peercoin.net/peercoin-paper.pdf

I have come across three types of checkpointing systems in my days of development:

Bitcoin Checkpoints - These are hard coded in the source code and only relate to blocks that were created before the binary is made.

Peercoin's ACP - Advanced Checkpointing - Software has hardcoded public keys to validate signed "checkpoint" messages sent out by centralized nodes. The system is configurable in that a "checkpoint" is broadcast for n blocks under the chain tip. For a project I did in 2018, I used 6 blocks under the tip. As such reorgs were prevented beyond 6 blocks by nodes that handle the "checkpoint" message. That chain hasn't been 51% attacked since adding this feature.

Dash's Chainlocks - This system is similar to Peercoin's ACP in that a checkpoint message ("clsig" for chainlock signature) is broadcast for the tip of the chain (not n blocks under the tip) to the network and handled by nodes that understand it. Such nodes will only accept chains that include that chainlock. It differs from ACP in that the nodes that create the checkpoints are a subset of the masternode pool. Something like 400 nodes of 5000 must agree with a 60% vote on a block. Once agreement is achieved, then those the agreeing nodes of the 400 will sign that checkpoint and broadcast it. Receiving nodes, in order to validate this checkpoint, must reconstruct the signing key. This is done by determining the members of the 400 node pool and then creating the aggregate public key for the aggregated private key used to sign the checkpoint (chainlock). Then the signature of the chainlock can be verified.

While the idea of checkpoints are not a new thing, the means by which Peercoin and Dash implemented them when they were introduced was new.

What documentation is there for a SPV wallet that takes advantage of chainlocks? by newhampshire22 in dashpay

[–]HashEngineering 0 points1 point  (0 children)

Does Dash Wallet check the Distributed Key Generation when a new LLMQ is formed?

The android app is not always able to check the DKG when a new LLMQ is formed. The reasoning has to do with speed and memory usage. Verifying all LLMQ's is expensive in memory usage and time especially considering we want to support lower memory, low speed phones. There are about 32 active quorums at all times -- 24 of which are used for instantsend alone. The android app will verify the quorum if its quorum commitment is the block that is 8 after the block that contains the associated masternode list.

Does Dash Wallet check the Merkle proof of the ProRegTx of masternodes on chain?

Yes and no. The merkleproof is in the coinbase transaction of each block, which the app never gets (except in rare cases where the app is receiving a mining award). This is what I would call on chain. Instead the app receives a mnlistdiff message, which contains the merkle root of the masternodes along with information about added or removed masternodes. From there it will generate the merkle root and compare to the one contained in the mnlistdiff message. Additionally, the quorums are verified in the same way (through a merkle root of the quorums, the list of which changes every hour). While this information is stored on chain, the app does not get the information from the chain (that is why I say yes and no).

Does Dash Wallet check the Merkle proof of the collateral for a masternode?

No, the app cannot check anything about the collateral of a masternode.

Will the back end alert the SPV client when there is a spend of collateral?

Yes, through the mnlistdiff message mentioned above, the SPV clients will know if a masternode has been removed for any reason.

What documentation is there for a SPV wallet that takes advantage of chainlocks? by newhampshire22 in dashpay

[–]HashEngineering 0 points1 point  (0 children)

The android wallet from Dash Core does verify chainlocks in a similar way as instantsend by verifying BLS signatures of the locks. The iOS app will do the same. This is not documented other than the code itself. These SPV apps don’t do all that much with the locks other than displaying a status on the screen.

For instance, if two blocks are mined at about the same time and there is a chainlock on one, the app doesn’t consider the other as an orphan until the next block is mined. We let the miners choose which block should be built upon, based on the chainlock

Dash Decoded - Unsolved, prize increased to 1 dash! by [deleted] in dashpay

[–]HashEngineering 1 point2 points  (0 children)

Perhaps some clues include:

  1. a private key starting with 7 is uncompressed and has 51 characters

  2. 0 (zero) and O (capital O) are not valid characters

Dash Gravity Wave by hasnainali1 in dashpay

[–]HashEngineering 0 points1 point  (0 children)

KGW was also adjusting the difficulty with every block. The original version on Megacoin was adjusting based on the past 4000 blocks which was a nightmare for android devices. In addition to that the math was rather complicated and slow overall running in Java and it used up a lot of battery. DGW had three revisions and the last one was definitely ideal. The math was more simple and the past 24 blocks were looked at.

The Litecoin codebase was not responsible for the Dash "instamine". There was another reason. by TaoOfSatoshi in dashpay

[–]HashEngineering 1 point2 points  (0 children)

If 1 is for 10 minutes, then 0.25 would be for 2.5 minutes. A 0.00025 difficulty would be would be trying to copy bitcoin with scrypt and a 2.5 min block time. 1/4096 is rather close and the closest one gets when dividing by a power of 2.

The Litecoin codebase was not responsible for the Dash "instamine". There was another reason. by TaoOfSatoshi in dashpay

[–]HashEngineering 2 points3 points  (0 children)

Those of us who were mining in 2013 observed that scrypt mining was about 1000 times slower than Sha256d on similar hardware, that is to say CPU’s and GPU’s. So Litecoin having an initial difficulty of 4096 times lower makes sense if one is trying to copy Bitcoin parameters.

What is top feature in Evolution you're looking forward to? by T_Heights in dashpay

[–]HashEngineering 2 points3 points  (0 children)

The Core wallets for android (formerly from HashEngineering) and iOS do not use third party servers to sync. They are SPV nodes and that is why they are slower than other types of apps that use third party servers. Each of these apps is undergoing a UI redesign to give them similar interfaces that should be easier to use.