forked from jackyzha0/quartz
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
28 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- | ||
date: 2024-10-02 | ||
title: Collaborative Coin Flipping | ||
--- | ||
Collaborative Coin Flipping is used in MPC and game theory as a protocol for multiple participants to generate random outcomes fairly and securely without a trusted third party. | ||
For example, Alice and Bob toss a coin to decide something important. | ||
At this point, they both have coins and have to decide which one to use. | ||
However, they need to trust the other's coin, and if they lose, they can't be told that they are cheating. | ||
In other words, a consensus needs to be reached on which coin to use. | ||
An idea to resolve this dispute is to use both coins, and if they are both the same combination (both heads or both tails), then they are ‘heads’, and if they are different combinations (one head and one tails), then they are ‘tails’. | ||
This allows the result to have the same probability as a coin toss without having to trust one of the coins. | ||
|
||
Looking at this idea mathematically, it can be seen as a 2PC XOR operation. | ||
That is, if (1,1) or (0,0), it returns 0, if (1,0) or (0,1), it returns 1 | ||
|
||
Synthesis using XOR allows one participant to control his bit but the overall result still retains its random nature. | ||
However, countermeasures are needed against last mover attacks, such as protocols that do not immediately disclose random bits, but first share commitments and then open commitments after everyone has disclosed their random bits (Commit-and-Reveal schemes) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,46 +1,19 @@ | ||
--- | ||
title: Welcome to Quartz 4 | ||
date: 2024-09-30 | ||
title: Welcome | ||
--- | ||
|
||
Quartz is a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites. Thousands of students, developers, and teachers are [[showcase|already using Quartz]] to publish personal notes, websites, and [digital gardens](https://jzhao.xyz/posts/networked-thought) to the web. | ||
Hi and welcome! | ||
This is a space for Shouki to share his notes and ideas. | ||
I am interested in blockchain, crypto theory, and privacy. | ||
|
||
## 🪴 Get Started | ||
If you are interested in my past articles and efforts, please feel free to take a look. Comments are also welcome. | ||
I like to discuss and work together with various people on projects. Please feel free to contact me if we have anything in common. | ||
|
||
Quartz requires **at least [Node](https://nodejs.org/) v20** and `npm` v9.3.1 to function correctly. Ensure you have this installed on your machine before continuing. | ||
## Selected blog posts | ||
|
||
Then, in your terminal of choice, enter the following commands line by line: | ||
- [[Collaborative Coin Flipping]] | ||
|
||
```shell | ||
git clone https://github.com/jackyzha0/quartz.git | ||
cd quartz | ||
npm i | ||
npx quartz create | ||
``` | ||
## Projects | ||
|
||
This will guide you through initializing your Quartz with content. Once you've done so, see how to: | ||
|
||
1. [[authoring content|Writing content]] in Quartz | ||
2. [[configuration|Configure]] Quartz's behaviour | ||
3. Change Quartz's [[layout]] | ||
4. [[build|Build and preview]] Quartz | ||
5. Sync your changes with [[setting up your GitHub repository|GitHub]] | ||
6. [[hosting|Host]] Quartz online | ||
|
||
If you prefer instructions in a video format you can try following Nicole van der Hoeven's | ||
[video guide on how to set up Quartz!](https://www.youtube.com/watch?v=6s6DT1yN4dw&t=227s) | ||
|
||
## 🔧 Features | ||
|
||
- [[Obsidian compatibility]], [[full-text search]], [[graph view]], note transclusion, [[wikilinks]], [[backlinks]], [[features/Latex|Latex]], [[syntax highlighting]], [[popover previews]], [[Docker Support]], [[i18n|internationalization]], [[comments]] and [many more](./features) right out of the box | ||
- Hot-reload for both configuration and content | ||
- Simple JSX layouts and [[creating components|page components]] | ||
- [[SPA Routing|Ridiculously fast page loads]] and tiny bundle sizes | ||
- Fully-customizable parsing, filtering, and page generation through [[making plugins|plugins]] | ||
|
||
For a comprehensive list of features, visit the [features page](/features). You can read more about the _why_ behind these features on the [[philosophy]] page and a technical overview on the [[architecture]] page. | ||
|
||
### 🚧 Troubleshooting + Updating | ||
|
||
Having trouble with Quartz? Try searching for your issue using the search feature. If you haven't already, [[upgrading|upgrade]] to the newest version of Quartz to see if this fixes your issue. | ||
|
||
If you're still having trouble, feel free to [submit an issue](https://github.com/jackyzha0/quartz/issues) if you feel you found a bug or ask for help in our [Discord Community](https://discord.gg/cRFFHYye7t). | ||
Compilations of various projects that have shaped the technologist I currently am. It's a mix of applied research, e2e products, and academic work. |