Bitcoin Forum
June 21, 2024, 07:30:29 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3] 4 5 6 7 8 9 »  All
  Print  
Author Topic: Amateur hour  (Read 8225 times)
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
March 12, 2013, 06:04:44 PM
 #41

Fees are optional and can be set to any level.

Transaction priority is partly based on age, so your "old" spam trumps any "new" transaction with the same fee or less.

That is false (or at best incomplete).  Spammy tx are spammy regardless of age and thus always low priority and thus always require a fee to be included by miners or relayed by nodes using the reference client rules.

How are you going to "fix" something you don't understand?
wtfvanity
Hero Member
*****
Offline Offline

Activity: 504
Merit: 500


WTF???


View Profile
March 12, 2013, 06:08:09 PM
 #42

if you could control about 10 Thash/s currently you would have voting power and could you not obtain that by gaining control of Deepbit, 50BTC, Ozcoin and BTCGuild?

Let's say you could.  Then what would you do with this voting power?

Well, what I would do is muster a DDOS attack on www.sesamestreet.org, but that's just me.

The more important question is what would a group of professional Russian hackers do? The answer to that is forge a million BTC and use the proceeds to underwrite an expansion of their criminal enterprises.

An even more scary possibility is that the Schumerites would take over the network and deploy armageddon: delete half the coins and quadruple spend the other half, or just transfer everyone's coins randomly between different addresses. Now, THAT would be FUD.

This is your post from august 2012. And you're telling us bitcoin has serious flaws? Yeah.


Hey, ease up there prezbo. Between August 2012 and today, he has gone from a newb troll to a Professional Programmer.

Duh.

          WTF!     Don't Click Here              
          .      .            .            .        .            .            .          .        .     .               .            .             .            .            .           .            .     .               .         .              .           .            .            .            .     .      .     .    .     .          .            .          .            .            .           .              .     .            .            .           .            .               .         .            .     .            .            .             .            .              .            .            .      .            .            .            .            .            .            .             .          .
SgtSpike
Legendary
*
Offline Offline

Activity: 1400
Merit: 1005



View Profile
March 12, 2013, 06:09:30 PM
 #43

- Generate new bitcoins proportionally to the volume of transactions and distribute the new coins proportionately to existing holders of bitcoins; the whole mining thing is pointless and destabilizing.
Please do explain what the point of distributing new coins proportionately to existing holders of coins?  It's the equivalent of changing the decimal place and claiming you are 10 times richer because of it.

For how smart you claim to be, you sure are disappointing me with your "solutions".

P.S.  I knew a guy on the internet who claimed he owned a lambo too.   Wink
oOoOo
Full Member
***
Offline Offline

Activity: 238
Merit: 100


View Profile
March 12, 2013, 06:13:14 PM
 #44


Right now, I not planning on re-arranging my life to take an unpaid position as a bitcoin developer. I am just saying that it is inevitable that the design and development move to a new level, so we, as a community, need to adopt the mindset that evolution must occur and figure out how to do that.

Please show one piece of code you've actually written ->
prezbo
Sr. Member
****
Offline Offline

Activity: 430
Merit: 250


View Profile
March 12, 2013, 06:13:43 PM
 #45

Fees are optional and can be set to any level.

Transaction priority is partly based on age, so your "old" spam trumps any "new" transaction with the same fee or less.

That is false (or at best incomplete).  Spammy tx are spammy regardless of age and thus always low priority and thus always require a fee to be included by miners or relayed by nodes using the reference client rules.

How are you going to "fix" something you don't understand?
If you wanted to make a sustainable attack of 1000 transactions per 10 minutes (which current network could probably handle), you would need at least 0.01*144*1000*100 = 144000 btc (making 0.01 btc payments for 144 blocks in a day, 1000 transactions per block, and each 0.01 btc input has a 100 day "cooldown period"). Does this look accurate?
wtfvanity
Hero Member
*****
Offline Offline

Activity: 504
Merit: 500


WTF???


View Profile
March 12, 2013, 06:20:01 PM
 #46

Fees are optional and can be set to any level.

Transaction priority is partly based on age, so your "old" spam trumps any "new" transaction with the same fee or less.

That is false (or at best incomplete).  Spammy tx are spammy regardless of age and thus always low priority and thus always require a fee to be included by miners or relayed by nodes using the reference client rules.

How are you going to "fix" something you don't understand?
If you wanted to make a sustainable attack of 1000 transactions per 10 minutes (which current network could probably handle), you would need at least 0.01*144*1000*100 = 144000 btc (making 0.01 btc payments for 144 blocks in a day, 1000 transactions per block, and each 0.01 btc input has a 100 day "cooldown period"). Does this look accurate?

