Skip to content

Commit 0fd5a29

Browse files
committed
Tweak wording
1 parent c28ae4a commit 0fd5a29

File tree

1 file changed

+22
-19
lines changed

1 file changed

+22
-19
lines changed

Diff for: README.md

+22-19
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
# RAAM - Random Access Authenticated Messaging
2-
RAAM is a second layer data communication protocol for IOTA
3-
enabling protected data stream access and publishing, organized in so called channels.
42

5-
RAAM uses the same quantum proof signing scheme and hash function used in IOTA to sign transactions.
6-
These techniques enable the construction of secure data channels providing data integrity and
7-
authorship authentication. Furthermore the data is encrypted and, hence it is stored on the tangle,
3+
RAAM is a second layer data communication protocol for IOTA, enabling protected
4+
data stream access and publishing, organized in so called channels.
5+
6+
RAAM uses the same quantum-resistant signature scheme and hash function used in IOTA to sign transactions.
7+
These techniques enable the construction of secure data channels providing data integrity and
8+
authorship authentication. Furthermore the data is encrypted and, hence it is stored on the tangle,
89
immutable. By using optional passwords for a channel or for specific messages reading access can be limited
910
to a specific private audience. RAAM can be used without any changes to IOTA nodes. Each message strenthens
10-
the IOTA network, because RAAM messages at their core are a set of zero-value transactions, confirming other
11+
the IOTA network, because RAAM messages at their core are a set of zero-value transactions, confirming other
1112
transactions on the tangle.
1213

1314
The messages in a channel do not have to be accessed from first to last, but can be accessed in any random order in O(1).
@@ -29,13 +30,14 @@ RAAM enables messaging for a variety of use cases which need privacy and integri
2930
M2M communication for the IoT in consumer electronics as well as in machines in industrial contexts, such as
3031
autonomous data marketplaces, supply chains, mobility and smart cities.
3132

32-
This javascript library acts as a reference implementation showcasing the specified abilities of the protocol.
33+
This JavaScript library acts as a reference implementation showcasing the specified abilities of the protocol.
3334

3435
## Basic usage
35-
After downloading and importing the library into your project it will provide access to all functions for reading and
36+
37+
After downloading and importing the library into your project it will provide access to all functions for reading and
3638
writing from/to RAAM channels.
3739

38-
**Generating a new channel and publishing a message**
40+
**Generating a new channel and publishing a message**
3941
```js
4042
const RAAM = require('raam.client.js');
4143
const iota = require('@iota/core').composeAPI({
@@ -75,20 +77,21 @@ const raam = new RAAMReader(channelId, { iota });
7577
Take a look at the [API Reference](docs/api.md) to learn more.
7678

7779
## How it works
78-
Since the winternitz signing scheme used in IOTA creates one time signatures, you need multiple signing keys for
79-
multiple messages. A reader can verify the integrity of a message by using the verifying key included in the message.
80+
81+
Due to Winternitz one time signature scheme used in IOTA, you need multiple signing keys for multiple messages.
82+
A reader can verify the integrity of a message by using the verifying key included in the message.
8083

8184
A reader can also verify, that a message has the same author than all other messages in the channel, which
82-
is called authentication. For that, RAAM uses a merkle tree signing scheme, where the verifying keys of all messages in
83-
a channel are the leafs of the tree. From all verifying keys the root of the tree, the merkle root, is constructed, which
84-
acts as the id for a RAAM channel.
85+
is called authentication. For that, RAAM uses a Merkle tree signing scheme, where the verifying keys of all messages in
86+
a channel are the leafs of the tree. From all verifying keys the root of the tree, the Merkle root, is constructed, which
87+
acts as the id for a RAAM channel.
8588

8689
Therefore, someone who publishes a message in a RAAM channel must not only possess the key that signed this message,
87-
but all other signing keys for the channel aswell. To authenticate the authorship of a message the merkle root is
88-
reconstructed by using the verifying key of the message and other parts of the tree, which are provided aswell.
89-
Since the merkle root is generated by hashing, it is impossible to reconstruct certain leafs (verifying keys) from
90-
a given merkle root, the same way it is impossible to forge a signing key from a given verifying key. This way it is easy
90+
but all other signing keys for the channel as well. To authenticate the authorship of a message the Merkle root is
91+
reconstructed by using the verifying key of the message and other parts of the tree, which are provided aswell.
92+
Since the Merkle root is generated by hashing, it is impossible to reconstruct certain leafs (verifying keys) from
93+
a given Merkle root, the same way it is impossible to forge a signing key from a given verifying key. This way it is easy
9194
to ensure that two different messages in the same channel belong to the same author.
9295

93-
Because of that the maximum amount of messages that can be published in a channel depends on the size of a merkle tree,
96+
Because of that the maximum amount of messages that can be published in a channel depends on the size of a Merkle tree,
9497
which has to be created in advance.

0 commit comments

Comments
 (0)