Skip to content

cosminroger/LAMAS

Repository files navigation

LAMAS project prototype: Blockchain simulation

Nowadays, we keep hearing of the term blockchain and cryptocurrency, and although the second term is self explanatory, the first is not fully understood by many people. A blockchain is a system of computers that store and share a common database among all other computers (or participants/agents that are part of that blockchain).

Let's consider the following example:

Agent A wants to send a message to agent B. Normally, one would send this message and it relies on other entities to make sure that the message got sent, namely, you rely on a third party. If the third party looses the message, or modifies it, it would not be a pleasant experience for the sender. This is where blockchains come in. These are a growing sequence of blocks which contain approved transaction alongside with a cryptographic hash of the previous block, creating the blockchain. So, the new block created at step i will contain an index i, its content D, and the hash of the previous block i-1. This blockchain is stored by every agent and any update needs to be made to the entire sequence. You cannot make a change at a step i-5, for instance, without changing the information in all blocks from i-4 to i. Given how big these blockchains and networks of agents are for some cryptocurrencies (like Ethereum and Bitcoin) and the fact that every message (block) received is further verified by some algorithms to ensure its validity, it is nearly impossible to falsify the information. Not only that one would need to falsify all the blocks up to a point as mentioned before, but it is also mandatory that at least 50%+1 agents from that network to perform the same operations, hence why it would be impossible to falsify the data contained in such a big blockchain.

So, what do we want to research? In our project, we are going to investigate how these messages are sent among agents, make attempts at falsifying blockchain information and show how these are getting rejected, and provide a (simplified) blockchain model with the intent of graphically demonstrating all the perks of sending information through a blockchain. Our research question essentially amounts to: How does communication between agents work in a blockchain? What happens when not all agents are truthful? How are the messages verified? For implementation, we are going to create a web-interface using the programming language such as HTML, CSS, and Javascript.

This relates to epistemic logic through our use of advanced topics such as, common knowledge and public announcements.
As inspiration for writing our epistemic logic for blockchain, we are going to use the following article, (in which they propose their own logic system, namely BCL, where they use dynamic logic to reason about blockchain updates, and finally, prove that BCL is sound and complete). Brunnler Kai, Flumini, D., & Studer, T. (2020). A logic of blockchain updates. Journal of Logic and Computation, 30(8), 1469–1485. \https://doi.org/10.1093/logcom/exaa045

To run: node smashingcoin.js

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published