• 0 Posts
  • 60 Comments
Joined 2 years ago
cake
Cake day: June 18th, 2023

help-circle
  • Zero Knowledge is not inherently a blockchain advantage and blockchain doesn’t help or hinder this any way.

    I brought it up only because you seemed concerned that privacy couldn’t be achieved using blockchain

    invention of blockchain was little more than an interesting chapter in the big history book of cryptography.

    Yes, Blockchain is a bridge on the shoulders of giants, but before this bridge existed the practical implementation of an autonomous database didn’t exist.

    But company employees sanity checking the business data is also separate from the underlying data.

    Sanity checks are very different from zk proofs. You can’t sanity check to confirm that everyone is being paid the minimum wage.

    They can hire independent auditors if something really fishy is going on. What are you getting at?

    That blockchain and zk removes the need for the auditors to confirm blockchain output. Only external data input requires verification.

    As we have seen from cryptocurrencies, people are perfectly willing to sacrifice their integrity and abscond with ridiculous amounts of money.

    This is the value put on blockchain data, not the integrity of the data itself.

    Need I remind you what happened with The DAO and Ethereum in 2016? Someone messed with the blockchain, so the blockchain developers messed people back?

    There wasn’t another fork where the hackers kept their loot. Consensus won.

    But smart contracts are just software (running on mining nodes) operating on data (in the blockchain). How do you control the access to the data?

    This is just one example: If the on-chain contract gives permission to view the archive of a particular hash then the off-chain database encrypts the archive matching the hash with the requesters public address and makes that publicly available.

    And can’t this be implemented more efficiently on centralised services anyway?

    Not if the viewer can be anyone (or thing) in the world and that viewer has reason to distrust the integrity of the centralised database.

    So why set up access control then? If you don’t care about who is interacting with the system, why have access control? If you actually do care who has access to the information after all, how do you do that without authenticating?

    When you want to restrict access, but you don’t necessarily want to define in advance who can read/write/modify (usually the latter is restricted but read is open). Usually write access is granted in exchange for cryptocurrency.

    And in what sense is this different from traditional publishing systems?

    The data is immutable and highly accessible. It is also usually within an ecosystem of other similar data where synergies exist. The network effect is impossible with centralised databases.

    If the information is available publicly, then it doesn’t matter to the publisher who is accessing it?

    True for read access. Not for write.

    But how do you limit the information to a subset of users without authentication?

    You still have authentication, but it is controlled in a decentralized manner (smart contracts) not by a centralised, possibly untrusted, entity.

    If their identities are not verified, how do you know how to limit that information to that set of users?

    The public address is known, but not the identities. A Know Your Customer type service can be performed if real world identities are essential.

    How do you create an “user group” without specifying who the users in the group are?

    This is just an array of public addresses. You can be as simple or sophisticated as you like with how you add to this.

    …If the users in fact do have keys, then that’s just access control and user identities, isn’t it?

    It’s decentralized access control and IDs.

    You can’t issue people keys without knowing who they are, right?

    Anyone can pick up a key and create their own access point, but in a manner that is integrated with everyone else’s database.

    You’ve invented TLS from ground up.

    We’ve added a database layer and a verification algorithm on top of TLS.

    Blockchain proponents reinventing old cryptography concepts and calling it a blockchain revolution really isn’t surprising.

    The key difference is the how combination of old technologies are integrated.

    Nothing stops people from using private keys and hashed data on non-blockchain systems. That’s just bog standard identity management.

    But just doing that you are missing the immutability and data verification side of the solution.

    Smart contracts are just software that have distributed execution on the mining nodes. They don’t inherently implement access control any better than software that is run on the servers elsewhere.

    It’s better because access is granted without having to ask permission of the database owner.

    concrete examples of a system in use.

    https://hbr.org/2022/01/how-walmart-canada-uses-blockchain-to-solve-supply-chain-challenges

    https://toucan.earth/

    https://www.energyweb.org/

    https://opensc.org/

    Yes, exactly! Except less efficient, like I said.

    Taken independently, each component of blockchain can be implemented more efficiently in a centralised manner. Blockchain is for when you want a certain group of properties to exist concurrently.

    Modern distributed database folks spend quite a lot of time thinking about ensuring consistency and working on efficiency. So do people who build centralised databases.

    But they don’t think about accessibility or immutability. To scale across an industry you need everything.

    Are the hard forks not a big problem

    They are now not frequent enough to be a problem.

    is forking in fact prohibitively expensive to do?

    On your own, yes.

    You know what, we’re going in circles. I try to get to the bottom of why something blockchain related can’t be done with traditional systems.

    It’s the combination of properties blockchain offers cannot be achieved with traditional systems.

    Your problem is that you think you have something new here. It’s not.

    All the components are old but the combination is new.

    There’s nothing “natural” about ending up with a blockchain.

    If you want computation immutability and there is no centralised authority then you end up with blockchain.

    not every Git repository that is cloned elsewhere is meant to stay identical. Nothing in it forces everything to be committed to a “single ledger”.

    In blockchain parlance a non identical clone is a fork. The consensus mechanism removes these. We agree Git is not blockchain, but I’m say that if we add enough constraints and it could be.

    Again, you really shouldn’t be going “well, this solution based on decades old technology kinda looks like blockchain if you squint a little bit.”

    You brought up Git. I’m playing along with the analogy to aid your understanding.









  • But it doesn’t solve these problems. It’s one thing to say that maybe blockchain can give you tools to facilitate intraorganisational problem-solving. It’s entirely another to say that it solves the problem. That’s salesman talk, not system designer talk.

    Now it’s the English language you are picking a fight with? I will happily state that Excel solves my accounting problems.

    Make logging changes a design requirement, then. Nothing stops people from documenting the changesets. Cryptographically hashed and signed, if you’re feeling paranoid.

    Add in verification of changes according ru a strict set of rules and you have reinvented blockchain.

    Zero Knowledge isn’t a “blockchain” solution, it’s just a cryptographical solution.

    It is blockchain compatible. Essential for most layer 2 blockchains. Anyway I only introduced it because you asked about privacy.

    the solutions they’re talking about are cryptography fundamentals that predate blockchain stuff by decades

    But it took decades for someone to realize that these technologies could be covid combined. Neural networks were first proposed in 1944

    And, of course, it’s functionally equivalent to the company staff sanity checking things

    Not at all. The proof is entirely separate from the underlying data.

    Just because you have a trusted adjudicator doesn’t mean deliberate fraud doesn’t happen.

    It’s game theory. The only thing an auditor really sells is their reputation.

    If you don’t set up any authentication for particular items, then how do you control access?

    Pre defined rules set by smart contracts.

    Isn’t setting up access control by definition dependant on some kind of authentication?

    No. You don’t necessarily need to know anything about whoever is interacting with your blockchain.

    If the users aren’t identified, how is this different from the information being available publicly?

    Because the information is limited to a subset of users, who’s identity is not needed.

    More importantly, how is this enabled by blockchain specifically?

    Via private keys and hashed data.

    public blockchains obviously have no access control whatsoever, the entire ledger is public, duh.

    Smart contracts control access on a case by case basis. Only the hash of the data is registered on the blockchain.

    Can you give me concrete examples of this kind of system in use?

    https://en.wikipedia.org/wiki/Commitment_scheme

    This can be done much more efficiently by just mirroring the data directly.

    That’s exactly what each full node does. The node also checks that the current state is coherent which is a stronger requirement than a database mirror.

    So if you regret signing a contract in this fancy supply chain blockchain, you can just choose a new fork to support, one without this contract?

    No. Consensus mechanisms usually make this prohibitively expensive to do, even in the short term.

    Umm, how is this different from enacting a policy that states that invoice numbers have to be globally unique and have to follow a certain format?

    Because that policy has to be enforced in an immutable, attributable way by a group of actors that don’t trust each other.

    Surprise, if you are actually designing a massive system, this kind of design requirements come naturally.

    You are so close. The natural design limit of this massive database/computational system with common standards where no single actor has control, is a blockchain.

    So I take it you agree blockchain solution is not trustworthy in itself, then?

    Data internal to the blockchain is 100% trustworthy, otherwise new blocks could not be verified.

    External data added to a blockchain is transparent and traceable, but requires additional verification to be considered trustworthy. Fraud is identified by these additional non blockchain processes.

    By the way, again somewhat unsurprisingly, nothing stops centralised system from being verifiable and immutable. There’s one massive example of this: Git.

    Git is decentralized. Everyone has a copy.

    If you enforce signing of git commits and only accept data in commits that follow strict rules linked to signers public keys, and create a mechanism to eliminate forks, then you have a blockchain.

    You have to consider the ways people can break the system. You have to address organisational problems. You can’t handwave it away as being out of the scope.

    Again. You are so close. Follow this thinking to its logical conclusion for an industry wide database/computer where actors can join at will, and you will end up designing a blockchain. .

    It doesn’t eliminate accounting fraud - as we just discussed, it only makes the fraud evident.

    The block calculations (the accounts) are transparent and verified by all nodes. Accounting fraud is impossible.

    If the system has verifiability built in, then that’s a technical solution that helps audits. And you don’t need blockchain for that.

    If you want a technical solution to scale across multiple untrustworthy entities, that has verifiability, immutability, accessibility and transparency, then you will end up designing a blockchain.


  • What you’re talking about is using technical solution to mitigate problems in the organisational level.

    No. Blockchain is for solving intraorganisational problems. I.e. How can the invoices of your suppliers be made available.

    There’s little you can do on technical level to 100% ensure that invoice information is correct and matches what is actually happening in the real world.

    This is known as the Oracle problem.

    a series of interoperable systems, which is how things generally work.

    But they don’t work, because one cannot confirm who entered or manipulated the data, or whether the data has been altered in a malicious manner.

    what do you do in cases where the supply chain is deliberately opaque? What if this information is something that companies cannot, for one reason or other, share with one another?

    This is where Zero Knowledge is used. A trusted third party © certifies some data as correct (I.e. a birthday) then the supplier can then create a proof that all their employees are over 18 as certified by © but the actual ages are not disclosed.

    But nothing stops them from accessing (and copying) the information while they have legitimate access to it!

    True with or without blockchain.

    it can be done without a blockchain.

    Blockchain controls access without needing to set up authentication for all users.

    And what do you propose happens when the blockchain just straight up isn’t accessible anymore for one reason or other?

    If availability is important then you run your own node. You also choose a flavor of blockchain that has very little downtime.

    Nothing in blockchain specifically ensures this kind of longevity.

    Agreed, blockchain creates permanent immutability, it does not guarantee permanent availability.

    Nothing prevents people from adding signatures on publicly released documents.

    Agreed, cryptography defines ownership, hash linked lists defines immutability. The two together (with a validation engine) defines blockchain.

    Ensures integrity/source. Publication can still be covered by other means.

    Again, hard forks in cryptocurrency world would suggest blockchain isn’t a magical solution to this problem either.

    Hard forks are not a big problem. You just choose a fork to support.

    For practical purposes it doesn’t matter one bit if you’re tracking an invoice by an invoice number or by some cryptographic hash identifier.

    From an internal organisational perspective, yes.

    But the invoice number from company A will not match the invoice number from company B. Nor can it be seen by company A that company C provided parts to company B

    From a multi organisational perspective exposing a globally unique hash tree is much more controlled and useful.

    Fraud happens outside of the technical domain. That was my point.

    Agreed. Blockchain immutability documents fraud, but it doesn’t mitigate it.

    You claimed centralised systems are untrustworthy. You failed to demostrate how blockchain systems by contrast are trustworthy.

    Centralised systems can imperceptibly alter their databases and calculation algorithms. Blockchain systems cannot.

    I’m just saying blockchain technology, while trustlessness, has so far failed to create a trustworthy economic platform for cryptocurrencies.

    Blockchain systems are mathematically verifiable. As a platform they are entirely trustworthy. The value people put on that trustworthiness is an entirely different subject.

    But as the cryptocurrency market has shown, blockchain by itself cannot prevent fraud.

    It eliminates accounting fraud. It has never claimed to eliminate all fraud.

    So blockchain so far isn’t a solution for this problem, then?

    It’s an excellent solution for audits.



  • if we need centralized enforcement and off-chain enforcement, anyway, what actual value does a blockchain add compared to an access-controlled database?

    Enforcement of laws and documentation of ownership are two separate functions. Blockchain does the former only if everything is digital (like money).

    Let’s take licence to drive as a pure real world enforcement example. There are multiple countries so there are multiple centralised databases. Blockchain allows all those databases to be merged without needing central access control



  • Overbooking is a choice airlines make to maximize profits. It seems to me the main problem is that capitalism motivates airlines to maximize profits instead of transporting people to their destination.

    Agreed. That’s why it can only start with low cost airlines outside the US.

    Also, the article you shared actually makes no mention of overbooking.

    Unfortunately we can only speculate why they chose NFTs over traditional tickets.

    I also have to point out that this article was written by and unnamed, “crypto believer,” and self-published in Medium by an NFT company. It’s not exactly a great source.

    Don’t shoot the messenger. There are other sources available via Google. And the airline website describes it as ticketing 3.0

    My point isn’t that they’re useless, just that their uses are overstated and create a financial bubble.

    Agreed. Monkey pictures were genius marketing but absolutely useless. A porche 911 NFT isn’t much better. But real b2b use cases do exist (supplychain, green energy, shipping etc.).

    Zuckerberg’s VR investment cost Facebook $60 billion.

    I think his gamble will pay off for AR. Glasses will be mainstream and will make phones obsolete.



  • Lets say I mint an NFT of Mickey Mouse. I don’t own that image since it is protected by copyright.

    Not any more. So let’s choose Minnie Mouse instead.

    First created doesn’t mean ownership or authenticity.

    Agreed

    To be legally compliant, there would have to be some central authority to take down the offending IP on another contract, but blockchain doesn’t offer an ability to do this.

    Incorrect. An NFT of Minnie Mouse would not be legal, but that doesn’t make other NFTs of other art illegal.

    Or lets say my house deed was on the blockchain and a hacker stole my secret pass phrase and took my deed. He doesn’t have legal authority over my house.

    Agreed. Stealing the crypto key is as exactly as illegal as stealing a physical key and claiming ownership.

    Sure we can mitigate these issues with a central authority which can roll-back transactions on the blockchain

    No need to roll back. The legal contract can be made to point to a different nft.

    but if we are using a central authority then there isn’t any usefulness of blockchain over a traditional database.

    In this case the blockchain removes friction. Real world enforcement of laws is centralised because society demands it.


  • I agree. You don’t buy a receipt. The NFT itself is not valuable. What the NFTs are linked to is what is of value. All the NFT does is show who owns whatever it represents.

    You can link NFTs to green energy certificates. It’s the certificates that are valuable, all the NFT does is show who owns the certificate.

    The monkey jpegs are not what made bored apes interesting, it was the marketing and “additional features” that was valuable (to some people).



  • Anyone can still mint a copy with different metadata on a different contract.

    That would not be an exact copy, because the data is different. Then traditional copyright laws take over.

    the blockchain itself has no legal jurisdiction. It doesn’t have legal authority, and documents stored this way are not inherently compliant with local laws, so they’re unenforceable unless recognized by a traditional legal system.

    Agreed. The NFT and legal documentation has to be constructed in such a way as to pass local laws. Having a bill of sale on-chain rather than on-paper isn’t that big a difference.

    Just transferring an NFT doesn’t guarantee that legal ownership has changed.

    But it is possible to create a legal structure that does create a legal bill of sale just by transferring an NFT.


  • The whole point of the system in question was that the relevant invoice information is stored in the database.

    Traditional invoicing is bilateral. You have no idea about the components that make up the end product being invoiced. Solving this is both organisational and technical.

    What if they decide to sell the end product to someone else?

    that company is only required to use the system to do business with the company that implemented this centralised system,

    Not if you are looking further up or down the supply chain. Someone providing components will not be able to predict the final destination so will be unable to interact with the correct proprietary system.

    What you want to access the database of someone else without needing read permissions?

    Nothing prevents designing the centralised system in a way that information is available to parties that need it.

    If access to that system can be altered at the whim of the database owner then it is unacceptable

    Nothing prevents the other company adopting a policy that such invoice information is publicly available.

    If information needs to be published in a public, immutable, traceable manner. Then Blockchain is the only technology that can solve this.

    But nothing prevents it being tailored to all stakeholders.

    If it can be altered then there is no guarantee if business for stakeholders. They will not engage.

    There’s a reason why DBAs spend a lot of time thinking about primary keys and unique identifiers.

    You are now describing Blockchain technology. Primary keys are held by each stakeholder and uniqueness is cryptographicly guaranteed.

    Trustworthiness is, again, a thing that blockchain doesn’t solve. “Trustlessness” only guarantees data/transaction immutability,

    So blockchain does solve it.

    it doesn’t guarantee organisational problems like fraud (as cryptocurrency market demonstrates).

    Nor was this claimed.

    And if you don’t trust a company in organisational sense, why do business with them to begin with?

    Because you want money. Businesses want a solution where trusting a particular organisation isn’t necessary.