Bitcoin Forum
July 26, 2021, 04:34:15 PM *
News: Latest Bitcoin Core release: 0.21.1 [Torrent]
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 [2]
21  Bitcoin / Development & Technical Discussion / Shower-Thought Idea: Constrain UTXO set growth, not blocksize on: May 10, 2015, 03:47:29 PM
We've historically constrained the block size because it was the most logical thing to do. Bigger blocks take longer to propagate, and needed to be stored by all nodes. However we are quickly coming upon a future where bigger blocks can propagate at the same speed as smaller ones (IBLT) and full nodes can prune.

So instead of constraining the block size, how about we constrain the growth in UTXO. For instance we could constrain the each block to being able to increase the the UTXO set up to a fixed amount (e.g. 100 KiB).

Now instead of miners selecting for the most fees for the size, they would select for the most fees per growth in utxo. Many transactions decrease the UTXO, which is miners would strongly prefer. It wouldn't even be hard to imagine miners paying to accept a transaction that dramatically decreased the UTXO set.

We'd still need a very large block limit, to stop miners creating spam blocks (although they'd have huge incentives not to: they would have slow block propagation if they created a block full of crap that wasn't already on the network) 
22  Economy / Gambling / Introducing on: April 11, 2015, 03:16:17 AM
New Thread:


We decided to take a more visually-driven approach to traditional dice sites: As
you bet, you watch your balance go up and down.

  • Green = win
  • Red = lose

Here's a quick rundown:
  • Mobile Ready
  • Keyboard driven betting (use your arrow keys)
  • House edge: 1% (or less!)
  • Investment System
  • Users, bets and funds managed by
  • Provably fair, and checked after each bet
  • Invest in the house, through

DustDice is the first app that implements the new MoneyPot API, it's in an early state right now now, but we're improving fast.

23  Economy / Gambling / :: The bitcoin gambling wallet on: April 11, 2015, 02:33:37 AM is currently up for auction:
Note to players/casinos: Any change of ownership, or event that would have any impact or risks will be clearly announced significantly in advance.

Users balances, logs, ip addresses, deposit and withdrawal history will **NOT** be included in this sale

MoneyPot is a general-purpose, yet gambling oriented Bitcoin web-wallet that gives you control over the applications that have access to your balance. You can transfer your bitcoin between your MoneyPot wallet, apps, and your investment in the global bankroll. Our goal is to make this as simple as possible. When you want your money out of the pot, just send it to any bitcoin address so it's back in your pocket.

We're a fully incorporated company in Costa Rica  ( MoneyPot S.R.L. Company No. 3-102-700828)

Authorize Apps

Users get to authorize apps and then move money from their MoneyPot wallet into the app so they can spend it there:

For example: If you have 1 bitcoin (1,000,000 bits) in your MoneyPot account, you can deposit half of it into the DustDice app. Now, when you go to DustDice, DustDice only has access to half a bitcoin.

You can transfer bits between your MoneyPot wallet and individual apps at any time. When you're done with an app? Simply disable it.

Manage your money in one place

You can transfer your bitcoin between your MoneyPot wallet, apps, and your investment in the global bankroll. Our goal is to make this as simple as possible.

When you want your money out of the pot, just send it to any bitcoin address so it's back in your pocket.

Comprehensive balance history

Every time your balance changes for any reason, we create a history item so that you can audit exactly what happens to your money while it's under our control.

Send money

Your money is yours. As you'd expect, you can send from MoneyPot to any bitcoin address. But you can also send directly to other MoneyPot users without any fees.

Generate addresses

You can use MoneyPot as a general-purpose wallet without even using any apps.

For every address you generate, you can attach a private note to yourself for what it was for. You can also create "Cold" addresses which will be kept out of our hot wallet for your privacy. Perfect for receiving from places, that monitor your outgoing transactions (like coinbase)

Secure your account

You can enable and disable two-factor authentication as your please.

But we also keep track of every login attempt on your account, every active session, and the IP address of each session for your inspection.

Invest in our global bankroll

For more information, see: and checkout our faqs

