3 research outputs found

    BigraphTalk: verified design of IoT applications

    Get PDF
    Graphical IoT device management platforms, such as IoTtalk, make it easy to describe interactions between IoT devices. Applications are defined by dragging-and-dropping devices and specifying how they are connected, e.g. a door sensor controlling a light. While this allows simple and rapid development, it remains possible to specify unwanted device configurations – such as using the same device to drive a motor up and down simultaneously, risking damaging the motor. We propose , a verification framework for IoTtalk that utilizes formal techniques, based on bigraphs, to statically guarantee that unwanted configurations do not arise. In particular, we check for invalid connections between devices, as well as type errors, e.g. passing a float to a boolean switch. To the best of our knowledge, is the first platform to support the graphical specification of correct-by-design IoT applications. provides fully automated verification and feedback without end-users ever needing to specify a bigraph. This means any application, specifiable in IoTtalk, is guaranteed, so long as verification succeeds, not to violate the given configuration constraints when deployed; with no extra cost to the user

    An analysis of Proof-of-X blockchain consensus protocols

    Get PDF
    Blockchain è una tecnologia introdotta nel 1991, che ha recentemente acquisito importanza in seguito all'implementazione nel 2009 del sistema Bitcoin, avvenuta a cura di Satoshi Nakamoto. Questa tecnologia consiste in un database distribuito costituito da una catena di blocchi di transazioni, accessibile in lettura e scrittura ai nodi partecipanti alla rete. Il principale problema in una blockchain risiede nella definizione dei criteri con cui aggiungere nuovi blocchi al database. Tali criteri sono regolamentati dal protocollo di consenso distribuito della blockchain. Il protocollo di consenso rappresenta il cuore della blockchain e deve garantire la sicurezza e la tolleranza ai guasti del sistema. Sistemi diversi adottano strategie per il consenso differenti, realizzate mediante altrettanti algoritmi. Il protocollo di consenso più diffuso è denominato Proof-of-Work e, nonostante le buone prestazioni in termini di sicurezza, con l'espandersi della rete, risente di un drastico calo dell'efficienza. Per ovviare alle criticità di questa strategia, nel tempo sono state proposte numerose alternative. In questo elaborato vengono analizzati i protocolli Proof-of-Stake, Delegated Proof-of-Stake e Proof-of-Authority. Viene dapprima descritto il funzionamento di ciascuno, insieme ad alcune considerazioni relative ai rispettivi punti di forza e alle potenziali vulnerabilità. Infine, viene mostrata una loro valutazione ed un confronto in termini di consistenza, disponibilità e prestazioni

    A Framework for Resource Dependent EDSLs in a Dependently Typed Language (Pearl)

    Get PDF
    Idris' Effects library demonstrates how to embed resource dependent algebraic effect handlers into a dependently typed host language, providing run-time and compile-time based reasoning on type-level resources. Building upon this work, Resources is a framework for realising Embedded Domain Specific Languages (EDSLs) with type systems that contain domain specific substructural properties. Differing from Effects, Resources allows a language’s substructural properties to be encoded within type-level resources that are associated with language variables. Such an association allows for multiple effect instances to be reasoned about autonomically and without explicit type-level declaration. Type-level predicates are used as proof that the language’s substructural properties hold. Several exemplar EDSLs are presented that illustrates our framework’s operation and how dependent types provide correctness-by-construction guarantees that substructural properties of written programs hold
    corecore