{"id":"37325928-5234-4f4f-8f8d-900a89d9be1e","arxiv_id":"2506.17236","paper_version":1,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":5.0,"correctness_risk":"medium","formal_verification":"none","parameter_count":3,"one_line_summary":"The dissertation presents six max-min fairness smart contracts for blockchain faucets and shows their gas costs allow far more users than the conventional implementation.","lead":"A PhD dissertation adapts the classic max-min fairness algorithm into six smart-contract faucets that distribute free test-network tokens more evenly, and measures their gas costs on an Ethereum-compatible testbed. The key result is that the standard algorithm cannot fit in a block for more than about 10 users, while the new variants scale to unlimited users or to 250 users, depending on the variant.","discovery_kind":"new_application","skeptic_critique":{"model":"deepseek-v4-flash","headline":"Weighted variants can stall because precision p has an upper bound as well as a lower bound; the paper never reports p, so the measured 'works within gas limit' results are conditional on an undocumented parameter.","rationale":"The central claim is an engineering claim about gas scaling, and the gas tables are broadly plausible: AMF and QMF demand/claim functions do not iterate over the user set, SMF's calculate_share loop is linear and the measured values stay below the 8,000,000 limit. The most load-bearing unstated condition is the precision parameter p, exactly as the reader's weakest_assumption notes. The reader's secondary point about AMF's final-round first-come-first-served order is less decisive: in a max-min round every overdemander receives the same share, so transaction order does not change the final allocation provided each user claims; the real danger is that Share becomes zero for large p. The paper's derivation in Section 4.1.3 provides only the lower bound for p, but Algorithm 2 line 7 makes clear that Share = floor(Capacity/TotalWeight) is decreasing in p, so there is also an upper bound below which the system stalls. Tables 4.3, 5.2, and 5.3 do not report p, so a reader cannot reproduce the experiments or know that the chosen p lies in the non-stalling interval. This does not refute the algorithmic approach, but it makes the central claim for the weighted variants conditional on an undocumented parameter choice. The QMF/SMF equivalence to max-min fairness is not formally proved, but the share calculation is the standard water-filling form of max-min fairness and matches the paper's examples, so I do not treat the missing proof as the primary risk. The Sybil/DoS concern is real but is an external limitation common to permissionless faucets and less specific to this paper's internal argument. The CONDITIONAL verdict is appropriate; my stress-test does not move it.","tokens_in":38980,"tokens_out":14977,"duration_ms":152327,"concrete_test":"Derive the operating interval for p from Section 4.1.3 and Algorithm 2: require floor(p/d_u) > 0 for every tested demand and floor(Capacity / sum floor(p/d_u)) >= 1 under Table 4.3. Then rerun the published WAMF test (n=500, Capacity=20n, demands uniform in [10,30)) at p=100 and p=1000 using the repository at [4]. If p=1000 yields Share=0 (claims revert or allocate zero) while p=100 distributes correctly, the reported gas results depend on an unstated precision value, and the paper must state the required p interval for each weighted algorithm.","verdict_should_be":"UNCHANGED","load_bearing_attack":"Section 4.1.3 defines the inverse-demand weight as w_u = floor(p / d_u) and the unit share in Algorithm 2 as Share = floor(Capacity / TotalWeight). For any allocation to occur, TotalWeight must not exceed Capacity, i.e. roughly p * sum(1/d_u) <= Capacity. With the WAMF test parameters in Table 4.3 (Capacity = 20n, demands uniform in [10,30)), p is therefore bounded both below and above: it must exceed the largest demand so weights are nonzero, yet stay below about Capacity / sum(1/d_u) so the share is at least 1. For n=500 and Capacity=10000, choosing p=1000 gives TotalWeight on the order of 25,000 or more, so Share = floor(10000 / TotalWeight) = 0 and every claim allocates zero (or reverts). The paper states only the lower bound -- 'as long as p is larger than the total demand volume...' -- and never gives the upper bound. Tables 4.3, 5.2, and 5.3 omit p entirely. This is load-bearing because the weighted algorithms are part of the central claim: if p is set by the paper's stated criterion, the faucet can stall, and the published gas costs do not establish that the weighted schemes actually distribute resources for the reported configurations.","agreement_with_reader":"partial"},"referee_report":{"model":"deepseek-v4-flash","summary":"The manuscript designs, implements, and measures six smart-contract variants of max-min fairness (MF) for blockchain faucets: AMF, WAMF, QMF, WQMF, SMF, and WSMF. It reports that the conventional centralized MF implementation (CMF) fails to scale beyond roughly 10 users under an 8,000,000 block gas limit, while the six contributed algorithms remain within the limit, with the first four supporting unlimited user counts and SMF/WSMF supporting up to 250 users. The paper claims the algorithms preserve max-min fairness (or a weighted version) and are resistant to denial of service. The evaluation is based on gas-cost measurements on a local Parity EVM with an instant-seal engine, and the source code and data are made available.","tokens_in":39172,"tokens_out":11155,"duration_ms":116486,"significance":"If the central claims hold, the work would provide a practical and inexpensive way to distribute tokens fairly in non-commercial blockchains, a niche where current faucets are naive and vulnerable to DoS. The paper's strengths are its direct gas measurements, the comparison of the custom heap against an existing implementation, and the empirical demonstration that a centralized MF loop is not viable on-chain. The availability of the contract source code and raw data is a genuine plus. However, the reproducibility of the weighted algorithms is undermined by the unreported precision parameter, the published pseudocode for SMF and WSMF contains algorithmic defects, and the AMF fairness guarantee is only approximate. These issues are load-bearing for the paper's main claims, so the manuscript requires substantive revision.","major_comments":[{"comment":"The inverse-demand weight w_u = floor(p/d_tu) and the share formula Share = floor(Capacity/TotalWeight) require not only p larger than the maximum demand (as stated) but also TotalWeight <= Capacity for any allocation to be non-zero. Since TotalWeight is approximately p times the sum of 1/d_u, the precision p has an upper bound as well as a lower bound; for the WAMF test parameters (Capacity=20n, demands uniform in [10,30)), choosing p=1000 yields TotalWeight far above Capacity and Share=0, stalling the system. The paper never reports p in Tables 4.3, 5.2, or 5.3, and the WSMF pseudocode in Appendix C uses an unreported Precision variable. Consequently, the measured gas costs do not demonstrate that the weighted algorithms actually distributed resources in the reported configurations.","section":"Section 4.1.3, Algorithm 2, Tables 4.3/5.2/5.3"},{"comment":"The claim that AMF and WAMF 'emulate' or 'preserve' max-min fairness is only approximate. Section 4.1 states that the last iteration is first-come-first-served among overdemanders rather than in demand order, so when capacity runs out in the final round the allocation can differ from MF. The only evidence offered (Section 4.3.2) is a cross-check with Python for the specific 3-round test distributions, and the text admits that the bound of 3 iterations is not proven. Because the epoch/round sizes in Section 4.2.1 are set to exactly accommodate 3 rounds, any distribution requiring more rounds is cut off by the epoch boundary, further weakening the fairness guarantee. The abstract and Section 1.3 should state this qualification.","section":"Section 4.1 and Section 4.3.2"},{"comment":"The SMF pseudocode has a division-by-zero bug in the capacity-abundant case. In the main loop, if the initial simulatedShare satisfies all demands, the inner while loop (lines 43-46) empties the heap; execution then proceeds to line 52, which divides simulatedCapacity by heap.length = 0. The algorithm therefore does not terminate correctly for inputs where total demand is at most capacity, contradicting Section 5.1.3's claim that QMF and SMF produce output identical to MF for any input. The published pseudocode cannot serve as the basis for the gas results in Tables 5.4-5.6.","section":"Algorithm 4"},{"comment":"The WSMF pseudocode is internally inconsistent. The selector initialized at line 30 is used for the main loop condition at line 46, yet the data-population loop at lines 38-44 always inserts into heap[0]; for epochs with selector=1 the main loop is skipped entirely. Also, line 48 accumulates result with simulatedShare before simulatedShare is computed at line 50, and simulatedUnitShare is used at line 50 without being consistently updated. These defects make the WSMF algorithm impossible to reproduce from the specification, so the reported WSMF gas costs in Section 5.4.1 are not verifiable from the manuscript.","section":"Appendix C"}],"minor_comments":[{"comment":"The manuscript contains numerous spelling errors (e.g., 'developped', 'inconventional', 'resouces', 'vulnarable') and would benefit from a thorough proofreading.","section":"General"},{"comment":"The dagger marks (†, ††) used in Tables 5.4, 5.5, and 5.6 are not defined in the tables; the text clarifies some of them, but the tables alone are ambiguous about which entries exceed the gas limit and which were simply not run.","section":"Tables 5.4-5.6"},{"comment":"The gas measurements are reported as averages over '3 sets' without standard deviations or per-set data; the Python cross-check for AMF is mentioned but no simulation code or exact comparison metric is provided.","section":"Section 4.2.1 and Section 4.3.2"},{"comment":"The claim of support for 'unlimited' users should be qualified: while per-transaction gas cost is independent of n, the epoch span is set to 4n blocks, so the time to complete an epoch grows linearly with n; the paper does not discuss the synchronization and latency implications for large n.","section":"Section 1.3 and Section 4.2"},{"comment":"Reference [49] is used as the basis for W/AMF tests that were not repeated here, but the paper does not summarize what parameters or results were taken from [49]; this should be made explicit for reproducibility.","section":"Section 5.4.1"}],"recommendation":"major_revision","confidential_remarks":"The manuscript appears to be a lightly edited PhD dissertation. The central empirical results are plausible, but the missing precision parameter, the approximate-fairness caveat for AMF, and the pseudocode defects for SMF and WSMF currently prevent acceptance. The paper would also need substantial restructuring to conform to a journal article format. I would recommend a major revision that addresses the precision-parameter reporting and the algorithmic specification issues, and that narrows the fairness claims to what is actually proven."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"Dear Colleague,\n\nThe paper is a mostly honest engineering thesis. What's actually new: six Solidity implementations of max-min fairness faucets, with gas measurements showing that a centralized heap-based implementation blows the 8M block gas limit around 10 users, while the decentralized versions scale to hundreds or unlimited users. The gas tables are useful, the repository is public, and the observation that loops should be pushed to user transactions is generalizable beyond faucets. QMF and SMF are real algorithmic restructurings, not just renamings, and their single-pass share calculation is a reasonable contribution.\n\nThe load-bearing soft spot is the precision parameter p used in the weighted schemes. It has two bounds: it must be large enough that floor(p/d) is nonzero, and small enough that the total weight does not exceed capacity, otherwise the per-user share is 0 and no one gets anything. The paper states only the lower bound (Section 4.1.3) and omits p from every test table, so the 'works within gas limit' results for the weighted variants are conditional on an unreported parameter. The stress-test example is right: with the W/AMF parameters (capacity 20n, demands [10,30)), p=1000 gives total weight well above capacity and share=0. This is not fatal—a suitable p exists—but it needs to be documented and the tests rerun with the chosen value stated.\n\nTwo smaller issues. AMF's final claim round is FCFS, so calling it exactly max-min fair is an overstatement; the paper admits this but doesn't adjust the claim. And 'DoS-resistant' means resistant to gas-exhaustion attacks, not Sybil; a faucet with a per-epoch demand limit is still open to many-accounts attacks. The self-citation [49] is not a problem: the W/AMF numbers are fresh measurements, not recycled results.\n\nOverall the central result—centralized MF doesn't fit on-chain, decentralized versions do—is credible. The paper deserves peer review, but the missing p, the unproven equivalence of QMF/SMF, and the AMF caveat all need addressing before publication. I'd send it to a blockchain engineering venue, not a theory venue.\n\nIf I were building a testnet faucet, I'd cite the gas structure of these algorithms. Bring it to reading group? Maybe—it's a good case study in how gas limits reshape algorithm design.","headline":"A credible engineering study of decentralized max-min fairness faucets, with reproducible gas measurements, but the weighted schemes' missing precision parameter makes the headline results narrower than claimed.","tokens_in":39766,"tokens_out":3335,"would_cite":true,"duration_ms":36116,"reading_group":"maybe","serious_thinker":"yes","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":[],"pacs":[],"model":"deepseek-v4-flash","headline":"The paper claims that the conventional max-min fairness algorithm, run as one smart-contract function, exhausts an 8,000,000-gas block at around 10 users, while six redesigned algorithms keep per-user gas costs low, four of them scaling…","keywords":["blockchain faucet","max-min fairness","smart contract","gas cost","block gas limit","denial of service resistance","weighted fairness","scalability"],"falsifier":"Run the weighted smart contracts with p set to 2 and demands drawn from [10,30) during an epoch with positive capacity; if no user receives anything because every computed weight is zero, the missing precision condition is exposed.","tokens_in":38693,"feed_emoji":"⚖️","tokens_out":16881,"duration_ms":161973,"temperature":0.7,"pith_summary":"The dissertation sets out to replace the trivial faucet—a fixed-amount token dispenser on non-commercial blockchains—with a fair one. It argues that the standard max-min fairness algorithm cannot simply be compiled into a smart contract: as one centralized function it exhausts an 8,000,000-gas block at roughly ten users. The paper contributes six algorithms that split the same computation across user-submitted demand and claim calls, keeping per-transaction gas costs effectively flat as the user base grows. AMF, W/AMF, QMF, and WQMF scale to unlimited user counts, while SMF and WSMF support about 250 users, all staying within the block gas limit and preserving max-min or weighted max-min fairness. If these results hold, non-commercial blockchain networks could run faucets that are both fair and cheap, instead of vulnerable fixed-amount dispensers.","feed_headline":"Six smart-contract faucets beat the 10-user gas wall","feed_subtitle":"Conventional max-min fairness exhausts the block gas limit at about 10 users; the new variants keep costs near constant.","key_machinery":"The load-bearing mechanism is the replacement of a centralized distribute loop by user-driven demand and claim functions synchronized to block-number epochs. In AMF and W/AMF, each claim writes the same $\\min(s \\cdot w_u, d_u)$ as the textbook algorithm, with $s$ recomputed at round boundaries; weights are stored as integer approximations $\\lfloor p/d_u^t \\rfloor$ because the virtual machine has no floating point. QMF and WQMF replace the heap with a counting array over the bounded demand interval and accept the largest share $p$ satisfying the capacity-feasibility inequality. SMF and WSMF keep a memory-resident min-heap, run the textbook iterations on a local copy of the capacity, and return the accumulated share. The gas limit is the constraint that all these mechanisms are designed to satisfy, and the central cost-saving move is to avoid storage writes and long loops in any single transaction.","core_discovery":"The central finding is that the conventional way of running max-min fairness—collect all demands, then let one distributor loop through a min-heap and write each balance—hits the block gas limit at about 10 users under the tested 8,000,000-gas cap, because heap operations and storage writes consume the whole block budget. The paper's six algorithms avoid this by making the users carry the computation. AMF and W/AMF spread the iterative rounds into per-round claim transactions, recomputing the unit share as $\\lfloor c / \\sum w_u \\rfloor$ when the round turns over. QMF and WQMF count demands by volume bucket and find the largest share that fits the available capacity. SMF and WSMF simulate the full max-min iteration in memory and declare one final share. The measured result is that the costly share-updating function grows roughly linearly but stays under the gas limit for the claimed ranges, while WSMF exceeds the limit beyond 250 users.","pith_inferences":["Because the paper never states the precision $p$ used in the tests, a fair deployment should expose and bound it; without $p \\ge \\max d_u$, weights collapse to zero and the faucet stops distributing.","AMF's final distribution round is first-come-first-served, so its equivalence to max-min fairness is not exact; a comparison on adversarial demand orders would quantify the deviation.","Gas comparisons in the paper are per function call, but from an operator's view the relevant total is the sum over all users' demand and claim transactions; total-cost ranking across algorithms remains an open question.","The quantized share-calculation loop is a general capacity-feasibility search and could be lifted out of the blockchain context into any bounded-budget fair scheduler."],"forward_implications":["Non-commercial blockchain networks can swap fixed-amount faucets for fair faucets while staying under the block gas limit.","AMF, W/AMF, QMF, and WQMF have hot paths independent of the number of users, so their gas costs do not grow with community size.","SMF and WSMF give small communities the exact simulated max-min distribution in one declared share, at the price of a 250-user ceiling under the tested parameters.","The same contracts can act as generic on-chain schedulers for any integer-valued resource, not only free tokens, and the weighted versions can encode long-term fairness policies."],"supporting_citations":[{"why":"This reference defines gas accounting and the block gas limit that serve as the paper's main cost metric.","marker":"[2]"},{"why":"This reference supplies the max-min fairness allocation scheme that all six algorithms implement or approximate.","marker":"[32, 33]"},{"why":"This reference holds the open-source Solidity implementations and test data behind the reported gas measurements.","marker":"[4]"},{"why":"This reference provides the comparative Ethereum min-heap whose insert and delete costs set the CMF ~10-user ceiling.","marker":"[48]"},{"why":"This reference carries the earlier W/AMF experiments reused in the AMF and W/AMF gas-cost comparison.","marker":"[49]"}],"fun_headline_variants":["Six max-min faucets dodge the 10-user gas cliff","Fair faucets: users carry the load to beat gas limits","Smart-contract faucets: 6 ways past the 10-user wall","Faucet fairness without the gas blowout: 6 designs","Gas-friendly fairness: six faucet variants that scale"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"The entire scheme depends on the precision parameter p being set high enough that no user's weight and no per-round share rounds down to zero; the paper does not state this lower bound, and if it is violated the faucet distributes nothing.","fun_headline_variants_meta":{"raw":{"variants":["Six max-min faucets dodge the 10-user gas cliff","Fair faucets: users carry the load to beat gas limits","Smart-contract faucets: 6 ways past the 10-user wall","Faucet fairness without the gas blowout: 6 designs","Gas-friendly fairness: six faucet variants that scale"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.00034,"raw_usage":{"total_tokens":1920,"prompt_tokens":1032,"completion_tokens":888,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":648,"completion_tokens_details":{"reasoning_tokens":799}},"tokens_in":648,"tokens_out":888,"duration_ms":8747,"temperature":1.0,"reasoning_tokens":799,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-07T10:55:11.172505+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Run the weighted smart contracts with p set to 2 and demands drawn from [10,30) during an epoch with positive capacity; if no user receives anything because every computed weight is zero, the missing precision condition is exposed.","supporting_citations":[{"cited_title":"Ethereum: A secure decentralised generalised transaction ledger","cited_arxiv_id":null,"evidence_quote":"This reference defines gas accounting and the block gas limit that serve as the paper's main cost metric."},{"cited_title":"blockchainFaucet","cited_arxiv_id":null,"evidence_quote":"This reference holds the open-source Solidity implementations and test data behind the reported gas measurements."},{"cited_title":"Priority Queue on Ethereum: eth-heap","cited_arxiv_id":null,"evidence_quote":"This reference provides the comparative Ethereum min-heap whose insert and delete costs set the CMF ~10-user ceiling."},{"cited_title":"Max–min fairness based faucet design for blockchains","cited_arxiv_id":null,"evidence_quote":"This reference carries the earlier W/AMF experiments reused in the AMF and W/AMF gas-cost comparison."}],"review_version":1}