Samuel Hawksby-Robinson e98a9b76b7
Added public key compression specs (#137)
## What has changed?

I've added detailed specs for the implementation of public key compression and decompression. The specifications detail the use of the following `multiformat` features:

- `multibase`
- `multicodec`
- `unsigned-varint`

`multiformat` is used to ensure that the implementation has as much flexibility and robustness as feasible.

## Why make the change?

The usage of key de/compression is outside the typical usage of public keys and requires a degree of background knowledge to correctly implement. The purpose of this specification change is to provide this needed background knowledge.

Please also see

- https://github.com/status-im/status-go/issues/1937
- https://github.com/status-im/status-go/pull/1990

---

* Added Public key compression specs

* Added recommendation for encoding type of compressed keys

* Added unrecognised words to wordlist

* Add multibase to the wordlist

* Added a basic example of the multiformat EC key compression concept

* Added parsable to wordlist

* Hex is the only Lingua Franca we need

* Language to make pk de/compression SHOULD implement

* Added terms to glossary explaining key de/compression

* Change terminology from compress to serialise

* Added rationale for public key compression

* Added deserialization to the wordlist

* Concise sentence

* Added url to the wordlist
2020-06-24 11:16:45 +01:00
2020-05-19 18:40:48 +02:00
2020-03-24 14:11:07 +08:00
2020-04-02 12:17:00 +02:00
2020-05-21 11:44:13 +02:00
2020-05-25 14:18:39 +02:00
2020-03-23 10:58:39 +01:00
2020-03-30 13:34:21 +08:00
2020-03-30 13:34:21 +08:00
2020-05-25 14:18:39 +02:00
2020-05-25 14:18:39 +02:00
2020-03-30 13:34:21 +08:00
2020-06-03 23:02:45 +01:00
2020-05-19 18:40:48 +02:00

layout permalink nav_exclude
default / true

Specifications for Status clients

CI

This repository contains a list of specifications for implementing Status and its various capabilities.

How to contribute

  1. Create an issue for a new Status Improvement Proposal (SIP) or some bug that you'd like to address
  2. Create a corresponding PR and ping some existing SIP editors for review

If you need help, ask in #protocol at Status / Discord.

Specification style guidelines

Become familiar with the specification style guidelines to understand how you should write or amend specifications.

Spec lifecycle

Every spec has its own lifecycle that shows its maturity. We indicate this in a similar fashion to COSS Lifecycle:

At present (March 30, 2020) this means stable specs are what is in v1 of the Status App. Drafts and raw are work in progress specs.

Status Improvement Proposals (SIPs)

The main specification for writing a Status client is 1/CLIENT.

For all full index of all specs, see specs.status.im, especially stable specs.

Protocol Research

These are protocols that are currently being researched. These are designed to be useful outside of Status as well. To the extent that these protocols are used within Status clients, they will show up as SIPs in the future.

To see more on this, please visit the current home: vac protocol.

Description
Specifications for Status clients.
https://specs.status.im/
Readme MIT
Languages
HTML 77%
JavaScript 20.9%
Ruby 2.1%