Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
World desk6 min

Falsehoods Engineers Believe About Moving Money

A retry key, healthy monitor or passing amount check can still conceal a payment failure. These ten attributed cases show where assumptions break and what controls to examine.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A payment control is only as reliable as the assumptions behind it. In ten case studies, payment engineer Jeffrey Jorgensen describes how retries, monitoring, address handling, amount checks, signing limits and reconciliation can fail when they ignore identity, state, units or incomplete data. The cases are useful ways to test a design, not evidence of how often these failures occur across the industry.

Does an idempotency key make a retry safe?

No. A key helps recognize a repeated operation only if the system verifies that the replay really represents the same operation and remains valid. In one case Jorgensen describes, a system derived a hold key by appending a suffix to client-provided data. A crafted earlier operation could collide with that derived key, be mistaken for a replay and bypass a balance check.

As an Amazon Associate I earn from qualifying purchases.

Bind replay handling to the operation

Before returning a stored result, compare the operation type, account and amount with the original request. Derive keys for internal steps from the server’s request data rather than concatenating a client-controlled reference. A matching string alone does not establish that the operation is identical or authorized.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can a running deposit monitor still lose deposits?

Yes. A monitor can be healthy as a process and still advance its checkpoint past deposits it was not yet ready to credit. Jorgensen describes a monitor that scanned a block, skipped a transfer that lacked the required confirmations, then advanced its cursor. When it repeatedly scanned recent blocks too early, the skipped deposits could be left behind permanently.

Align the checkpoint with eligibility

Scan only through a block old enough to meet the configured confirmation or finality boundary, and do not let the cursor advance beyond blocks eligible for processing. A lagging monitor may encounter deposits that have already matured; a monitor at the tip may encounter transfers that have not. On proof-of-stake systems, consensus finality may be a more appropriate boundary than a fixed confirmation count. The right rule depends on the chain and deployment.

Why can checking an amount become expensive?

A short decimal string can describe an extremely large exponent. Parsing it may be cheap while comparing or calculating with the resulting value is not. Jorgensen reports the following comparison timings for shopspring/decimal on Go 1.26, arm64:

Literal Author-reported comparison time
1e100000 0.6 ms
1e1000000 20 ms
1e5000000 251 ms

These are the author’s measurements, not independently reproduced benchmarks or general performance guarantees. They illustrate why input size and numeric magnitude both matter.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Bound work before arithmetic

Set limits on literal length, exponent and significant digits before expensive comparison or arithmetic. Make rejection itself inexpensive. A limit applied only after parsing or calculation may not protect the operation that consumes the resources.

Rank #2
Sale
The Psychology of Money: Timeless lessons on wealth, greed, and happiness
  • Ideal for Gifting
  • Ideal for a bookworm
  • Compact for travelling

Is every transfer to a customer’s deposit address customer money?

No. An address identifies a destination, not necessarily the origin or economic owner of a transfer. Jorgensen describes platform-originated top-ups sent to customer deposit addresses to provide gas. An address-only monitor could mistake those internal transfers for customer deposits and credit them as liabilities.

Classify platform-originated transactions

Keep a platform registry of internal transaction hashes and have deposit monitoring check it before crediting incoming transfers. Also preserve unit boundaries: values expressed in wei, ETH and an application’s balance unit cannot safely be compared or added as though they were interchangeable.

Does a send error prove that nothing was sent?

No. The point at which an error occurs determines what it tells you. A failure while building, encoding or signing a transaction may establish that no network submission occurred. An error after a network call may leave delivery uncertain: the transaction could have reached a node even if the caller never received a successful response.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
State What it means for recovery
Sent or acknowledged Record the submission and track its outcome rather than creating a second payment.
Definitely not sent A retry or release may be appropriate once the system has established that submission did not occur.
Unknown Do not treat uncertainty as proof of non-delivery. Resolve it through the applicable transaction lookup, reconciliation or escalation process.

Jorgensen recommends representing these as distinct states, releasing a hold only when absence is established, and escalating ambiguous outcomes for resolution. Error meanings and available recovery mechanisms vary by processor, node and version, so verify the conventions of the system in use.

Can a column that looks like a key safely identify batch payments?

