全 25 件のコメント

[–]phoshi 4ポイント5ポイント  (8子コメント)

The basic idea is that it's a chain of blocks, in a fairly literal (CS) sense. The genesis block is the first block in the chain, and it contains a bunch of data and information and junk. The block after the genesis block then contains the hash of the genesis block as part of the header, which is how the "chain" bit is formed. Each block contains a reference to the previous block, meaning you can start from the end and validate that each block is meant to be on the end of the previous block.

Hashing is extremely important to bitcoin. In a very abstract sense, a hash function is anything which takes some block of data, and returns a number. If you put the same data in, you get the same number. If you put different data in, you get a different number. A cryptographic hash, like bitcoin uses, has the additional constraint that even tiny changes in the input data makes for huge changes in the output number, such that you can't guess what data would make a particular number. This is vital for how bitcoin works.

The second important part of the block header is the nonce. This is just a number, but it's a part of the block you can change without changing anything about the block itself. A valid block on the blockchain is one where the hash of the entire block, including the previous block hash, and the nonce, has more leading zeros in it than the difficulty factor. Because you can't guess what data will create a given hash, there's essentially no choice but to sit there tweaking the nonce until you get a hash that happens to have the right number of zeroes. At this point you can tell the rest of the network you've found a block, and they go and look at your block, make sure it hashes right, make sure the previous block hash matches their chain, and then they stick it on the end and start working on the next block in the chain.

Repeat ad infinitum.

[–]Commander_Bunnyhop[S] 0ポイント1ポイント  (5子コメント)

Thank you for your answer, i´ll be honest, i am going to need some time to digest this, again sorry for the follow up question, but what exactly is a hash?

ETA, i did google it but cannot find any sources that are way to technical for my basic knowledge.

[–]zom-ponks 2ポイント3ポイント  (4子コメント)

A "hash" is an one-way function, used for signatures etc.

For instance, a MD5 hash (md5 is out of date, but the point is the same for modern ones) turns the phrase "Hello, World!" into "29b933a8d9a0fcef0af75f1713f4940e".

First of all, you can't deduce "Hello, World!" from the hash (easily), and changing just one character in the phrase changes it completely.

So,

"Hello, World!" -> "29b933a8d9a0fcef0af75f1713f4940e"
"Hello, world!" -> "78016cea74c298162366b9f86bfc3b16"

So it's difficult to tamper with the original phrase without changing the hash output dramatically.

The Wikipedia page has a good summary.

[–]Commander_Bunnyhop[S] 0ポイント1ポイント  (3子コメント)

Thank you, from my understanding, a randomly generated code to pick things out of randomly generated codes for stuff in a database.

[–]ButtBernanke 2ポイント3ポイント  (0子コメント)

It's not really random. Think of it as a machine where you put something as input, and you always get the same output:

ABCD --> F29ABB32

But the output looks random.

More importantly, you cannot reverse the process. From F29ABB32, you cannot go back to ABCD. The only way to go back would be to try all combinations until you find one that matches.

Also, it goes from variable size to fixed size:

This is a sentence --> B362FF92

This implies you can have collisions (that is, multiple inputs produce the same output). But it is very difficult to find collisions. You would have to try many, many different inputs.

You can go online and play with http://onlinemd5.com for example.

[–]Commander_Bunnyhop[S] 0ポイント1ポイント  (1子コメント)

Thank you for the answer, i am not a smart man, i just googled the frase eli5 the blockchain and saw that it was asked a multitude of times allready, i have some reading to do.

[–]jjolla888 1ポイント2ポイント  (0子コメント)

think of the hash as a "fingerprint"

any one chunk of data has a fingerprint. it is always the same for the same data.

but changing just one character in the chunk of data will create a completely different fingerprint

eg:

the rain in spain falls mainly on the plain -> 262aac1a988ef3be5b01d1a565cc5acb

the rain in Spain falls mainly on the plain -> 1a04c2018d76fd09ca5a7f96779e5b4a

[–]jjolla888 0ポイント1ポイント  (1子コメント)

ok, so how do all those shenanigans you have just described prove that i have N bitcoins and I can spend M bitcoins in a transaction, and that the recipient has an extra M bitcoins?

[–]phoshi 0ポイント1ポイント  (0子コメント)

