{"id":20910114,"url":"https://github.com/viperproject/verifiedscion","last_synced_at":"2025-10-10T14:34:28.042Z","repository":{"id":63970437,"uuid":"485864071","full_name":"viperproject/VerifiedSCION","owner":"viperproject","description":"Verifying the SCION architecture using Gobra","archived":false,"fork":false,"pushed_at":"2023-12-16T10:17:58.000Z","size":56678,"stargazers_count":3,"open_issues_count":21,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2023-12-17T00:42:22.752Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/viperproject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-04-26T16:25:37.000Z","updated_at":"2023-12-20T16:09:49.416Z","dependencies_parsed_at":"2023-02-19T17:45:56.252Z","dependency_job_id":"a153979b-17c5-40e1-adbc-3be77a978896","html_url":"https://github.com/viperproject/VerifiedSCION","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viperproject%2FVerifiedSCION","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viperproject%2FVerifiedSCION/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viperproject%2FVerifiedSCION/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viperproject%2FVerifiedSCION/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/viperproject","download_url":"https://codeload.github.com/viperproject/VerifiedSCION/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225188057,"owners_count":17434992,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T14:13:56.527Z","updated_at":"2025-10-10T14:34:23.004Z","avatar_url":"https://github.com/viperproject.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VerifiedSCION\n\nThis package contains the **verified** implementation of the router from the\n[SCION](http://www.scion-architecture.net) protocol, a future Internet architecture.\nSCION is the first\nclean-slate Internet architecture designed to provide route control, failure\nisolation, and explicit trust information for end-to-end communication.\n\n![VerifiedSCION sticker](./logo.png)\n\nTo find out more about the project, please visit the [official project page](https://www.pm.inf.ethz.ch/research/verifiedscion.html).\n\n\u003e This repository contains a recent version of SCION (which we plan to keep updated), as well as fixes to the bugs we report as a result of verifying the SCION router from the mainline SCION repository.\n\n## Methodology\nWe focus on verifying the main implementation of SCION, written in the *Go* programming language.\n\nTo that end, we have developed [Gobra](https://www.pm.inf.ethz.ch/research/gobra.html), a program verifier for Go. Gobra allows users to annotate Go code with specifications in the form of logical assertions establishing the behaviour of the program. \nIt then automatically checks whether the implementation matches its given specification.\nWe use Gobra in the CI of this project via the [gobra-action](https://github.com/viperproject/gobra-action) to verify our code-base.\n\nIn this project, we aim at verifying the data-plane component of the SCION border router. In particular, we verify the following properties:\n1. memory safety, crash freedom, and race-freedom of the SCION data-plane code\n2. progress properties and termination of the data-plane code\n3. the IO behaviour of the router successfully refines the SCION protocol - we prove this property only the handling of packets of type `SCION` (i.e., we ignore `BFD` packages for now)\n\nWhen necessary, we make reasonable assumptions and explicitly state them.\n\n## Differences to `scionproto/scion`\nThis repository is meant to be updated frequently, to keep track of the changes in the SCION implementation ([scionproto/scion](https://github.com/scionproto/scion/)).\n\nWe try to have minimal differences from the original code and we expect to contribute these changes to the upstream when we believe that they improve the original code.\n\n## Repo Structure\nThis repository contains all the code from `scionproto/scion`.\nIts directory structure is the same as the SCION repository, except that it includes the `verification` directory, which contains useful definitions for specifying and verifying the border router:\n```\nverification\n├── dependencies # spec of 3rd-party dependencies\n└── utils\n    ├── definitions # useful definitions\n    └── slices # slice predicates and operations\n```\n\nTo specify and verify the border router, we often add specifications in `.go` files directly. We also introduce `.gobra` files containing ghost-code and predicate definitions specific to a package.\n\n## License\n[![License](https://img.shields.io/github/license/scionproto/scion.svg?maxAge=2592000)](https://github.com/scionproto/scion/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviperproject%2Fverifiedscion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviperproject%2Fverifiedscion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviperproject%2Fverifiedscion/lists"}