Ask the professional programmer.

          WTF!     Don't Click Here              
          .      .            .            .        .            .            .          .        .     .               .            .             .            .            .           .            .     .               .         .              .           .            .            .            .     .      .     .    .     .          .            .          .            .            .           .              .     .            .            .           .            .               .         .            .     .            .            .             .            .              .            .            .      .            .            .            .            .            .            .             .          .
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
March 12, 2013, 06:21:36 PM
 #47

That assumes
Fees are optional and can be set to any level.

Transaction priority is partly based on age, so your "old" spam trumps any "new" transaction with the same fee or less.

That is false (or at best incomplete).  Spammy tx are spammy regardless of age and thus always low priority and thus always require a fee to be included by miners or relayed by nodes using the reference client rules.

How are you going to "fix" something you don't understand?
If you wanted to make a sustainable attack of 1000 transactions per 10 minutes (which current network could probably handle), you would need at least 0.01*144*1000*100 = 144000 btc (making 0.01 btc payments for 144 blocks in a day, 1000 transactions per block, and each 0.01 btc input has a 100 day "cooldown period"). Does this look accurate?

That assumes no other transactions on the network.  As tx volume increases legit users will raise their fees to ensure they are included in blocks in a timely manner.  That means you would need to start paying fees (and then increasing amount of fees) or find your tx excluded.  However yes with a "principal" of 144,0000 BTC you could add 1,000 tx to each block assuming you also could afford sufficient tx fees to "buy" enough space for them.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
March 12, 2013, 06:24:28 PM
 #48

P.S.  I knew a guy on the internet who claimed he owned a lambo too.   Wink

sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
March 12, 2013, 06:25:16 PM
 #49

Well, in my opinion there are several steps that would be key improvements:

- Create a chained trust system, this would allow a transaction to be verified by a logarithmically smaller number of clients; the key observation here is that to prevent double spending you do not need a majority of machines to vote, you only need a quorum of trusted machines; to understand this note that there are the so-called "5 degrees of separation" meaning that you "know" everybody in the world friend of a friend of a friend, etc. If each client has a "reputation" with its neighboring clients, you can create a web of trust such that a transaction can be verified with only a hundred or so votes, instead of the thousands (or millions?) now necessary. Also, these votes will tend to happen on the fastest machines, thus further speeding the process.

- Generate new bitcoins proportionally to the volume of transactions and distribute the new coins proportionately to existing holders of bitcoins; the whole mining thing is pointless and destabilizing.

- Base transaction priority on reputation, not age/size the way it is now. This will speed transactions being done by the largest, most trusted players and push out DOS transactions in a way far more effective and secure than the current system which can be gamed in all sorts of ways.

I would note that a web of trust is also critical to protecting the network against a motivated minority from taking over the system. In the current system, its one machine, one vote. This ill-conceived design has the result that a small group of professionals using large botnets could outvote the network or a big enough sub-network such that they could seize or create coins. As the value of bitcoins grows the feasibility of this kind of attack is increasing. In a reputation system, not all machines have the same vote, but more trusted machines have greater weight, this prevents the possibility of a zombie attack.

You propose a system that would create trusted machines and reputation. BitCoin is built on the belief that no node has a reputation greater or lesser than any other. Distributed systems that have a concept of trust can be gamed by Sybil attacks. How would you allocate 'reputation' to nodes in a way that prevents this? I really don't see how it's possible but I may be missing something.

BitCoin isn't one machine one vote. Voting power is distributed proportional to hashing power. Even then voting only decides which valid transactions get included in the blockchain. No large botnet, or large amount of hashing power, could seize coins from anyone, or create coins in any way other than taking mining rewards or transaction fees. Even if I had some magical ASIC computer with 99.999% of the network hash power I could not take a single cent out of your wallet.

What you propose is so far away from BitCoin there is no way to there from here. This should be an altcoin to see if it really works. It least then we would have an altcoin that isn't just a recompile of bitcoin with very minor changes.
sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
March 12, 2013, 06:27:54 PM
 #50

- Generate new bitcoins proportionally to the volume of transactions and distribute the new coins proportionately to existing holders of bitcoins; the whole mining thing is pointless and destabilizing.
Please do explain what the point of distributing new coins proportionately to existing holders of coins?  It's the equivalent of changing the decimal place and claiming you are 10 times richer because of it.

For how smart you claim to be, you sure are disappointing me with your "solutions".

