【学習ノート】トークンって何？

![WhatIsToken.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936031/cbdc382e-09cf-46ce-ab4c-911769ffe03f.png)

「トークンってそういえばなんだっけ？」となり、先輩に聞いたり調べてみたものを備忘録として残します。
私のふわっとした解釈をまとめているので正確性に欠ける表現が多いですがご容赦ください。

# トークンって何
先輩に聞いたり、調べたりした上での私の認識としてトークンは、

> **利用者がそのサービスを利用しても問題ないと許可されている（利用する権利がある）ことを示す（判別する）のに使われるもの**

という認識です。
（ものすごい大雑把な上、正確には違うと思いますが）

# トークンの始まり

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936031/d6fd378c-6af6-4974-8ff8-6975484f10aa.png" width=70%>

_＊[e-Words リング型ネットワーク](https://e-words.jp/w/%E3%83%AA%E3%83%B3%E3%82%B0%E5%9E%8B%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF.html)より画像を引用＊_

当時リング型ネットワークでは、１つのコンピューターがネットを占有すると、それ以降（利用者以外の全て）のコンピュータはネットを利用できなくなってしまう状態でした。

そこでトークンを使って「**今誰にネットの利用権があるのか（ネットを使っていいのか）**」を示すことで、１つのコンピューターがネットをずっと占有する状態にならないように対策しました。

イメージはこんな感じのトロッコがリングの中をぐるぐる回っているイメージ

![Token_Train.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936031/d1f62747-c585-4647-ad9e-ebf692e8af0d.png)

このトロッコの先頭についているトークンに「今は誰が使っていいよ」という情報が書かれていて、
対応するコンピューターはパケットを渡したりするやりとりができるみたいです。

# 今のトークン

そもそも用語自体、分野によって意味が変わってきますがここでの分野的にはIT分野にあたるかなと思っています。

今だと認証などでトークンが使われてるものの「**誰が使っていいのか**」というベースは変わっていないみたいです。

 https://it.webcli.jp/topics/token/

 上記サイトで「認証情報トークン」として「**ユーザー名とパスワード**」 が挙げられています。

 普段のログインで「ユーザー名とパスワード」で認証してそのサービスを「**使っていいのか**」を判別してもらっている。

 リング型ネットワークで使われていた時の「今誰が使っていいのかを示す」という考え方と繋がっているのかなと思っています。

 デジタル資産トークンだと
> デジタル上で所有・管理・取引される資産を表すトークンである

みたいです。
この場合は、「誰がどんな資産を」といった情報を示すのかなと思います。

「**ユーザー名とパスワード**」もトークンの１つなんですね。
 
 # トークンは証拠や印

元々**トークン**自体、「証拠」・「印」など「**何かを示すためのもの**」が単語の意味としても、
その起源としてもこれが大元みたいで、その点は、今も昔もそのまたもっと昔変わらないところみたいです。
 
 https://trade-log.io/column/1320

 > まずはトークン(token)の言語的な意味から紐解いていきましょう。語源辞典であるEtymonlineによると、トークンは本来、「証拠」「印」を意味する単語でした。しかし、これは具体的には何を指し示す「証拠」のことなのでしょうか？
> 
> トークンが生まれたとされる紀元前8,000年頃よりもさらに前の紀元前9,000年頃、人類は大きな転換期を迎えます。定住せずに狩りや採集といった行動によって食料を得て「その日食べられるだけ食べる」という獲得経済から、農耕や牧畜を主とする生産経済への移行を始めたのです。
> 
> 食料がある程度備蓄できるようになると、人々は牛などの家畜を通貨の代わりとして使い出すようになります。しかし、こうした家畜は通貨として持ち運ぶにはとても不便ですし、死んでしまうと資産価値がゼロになってしまいます。
> 
> そこでメソポタミア文明では、円盤状をした小さな粘土の塊に取引内容を記録して生活を営むことにしました。この小さな粘土から作られた小さな陶器が最古のトークンといわれています。記録したい取引の内容に呼応したトークンを所持することで、食料などのアイテムを実質いくつ所持しているのかを可視化できるという仕組みです。

https://japan.zdnet.com/glossary/exp/%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3/?s=1

> 英単語としては「象徴、証拠(品)、記念品、代用貨幣」といった意味になる。
> もっとも一般的に使われると思われるのは、このうちの代用貨幣の意味から転じた用法であろう。 何らかの権利などを有することの証明として使う例が多い。
> 
>  ネットワークに関する用語では、トークンリング(Token Ring)がある。 これは、ネットワークの方式の1つで、ネットワークにデータを送出する権利をTokenと呼ばれる特殊なデータで表現する。 Tokenはネットワーク上にただ1つ存在し、順次各ノード間で手渡されている。 ある時点でTokenを所有しているノードだけがネットワークに対する送信権を持つわけである。
> 
> 同様に、正当なユーザーであることを示すためのCookieや特殊なデータなども、意味的にはトークンとして利用されている例がある。

https://arc.net/l/quote/bgtgiwuy

> - 単語自体の意味は「しるし」とか「証拠」とかだよ
> - 具体的に何を指すかはケース・バイ・ケースだよ

# 結局トークンって何

「サービス」、「トークン」、「認証」、「ネットワーク」、「リング型」とあれやこれやとワードを加えるとわかりづらいけどつまるところ

![Text _Img.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936031/886eaac0-a3e2-4e81-bbab-c648b23313cf.png)

これに尽きるかなと思います。

**要は単語の意味そのまんま**

というのが、聞いた話と調べながら記事に書き起こした中で行き着いた解釈です。
多分、分野が変われどこの基礎は変わらないんじゃないかなと思います。

- この人はサービスを利用してもいいのかの目印（のトークン）
- 今は誰が使っていいのかの目印（のトークン）

IT枠として正しいかという点を除けば、例えばこんなものもトークンと言えなくもないと思います。
- 住所：建物（施設）の場所を示すための目印
- 値段：いくらのお金を出せば買えるのかを示すための目印
- 名前：個を区別あるいは特定するための目印

あとは、「車」・「スマホ」なんかもある意味トークンと言えるのかもしれない

つまり、単語の意味のまんまで

![Text _Img.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3936031/886eaac0-a3e2-4e81-bbab-c648b23313cf.png)

ということ。

# トークンを使う理由

「認証トークンで〜」とかとログインだったりの認証にトークンは使われているみたいだけど、メリットとして以下があるみたいです。
（先輩に聞いてみたら「挙げ始めたらキリがないからねぇ」とのこと）

- ID・PASSを毎回ネットに流さなくて済むからセキュリティリスクが減る
- 毎回IDを特定しからのPASSを照合は無駄が多く、利用者が増えればその分サーバーへの負荷が上がる
    - この負荷が増えていけばもはやそれは攻撃と同義

といった問題の回避や防止に役立つからみたいです。