Biscotti: A Ledger for Private and Secure Peer to Peer Machine Learning (under submission) Permalink

Centralized solutions for privacy-preserving multi-party ML are becoming increasingly infeasible. Google’s Federated Learning is the current state of the art in supporting secure multi-party ML: data is maintained on the owner’s device and is aggregated through a secure protocol. However, this process assumes a trusted centralized infrastructure to preserve privacy and is susceptible to poisoning attacks.As a response, we propose Biscotti: a fully decentralized P2P approach to multi-party ML, which leverages blockchain primitives to coordinate a privacy-preserving ML process between peering clients while protecting the performance of the global model at scale even when 48% of the adversaries are malicious.

DPERS: Design Pattern Extraction Retrieval System Permalink

Software design patterns provide well-known solutions to recurring problems faced by developers. However, not all developers are proficient with the use of design patterns. To facilitate developers in this regard, we propose a design pattern usage examples retrieval system. The retrieval is based on analyzing the developer’s development context to provide design pattern usage examples from projects that have a similar functional domain to that of the developer.

The LeyLine Protocol: A Energy and Memory Efficient Routing Protocol for IOT devices Permalink

We propose a layer 3 protocol that makes the use of ley-lines in order to ensure that the state that is required to be stored for routing is constant in nodes in a wireless sensor networks. These nodes are known to be resource constrained in terms of memory and energy so existing routing protocols are insufficient since they exhibit linear or polynomial growth in their routing tables. The LeyLine protocol in its simplest form will require that these nodes maintain only two routing entries, the previous and the next node on the line. The resulting stretch from storing such a limited amount of entries will be O(N), however, the protocol allows for additional entries to be stored in the forwarding tables. These skip entries ensures that a suitable tradeoff is achieved between routing state and stretch resulting in optimal energy consumption.

Doco: Automatically generating documenation from source code Permalink

The task of writing documentation is often neglected due to the difficulties involved in maintaining it consistent with the underlying source code it represents. This creates a lack of information that is conflicting with the obstacles faced by developers, especially when they are trying to understand unfamiliar codebases. In this paper, we present doco, a tool that uses techniques from static and dynamic analysis in order to provide documentation in the form of pre- and post-conditions for functions in Java programs.