I assume coins would be split so there are more in circulation. Yes it's exactly the same as moving the decimal place as far as value is concerned but it's still done by major companies all the time. See http://en.wikipedia.org/wiki/Stock_split
SgtSpike
Legendary
*
Offline Offline

Activity: 1400
Merit: 1005



View Profile
March 12, 2013, 06:31:07 PM
 #51

- Generate new bitcoins proportionally to the volume of transactions and distribute the new coins proportionately to existing holders of bitcoins; the whole mining thing is pointless and destabilizing.
Please do explain what the point of distributing new coins proportionately to existing holders of coins?  It's the equivalent of changing the decimal place and claiming you are 10 times richer because of it.

For how smart you claim to be, you sure are disappointing me with your "solutions".

I assume coins would be split so there are more in circulation. Yes it's exactly the same as moving the decimal place as far as value is concerned but it's still done by major companies all the time. See http://en.wikipedia.org/wiki/Stock_split

I thought stock splits were done mostly for psychological reasons?  Because stocks can be traded in fractions, can they not?
sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
March 12, 2013, 06:32:21 PM
 #52

That assumes no other transactions on the network.  As tx volume increases legit users will raise their fees to ensure they are included in blocks in a timely manner.  That means you would need to start paying fees (and then increasing amount of fees) or find your tx excluded.  However yes with a "principal" of 144,0000 BTC you could add 1,000 tx to each block assuming you also could afford sufficient tx fees to "buy" enough space for them.

If you are going to troll the guy at least troll him, not some strawman misinterpretation if what he said.

He said he could generate many of transactions. He did not say he could generate many transactions all of which would be included in the block chain in a timely manner.
benjamindees
Legendary
*
Offline Offline

Activity: 1330
Merit: 1000


View Profile
March 12, 2013, 06:33:59 PM
 #53

Oh good, you don't want to fix bitcoin you want to create ripple 2.0. Go ahead.

+1

Civil Liberty Through Complex Mathematics
prezbo
Sr. Member
****
Offline Offline

Activity: 430
Merit: 250


View Profile
March 12, 2013, 06:34:02 PM
 #54

That assumes
Fees are optional and can be set to any level.

Transaction priority is partly based on age, so your "old" spam trumps any "new" transaction with the same fee or less.

That is false (or at best incomplete).  Spammy tx are spammy regardless of age and thus always low priority and thus always require a fee to be included by miners or relayed by nodes using the reference client rules.

How are you going to "fix" something you don't understand?
If you wanted to make a sustainable attack of 1000 transactions per 10 minutes (which current network could probably handle), you would need at least 0.01*144*1000*100 = 144000 btc (making 0.01 btc payments for 144 blocks in a day, 1000 transactions per block, and each 0.01 btc input has a 100 day "cooldown period"). Does this look accurate?

That assumes no other transactions on the network.  As tx volume increases legit users will raise their fees to ensure they are included in blocks in a timely manner.  That means you would need to start paying fees (and then increasing amount of fees) or find your tx excluded.  However yes with a "principal" of 144,0000 BTC you could add 1,000 tx to each block assuming you also could afford sufficient tx fees to "buy" enough space for them.
Agreed. I was just trying to figure out how much one would need for it to be theoretically possible. 144000 btc is alot.
Jan
Legendary
*
Offline Offline

Activity: 1043
Merit: 1002



View Profile
March 12, 2013, 06:34:42 PM
 #55

I love this forum.

Mycelium let's you hold your private keys private.
Blinken (OP)
Sr. Member
****
Offline Offline

Activity: 338
Merit: 253



View Profile
March 12, 2013, 06:37:28 PM
 #56


Right now, I not planning on re-arranging my life to take an unpaid position as a bitcoin developer. I am just saying that it is inevitable that the design and development move to a new level, so we, as a community, need to adopt the mindset that evolution must occur and figure out how to do that.

Please show one piece of code you've actually written ->

The Fed doesn't pay me enough to put up with this, but ok... here is byte code for x86 that translates either a decimal or hexadecimal string to a binary value (yes, I actually wrote the byte code, and yes, I can read and write x86 machine encodings in hex):

31C053515657555231F68A0280F8307C1080F8397F0B2C3083C6015083C201EBE9C7C50A000000C 7C10100000031DB89F783FE00741058F7E101C383EE0189C8F7E589C1EBEB89D85A01FA5D5F5E59 5BC331C053515657555231F68A0280F8307C0980F8397F042C30EB0C80F8417C1080F8467F0B2C4 B83C6015083C201EBDBC7C510000000EB9F