24  Economy / Gambling / Challenge: What's the best way to win 1 BTC with 1 BTC? on: January 29, 2015, 04:43:48 AM
Challenge: The person who provides the best way to win 1 BTC using a bankroll of 1 BTC. I will give 0.1 BTC to (payable to their moneypot account).

Assuming the constraints of a dice site such as or 1% house edge, 9900x max payout, 1 satoshi minimum bet.  Provide a well-defined betting sequence to maximize the chance of winning 1 BTC. If I don't have the skills to analytically analyse your solution, I will be forced to simulate it over a few billion runs. Your betting sequence must be FULLY specified without any ambiguities.

Let me start with the most obvious solution:

Bet 1 BTC @ 2x  ... which gives an EV of -0.01, and a chance of winning at 49.5%
25  Economy / Gambling discussion / Provably Fair Seeding Event on: January 12, 2015, 10:50:35 PM
Welcome to the first provably fair seeding event. One of the most requested features of bustabit has been to create a provably distribution of game crashes, to replace our provably predetermined multipliers.

The original scheme of turning a multiplayer game in which peers do not trust each other was first proposed by Dooglus, refined by Eric and solidified into code by Steve.

The high level of the scheme is as follows:

1) We have generated a chain of 10 million sha256 hashes, starting with a server secret that has been repeatedly fed the output of sha256 back into itself 10 million times. The sha256 of the final hash in the chain is: c1cfa8e28fc38999eaa888487e443bad50a65e0b710f649affa6718cfbfada4d, by publicising it here we are preventing any ability to pick an alternate sha256 chain.

2) Bustabit will play through that chain of hashes, in reverse order, and use the hashes to determine the crash point in a probably fair manner.

3) To avoid criticism that the Bitcoin address used in step 1 was carefully chosen to generate lots of "bad" crash points, each hash in the chain will be salted with a client seed, which we have no control of. The client seed will be the block hash of a Bitcoin block that hasn't yet been mined: block 339300.

The reference code (javascript) is as follows:

The method to create the hash chain is simply sha256:
function genGameHash(serverSeed) {
  return crypto.createHash('sha256').update(serverSeed).digest('hex');

The method to convert a game hash, mix it with the picked client seed to a money pot multiplier:

function crashPointFromHash(serverSeed, clientSeed) {
  function divisible(hash, mod) {
    // We will read in 4 hex at a time, but the first chunk might be a bit smaller
    // So ABCDEFGHIJ should be chunked like  AB CDEF GHIJ
    var val = 0;
    var o = hash.length % 4;
    for (var i = o > 0 ? o - 4 : 0; i < hash.length; i += 4) {
      val = ((val << 16) + parseInt(hash.substring(i, i+4), 16)) % mod;

    return val === 0;

  var hash = crypto.createHmac('sha256', serverSeed).update(clientSeed).digest('hex');

  /* In 1 of 101 games the game crashes instantly. */
  if (divisible(hash, 101))
     return 0;

  /* Use the most significant 52-bit from the hash
     to calculate the crash point */
  var h = parseInt(hash.slice(0,52/4),16);
  var e = Math.pow(2,52);

  return Math.floor((100 * e - h) / (e - h));

The chain could be generated with code such as:

var serverSecret =  'If you knew this, you could steal all my money';
var clientSeed = '0000examplehash';

var gamesToGenerate = 1e7;

var serverSeed = serverSecret;

for (var game = gamesToGenerate; game > 0; --game) {
  serverSeed = genGameHash(serverSeed);
  console.log('Game ' +  game + ' has a crash point of ' + (crashPointFromHash(serverSeed, clientSeed) / 100).toFixed(2) +'x', '\t\tHash: ' + serverSeed);

var terminatingHash = genGameHash(serverSeed);

console.log('The terminating hash is: ', terminatingHash);

Using our chosen starting serverSeed, the hash terminating the chain is c1cfa8e28fc38999eaa888487e443bad50a65e0b710f649affa6718cfbfada4d. That is to say, the first game's hash played under the new provably fair scheme, when hashed will be c1cfa8e28fc38999eaa888487e443bad50a65e0b710f649affa6718cfbfada4d.
Pages: « 1 [2]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!