diff --git a/404.html b/404.html index f39ec168a..a713f3980 100644 --- a/404.html +++ b/404.html @@ -14,7 +14,7 @@ - + -

Anonymous filter subscription: This feature guarantees that nodes can anonymously subscribe for a message filter (i.e., without revealing their exact content filter). As such, no adversary in the WakuFilter protocol would be able to link nodes to their subscribed content filers. The current version of the WakuFilter protocol does not provide anonymity as the subscribing node has a direct connection to the full node and explicitly submits its content filter to be notified about the matching messages. However, one can consider preserving anonymity through one of the following ways:

- -

- Changelog - # -

-

- Next - # -

- -

- 2.0.0-beta2 - # -

-

Initial draft version. Released 2020-10-28

- -

- 2.0.0-beta1 - # -

-

Initial draft version. Released 2020-10-05

-

- Copyright - # -

-

Copyright and related rights waived via -CC0.

-

- References - # -

-
    -
  1. -

    Message Filtering (Wikipedia)

    -
  2. -
  3. -

    Libp2p PubSub spec - topic validation

    -
  4. -
- - - - - - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spec/13/index.html b/spec/13/index.html index 4090a2ea1..65a9cf746 100644 --- a/spec/13/index.html +++ b/spec/13/index.html @@ -21,7 +21,7 @@ - + + + + + + + + +
+ + +
+
+ +
+ + + 65/STATUS-ACCOUNTS + + +
+ + + + + + +
+ + + +
+

+ 65/STATUS-ACCOUNTS + # +

+ + +

+ Status Accounts + # +

+ + + + + + + + + + + +

+ Abstract + # +

+

This specification explains what a Status account is, and how it is created and used.

+

+ Background + # +

+

The core concept of an account in Status is a set of cryptographic keypairs. Namely, the combination of the following:

+
    +
  1. a Waku chat identity keypair
  2. +
  3. a set of cryptocurrency wallet keypairs
  4. +
+

The Status node verifies or derives everything else associated with the contact from the above items, including:

+
    +
  • Ethereum address (future verification, currently the same base keypair)
  • +
  • identicon
  • +
  • message signatures
  • +
+

+ Initial Key Generation + # +

+

+ Public/Private Keypairs + # +

+
    +
  • An ECDSA (secp256k1 curve) public/private keypair MUST be generated via a BIP43 derived path from a BIP39 mnemonic seed phrase.
  • +
  • The default paths are defined as such: +
      +
    • Waku Chat Key (IK): m/43'/60'/1581'/0'/0 (post Multiaccount integration) + +
    • +
    • Status Wallet paths: m/44'/60'/0'/0/i starting at i=0 +
        +
      • following BIP44
      • +
      • NOTE: this (i=0) is also the current (and only) path for Waku key before Multiaccount integration
      • +
      +
    • +
    +
  • +
+

+ Account Broadcasting + # +

+
    +
  • A user is responsible for broadcasting certain information publicly so that others may contact them.
  • +
+

+ X3DH Prekey bundles + # +

+
    +
  • Refer to 53/WAKU2-X3DH for details on the X3DH prekey bundle broadcasting, as well as regeneration.
  • +
+

+ Optional Account additions + # +

+

+ ENS Username + # +

+
    +
  • A user MAY register a public username on the Ethereum Name System (ENS). This username is a user-chosen subdomain of the stateofus.eth ENS registration that maps to their Waku identity key (IK).
  • +
+

+ User Profile Picture + # +

+
    +
  • An account MAY edit the IK generated identicon with a chosen picture. This picture will become part of the publicly broadcasted profile of the account.
  • +
+ +

+ Wire Format + # +

+

Below is the wire format for the account information that is broadcasted publicly. +An Account is referred to as a Multiaccount in the wire format.

+
message MultiAccount {
+  string name = 1; // name of the account
+  int64 timestamp = 2; // timestamp of the message
+  string identicon = 3; // base64 encoded identicon
+  repeated ColorHash color_hash = 4; // color hash of the identicon
+  int64 color_id = 5; // color id of the identicon
+  string keycard_pairing = 6; // keycard pairing code
+  string key_uid = 7; // unique identifier of the account
+  repeated IdentityImage images = 8; // images associated with the account
+  string customization_color = 9; // color of the identicon
+  uint64 customization_color_clock = 10; // clock of the identicon color, to track updates
+
+  message ColorHash {
+    repeated int64 index = 1;
+  }
+
+  message IdentityImage {
+    string key_uid = 1; // unique identifier of the image
+    string name = 2; // name of the image
+    bytes payload = 3; // payload of the image
+    int64 width = 4; // width of the image
+    int64 height = 5; // height of the image
+    int64 filesize = 6; // filesize of the image
+    int64 resize_target = 7; // resize target of the image
+    uint64 clock = 8; // clock of the image, to track updates
+  }
+}
+

The above payload is broadcasted when 2 devices that belong to a user need to be paired.

+

+ Security Considerations + # +

+ +

+ Copyright + # +

+

Copyright and related rights waived via CC0.

+

+ References + # +

+

+ normative + # +

+ +

+ informative + # +

+ +
+ + + +
+ +
+ + + + + +
+ + + +
+ + + +
+ +
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + diff --git a/spec/66/index.html b/spec/66/index.html index 090b1fcce..b66519679 100644 --- a/spec/66/index.html +++ b/spec/66/index.html @@ -19,7 +19,7 @@ - +