The decimal reader is at offset 0 and expects a non-digit terminated string at an address in the EDX register. The hex reader is at offset 136 and expects the same input. Both routines return the answer in EAX register. Total bytes: 136.

Here is a more readable piece of code in Java if you are not into machine language:

   /** Number of combinations
    *  In the case that items > slots this value is items! / (slots! * (items - slots)!) .
    *  Goes up to Choose( 66, 33 ) = 7219428434016265740, the maximum that fits in a long.
    *  This is an optimal implementation that uses factorization to reach the largest exact values possible.
    *  Try Choose( 60, 30 ) in a web-based calculator, for example, and you will not get an exact answer.
    *  This is because naive implementations do not use factorization.
    *  @param items  The count of unique things to be combined.
    *  @param slots  The number of slots or opportunities into which to combine them.
    *  @return number of possible unique combinations or 0 in the event of an error or invalid input or -1 in the event of an overflow
    */
   public final static long combinationCount( int items, int slots ){
      if( items < 1 || slots < 1 ) return 0;
      if( slots > items ) return 0;
      if( slots == items ) return 1;
      int extra = items - slots;
      if( extra > slots ){
         slots = extra;
         extra = items - slots;  // extra always has as many or fewer items than slots
      }
      int[] aiNumeratorFactors = new int[100];
      for( int xNumeratorFactorial = items; xNumeratorFactorial > slots; xNumeratorFactorial-- ){
         int[] factors = factor( xNumeratorFactorial );
         if( factors == null ) return 0; // an error has occurred
         for( int xFactor = 1; xFactor <= factors[0]; xFactor++ ){ // add factors to numerator factors list
            if( aiNumeratorFactors[0] == aiNumeratorFactors.length - 1 ){ // need to expand list
               int[] aiNumeratorFactors_new = new int[aiNumeratorFactors.length * 2];
               System.arraycopy( aiNumeratorFactors, 0, aiNumeratorFactors_new, 0, aiNumeratorFactors.length );
               aiNumeratorFactors = aiNumeratorFactors_new;
            }
            aiNumeratorFactors[0]++;
            aiNumeratorFactors[aiNumeratorFactors[0]] = factors[xFactor];
         }
      }
      int[] aiDenominatorFactors = new int[100];
      for( int xDenominatorFactorial = extra; xDenominatorFactorial > 1; xDenominatorFactorial-- ){
         int[] factors = factor( xDenominatorFactorial );
         if( factors == null ) return 0; // an error has occurred
         for( int xFactor = 1; xFactor <= factors[0]; xFactor++ ){ // add factors to numerator factors list
            if( aiDenominatorFactors[0] == aiDenominatorFactors.length - 1 ){ // need to expand list
               int[] aiDenominatorFactors_new = new int[aiDenominatorFactors.length * 2];
               System.arraycopy( aiDenominatorFactors, 0, aiDenominatorFactors_new, 0, aiDenominatorFactors.length );
               aiDenominatorFactors = aiDenominatorFactors_new;
            }
            aiDenominatorFactors[0]++;
            aiDenominatorFactors[aiDenominatorFactors[0]] = factors[xFactor];
         }
      }
      int[] aiNumeratorFactors_fitted = new int[aiNumeratorFactors[0]];
      System.arraycopy( aiNumeratorFactors, 1, aiNumeratorFactors_fitted, 0, aiNumeratorFactors[0] );
      aiNumeratorFactors = aiNumeratorFactors_fitted;
      int[] aiDenominatorFactors_fitted = new int[aiDenominatorFactors[0]];
      System.arraycopy( aiDenominatorFactors, 1, aiDenominatorFactors_fitted, 0, aiDenominatorFactors[0]);
      aiDenominatorFactors = aiDenominatorFactors_fitted;
      java.util.Arrays.sort( aiNumeratorFactors );
      java.util.Arrays.sort( aiDenominatorFactors );
      long nTotal = 1;
      int xNumerator = 0;
      int xDenominator = 0;
      while( true ){
         if( xNumerator == aiNumeratorFactors.length ) return nTotal;
         if( xDenominator < aiDenominatorFactors.length && aiNumeratorFactors[xNumerator] == aiDenominatorFactors[xDenominator] ){
            xDenominator++;
         } else {
            if( Long.MAX_VALUE / nTotal < aiNumeratorFactors[xNumerator] ) return -1; // overflow
            nTotal *= aiNumeratorFactors[xNumerator];
         }
         xNumerator++;
      }
   }

Bitcoin ♦♦♦ Trust in Mathematics, Not Bankers ♦♦♦
acoindr
Legendary
*
Offline Offline

Activity: 1050
Merit: 1002


