8 ms·
Serious question: How is blockchain superior than me just creating a git repository on GitHub called "allmoney" and just setting it up such that a commit repre
by endisneigh 5y ago
Serious question:
How is blockchain superior than me just creating a git repository on GitHub called "allmoney" and just setting it up such that a commit represents a transaction and the log represents the ledger?
I also don't see how block chains or smart contracts can override reality. Let's say you buy a house using a smart contract, and someone, in real life, comes to you with a gun and says give me your wallet and transfer it to me, or you die. Are we supposed to just accept that? If not, what mechanism will undo the crime and restore the house back to the [rightful] owner?
it just all seems dumb, imo - technology cannot exist in a vacuum, ever.
- asjdflakjsdf 5y agowell one reason is that you (or github) would be the owner of that ledger. And we would have to put all of our trust in you
- endisneigh 5y agois that a problem, though? all participants could clone the repo. it would be trivial to see if GitHub or I tampered with the ledger.
- dumbfoundded 5y agoYeah so like you've just rediscovered proof of work. If a bunch of people clone it, who can say which repo is the real repo? Well you burn a bunch of electricity in a provable way to vote for a repo. The repo with the most burned electricity is the real repo.
- endisneigh 5y ago> Yeah so like you've just rediscovered proof of work. If a bunch of people clone it, who can say which repo is the real repo? Well you burn a bunch of electricity in a provable way to vote for a repo. The repo with the most burned electricity is the real repo. what? no, the original repo is the real repo. my point is, is that the transparency makes it impossible for you to not trust me/GitHub. why wouldn't you trust? you can see nothing was altered yourself - and if it is altered, the issue isn't trust anymore, I've simply committed fraud and you can use the existing legal system to punish me. this is the same reason you would trust open source software installed on your machine, said machine that presumably has access to your environment/browser/etc which could contain a virus to take your existing fiat money today.
- asjdflakjsdf 5y ago>what? no, the original repo is the real repo. my point is, is that the transparency makes it impossible for you to not trust me/GitHub. So we are back to trusting you again. transparency is not certain from github or from you
- endisneigh 5y agotrusting implies believing, right? you don't need to believe or trust, you can just see the repo yourself. git diff hash1 hash2. if the repo is public it's inherently transparent. I'm not sure I follow your rebuttal.
- giaour 5y agoThe central authority (here, Github or the repo owner) can rewrite history by rebasing and then force pushing. The only way you can detect that as a third party is by cloning the repo and periodically pulling to make sure the history of the main/master branch has not been altered. If it has been altered, how can you prove that you didn't just rewrite history locally and then make a spurious claim? You would need others with local copies to vote on which history was legitimate.
- endisneigh 5y agoif one were to actually implement what I'm describing, the transactions would need to be signed by the participating parties, so it wouldn't be possible to do what you're describing anyway.
- eeegnu 5y agoHow can you know nothing was altered, even if you stay in constant sync with the git repo, if github wanted they could selectively send different copies to different people. The entire point is that it's a trustless system where malicious actors get drowned out by others, especially if they're uncoordinated.
- deleted 5y ago[deleted]
- nsilvestri 5y ago> How is blockchain superior than me just creating a git repository on GitHub called "allmoney" and just setting it up such that a commit represents a transaction and the log represents the ledger? Blockchains are designed in such a way that each new block contains information from the previous block. Changing a single transaction in the past on a blockchain requires doing all the work to make each subsequent block conform to the rules, something which is designed to be prohibitively expensive to do by generating unlikely random hashes with special properties. Even if someone decided to do this anyway, the protocol says that in the case of competing chains, go with the chain that has the most work put into it. So it's just not feasible for someone to rewrite history in a healthy chain with many nodes validating/mining blocks; they just can't catch up, and nobody will trust their chain. Git commits are designed around the idea that they can be rearranged relatively freely, and rearrangements are cheap, so there's no good criteria for trusting the git history that has the most work done with it.
- giaour 5y agoThis is more a social convention than a technical limitation. Both Git and blockchains use Merkle trees to describe a linear history, and both allow rewriting history (via "git rebase" for the former and forking + the manual equivalent of a rebase for the latter). Many hosted Git repos disallow rewriting history on the central branch (i.e., they do not permit force-pushing to the main/master branch).
- fastball 5y agoI think you have it backwards. On git it is a social convention, and when it's a technical one it's only because some singular 3rd party (e.g. Github) has made it this way. e.g. an employee at GH certainly can rewrite history on the central branch of your repo. Not true for a distributed blockchain.
- endisneigh 5y agothis is not really true. how exactly could a GH employee rewrite history on the central branch without being detected?
- walexander 5y agoIs this actually a serious question? Do you think there is no point to PayPal, or do you think your GitHub repo is an equivalent replacement? Is forwarding an email to a bunch of people equal to twitter? The point of cryptocurrency and smart contracts from a technology perspective is that it is distributed, decentralized/p2p, and has immutable atomic operations. There were lots of early cryptocurrencies and lots of early ledgers. World of Worldcraft gold is a a digital currency if you want to call it one. What bitcoin solved was decentralized atomic operations (double spend). That's pretty much it. Whether or not you need that is open for debate, but points like you're making are ridiculous.
- endisneigh 5y agoyeah, I am serious. git is already distributed and decentralized. you can also enable immutable atomic operations. it's also optionally transparent like a blockchain. in practice what's the difference? what can you do with a blockchain that you couldn't do with a repo?
- jonreem 5y agoSettle positions between two mutually non cooperating parties. Your github solution doesn't consider that many non cooperating parties may want to do conflicting things on chain and you need a trustless way to resolve those conflicts. First writer wins to a centralized database at github is not an acceptable settlement method for billion dollar transactions. EDIT: A blockchain is not just about keeping a history, it's also about maintaining liveness of the chain and preventing censorship even when many non cooperating parties are involved with conflicting incentives.
- endisneigh 5y agoyou don't need a trustless way - the two mutually non cooperating parties could fork the repo, reconcile separately using traditional git tools and then have the new commit(s), representing the conflict, merged into the main branch. this is literally already what happens with software development now.
- didibus 5y agoGit lets you rewrite history. And I can easily modify the files on GitHub to show that actually I own all your money. Also, I can make a PR that says that Joe gave me 100$. When Joe in fact did not give me 100$, in fact, Joe doesn't even know me. Yet I can still make a PR for that and how would you know to merge it or not? Also, I can make a PR where I have 0$, but I transfer 10000$ from myself to Barbara. What is there to stop it? You could just go and accept my patch and I just created money that didn't exist. Another example is I can have 10000$ and make 10 PRs all showing that I am transferring that 10k to a different person. You merge them all, and now with only 10k I managed to transfer 100k. Etc. Basically it's just insufficient in many many ways. Blockchain requires everything to be cryptographically signed. In a blockchain, each dollar is cryptographically accounted for. Each person is cryptographically accounted for. And the whole system is redundant so that if you temper with one repo it doesn't matter, you need to temper with the majority of them. Edit: And to your other question. If someone forces you to transfer your coins from your wallet to theirs, you got your coins stolen. Currently most cryptocurrency are designed to be anonymous. In that case, you're screwed. But there could be non-anonymous cryptocurrencies. Those would allow to track criminals much more effectively as it be difficult for them to hide the trail of money. Even in the anonymous case though, if there were processes around this, the network could decide okay this transaction was fraudulent, we agree, and the money trail would all be there, so it could choose to correct it, reinstitute you the fund, do charge backs, or whatever else it wants. That would be much harder with real cash, because the cash is gone, even if you say yup your cash was stolen, nobody knows where it is now. With crypto you'd know where it is, and you'd know which wallet stole it from yours. So that's already a little better. For example, you could imagine that you'd have say 24h to claim a fraudulent transaction, as soon as you do, all stolen funds could be frozen in the entire network for 14 day, where an investigation would take place. Etc. The technology opens up this kind of things.
- avianlyric 5y ago> Git lets you rewrite history Not quite true. Git makes it possible to hard fork it’s internal commit tree, and easily move the HEAD marker to your new fork. But it’s obvious to everyone observing the tree that the modification has happened. Same applies to all normal blockchains. Only difference is that blockchain clients will ignore that fork if the correct proof work hasn’t been provided, but you could add that to a git commit if you really wanted too. The git commit tree is cryptographically signed, every commit is identified by its cryptographic hash, and that has is taken from the content of the commit, which includes the hash of the parent commits. So you can cryptographically prove that a specific git tree is properly linked together, and the each individual commit hasn’t been tampered with. The ability to detect tampered commits, and observe forks is all you really need for a blockchain. Everything else is just deciding how you determine which branch is the “real” branch. But you don’t need proof of work for that, it could be enforced by courts or governments the old fashioned way. As for your PR stuff. You can fix that by publishing an agreed set of valid commit types, which limits the types of modifications that are allowable. Then when validating a tree, you ignore commits that don’t meet that specification (just like more traditional blockchains do). Ultimately the only novel thing blockchains bring to the table is proof of work algorithms etc which allow for supposedly decentralised trust. But decentralised trust doesn’t really exist when dealing with physical assets. At the end of the day ownership is determined by your ability to physically defend your assets, or ability to convince the state to defend them on your behalf. So if the state says you don’t own your house (and the courts agree), then the content of your decentralised blockchain is irrelevant because it won’t stop the police from forcibly evicting you.
- somethoughts 5y agoI actually use this analogy in my own thinking. I think there are for sure similarities although I say this without having read any crypto white papers. In my mind at least, blockchain is probably a stricter subset of the git feature set (no git push --force, only git commit -a -m is allowed, and probably a much more strict process to merge PRs to the master branch). There's probably a built in verification and mirroring aspect as well. In my mind, blockchain is a very strict, application specific implementation of git for finance.
- jerry1979 5y agoCrypto does not override reality as much as it creates new pockets for reality to exist within. Want to create a group project that splits funds with people in various parts of the world? Crypto might work well for that. To partially address your question about the github "allmoney" repository, some people already have a similar system called Hawala. People who make that system need to have networks of trust set up. https://en.wikipedia.org/wiki/Hawala https://en.wikipedia.org/wiki/Hawala