Tribler / tribler

Privacy enhanced BitTorrent client with P2P content discovery
https://www.tribler.org
GNU General Public License v3.0
4.81k stars 448 forks source link

BSc Seminar 2019: Survey of existing smart contract platforms #4239

Closed devos50 closed 5 years ago

devos50 commented 5 years ago

Towards extreme smart contract parallelism

Smart contracts are a new execution model for applications that run on top of a blockchain. They allow developers to write business logic that enforces agreements between two or more parties, without trusted intermediaries like notaries. Smart contracts can reason about money and assets. Currently, there are several thousands of contracts deployed on the Ethereum blockchain, some of which manage assets worth billions of dollars.

Despite all hype, traditional blockchain fabrics like Ethereum have poor transaction throughput. For example, the performance of Ethereum is theoretically limited to around 23 transactions per second which is by far not enough to host all financial applications in the world. In fact, some applications like Cryptokitties have been popular enough to slow down the entire network and significantly increase transaction costs. This motivates the search for solutions with higher throughput and performance.

A more fundamental approach to improve the throughput of blockchains is to rely on different organisations of the blockchain. TrustChain is an Internet-deployed blockchain, designed and implemented by Delft University of Technology. TrustChain currently contains over 11 million transactions, created by over 10.000 unique users. The TrustChain fabric achieves superior transaction throughput compared to Bitcoin and Ethereum by deploying a different security model. TrustChain enables parallel execution of transactions, in contrast to traditional blockchains.

The goal of the literature survey is to conduct a survey of existing smart contract fabrics and report on them. You will learn how smart contracts work exactly and compare different approaches to run these contracts on blockchains.

devos50 commented 5 years ago

Suggested literature for next meeting:

ikdekker commented 5 years ago

@devos50 The link to the Bitcoin paper is broken (404). Is this the paper you tried to link?

devos50 commented 5 years ago

@ikdekker yes

ikdekker commented 5 years ago

BSc seminar - Meeting minutes 22 february 2019

Discussion

We discussed that the members of our group are not familiar with blockchain technology. Because smart contracts is a more advanced topic, it was decided that the group would have to do some research and see if this would be a good fit. Therefore, the students will decide the topic of the paper prior to the next meeting. It was also agreed on to get more familiar with blockchain (and Ethereum in specific) and Mr de Vos recommended us some papers to read. In addition to this, we will also find literature related to blockchain and possibly related to our chosen topic.

Points of action

(back) to meeting notes summary

ikdekker commented 5 years ago

A topic we could be researching is the way smart contracts can be used to replace existing technologies or create decentralized constructs. For example, how Ethereum could be combined with a system like IPFS to store larger files to create a network which offers certain services.

However, we also would not mind going in the original direction. We can discuss this in tomorrow's meeting (28 feb).

Papers/topics I have read about so far are: the bitcoin paper, the way Ethereum works, PoS implementations (and the nothing at stake theory). I have also looked into different smart contract blockchains, like EOS, Stellar and Codius (smart oracle?).

devos50 commented 5 years ago

See #3488 for the seminar project last year.

devos50 commented 5 years ago

Further reading:

devos50 commented 5 years ago

For next meeting:

joasiee commented 5 years ago

Meeting notes:

Discussion researched subjects:

Workload:

Paper: Goal of the project:

TODO;

POSSIBLE:

NEXT MEETING: Friday 8th of March, 13:00, same building and room

ikdekker commented 5 years ago

These are all meeting agendas and minutes. Meeting agenda 22 feb.docx and the minutes Meeting agenda 28 feb.docx and the minutes Meeting agenda 8 mar.docx and the minutes Meeting agenda 21 mar.docx and the minutes Meeting agenda 4 apr.docx and the minutes

ikdekker commented 5 years ago

This repo contains our research.

ikdekker commented 5 years ago

Meeting minutes - 8 march

Progress since previous meeting

Since the previous meeting the student have read and gathers some more papers. Mostly on the applications of smart contracts. A IEEE two-column style paper was set up. As well as a GitHub repo where progress is kept and papers are collected.