Not necessarily. In a batch workflow Jorgensen describes, software inferred columns from their contents. A non-unique column could be mistaken for an idempotency key; alternatively, an unrecognized customer key could be silently replaced. Re-uploading the file might then create different keys and duplicate payments.

Make detection uncertainty visible

  • Check that a proposed key is unique across the batch.
  • Preserve the file’s original order when the system cannot confidently identify a key.
  • Show the operator which column was selected and make ambiguous or substituted values visible before payment submission.

Are blockchain addresses case-sensitive?

It depends on the address format; case behavior is not a universal property of a network. For Bech32, Bitcoin BIP-173 specifies that encoders must produce lowercase output, while uppercase presentation may be generated externally. Its decoder rule is explicit: “Decoders MUST NOT accept strings where some characters are uppercase and some are lowercase (such strings are referred to as mixed case strings).” The specification is by Pieter Wuille and Greg Maxwell.

That rule does not apply to every encoding. Jorgensen contrasts Bech32 with case-sensitive Base58 addresses. Normalizing by lowercasing every address can therefore change an address that must be compared exactly. Parsing, normalization and screening should follow the specific format’s rules.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Does a signing policy limit everything that can leave a wallet?

Not if it caps only the transfer amount. A caller-controlled fee can increase total outflow; concurrent signing requests can exceed a limit that each request passes individually; and arithmetic overflow can defeat a calculation intended to enforce a cap.

Define the exposure the signer must control

Bound total exposure, account for concurrent requests and guard calculations against overflow. The signer should verify fee-relevant information it can establish independently rather than trusting an unchecked caller-provided amount. What it can verify depends on the chain, transaction type and signer architecture. EVM fee inputs and the input-value information available for a Bitcoin transaction are not interchangeable assumptions.

BIP-22 defines its reported transaction fee as the “difference in value between transaction inputs and outputs (in Satoshis).” It also says clients “MUST NOT assume there isn’t one” when the fee field is absent. That is a narrow rule about interpreting the field, not a universal signing-policy recipe.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Can a solvency circuit breaker fail because an address list is incomplete?

Yes. Jorgensen describes a reserve check whose address list omitted inactive addresses that still held funds. The resulting reserve calculation could trigger an incorrect withdrawal halt. The underlying design mistake is treating addresses currently used to accept deposits as though they were the complete set of addresses the platform owns.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Separate ownership from deposit routing

Maintain a complete owned-address set for reserve calculations, independently of the addresses currently offered for deposits. The balances and behavior in the author’s example are author-reported; the case illustrates the distinction, not a measured rate of occurrence.

Is a customer-favorable accounting error harmless?

No. A defect that benefits a customer may go unnoticed if detection depends on complaints. Jorgensen describes precision and rounding mismatches between ledger accounting and the decimals supported by individual rails. The token and rail configurations in that account are specific to the author’s systems and should not be generalized to other assets.

Reconcile in both directions

Distinguish the precision supported by the ledger from the precision each rail accepts, and reconcile those rules explicitly. Use discrepancy checks and alerts that catch both over-crediting and under-crediting rather than watching only for losses to customers or the platform.

How should engineers use these ten cases?

Use them as design-review prompts, not as a frequency ranking or proof that a proposed control is correct. Jorgensen says the examples come from one set of repositories, are not statistics and do not establish how prevalent the failure modes are. Nor does confirming that a test catches a triggering case prove that the fix is correct.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Does replay handling verify operation type, account and amount?
  • Can a checkpoint move past a transfer before it is eligible for credit?
  • Are input length, exponent and significant digits bounded before costly numeric work?
  • Can internal transfers, unit mismatches or inactive owned addresses distort deposit and reserve accounting?
  • Does an error distinguish definite non-submission from an unknown outcome?
  • Are inferred batch keys checked for uniqueness and shown clearly to operators?
  • Does address handling follow the encoding format rather than a blanket case rule?
  • Do signing controls include fees, concurrent requests and overflow?
  • Can reconciliation detect discrepancies in both directions?

Payment-rail finality, protocol behavior and library behavior can vary by version and deployment. Validate any control against the specific systems and transaction paths it is intended to protect.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.