They don't, the blockchain has nothing to do with bitcoin inherently. Cryptocurrency is just a layer sitting on top of a blockchain. In this case, when I start putting together a block, I choose who's transactions I'm going to put inside of it, and when I'm done figuring out the nonce, everyone else sticks that block on the end of their chain and we all agree those things have happened. Your balance is then just the inputs to that address, minus the outputs, which is why a full wallet requires the entire blockchain to operate.

[–]Zotamedu 3ポイント4ポイント  (10子コメント)

It is a digital ledger that holds a record of every transaction ever and it is terribly inefficient and just plain stupid.

[–]Commander_Bunnyhop[S] 1ポイント2ポイント  (9子コメント)

Thank you for your answer, forgive me the followup question, if this is a public record that anybody can download, then where is the much vaunted anonimity ?

[–]zom-ponks 2ポイント3ポイント  (6子コメント)

It's not anonymous, and never was.

If somebody can figure out your address(es), then you and your transactions are unmasked.

The main "security" feature is that the addresses are not linked to you or anything else by default, and anybody can create a multitude of them. And it's actually recommended, which has resulted in plenty of popcorn for us.

[–]Commander_Bunnyhop[S] 1ポイント2ポイント  (5子コメント)

So, to hide your transactions (of wich you will still need to keep a record somewhere i would think) you will need to cryptographically (very hard word for someone with english as a fourth language) coded code to acces the code for every transaction you ever made on the blockchain?

[–]zom-ponks 3ポイント4ポイント  (4子コメント)

You can't hide your transactions at all.

If I know your address (which is public), I can see your transactions.

The only ways to "hide" are

a) You move your coins from your, known, address, to a different one, with coins from different sources, and then that address moves them to your recipient and different recipients. This is known as "mixing". It's not as effective as it sounds, but it does obfuscate things a bit.

b) You move your coins to an exchange, move it to cash or a different cryptocurrency. Then you take your cash or other crypto and move it back to bitcoins. This breaks the trail from your address to your recipient. It's also horribly ineffective.

[–]Prom3th3an 2ポイント3ポイント  (1子コメント)

You forgot about the "change" effect. If I receive an amount and then want to spend a smaller amount, I have to split the first amount into two. One of these I send back to my other address. If I'm lucky, you can't guess which of the two receiving addresses is mine.

[–]zom-ponks 1ポイント2ポイント  (0子コメント)

Yeah, true. I'm not too familiar with the specifics of mixing.

I thought the actual money laundering services mixers did multiple rounds of send/receive to several addresses, or something to that effect.

[–]Commander_Bunnyhop[S] 0ポイント1ポイント  (1子コメント)

Thank you for the answer, i am not a smart man, i just googled the frase eli5 the blockchain and saw that it was asked a multitude of times allready, i have some reading to do.

[–]zom-ponks 1ポイント2ポイント  (0子コメント)

Don't worry about it, I'll give you a week and you'll be more clued up than the average bitcoiner.

[–]Zotamedu 2ポイント3ポイント  (1子コメント)

It's not really anonymous but it's not trivial to connect a transaction to a person. You can easily follow any and all transactions but you don't know who made them. At least not until they take your computer and see that you are in fact owning certain wallets/addresses, they there's an free and easily browsable database to see what you have been up to.

[–]Commander_Bunnyhop[S] 0ポイント1ポイント  (0子コメント)

Thank you for the answer, i am not a smart man, i just googled the frase eli5 the blockchain and saw that it was asked a multitude of times allready, i have some reading to do.

[–]jstolfi 2ポイント3ポイント  (2子コメント)

seems so terribly inefficient and just plain stupid

That is the basic idea. The technical details are not important.

[–]biglambda -1ポイント0ポイント  (1子コメント)

You are the poster child for the phrase "Those who can't do, teach".

[–]biglambda 0ポイント1ポイント  (0子コメント)

The idea behind the blockchain's design is not targeted towards efficiency. The design trades efficiency for perpetual immutability. Meaning that if it continues working as designed, no one can remove information from the ledger and miners will always be incentivized to secure it. Whether that can happen forever is another question, but the point is not to be efficient. If you want to be efficient we already have that technology it's called a database server.

[–]realhacker 0ポイント1ポイント  (0子コメント)

its a distributed transaction ledger of criminals, drug dealers and pedos