Research question

There was a choice between technical or conceptual research question.

Technical would be interesting, as we can create our own piece of software ontop of Trustchain. This would also benefit our grade.

If we choose to implement:
Build on TrustChain -> create a transaction people can execute with python code uploaded to it and save the statechange on the chain. This would be a "new" implementation, parallelized smart contract.

Current research question
How can we trustfully execute code in a decentralized environment?

This research question has been decided on because we can partially combine the results with the implementation mentioned before.

Problem statement: running programs from an untrusted source could mess up your system.

Other possible research directions

*Scalability was advised against, has been done last year.

MSc student (Michel) master thesis: dApps
He is working on distributed applications (dApps) and creating a platform to download/deploy packages in a distributed way. There is no ecosystem for dApps and distributed package management. A possible research direction would be a survey of the existing ecosystems and surrounding areas. This idea was mostly dismissed since it has little blockchain/smart contract relevance.

Michel also guides a group of honour students. They research decentralized system: Agreements for legalized signatures. Onderteken.nl is service to upload a document and sign it with a personal signature. Ensuring that some contract is signed, this is trustable since the signing is non-retractable. The goal is to remove the single point of trust, eg a notary and eventually replace notaries with digital systems. It is hard to create a legal system digital that is accepted.

They are also trying to do this without global consensus, which is a challenge since the whole network should be aware of document states.

MSc student (Jetse): scaling and voting system
He is working on a consensus mechanism, where witnesses are chosen. It is possible to calculate the probablility of malicious entity. There are very small chances for malicious nodes to "hack" the system.

Todo:

Read about new execution environments (and how it applies on trustchain).

Check out some interesting implementations:

Deadlines / goals:

Useful for the students:

(back) to meeting notes summary

inconspicuous-username commented 5 years ago

Just casually dropping this here: Malicious code execution in solidity by sprinkling some well arranged inline-assembly in the constructor

devos50 commented 5 years ago

Current three-page draft:

BSc_2019_Smart_Contracts(1).pdf

High-level feedback:

Other related work:

ikdekker commented 5 years ago

@devos50

We would like to send in another draft of the paper today or tomorrow and would like to know when we could send one.

Since our peer review deadline is friday, it would be good to have a meeting before then. Are you available tomorrow (thursday) or friday? If so, we will upload our paper for review.

We are available tomorrow and friday at lunch (around 13:00).

devos50 commented 5 years ago

@ikdekker I'm also available tomorrow. I can give some feedback during the lunch then.

ikdekker commented 5 years ago

@devos50 Alright, we will meet you at the regular building & room. We will try to finalize the draft of this version today.

ikdekker commented 5 years ago

Second draft (same as the version emailed to @devos50 ): 2019-03-21 Bachelor_Seminar_Paper.pdf

ikdekker commented 5 years ago

The meeting docs comment has been updated for the meeting this afternoon.

ikdekker commented 5 years ago

@devos50 Just a quick inquery of your opinion on the structure overview in the introduction. Since we have to mention the subquestion, would option 2. suffice? Or should we stick with 1. and add subquestions before the structure?

Note: of course the research question has changed, but this is just about formatting.

1. original section reference To answer the question ’How can we trustfully executecode in a decentralized environment?’(section VII) this paper is broken up into a few parts. First the term decentralized computing will be discussed (section II). Then a general discussion of security (section III) is given as this is closelyrelated to trustfully execution code (section IV. Once the definitions are out of the way, an overview of the existing environments is given(section V), followed by an evaluation of these techniques for decentralized environments (section??)


2. possible section reference To answer the question ’How can we trustfully execute codein a decentralized environment?’ this paper is broken up into a few subquestions:

1) What is decentralized computing? (section II)
2) What constitutes security? (section III)
3) What does Trust mean with respect to code execution?
4) What Trusted execution environments are currently available? (section??)
5) How does this translate to distributed environments?

ikdekker commented 5 years ago