View Profile
March 12, 2013, 06:39:38 PM
 #57

- Generate new bitcoins proportionally to the volume of transactions and distribute the new coins proportionately to existing holders of bitcoins; the whole mining thing is pointless and destabilizing.
Please do explain what the point of distributing new coins proportionately to existing holders of coins?  It's the equivalent of changing the decimal place and claiming you are 10 times richer because of it.

For how smart you claim to be, you sure are disappointing me with your "solutions".

I assume coins would be split so there are more in circulation. Yes it's exactly the same as moving the decimal place as far as value is concerned but it's still done by major companies all the time. See http://en.wikipedia.org/wiki/Stock_split

I thought stock splits were done mostly for psychological reasons?  Because stocks can be traded in fractions, can they not?

The comparison of currency to stocks by sd isn't apt. The two are not compatible.

But on another note, yes, stock splits are essentially psychological. The value effect has to do with our distorted, manipulated, inflationary market and financial system, but that's another story.

EDIT: also, no, stocks can't be traded in fractions, at least not on any exchange I know of, but that fact is why stock splits for strong companies usually result in each share eventually regaining its pre-split price.
sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
March 12, 2013, 06:51:17 PM
 #58

The comparison of currency to stocks by sd isn't apt. The two are not compatible.

Are you seriously saying that something about the nature of currencies means nobody would ever change shift the decimal point? Or are you just trolling me?

'Since 1960, governments of developing and transition economies have redenominated their currencies on approximately seventy occasions.'
 -- http://www.google.nl/url?sa=t&rct=j&q=remove%20zeros%20currency&source=web&cd=5&cad=rja&ved=0CEoQFjAE&url=http%3A%2F%2Fwww.unc.edu%2F~lmosley%2FAPSA%25202005.pdf&ei=zXc_UZLpO8iNOKvLgKgE&usg=AFQjCNEv2UciW5vxGEzB1j3kpjb-6Bh9Nw

bzzard
Sr. Member
****
Offline Offline

Activity: 398
Merit: 250


View Profile WWW
March 12, 2013, 06:56:56 PM
 #59

As a professional software developer this may be an opportune time to point out that the bitcoin code is an amateur production.

I have the greatest respect for Gavin and others that have donated untold hours to make bitcoin into a reality and I know from experience how tough self-funded development is.

Nevertheless, make no mistakes, the current incarnation of Bitcoin has a lot of ill-conceived design points and implementation weaknesses (as we have seen from the events of the last 24 hours).

Aside from the blunder that just resulted in a blockchain fork, there is a much larger, related issue looming on the horizon, which is the inability of the design to process large numbers of transactions. It is ludicrous we have people whining about "Satoshi Dice" creating numerous transactions. I could sit down and write a software component that could easily generate billions of transactions without breaking a sweat once it is deployed to a few thousand boxes, if I so chose, and yet you are concerned about Satoishi Dice generating a few million transactions. The problem of high-volume transaction handling needs to be answered at a new level which is, unfortunately, way above the paygrade of the current development team.


BTCCharts.com - still for free!
Blinken (OP)
Sr. Member
****
Offline Offline

Activity: 338
Merit: 253



View Profile
March 12, 2013, 07:00:40 PM
 #60

- Generate new bitcoins proportionally to the volume of transactions and distribute the new coins proportionately to existing holders of bitcoins; the whole mining thing is pointless and destabilizing.
Please do explain what the point of distributing new coins proportionately to existing holders of coins?  It's the equivalent of changing the decimal place and claiming you are 10 times richer because of it.

For how smart you claim to be, you sure are disappointing me with your "solutions".

P.S.  I knew a guy on the internet who claimed he owned a lambo too.   Wink

Hey, I am only 140 IQ. You probably need somebody like 165 to solve the bitcoin problem. :-)

As far as the mining is concerned, that was definitely the work of a 125. A much better idea is to increase the supply of coins proportionately to the transaction volume. This would result in price stability, an important characteristic of a currency which bitcoin currently lacks entirely. Note that the supply of bitcoins could also decrease if the transaction volume shrank. The way it should work is that the network continually adjusts the total supply of coins. Each holder does not hold coin totals, they hold a fraction of the total. So, your fraction never changes, but its valuation does depending on the volume of trades.

Price stability is important to the economy for numerous reasons which can you read for yourself in the book "The Stability of Prices" by noted economist, Simon N. Patten.

Bitcoin ♦♦♦ Trust in Mathematics, Not Bankers ♦♦♦
Pages: « 1 2 [3] 4 5 6 7 8 9 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!