
@misc{weiss_logoot-undo_2012,
	title = {Logoot-{Undo} {Distributed} {Collaborative} {Editing} {System}},
	author = {Weiss, Stéphane and Urso, Pascal and Molli, Pascal},
	month = dec,
	year = {2012},
	file = {Full Text PDF:C\:\\Users\\Amaury\\Zotero\\storage\\PYGQL936\\Weiss et al. - 2012 - Logoot-Undo Distributed Collaborative Editing Syst.pdf:application/pdf},
}

@misc{almeida_blocklace_2024,
	title = {The {Blocklace}: {A} {Universal}, {Byzantine} {Fault}-{Tolerant}, {Conflict}-free {Replicated} {Data} {Type}},
	shorttitle = {The {Blocklace}},
	url = {http://arxiv.org/abs/2402.08068},
	doi = {10.48550/arXiv.2402.08068},
	abstract = {Conflict-free Replicated Data Types (CRDTs) are designed for replica convergence without global coordination or consensus. Recent work has achieves the same in a Byzantine environment, through DAG-like structures based on cryptographic hashes of content. The blocklace is a partially-ordered generalization of the blockchain in which each block has any finite number of signed hash pointers to preceding blocks. We show that the blocklace datatype, with the sole operation of adding a single block, is a CRDT: it is both a pure operation-based CRDT, with self-tagging; and a delta-state CRDT, under a slight generalization of the delta framework. Allowing arbitrary values as payload, the blocklace can also be seen as a universal Byzantine fault-tolerant implementation for arbitrary CRDTs, under the operation-based approach. Current approaches only care about CRDT convergence, being equivocation-tolerant (they do not detect or prevent equivocations), allowing a Byzantine node to cause an arbitrary amount of harm by polluting the CRDT state with an infinite number of equivocations. We show that a blocklace can be used not only in an equivocation-tolerant way, but also so as to detect and eventually exclude Byzantine behavior, namely equivocations, even under the presence of collusion. The blocklace CRDT protocol ensures that the Byzantine nodes may harm only a finite prefix of the computation.},
	urldate = {2024-04-12},
	publisher = {arXiv},
	author = {Almeida, Paulo Sérgio and Shapiro, Ehud},
	month = feb,
	year = {2024},
	note = {arXiv:2402.08068 [cs]},
	keywords = {Computer Science - Data Structures and Algorithms, Computer Science - Distributed, Parallel, and Cluster Computing},
	file = {arXiv Fulltext PDF:C\:\\Users\\Amaury\\Zotero\\storage\\S73ZWXGL\\Almeida et Shapiro - 2024 - The Blocklace A Universal, Byzantine Fault-Tolera.pdf:application/pdf;arXiv.org Snapshot:C\:\\Users\\Amaury\\Zotero\\storage\\J8X5IYE4\\2402.html:text/html},
}


@article{mosberger_memory_1993,
	title = {Memory consistency models},
	volume = {27},
	issn = {0163-5980},
	url = {https://dl.acm.org/doi/10.1145/160551.160553},
	doi = {10.1145/160551.160553},
	abstract = {This paper discusses memory consistency models and their influence on software in the context of parallel machines. In the first part we review previous work on memory consistency models. The second part discusses the issues that arise due to weakening memory consistency. We are especially interested in the influence that weakened consistency models have on language, compiler, and runtime system design. We conclude that tighter interaction between those parts and the memory system might improve performance considerably.},
	language = {en},
	number = {1},
	urldate = {2023-06-06},
	journal = {ACM SIGOPS Operating Systems Review},
	author = {Mosberger, David},
	month = jan,
	year = {1993},
	pages = {18--26},
	file = {Mosberger - 1993 - Memory consistency models.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\VF2ZNK6A\\Mosberger - 1993 - Memory consistency models.pdf:application/pdf},
}

@incollection{goos_causal_1995,
	address = {Berlin, Heidelberg},
	title = {From causal consistency to sequential consistency in shared memory systems},
	volume = {1026},
	isbn = {978-3-540-60692-5 978-3-540-49263-4},
	url = {http://link.springer.com/10.1007/3-540-60692-0_48},
	language = {en},
	urldate = {2023-06-06},
	booktitle = {Foundations of {Software} {Technology} and {Theoretical} {Computer} {Science}},
	publisher = {Springer Berlin Heidelberg},
	author = {Raynal, Michel and Schiper, André},
	editor = {Goos, Gerhard and Hartmanis, Juris and Leeuwen, Jan and Thiagarajan, P. S.},
	year = {1995},
	doi = {10.1007/3-540-60692-0_48},
	note = {Series Title: Lecture Notes in Computer Science},
	pages = {180--194},
	file = {Raynal et Schiper - 1995 - From causal consistency to sequential consistency .pdf:C\:\\Users\\Amaury\\Zotero\\storage\\B8UNWUSA\\Raynal et Schiper - 1995 - From causal consistency to sequential consistency .pdf:application/pdf},
}

@phdthesis{kumar_fault-tolerant_2019,
	type = {{PhD} {Thesis}},
	title = {Fault-{Tolerant} {Distributed} {Services} in {Message}-{Passing} {Systems}},
	school = {Texas A\&M University},
	author = {Kumar, Saptaparni},
	year = {2019},
	file = {Kumar - 2019 - Fault-Tolerant Distributed Services in Message-Pas.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\Q9XK77W9\\Kumar - 2019 - Fault-Tolerant Distributed Services in Message-Pas.pdf:application/pdf;Snapshot:C\:\\Users\\Amaury\\Zotero\\storage\\7JB26RAJ\\1.html:text/html},
}

@article{somasekaram_high-availability_2022,
	title = {High-{Availability} {Clusters}: {A} {Taxonomy}, {Survey}, and {Future} {Directions}},
	volume = {187},
	issn = {01641212},
	shorttitle = {High-{Availability} {Clusters}},
	url = {http://arxiv.org/abs/2109.15139},
	doi = {10.1016/j.jss.2021.111208},
	abstract = {The delivery of key services in domains ranging from finance and manufacturing to healthcare and transportation is underpinned by a rapidly growing number of mission-critical enterprise applications. Ensuring the continuity of these complex applications requires the use of software-managed infrastructures called high-availability clusters (HACs). HACs employ sophisticated techniques to monitor the health of key enterprise application layers and of the resources they use, and to seamlessly restart or relocate application components after failures. In this paper, we first describe the manifold uses of HACs to protect essential layers of a critical application and present the architecture of high availability clusters. We then propose a taxonomy that covers all key aspects of HACs -- deployment patterns, application areas, types of cluster, topology, cluster management, failure detection and recovery, consistency and integrity, and data synchronisation; and we use this taxonomy to provide a comprehensive survey of the end-to-end software solutions available for the HAC deployment of enterprise applications. Finally, we discuss the limitations and challenges of existing HAC solutions, and we identify opportunities for future research in the area.},
	urldate = {2023-06-06},
	journal = {Journal of Systems and Software},
	author = {Somasekaram, Premathas and Calinescu, Radu and Buyya, Rajkumar},
	month = may,
	year = {2022},
	note = {arXiv:2109.15139 [cs, eess]},
	keywords = {Computer Science - Distributed, Parallel, and Cluster Computing, Computer Science - Networking and Internet Architecture, Electrical Engineering and Systems Science - Systems and Control},
	pages = {111208},
	file = {arXiv.org Snapshot:C\:\\Users\\Amaury\\Zotero\\storage\\B4KCP9BG\\2109.html:text/html;Somasekaram et al. - 2022 - High-Availability Clusters A Taxonomy, Survey, an.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\K3LQZLC8\\Somasekaram et al. - 2022 - High-Availability Clusters A Taxonomy, Survey, an.pdf:application/pdf},
}

@book{MPBook,
	title = {Concurrence et cohérence dans les systèmes répartis},
	isbn = {978-1-78405-295-9},
	abstract = {La société moderne est de plus en plus dominée par la société virtuelle, le nombre d’internautes dans le monde ayant dépassé les trois milliards en 2015. A la différence de leurs homologues séquentiels, les systèmes répartis sont beaucoup plus difficiles à concevoir, et sont donc sujets à de nombreux problèmes.La cohérence séquentielle fournit la même vue globale à tous les utilisateurs, mais le confort d\&\#39;utilisation qu\&\#39;elle apporte est trop coûteux, voire impossible, à mettre en oeuvre à grande échelle. Concurrence et cohérence dans les systèmes répartis examine les meilleures façons de spécifier les objets que l’on peut tout de même implémenter dans ces systèmes.Cet ouvrage explore la zone grise des systèmes répartis et dresse une carte des critères de cohérence faible, identifiant plusieurs familles et démontrant comment elles peuvent s’intégrer dans un langage de programmation.},
	language = {fr},
	publisher = {ISTE Group},
	author = {Perrin, Matthieu},
	month = sep,
	year = {2017},
	note = {Google-Books-ID: 6DRlDwAAQBAJ},
	file = {Perrin - 2017 - Concurrence et cohérence dans les systèmes réparti.pdf:/home/amaury/Téléchargements/Perrin - 2017 - Concurrence et cohérence dans les systèmes réparti.pdf:application/pdf},
}

@article{van_der_linde_practical_2020,
	title = {Practical client-side replication: weak consistency semantics for insecure settings},
	volume = {13},
	issn = {2150-8097},
	shorttitle = {Practical client-side replication},
	url = {https://dl.acm.org/doi/10.14778/3407790.3407847},
	doi = {10.14778/3407790.3407847},
	abstract = {Client-side replication and direct client-to-client synchronization can be used to create highly available, low-latency interactive applications. Causal consistency, the strongest available consistency model under network partitions, is an attractive consistency model for these applications.},
	language = {en},
	number = {12},
	urldate = {2023-06-06},
	journal = {Proceedings of the VLDB Endowment},
	author = {Van Der Linde, Albert and Leitão, João and Preguiça, Nuno},
	month = aug,
	year = {2020},
	pages = {2590--2605},
	file = {Van Der Linde et al. - 2020 - Practical client-side replication weak consistenc.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\5TJ3SA56\\Van Der Linde et al. - 2020 - Practical client-side replication weak consistenc.pdf:application/pdf},
}

@book{lipton_pram_1988,
	title = {{PRAM}: {A} {Scalable} {Shared} {Memory}},
	shorttitle = {{PRAM}},
	language = {en},
	publisher = {Princeton University, Department of Computer Science},
	author = {Lipton, Richard J. and Sandberg, Jonathan S.},
	year = {1988},
	note = {Google-Books-ID: 962epwAACAAJ},
	file = {Lipton et Sandberg - 1988 - PRAM A Scalable Shared Memory.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\3ZYT3WT4\\Lipton et Sandberg - 1988 - PRAM A Scalable Shared Memory.pdf:application/pdf},
}

@inproceedings{hutto_slow_1990,
	title = {Slow memory: weakening consistency to enhance concurrency in distributed shared memories},
	shorttitle = {Slow memory},
	url = {https://www.computer.org/csdl/proceedings-article/icdcs/1990/00089297/12OmNvSKNPr},
	doi = {10.1109/ICDCS.1990.89297},
	abstract = {The use of weakly consistent memories in distributed shared memory systems to combat unacceptable network delay and to allow such systems to scale is proposed. Proposed memory correctness conditions are surveyed, and how they are related by a weakness hierarchy is demonstrated. Multiversion and messaging interpretations of memory are introduced as means of systematically exploring the space of possible memories. Slow memory is presented as a memory that allows the effects of writes to propagate slowly through the system, eliminating the need for costly consistency maintenance protocols that limit concurrency. Slow memory processes a valuable locality property and supports a reduction from traditional atomic memory. Thus slow memory is as expressive as atomic memory. This expressiveness is demonstrated by two exclusion algorithms and a solution to M.J. Fischer and A. Michael's (1982) dictionary problem on slow memory.},
	language = {English},
	urldate = {2023-06-06},
	publisher = {IEEE Computer Society},
	author = {Hutto, P. W. and Ahamad, M.},
	month = jan,
	year = {1990},
	pages = {302,303,304,305,306,307,308,309--302,303,304,305,306,307,308,309},
	file = {Hutto et Ahamad - 1990 - Slow memory weakening consistency to enhance conc.pdf:/home/amaury/Téléchargements/Hutto et Ahamad - 1990 - Slow memory weakening consistency to enhance conc.pdf:application/pdf},
}

@article{lamport_how_1979,
	title = {How to {Make} a {Multiprocessor} {Computer} {That} {Correctly} {Executes} {Multiprocess} {Programs}},
	volume = {C-28},
	issn = {1557-9956},
	doi = {10.1109/TC.1979.1675439},
	abstract = {Many large sequential computers execute operations in a different order than is specified by the program. A correct execution is achieved if the results produced are the same as would be produced by executing the program steps in order. For a multiprocessor computer, such a correct execution by each processor does not guarantee the correct execution of the entire program. Additional conditions are given which do guarantee that a computer correctly executes multiprocess programs.},
	number = {9},
	journal = {IEEE Transactions on Computers},
	author = {{Lamport}},
	month = sep,
	year = {1979},
	note = {Conference Name: IEEE Transactions on Computers},
	keywords = {Computer design, concurrent computing, hardware correctness, multiprocessing, parallel processing},
	pages = {690--691},
	file = {IEEE Xplore Abstract Record:C\:\\Users\\Amaury\\Zotero\\storage\\IVGSSPNE\\1675439.html:text/html;Lamport - 1979 - How to Make a Multiprocessor Computer That Correct.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\GY8CWGUV\\Lamport - 1979 - How to Make a Multiprocessor Computer That Correct.pdf:application/pdf},
}

@article{lamport_interprocess_1986,
	title = {On interprocess communication},
	volume = {1},
	issn = {1432-0452},
	url = {https://doi.org/10.1007/BF01786228},
	doi = {10.1007/BF01786228},
	abstract = {Interprocess communication is studied without assuming any lower-level communication primitives. Three classes of communication registers are considered, and several constructions are given for implementing one class of register with a weaker class. The formalism developed in Part I is used in proving the correctness of these constructions.},
	language = {en},
	number = {2},
	urldate = {2023-06-08},
	journal = {Distributed Computing},
	author = {Lamport, Leslie},
	month = jun,
	year = {1986},
	keywords = {Communication Network, Computer Hardware, Computer System, Operating System, System Organization},
	pages = {86--101},
	file = {Lamport - 1986 - On interprocess communication.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\XV7AEARN\\Lamport - 1986 - On interprocess communication.pdf:application/pdf},
}

@article{misra_axioms_1986,
	title = {Axioms for memory access in asynchronous hardware systems},
	volume = {8},
	issn = {0164-0925, 1558-4593},
	url = {https://dl.acm.org/doi/10.1145/5001.5007},
	doi = {10.1145/5001.5007},
	abstract = {The problem of concurrent accesses to registers by asynchronous components is considered. A set of axioms about the values in a register during concurrent accesses is proposed. It is shown that if these axioms are met by a register, then concurrent accesses to it may be viewed as nonconcurrent, thus making it possible to analyze asynchronous algorithms without elaborate timing analysis of operations. These axioms are shown, in a certain sense, to be the weakest. Motivation for this work came from analyzing low-level hardware components in a VLSI chip which concurrently accesses a flip-flop.},
	language = {en},
	number = {1},
	urldate = {2023-06-08},
	journal = {ACM Transactions on Programming Languages and Systems},
	author = {Misra, J.},
	month = jan,
	year = {1986},
	pages = {142--153},
	file = {Misra - 1986 - Axioms for memory access in asynchronous hardware .pdf:C\:\\Users\\Amaury\\Zotero\\storage\\KZP2774N\\Misra - 1986 - Axioms for memory access in asynchronous hardware .pdf:application/pdf},
}

@article{saito_optimistic_2005,
	title = {Optimistic {Replication}},
	volume = {37},
	url = {https://inria.hal.science/hal-01248208},
	doi = {10.1145/1057977.1057980},
	abstract = {Data replication is a key technology in distributed systems that enables higher availability and performance. This article surveys optimistic replication algorithms. They allow replica contents to diverge in the short term to support concurrent work practices and tolerate failures in low-quality communication links. The importance of such techniques is increasing as collaboration through wide-area and mobile networks becomes popular.Optimistic replication deploys algorithms not seen in traditional “pessimistic” systems. Instead of synchronous replica coordination, an optimistic algorithm propagates changes in the background, discovers conflicts after they happen, and reaches agreement on the final contents incrementally.We explore the solution space for optimistic replication algorithms. This article identifies key challenges facing optimistic replication systems---ordering operations, detecting and resolving conflicts, propagating changes efficiently, and bounding replica divergence---and provides a comprehensive survey of techniques developed for addressing these challenges.},
	language = {en},
	number = {1},
	urldate = {2023-06-09},
	journal = {ACM Computing Surveys},
	author = {Saito, Yasushi and Shapiro, Marc},
	year = {2005},
	pages = {42},
	file = {Saito et Shapiro - 2005 - Optimistic Replication.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\4WJX5IAN\\Saito et Shapiro - 2005 - Optimistic Replication.pdf:application/pdf},
}

@article{singh_zeno_2009,
	title = {Zeno: {Eventually} {Consistent} {Byzantine}-{Fault} {Tolerance}},
	abstract = {Many distributed services are hosted at large, shared, geographically diverse data centers, and they use replication to achieve high availability despite the unreachability of an entire data center. Recent events show that non-crash faults occur in these services and may lead to long outages. While Byzantine-Fault Tolerance (BFT) could be used to withstand these faults, current BFT protocols can become unavailable if a small fraction of their replicas are unreachable. This is because existing BFT protocols favor strong safety guarantees (consistency) over liveness (availability).},
	language = {en},
	author = {Singh, Atul and Fonseca, Pedro and Kuznetsov, Petr and Rodrigues, Rodrigo and Maniatis, Petros},
	year = {2009},
	file = {Singh et al. - Zeno Eventually Consistent Byzantine-Fault Tolera.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\K6J2UEBK\\Singh et al. - Zeno Eventually Consistent Byzantine-Fault Tolera.pdf:application/pdf},
}

@inproceedings{shakarami_refresh_2019,
	title = {Refresh {Instead} of {Revoke} {Enhances} {Safety} and {Availability}: {A} {Formal} {Analysis}},
	volume = {LNCS-11559},
	shorttitle = {Refresh {Instead} of {Revoke} {Enhances} {Safety} and {Availability}},
	url = {https://inria.hal.science/hal-02384596},
	doi = {10.1007/978-3-030-22479-0_16},
	abstract = {Due to inherent delays and performance costs, the decision point in a distributed multi-authority Attribute-Based Access Control (ABAC) system is exposed to the risk of relying on outdated attribute values and policy; which is the safety and consistency problem. This paper formally characterizes three increasingly strong levels of consistency to restrict this exposure. Notably, we recognize the concept of refreshing attribute values rather than simply checking the revocation status, as in traditional approaches. Refresh replaces an older value with a newer one, while revoke simply invalidates the old value. Our lowest consistency level starts from the highest level in prior revocation-based work by Lee and Winslett (LW). Our two higher levels utilize the concept of request time which is absent in LW. For each of our levels we formally show that using refresh instead of revocation provides added safety and availability.},
	language = {en},
	urldate = {2023-06-09},
	publisher = {Springer International Publishing},
	author = {Shakarami, Mehrnoosh and Sandhu, Ravi},
	month = jul,
	year = {2019},
	pages = {301},
	file = {Shakarami et Sandhu - 2019 - Refresh Instead of Revoke Enhances Safety and Avai.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\XQNWKF7H\\Shakarami et Sandhu - 2019 - Refresh Instead of Revoke Enhances Safety and Avai.pdf:application/pdf},
}

@article{decandia_dynamo_2007,
	title = {Dynamo: {Amazon}’s {Highly} {Available} {Key}-value {Store}},
	abstract = {Reliability at massive scale is one of the biggest challenges we face at Amazon.com, one of the largest e-commerce operations in the world; even the slightest outage has significant financial consequences and impacts customer trust. The Amazon.com platform, which provides services for many web sites worldwide, is implemented on top of an infrastructure of tens of thousands of servers and network components located in many datacenters around the world. At this scale, small and large components fail continuously and the way persistent state is managed in the face of these failures drives the reliability and scalability of the software systems.},
	language = {en},
	author = {DeCandia, Giuseppe and Hastorun, Deniz and Jampani, Madan and Kakulapati, Gunavardhan and Lakshman, Avinash and Pilchin, Alex and Sivasubramanian, Swaminathan and Vosshall, Peter and Vogels, Werner},
	year = {2007},
	file = {DeCandia et al. - Dynamo Amazon’s Highly Available Key-value Store.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\KDHRPBGR\\DeCandia et al. - Dynamo Amazon’s Highly Available Key-value Store.pdf:application/pdf},
}

@inproceedings{burckhardt_replicated_2014,
	address = {San Diego California USA},
	title = {Replicated data types: specification, verification, optimality},
	isbn = {978-1-4503-2544-8},
	shorttitle = {Replicated data types},
	url = {https://dl.acm.org/doi/10.1145/2535838.2535848},
	doi = {10.1145/2535838.2535848},
	abstract = {Geographically distributed systems often rely on replicated eventually consistent data stores to achieve availability and performance. To resolve conﬂicting updates at different replicas, researchers and practitioners have proposed specialized consistency protocols, called replicated data types, that implement objects such as registers, counters, sets or lists. Reasoning about replicated data types has however not been on par with comparable work on abstract data types and concurrent data types, lacking speciﬁcations, correctness proofs, and optimality results.},
	language = {en},
	urldate = {2023-11-17},
	booktitle = {Proceedings of the 41st {ACM} {SIGPLAN}-{SIGACT} {Symposium} on {Principles} of {Programming} {Languages}},
	publisher = {ACM},
	author = {Burckhardt, Sebastian and Gotsman, Alexey and Yang, Hongseok and Zawirski, Marek},
	month = jan,
	year = {2014},
	pages = {271--284},
	file = {Burckhardt et al. - 2014 - Replicated data types specification, verification.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\KQNF7XLE\\Burckhardt et al. - 2014 - Replicated data types specification, verification.pdf:application/pdf},
}

@inproceedings{tseng_distributed_2019,
	title = {Distributed {Causal} {Memory} in the {Presence} of {Byzantine} {Servers}},
	doi = {10.1109/NCA.2019.8935059},
	abstract = {We study distributed causal shared memory (or distributed read/write objects) in the client-server model over asynchronous message-passing networks in which some servers may suffer Byzantine failures. Since Ahamad et al. proposed causal memory in 1994, there have been abundant research on causal storage. Lately, there is a renewed interest in enforcing causal consistency in large-scale distributed storage systems (e.g., COPS, Eiger, Bolt-on). However, to the best of our knowledge, the fault-tolerance aspect of causal memory is not well studied, especially on the tight resilience bound. In our prior work, we showed that 2 f+1 servers is the tight bound to emulate crash-tolerant causal shared memory when up to f servers may crash. In this paper, we adopt a typical model considered in many prior works on Byzantine-tolerant storage algorithms and quorum systems. In the system, up to f servers may suffer Byzantine failures and any number of clients may crash. We constructively present an emulation algorithm for Byzantine causal memory using 3 f+1 servers. We also prove that 3 f+1 is necessary for tolerating up to f Byzantine servers. In other words, we show that 3 f+1 is a tight bound. For evaluation, we implement our algorithm in Golang and compare their performance with two state-of-the-art fault-tolerant algorithms that ensure atomicity in the Google Cloud Platform.},
	booktitle = {2019 {IEEE} 18th {International} {Symposium} on {Network} {Computing} and {Applications} ({NCA})},
	author = {Tseng, Lewis and Wang, Zezhi and Zhao, Yajie and Pan, Haochen},
	month = sep,
	year = {2019},
	note = {ISSN: 2643-7929},
	keywords = {asynchrony, Byzantine faults, causal memory, Computer crashes, Consensus protocol, distributed storage system, Emulation, evaluation, Fault tolerance, Fault tolerant systems, History, Servers, tight condition},
	pages = {1--8},
	file = {IEEE Xplore Abstract Record:C\:\\Users\\Amaury\\Zotero\\storage\\DDV34ULW\\8935059.html:text/html},
}

@misc{misra_byzantine_2021,
	title = {Byzantine {Fault} {Tolerant} {Causal} {Ordering}},
	url = {http://arxiv.org/abs/2112.11337},
	abstract = {Causal ordering in an asynchronous system has many applications in distributed computing, including in replicated databases and real-time collaborative software. Previous work in the area focused on ordering point-to-point messages in a fault-free setting, and on ordering broadcasts under various fault models. To the best of our knowledge, Byzantine faulttolerant causal ordering has not been attempted for point-topoint communication in an asynchronous setting. In this paper, we ﬁrst show that existing algorithms for causal ordering of point-to-point communication fail under Byzantine faults. We then prove that it is impossible to causally order messages under point-to-point communication in an asynchronous system with one or more Byzantine failures. We then present two algorithms that can causally order messages under Byzantine failures, where the network provides an upper bound on the message transmission time. The proofs of correctness for these algorithms show that it is possible to achieve causal ordering for point-to-point communication under a stronger asynchrony model where the network provides an upper bound on message transmission time. We also give extensions of our two algorithms for Byzantine fault-tolerant causal ordering of multicasts.},
	language = {en},
	urldate = {2023-07-12},
	publisher = {arXiv},
	author = {Misra, Anshuman and Kshemkalyani, Ajay},
	month = dec,
	year = {2021},
	note = {arXiv:2112.11337 [cs]},
	keywords = {Computer Science - Distributed, Parallel, and Cluster Computing},
	file = {Misra and Kshemkalyani - 2021 - Byzantine Fault Tolerant Causal Ordering.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\P2R366US\\Misra and Kshemkalyani - 2021 - Byzantine Fault Tolerant Causal Ordering.pdf:application/pdf},
}

@article{jacob_analysis_2021,
	title = {Analysis of the {Matrix} {Event} {Graph} {Replicated} {Data} {Type}},
	volume = {9},
	issn = {2169-3536},
	url = {https://ieeexplore.ieee.org/document/9351908/},
	doi = {10.1109/ACCESS.2021.3058576},
	abstract = {Matrix is a new kind of decentralized, topic-based publish-subscribe middleware for communication and data storage that is getting particularly popular as a basis for secure instant messaging. By comparison with traditional decentralized communication systems, Matrix replaces pure message passing with a replicated data structure. This data structure, which we extract and call the Matrix Event Graph (MEG), depicts the causal history of messages. We show that this MEG represents an interesting and important replicated data type for decentralized applications that are based on causal histories of publish-subscribe events: First, we prove that the MEG is a Conﬂict-Free Replicated Data Type for causal histories and, thus, provides Strong Eventual Consistency (SEC). With SEC being among the best known achievable trade-offs in the scope of the well-known CAP theorem, the MEG provides a powerful consistency guarantee while being available during network partition. Second, we discuss the implications of byzantine attackers on the data type’s properties. We note that the MEG, as it does not strive for consensus or strong consistency, can cope with n {\textgreater} f environments with n participants, of which f are byzantine. Furthermore, we analyze scalability: Using Markov chains, we study the number of forward extremities of the MEG over time and observe an almost optimal evolution. We conjecture that this property is inherent to the underlying spatially inhomogeneous random walk. With the properties shown, a MEG represents a promising element in the set of data structures for decentralized applications, but with distinct trade-offs compared to traditional blockchains and distributed ledger technologies.},
	language = {en},
	urldate = {2024-01-12},
	journal = {IEEE Access},
	author = {Jacob, Florian and Beer, Carolin and Henze, Norbert and Hartenstein, Hannes},
	year = {2021},
	pages = {28317--28333},
	file = {Jacob et al. - 2021 - Analysis of the Matrix Event Graph Replicated Data.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\TRSMADSW\\Jacob et al. - 2021 - Analysis of the Matrix Event Graph Replicated Data.pdf:application/pdf},
}

@inproceedings{kleppmann_making_2022,
	address = {Rennes France},
	title = {Making {CRDTs} {Byzantine} fault tolerant},
	isbn = {978-1-4503-9256-3},
	url = {https://dl.acm.org/doi/10.1145/3517209.3524042},
	doi = {10.1145/3517209.3524042},
	abstract = {It is often claimed that Conflict-free Replicated Data Types (CRDTs) ensure consistency of replicated data in peer-topeer systems. However, peer-to-peer systems usually consist of untrusted nodes that may deviate from the specified protocol (i.e. exhibit Byzantine faults), and most existing CRDT algorithms cannot guarantee consistency in the presence of such faults. This paper shows how to adapt existing non-Byzantine CRDT algorithms and make them Byzantine fault-tolerant. The proposed scheme can tolerate any number of Byzantine nodes (making it immune to Sybil attacks), guarantees Strong Eventual Consistency, and requires only modest changes to existing CRDT algorithms.},
	language = {en},
	urldate = {2024-01-12},
	booktitle = {Proceedings of the 9th {Workshop} on {Principles} and {Practice} of {Consistency} for {Distributed} {Data}},
	publisher = {ACM},
	author = {Kleppmann, Martin},
	month = apr,
	year = {2022},
	pages = {8--15},
	file = {Kleppmann - 2022 - Making CRDTs Byzantine fault tolerant.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\8K37LERF\\Kleppmann - 2022 - Making CRDTs Byzantine fault tolerant.pdf:application/pdf},
}

@misc{noauthor_yjsyjs_2023,
	title = {yjs/yjs},
	url = {https://github.com/yjs/yjs},
	abstract = {Shared data types for building collaborative software},
	urldate = {2023-12-10},
	publisher = {Yjs},
	month = dec,
	year = {2023},
	note = {original-date: 2014-07-29T19:29:45Z},
	keywords = {collaboration, collaborative-editing, crdt, decentralized, offline-first, p2p, peer-to-peer, realtime, shared-editing, yjs},
}

@misc{appjet_etherpad_2011,
	title = {Etherpad and {EasySync} {Technical} {Manua}},
	url = {https://raw.githubusercontent.com/ether/etherpad-lite/master/doc/easysync/easysync-full-description.pdf},
	urldate = {2023-12-10},
	author = {AppJet},
	year = {2011},
	file = {easysync-full-description.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\F5SV2JTZ\\easysync-full-description.pdf:application/pdf},
}

@article{kleppmann_conflict-free_2017,
	title = {A {Conflict}-{Free} {Replicated} {JSON} {Datatype}},
	volume = {28},
	issn = {1045-9219},
	url = {http://arxiv.org/abs/1608.03960},
	doi = {10.1109/TPDS.2017.2697382},
	abstract = {Many applications model their data in a general-purpose storage format such as JSON. This data structure is modiﬁed by the application as a result of user input. Such modiﬁcations are well understood if performed sequentially on a single copy of the data, but if the data is replicated and modiﬁed concurrently on multiple devices, it is unclear what the semantics should be. In this paper we present an algorithm and formal semantics for a JSON data structure that automatically resolves concurrent modiﬁcations such that no updates are lost, and such that all replicas converge towards the same state (a conﬂict-free replicated datatype or CRDT). It supports arbitrarily nested list and map types, which can be modiﬁed by insertion, deletion and assignment. The algorithm performs all merging client-side and does not depend on ordering guarantees from the network, making it suitable for deployment on mobile devices with poor network connectivity, in peer-to-peer networks, and in messaging systems with end-to-end encryption.},
	language = {en},
	number = {10},
	urldate = {2023-12-10},
	journal = {IEEE Transactions on Parallel and Distributed Systems},
	author = {Kleppmann, Martin and Beresford, Alastair R.},
	month = oct,
	year = {2017},
	note = {arXiv:1608.03960 [cs]},
	keywords = {Computer Science - Distributed, Parallel, and Cluster Computing, Computer Science - Databases},
	pages = {2733--2746},
	file = {Kleppmann et Beresford - 2017 - A Conflict-Free Replicated JSON Datatype.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\BQVG57MU\\Kleppmann et Beresford - 2017 - A Conflict-Free Replicated JSON Datatype.pdf:application/pdf},
}

@book{Raynal18,
	title = {Fault-{Tolerant} {Message}-{Passing} {Distributed} {Systems}: {An} {Algorithmic} {Approach}},
	isbn = {978-3-319-94141-7},
	shorttitle = {Fault-{Tolerant} {Message}-{Passing} {Distributed} {Systems}},
	abstract = {This book presents the most important fault-tolerant distributed programming abstractions and their associated distributed algorithms, in particular in terms of reliable communication and agreement, which lie at the heart of nearly all distributed applications. These programming abstractions, distributed objects or services, allow software designers and programmers to cope with asynchrony and the most important types of failures such as process crashes, message losses, and malicious behaviors of computing entities, widely known under the term "Byzantine fault-tolerance". The author introduces these notions in an incremental manner, starting from a clear specification, followed by algorithms which are first described intuitively and then proved correct. The book also presents impossibility results in classic distributed computing models, along with strategies, mainly failure detectors and randomization, that allow us to enrich these models. In this sense, the book constitutes an introduction to the science of distributed computing, with applications in all domains of distributed systems, such as cloud computing and blockchains. Each chapter comes with exercises and bibliographic notes to help the reader approach, understand, and master the fascinating field of fault-tolerant distributed computing.},
	language = {en},
	publisher = {Springer},
	author = {Raynal, Michel},
	month = sep,
	year = {2018},
	note = {Google-Books-ID: J6BtDwAAQBAJ},
	keywords = {Computers / Computer Science, Computers / Information Technology, Computers / Networking / General, Technology \& Engineering / Telecommunications},
}

@article{bayuk_data-centric_2009,
	title = {Data-centric security},
	volume = {2009},
	issn = {1361-3723},
	url = {https://www.sciencedirect.com/science/article/pii/S1361372309700326},
	doi = {10.1016/S1361-3723(09)70032-6},
	abstract = {The authoritative control objectives for access to data have always been something along the lines of: “Confirm that user access rights to systems and data are in line with defined and documented business needs, and that job requirements are attached to user identities…. Ensure that critical and confidential information is withheld from those who should not have access to it.”1},
	number = {3},
	urldate = {2023-12-08},
	journal = {Computer Fraud \& Security},
	author = {Bayuk, Jennifer},
	month = mar,
	year = {2009},
	pages = {7--11},
	file = {Bayuk - 2009 - Data-centric security.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\2YRZBICQ\\Bayuk - 2009 - Data-centric security.pdf:application/pdf;ScienceDirect Snapshot:C\:\\Users\\Amaury\\Zotero\\storage\\KC3F5F86\\S1361372309700326.html:text/html},
}

@inproceedings{goyal_attribute-based_2006,
	address = {Alexandria Virginia USA},
	title = {Attribute-based encryption for fine-grained access control of encrypted data},
	isbn = {978-1-59593-518-2},
	url = {https://dl.acm.org/doi/10.1145/1180405.1180418},
	doi = {10.1145/1180405.1180418},
	abstract = {As more sensitive data is shared and stored by third-party sites on the Internet, there will be a need to encrypt data stored at these sites. One drawback of encrypting data, is that it can be selectively shared only at a coarse-grained level (i.e., giving another party your private key). We develop a new cryptosystem for ﬁne-grained sharing of encrypted data that we call Key-Policy Attribute-Based Encryption (KP-ABE). In our cryptosystem, ciphertexts are labeled with sets of attributes and private keys are associated with access structures that control which ciphertexts a user is able to decrypt. We demonstrate the applicability of our construction to sharing of audit-log information and broadcast encryption. Our construction supports delegation of private keys which subsumes Hierarchical Identity-Based Encryption (HIBE).},
	language = {en},
	urldate = {2023-12-08},
	booktitle = {Proceedings of the 13th {ACM} conference on {Computer} and communications security},
	publisher = {ACM},
	author = {Goyal, Vipul and Pandey, Omkant and Sahai, Amit and Waters, Brent},
	month = oct,
	year = {2006},
	pages = {89--98},
	file = {Goyal et al. - 2006 - Attribute-based encryption for fine-grained access.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\Z9NEMU4F\\Goyal et al. - 2006 - Attribute-based encryption for fine-grained access.pdf:application/pdf},
}

@incollection{lee_distributed_2009,
	address = {Berlin, Heidelberg},
	title = {Distributed {Attribute}-{Based} {Encryption}},
	volume = {5461},
	isbn = {978-3-642-00729-3 978-3-642-00730-9},
	url = {http://link.springer.com/10.1007/978-3-642-00730-9_2},
	abstract = {Ciphertext-Policy Attribute-Based Encryption (CP-ABE) allows to encrypt data under an access policy, speciﬁed as a logical combination of attributes. Such ciphertexts can be decrypted by anyone with a set of attributes that ﬁts the policy. In this paper, we introduce the concept of Distributed Attribute-Based Encryption (DABE), where an arbitrary number of parties can be present to maintain attributes and their corresponding secret keys. This is in stark contrast to the classic CP-ABE schemes, where all secret keys are distributed by one central trusted party. We provide the ﬁrst construction of a DABE scheme; the construction is very eﬃcient, as it requires only a constant number of pairing operations during encryption and decryption.},
	language = {en},
	urldate = {2023-12-08},
	booktitle = {Information {Security} and {Cryptology} – {ICISC} 2008},
	publisher = {Springer Berlin Heidelberg},
	author = {Müller, Sascha and Katzenbeisser, Stefan and Eckert, Claudia},
	editor = {Lee, Pil Joong and Cheon, Jung Hee},
	year = {2009},
	doi = {10.1007/978-3-642-00730-9_2},
	note = {Series Title: Lecture Notes in Computer Science},
	pages = {20--36},
	file = {Müller et al. - 2009 - Distributed Attribute-Based Encryption.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\CWKWPE9S\\Müller et al. - 2009 - Distributed Attribute-Based Encryption.pdf:application/pdf},
}

@techreport{rose_zero_2020,
	title = {Zero {Trust} {Architecture}},
	url = {https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf},
	abstract = {Zero trust (ZT) is the term for an evolving set of cybersecurity paradigms that move defenses from static, network-based perimeters to focus on users, assets, and resources. A zero trust architecture (ZTA) uses zero trust principles to plan industrial and enterprise infrastructure and workflows. Zero trust assumes there is no implicit trust granted to assets or user accounts based solely on their physical or network location (i.e., local area networks versus the internet) or based on asset ownership (enterprise or personally owned). Authentication and authorization (both subject and device) are discrete functions performed before a session to an enterprise resource is established. Zero trust is a response to enterprise network trends that include remote users, bring your own device (BYOD), and cloud-based assets that are not located within an enterpriseowned network boundary. Zero trust focuses on protecting resources (assets, services, workflows, network accounts, etc.), not network segments, as the network location is no longer seen as the prime component to the security posture of the resource. This document contains an abstract definition of zero trust architecture (ZTA) and gives general deployment models and use cases where zero trust could improve an enterprise’s overall information technology security posture.},
	language = {en},
	urldate = {2023-12-08},
	institution = {National Institute of Standards and Technology},
	author = {Rose, Scott and Borchert, Oliver and Mitchell, Stu and Connelly, Sean},
	month = aug,
	year = {2020},
	doi = {10.6028/NIST.SP.800-207},
	file = {Rose et al. - 2020 - Zero Trust Architecture.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\6PRUAJZ3\\Rose et al. - 2020 - Zero Trust Architecture.pdf:application/pdf},
}

@article{yan_flexible_2017,
	title = {Flexible {Data} {Access} {Control} {Based} on {Trust} and {Reputation} in {Cloud} {Computing}},
	volume = {5},
	issn = {2168-7161},
	url = {http://ieeexplore.ieee.org/document/7208817/},
	doi = {10.1109/TCC.2015.2469662},
	abstract = {Cloud computing offers a new way of services and has become a popular service platform. Storing user data at a cloud data center greatly releases storage burden of user devices and brings access convenience. Due to distrust in cloud service providers, users generally store their crucial data in an encrypted form. But in many cases, the data need to be accessed by other entities for fulfilling an expected service, e.g., an eHealth service. How to control personal data access at cloud is a critical issue. Various application scenarios request flexible control on cloud data access based on data owner policies and application demands. Either data owners or some trusted third parties or both should flexibly participate in this control. However, existing work hasn’t yet investigated an effective and flexible solution to satisfy this demand. On the other hand, trust plays an important role in data sharing. It helps overcoming uncertainty and avoiding potential risks. But literature still lacks a practical solution to control cloud data access based on trust and reputation. In this paper, we propose a scheme to control data access in cloud computing based on trust evaluated by the data owner and/or reputations generated by a number of reputation centers in a flexible manner by applying Attribue-Based Encryption and Proxy Re-Encryption. We integrate the concept of context-aware trust and reputation evaluation into a cryptographic system in order to support various control scenarios and strategies. The security and performance of our scheme are evaluated and justified through extensive analysis, security proof, comparison and implementation. The results show the efficiency, flexibility and effectiveness of our scheme for data access control in cloud computing.},
	language = {en},
	number = {3},
	urldate = {2023-12-08},
	journal = {IEEE Transactions on Cloud Computing},
	author = {Yan, Zheng and Li, Xueyun and Wang, Mingjun and Vasilakos, Athanasios V.},
	month = jul,
	year = {2017},
	pages = {485--498},
	file = {Yan et al. - 2017 - Flexible Data Access Control Based on Trust and Re.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\EGDZNP8U\\Yan et al. - 2017 - Flexible Data Access Control Based on Trust and Re.pdf:application/pdf},
}

@inproceedings{preguica_commutative_2009,
	address = {Montreal, Quebec, Canada},
	title = {A {Commutative} {Replicated} {Data} {Type} for {Cooperative} {Editing}},
	url = {http://ieeexplore.ieee.org/document/5158449/},
	doi = {10.1109/ICDCS.2009.20},
	abstract = {A Commutative Replicated Data Type (CRDT) is one where all concurrent operations commute. The replicas of a CRDT converge automatically, without complex concurrency control. This paper describes Treedoc, a novel CRDT design for cooperative text editing. An essential property is that the identiﬁers of Treedoc atoms are selected from a dense space. We discuss practical alternatives for implementing the identiﬁer space based on an extended binary tree. We also discuss storage alternatives for data and meta-data, and mechanisms for compacting the tree. In the best case, Treedoc incurs no overhead with respect to a linear text buffer. We validate the results with traces from existing edit histories.},
	language = {en},
	urldate = {2024-02-16},
	booktitle = {2009 29th {IEEE} {International} {Conference} on {Distributed} {Computing} {Systems}},
	publisher = {IEEE},
	author = {Preguica, Nuno and Marques, Joan Manuel and Shapiro, Marc and Letia, Mihai},
	month = jun,
	year = {2009},
	pages = {395--403},
	file = {Preguica et al. - 2009 - A Commutative Replicated Data Type for Cooperative.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\LKX6LUIS\\Preguica et al. - 2009 - A Commutative Replicated Data Type for Cooperative.pdf:application/pdf},
}


@incollection{defago_conflict-free_2011,
	address = {Berlin, Heidelberg},
	title = {Conflict-{Free} {Replicated} {Data} {Types}},
	volume = {6976},
	isbn = {978-3-642-24549-7 978-3-642-24550-3},
	url = {http://link.springer.com/10.1007/978-3-642-24550-3_29},
	abstract = {Replicating data under Eventual Consistency (EC) allows any replica to accept updates without remote synchronisation. This ensures performance and scalability in large-scale distributed systems (e.g., clouds). However, published EC approaches are ad-hoc and error-prone. Under a formal Strong Eventual Consistency (SEC) model, we study sufﬁcient conditions for convergence. A data type that satisﬁes these conditions is called a Conﬂict-free Replicated Data Type (CRDT). Replicas of any CRDT are guaranteed to converge in a self-stabilising manner, despite any number of failures. This paper formalises two popular approaches (state- and operation-based) and their relevant suﬃcient conditions. We study a number of useful CRDTs, such as sets with clean semantics, supporting both add and remove operations, and consider in depth the more complex Graph data type. CRDT types can be composed to develop large-scale distributed applications, and have interesting theoretical properties.},
	language = {en},
	urldate = {2023-12-08},
	booktitle = {Stabilization, {Safety}, and {Security} of {Distributed} {Systems}},
	publisher = {Springer Berlin Heidelberg},
	author = {Shapiro, Marc and Preguiça, Nuno and Baquero, Carlos and Zawirski, Marek},
	editor = {Défago, Xavier and Petit, Franck and Villain, Vincent},
	year = {2011},
	doi = {10.1007/978-3-642-24550-3_29},
	note = {Series Title: Lecture Notes in Computer Science},
	pages = {386--400},
	file = {Shapiro et al. - 2011 - Conflict-Free Replicated Data Types.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\QK99TF5K\\Shapiro et al. - 2011 - Conflict-Free Replicated Data Types.pdf:application/pdf},
}

@inproceedings{nicolaescu_near_2016,
	address = {Sanibel Island Florida USA},
	title = {Near {Real}-{Time} {Peer}-to-{Peer} {Shared} {Editing} on {Extensible} {Data} {Types}},
	isbn = {978-1-4503-4276-6},
	url = {https://dl.acm.org/doi/10.1145/2957276.2957310},
	doi = {10.1145/2957276.2957310},
	language = {en},
	urldate = {2023-12-01},
	booktitle = {Proceedings of the 19th {International} {Conference} on {Supporting} {Group} {Work}},
	publisher = {ACM},
	author = {Nicolaescu, Petru and Jahns, Kevin and Derntl, Michael and Klamma, Ralf},
	month = nov,
	year = {2016},
	pages = {39--49},
	file = {Nicolaescu et al. - 2016 - Near Real-Time Peer-to-Peer Shared Editing on Exte.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\SV3MSLKD\\Nicolaescu et al. - 2016 - Near Real-Time Peer-to-Peer Shared Editing on Exte.pdf:application/pdf},
}

@misc{frey_process-commutative_2023,
	title = {Process-{Commutative} {Distributed} {Objects}: {From} {Cryptocurrencies} to {Byzantine}-{Fault}-{Tolerant} {CRDTs}},
	shorttitle = {Process-{Commutative} {Distributed} {Objects}},
	url = {http://arxiv.org/abs/2311.13936},
	abstract = {This paper explores the territory that lies between best-eﬀort Byzantine-Fault-Tolerant Conﬂict-free Replicated Data Types (BFT CRDTs) and totally ordered distributed ledgers. It formally characterizes a novel class of distributed objects that only requires a First In First Out (FIFO) order on the object operations from each process (taken individually). The formalization relies on Mazurkiewicz traces to deﬁne legal sequences of operations and ensure a combination of Strong Eventual Consistency (SEC) and Pipleline Consistency (PC). The paper presents a generic algorithm that implements this novel class of distributed objects both in a crash- and Byzantine setting. Finally, the proposed approach is illustrated with four instances of this class of objects, namely money transfer, Petri nets, multi-sets, and concurrent work stealing dequeues.},
	language = {en},
	urldate = {2024-01-22},
	publisher = {arXiv},
	author = {Frey, Davide and Guillou, Lucie and Raynal, Michel and Taïani, François},
	month = nov,
	year = {2023},
	note = {arXiv:2311.13936 [cs]},
	keywords = {Computer Science - Distributed, Parallel, and Cluster Computing},
	file = {Frey et al. - 2023 - Process-Commutative Distributed Objects From Cryp.pdf:C\:\\Users\\Amaury\\Zotero\\storage\\FUPJTWVD\\Frey et al. - 2023 - Process-Commutative Distributed Objects From Cryp.pdf:application/pdf},
}