Meeting minutes - 21 march

Feedback

The paper should be readable/clear from just reading the section titles.

We should add boinc and gollem as important decentralized computing.

keywords -> computation, trust, blockchain, security, (1 more, should search and look at related papers)

The introduction should now be changed to be about the increasing amount of code run with its complexity and dependencie, making a trusted and secure execution environment necessary.

Research question + sub questions

we should add the sub-questions in a manner that they are clear questions connecting to the different sections. They can be in the introduction.

research question: 'How can we execute code in a secure and trusted manner?'

sub questions:

methodology

The methodology just needs to be mentioned not described with a large diagram.

related work:

changed by changing the question

British English?

It does not matter if British English or American English is used in the paper.

TODO

For tomorrow we should make sure the paper has a correct structure and is ready for the pear review.

(back) to meeting notes summary

ikdekker commented 5 years ago

@devos50 Yesterday was the peer-review deadline. We have tried to process thursday's meeting notes (see comment above) as much as possible. This is the version we have turned in:
TI3706_2018_19_Q3_paper_25.pdf

ArnoutvdKnaap commented 5 years ago

@devos50 We are currently working on processing the feedback received. We should have this done tomorrow. At this time a link to the pdf will follow. Would you like to meet during the lunch break on Thursday or Friday?

devos50 commented 5 years ago

Good to hear. Let's do Thursday during the lunch 👍

ikdekker commented 5 years ago

@devos50 here's our provisional paper.

BSc_2019_Smart_Contracts.pdf

ikdekker commented 5 years ago

Here is the meeting agenda for 13:00

Meeting agenda 4 apr.docx

The meeting docs collection comment has been updated too, the minutes will be added shortly

ikdekker commented 5 years ago

Meeting minutes - 4 april

10:45 until 11:45 presentation 18th of april

Group decided to not do the implementation due to lack of time, as agreed by @devos50 .

TODO

Process feedback and finalize paper, and send it to Martijn for a last review. (before 9 april - final deadline is 11 april)

Feedback paper

The paper needs to have some examples of real world applications of the techniques the paper talks about.

Paper should read more fluently, so structure should be improved and the chapters should flow more naturually.

Abbreviations should be introduced in the paper, for example it is never explained that VM stands for Virtual Machine.

Citation should implemented as: as Author states (citation) …

Software has become fundamental to our daily lives should be cited.

“Contemporary” not modern word so better find another word.

“Sub questions” should be changed to “sub-questions”

Change "preliminaries" name to "trusted execution"

Sub conclusions should be called summary

Latex for picture instead of begin{figure}[h] begin{figure}[t]

Conclusion or summary should be under every chapter for consistency reasons

(back) to meeting notes summary

ikdekker commented 5 years ago

Since we most likely won't have any more meetings, this comment can be used as a summary of our progress. Each minute contains a link back to the summary-comment for convenience. I might update this comment with the final version of the paper soon, too.

ikdekker commented 5 years ago

@devos50

The deadline is approaching fast and we have implemented the feedback you have given. Some additional data was added to the paper and some parts were rewritten. We would appreciate it if you could review our paper for the final time.

Sections that have improved/changed the most:

BSc_2019_Smart_Contracts (3).pdf

ikdekker commented 5 years ago

@devos50 Have you checked our paper out yet, or are you planning to do so before tomorrow (deadline)? This is the latest version: BSc_2019_Smart_Contracts (3).pdf

devos50 commented 5 years ago

Not fully reviewed yet, quite busy with my own paper.

Some feedback already (I focussed my review on the first page, the intro and problem formulation):

Abstract:

Intro:

General feedback:

bla bla more bla bla and hype

try to do:

bla bla - more bla bla and hype

(I will update this comment with more feedback later)

devos50 commented 5 years ago

More (high-level) feedback:

ikdekker commented 5 years ago

@devos50 Thanks for the feedback and good luck with your own paper 😄

ikdekker commented 5 years ago

Final version of the paper

devos50 commented 5 years ago

This work has been finished and graded.