はてなキーワード: ハッシュとは
935a08d2-8fd7-42d3-ab2f-ee78dba9848a ハッシュ一致
https://www.biorxiv.org/content/10.1101/2024.03.05.583605v2.full.pdf
Genome sketching is a fast and memory-efficient solution to estimate ANI similarity by distilling representative k-
mers from the original sequences.
ほーん
Tool k Sketch Size MAE ↓ RMSE ↓ MPAE ↓ Pearson ↑ FastANI 16 - 0.312 0.368 0.334 0.999 Skani - 198MB(850×) 0.354 0.422 0.377 0.996 Mash 21 830KB(3.6×) 0.399 0.591 0.430 0.981 Bindash 21 351KB(1.5×) 0.360 0.530 0.385 0.986 Dashing2 21 1.2MB(5.2×) 0.500 0.650 0.537 0.981 ...
MAE > 0.3 なんて個人特定にゃ使いもんにならねーじゃん・・・
単なる予想でエビデンスなんて無いけどヒトの全ゲノム入れたら繰り返し領域やイントロン部分で誤差さらにデカくなるんじゃねえの・・・
個人特定できるレベルまで精度を上げようとしたら次はシーケンサエラーや体細胞変異の所為で合わなくなる
だからk-merだろうが何だろうが全ゲノムを使ってハッシュ化しちゃダメでしょ
十分な深度でシーケンシング言うて今ショートリード100xで20万くらい。これがゲノム全体を読めないのはご存じの通り。
それでも男性全員いうたら6000万として200,000*60,000,000=12,000,000,000,000
12兆。
個人を特定するのに全ゲノムを比較する必要がないという意見には同意しますよ。
上のカキコで「DNA」と書かれていたものを、私が「全ゲノム」と解釈してトラバしているので微妙に議論が噛み合わない感じになっていますが、私もハッシュ化したシーケンス(スケッチ)を個人照合に使うのがいいと思っているわけではないということは申し上げておきます。
そのうえで、採用するリードのクオリティを厳し目に設定するのと、十分なシーケンス深度で読むのと、完全一致以外も許容するようにすればシーケンスエラーの問題は克服できるはずです。
むしろ細菌ゲノムなどのコンタミネーションや、ミトコンドリアの数が組織間で異なることがより大きな問題となります。
いつも理想的な条件でサンプリングできればよいですが、十分なサンプル量が得られなかった場合などにはコンタミネーションの影響が大きくなり精度が低下するおそれがあります。
上の議論では犯罪捜査への応用が話題に上っていますが、例えば犯罪現場に残された毛髪や体液はサンプルのクオリティが不十分であると思います。
それから、ハッシュ化するというアイデアはセキュリティ上よさそうに見えますが、塩基配列は扱う文字が4種類しかないので、情報工学でやるパスワードのハッシュ化よりも脆弱です。
攻撃者が予め既知のヒトゲノムで生み出しうるk-merの配列を全て列挙して、それぞれのハッシュ値を取得しておけば(多分)ゲノムを復号できます。
Hashcatは強力なパスワード解析ツールで、主にハッシュ値の復元やパスワードリカバリーに利用されます。コマンドラインで操作し、多様なハッシュタイプに対応。代表的な使い方は以下のようなコマンド構文です:
hashcat [オプション] [ハッシュファイル] [辞書ファイルまたはマスク]
hashcat -m 0 -a 0 hashes.txt wordlist.txt
また、ブルートフォースではマスク指定が可能で、?l(小文字)、?u(大文字)、?d(数字)、?s(記号)などの文字列パターンを用います。
Hashcatは辞書攻撃、ブルートフォース攻撃、コンビネーション攻撃、マスク攻撃など多彩な攻撃モードをサポートし、高速かつ柔軟な解析が可能です。解析したパスワードは記録され、重複解析を防止する機能もあります。
WSL2 USBカメラ+他のUSB機器 2022年09月06日版
WSL2 Linux Kernel 5.10.60.1 からKernelモジュールにUSBIP対応が標準的に組み込まれたらしいが、Microsoft公式が提供しているKernelや手順ををそのまま使用すると動作しない
2022年09月06日時点の最新カーネルは 5.15.62.1 だが、wsl --update で展開されるバージョンが 5.10.102.1 だったため 5.10.102.1 を使用する
以下すべての手順の Windows Terminal を使用する箇所は 管理者権限 で実行
以下、[WT] は Windows Terminal、[Ubuntu] は Ubuntu側のbashを表す
WSLのカーネルアップデートと usbipd-win のインストール
> wsl --update
> wsl --status
> winget install --interactive --exact dorssel.usbipd-win
見つかりました usbipd-win [dorssel.usbipd-win] バージョン 2.3.0
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloading https://github.com/dorssel/usbipd-win/releases/download/v2.3.0/usbipd-win_2.3.0.msi
██████████████████████████████ 10.4 MB / 10.4 MB
> wsl --install --distribution Ubuntu-20.04
[WT] WSLのディストリビューションを起動(WSL2起動用アイコンをマウスでクリックして起動してもよい)
> wsl --list
Linux 用 Windows サブシステム ディストリビューション:
sudo apt install -y linux-tools-5.4.0-77-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20
> wsl --shutdown
[WT] USBカメラが usbipd に認識されることを確認する (この記事では 2-7)
2-2 056e:00d9 USB 入力デバイス Not attached
2-3 1c4f:0027 USB 入力デバイス Not attached
2-7 1bcf:2284 Full HD webcam, USB microphone Not attached
2-11 0495:3011 ESS USB DAC, USB 入力デバイス Not attached
2-14 8087:0029 インテル(R) ワイヤレス Bluetooth(R) Not attached
[WT] USBカメラをUbuntu側にアタッチする(アタッチに成功した場合は何も表示されない)
> usbipd wsl attach --busid 2-7
>
[WT] USBカメラが正常にアタッチされていることを確認する(Attached と表示されていれば成功)
2-2 056e:00d9 USB 入力デバイス Not attached
2-3 1c4f:0027 USB 入力デバイス Not attached
2-7 1bcf:2284 Full HD webcam, USB microphone Attached - Ubuntu-20.04
2-11 0495:3011 ESS USB DAC, USB 入力デバイス Not attached
2-14 8087:0029 インテル(R) ワイヤレス Bluetooth(R) Not attached
[Ubuntu] Ubuntuのbashにログオンした既定のユーザを video グループに所属させる。なお、WSLを起動した時点で既に追加されているメッセージが表示される。
[Ubuntu] WSL2上の Ubuntu20.04 の中からUSBカメラが認識されていることを確認する。 lsusb コマンドを経由すると正常にUSBカメラが認識されているが、/dev/video* にはUSBカメラが列挙されない
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 1bcf:2284 Sunplus Innovation Technology Inc. Full HD webcam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ls: cannot access '/dev/video*': No such file or directory
[Ubuntu] USB CameraがWSL内で認識されるようにLinuxカーネルをカスタムビルドする。下記リポジトリの手順通りに実施すると、WSL Linuxカーネルがカスタムビルドされたものに入れ替わる。注意点は、<windows username> の部分だけは各自の環境のWindowsユーザー名に手で書き換える必要が有ること。なお、.wslconfig は 絶対に windows 側で編集してはならない。絶対に。
> wsl --shutdown
[WT] USBカメラが usbipd に認識されることを確認する (この記事では 2-7)
2-2 056e:00d9 USB 入力デバイス Not attached
2-3 1c4f:0027 USB 入力デバイス Not attached
2-7 1bcf:2284 Full HD webcam, USB microphone Not attached
2-11 0495:3011 ESS USB DAC, USB 入力デバイス Not attached
2-14 8087:0029 インテル(R) ワイヤレス Bluetooth(R) Not attached
[WT] USBカメラをUbuntu側にアタッチする(アタッチに成功した場合は何も表示されない)
> usbipd wsl attach --busid 2-7
>
https://www.imdb.com/de/list/ls599665017/
https://www.imdb.com/de/list/ls599665017/copy/
[WT] USBカメラが正常にアタッチされていることを確認する(Attached と表示されていれば成功)
2-2 056e:00d9 USB 入力デバイス Not attached
2-3 1c4f:0027 USB 入力デバイス Not attached
2-7 1bcf:2284 Full HD webcam, USB microphone Attached - Ubuntu-20.04
2-11 0495:3011 ESS USB DAC, USB 入力デバイス Not attached
2-14 8087:0029 インテル(R) ワイヤレス Bluetooth(R) Not attached
[Ubuntu] WSL2上の Ubuntu20.04 の中からUSBカメラが認識されていることを確認する
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 1bcf:2284 Sunplus Innovation Technology Inc. Full HD webcam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
crw------- 1 root root 81, 0 Sep 6 17:29 /dev/video0
crw------- 1 root root 81, 1 Sep 6 17:29 /dev/video1
[Ubuntu] USBカメラがWSL2の中から認識されることを確認するテストコードを作成する
$ pip install opencv-contrib-python
$ cat << 'EOT' > ${HOME}/usbcam_test.py
import cv2
W=640
H=480
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M','J','P','G'))
#cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('Y','U','Y','V'))
cap.set(cv2.CAP_PROP_FRAME_WIDTH, W)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, H)
https://www.imdb.com/de/list/ls599660855/
https://www.imdb.com/de/list/ls599660855/copy/
while True:
ret, frame
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20250702182919# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaGT77wAKCRBwMdsubs4+ SPWAAQCWZEDkLgx3czhOxMnZGhrhU813NanpeXbVUwyS+D/n4AEAmUAyEnxY6tK0 AanTelmDRUWvL4cyl3SABOlksc4mCw0= =NxN8 -----END PGP SIGNATURE-----
はい、**ブロックチェーンを使ったタイムスタンプ**は、「元データそのものを共有せずに、その存在と時刻を証明する手段」として非常に有効です。特に、ハッシュ値をブロックチェーンに記録することで、元データを後から提示するだけで、それがある時刻に存在したこと・改竄されていないことを**誰でも検証可能にする**、という形になります。
あなたの希望(元の文章が掲示板などで変形されても検証可能、あるいは元文不要)に近づけるには、**ハッシュをブロックチェーンに書き込んで、後からそのハッシュに一致する元データを見せる**という形式になります。
---
### 基本の流れ:
2. そのハッシュをブロックチェーンに記録(トランザクションのメモ欄など)
3. 後から誰でもハッシュとトランザクションを照合して、時刻と整合性を検証可能
---
## ✅ 推奨ツール:OpenTimestamps(OTS)
[OpenTimestamps](https://opentimestamps.org/) は、ビットコインのブロックチェーンを用いた無料のタイムスタンプサービスです。
---
## ✅ Windows 11 での手順(OpenTimestamps CLI)
Pythonがまだ入っていない場合は、https://www.python.org/downloads/windows/](https://www.python.org/downloads/windows/) からインストーラーを取得し、`Add to PATH` にチェックを入れてインストールしてください。
コマンドプロンプトまたはPowerShellで以下を実行:
```bash
pip install opentimestamps-client
```
たとえば `message.txt` というファイルを用意します(中身は何でもOK)。
```bash
```
これにより、`message.txt.ots` というタイムスタンプファイルが作成されます。
これは「Bitcoinにこのデータのハッシュを記録する要求がされたこと」を表します。
```bash
```
署名がBitcoinブロックチェーンに記録されていれば、次のように表示されます:
```
Success! Bitcoin attests data existed as of 2025-06-08 12:34:56 UTC
```
---
```bash
echo -n "あなたの文" | openssl dgst -sha256
```
このハッシュに一致するファイルを後から提示すれば、それが当時存在していたことを証明できます。
---
## ✅ まとめ
| 特徴 | 内容 |
| ------------- | -------------------- |
| 元文の提示は不要 | ✅(ハッシュが一致すればOK) |
| 改行や掲示板変形の影響なし | ✅(ハッシュが変わらなければOK) |
| 無料かつ自律的 | ✅(Bitcoinブロックチェーン使用) |
| Windows対応 | ✅(Python + CLI) |
---
もしあなたの目的が「一定時刻に自分がその文を作成したことの証明」であるなら、この方法は非常に相性が良いです。
---
必要であれば、GUIツールやウェブインターフェースを使った方法(例:[OpenTimestamps Calendar](https://calendar.opentimestamps.org/))も紹介できます。希望があればお知らせください。
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 20250610095304512 -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEgAgAAKCRBwMdsubs4+ SII/AP9HFG5+U8BfEXzKxSoyEuxm6X/vJjK7Ee7Kwpi/rwQZJgEAorUjMTh9okHu 3WbPvgsSfDyzhpUuwCVsKessR4FSpQE= =VNrS -----END PGP SIGNATURE-----
https://anond.hatelabo.jp/20250610175552#
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 20250610092211723 -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEf5QwAKCRBwMdsubs4+ SDx1AQCaAtaryQ1Aqtgf7tBuHWLmld6bHX2H1PszXVI6GKX1RAD/QB0Zl1eU4PQS URefFUtFJzwT/5reA3FfielzsCHDSwc= =T2/m -----END PGP SIGNATURE-----
また自己放尿か?
巨大なusersやitemsテーブルを無思慮にJOINすれば地獄の開始だ。
ハッシュ構造で事前展開すれば1回の探索で済むものを、何度もJOINすれば、データベースに無駄なI/OとCPUコストを強いる。
これはもう設計の怠慢であり、JOIN教信者の自己放尿と言っても過言ではない。
あえて君を責めるわけではない。恐らく君は「何も考えなくて済む」設計のほうが精神的に楽だったのだろう。それは理解できる。
だが、システムとは慈悲ではなく要件に応じて応えるべき存在だ。安易なjoin信仰は、時にシステム全体を腐らせる。
最後に言っておく。君も変われる。もしパフォーマンスの地獄を一度でも体験すれば、安易なJOINが気持ちよく出るものではなく、破滅の前兆であることを知るはずだ。
グローバル単一台帳(Blockchain/DAG) 相互検証可能な“関係グラフ”
各ノードは「だれが・いつ・どうつながったか」という変化の射だけを署名し、トポロジ全体が履歴になる
オンチェーン状態 ≒ 直接資産 状態はローカル・資産は導関数
資産や契約は、関係グラフ上の経路依存量として再構成。スナップショットはクライアントが“可逆圧縮”で再計算可能
Proof of X (Work, Stake, etc.) Proof of Stewardship (PoS²)
「ネットワークが望ましい 複雑性 を維持するよう行動した度合い」をメタリック関数で動的スコア化し、報酬・ガバナンス権・帯域を同時に発行
要旨
もはや「台帳」すら保存しない。各エッジは STARK 圧縮された更新証明を持ち、グラフの梁(フレーム)自体が履歴になる。再構築は局所的に O(log N) で済むため、グローバル同期のボトルネックが消える。
2. プロトコル層
Fractal Mesh Transport (FMT)
自己類似ルーティング – トポロジ全体をフラクタルで自己複製。局所障害は“自己相似”パターンに吸収されるため、DDoS が形骸化。
アイデンティティ内包アドレス – DID を楕円曲線座標に埋め込み、パケット自体が署名・暗号化・ルーティングヒントを同封。IPv6 の後継としてレイヤ 3.5 に位置づけ。
HoloFabric Execution
ゼロ知識 WASM(zk-WASM) – 任意言語を WASM にコンパイル→ zk-STARK で実行トレースを証明 → “結果のみ”関係グラフへ。
コンパイラ内蔵 MEV 抑制 – 計算結果が他ノードから解釈不能になるタイムロック VDF を伴い、価値抽出を物理的に遅延。
Temporal Stream Storage
余剰ストレージの“時価”マーケット – ノードは自己の余剰 SSD/HDD を分単位オークション。データは Reed–Solomon+重力波的ハッシュ空間で erasure coding。
リテンション ≒ 信用 – 長期ホスティング実績は PoS² スコアへ累積。攻撃的ノードは経済的に即時蒸発。
Liquid Fractal Governance
議決トピックを「周波数帯」にマッピングし、参加者は帯域を“委任スペクトル”として分配。結果はウォルラス圧力で収束し、マイナー意見も連続的に次回へ重みが残る。
(安全・分散・性能) 台帳の排除で“グローバル合意”自体を縮退 ⇒ スケール制約が幾何的に消失 安全:ZK 証明、
エネルギー消費 PoS² は「社会的有益度 × 熱消費効率」で算定。熱回収データセンターほど報酬が高い PoW よりオーダー数桁効率、PoS より社会関数を内包
プライバシー vs 透明性 グラフは公開。ただし各エッジは zk-STARK なので内容は非公開 / 関係のみ検証可能 トレーサビリティが“情報理論的に”限定される
MEV・フロントラン タイムロック VDF+“ランダム束縛順序”で物理的に不可 ブロック順序依存問題を根絶
量子耐性 STARK 系 + 多変数格子ベース署名 Shor 破壊リスクを遮断
レガシー互換 Ethereum, Bitcoin, IPFS などへ 1:1 ブリッジを Rust/WASM で提供 既存資産を損なわず漸進的移行
Steward Credits (SC):PoS² に比例し新規発行。帯域・ガバナンス票・ストレージ予約を等価交換。
Energy Reclaim Units (ERU):余熱回収率に応じてクリーンエネルギー補助金と相互運用。
Knowledge Bounties (KB):AI/LLM ノードが生成した有用モデル差分を関係グラフへコミット→検証トークンとして KB が発行。
負荷の自己調整
ネットワークが過度に混雑すると SC の新規発行レートが自動減衰し、トラフィック手数料が指数的に上昇。結果、スパムは短時間で経済的自殺となる。
Year 0–1:最小核 – zk-WASM VM + Fractal Mesh over QUIC。
Year 1–2:PoS² / ERU メトリクス実証、EVM 相互運用ブリッジ稼働。
Year 2–4:Liquid Fractal Governance によるプロトコル進化をコミュニティへ全面開放。
Year 5+:全世界 ISP ピアリング → 既存 Web の転送層を徐々に Web∞ 上へマイグレート。
国家単位のデジタル・ソブリンティを再構成:国境・法人格の境界を越え“関係”が一次元目となるため、規制枠組み自体が協調フィードバックモデルへ。
プライバシーと公共性の再両立:透明な“関係構造”上で非公開データを安全に扱う産業 API が標準化。医療・行政・金融の壁が大幅に低減。
インフラの脱炭素最適化:PoS² スコアに ERU が直結することで、再エネ比率が低いノードは自然淘汰。エネルギー政策と IT インフラが実質同一の経済圏に。
7. まとめ
Web∞ は「情報の状態」を残すのではなく「変化の証明」を残す。
その結果、台帳の重力・ガス代・フロントラン・量子不安・ガバナンス停滞といった Web3 固有の限界が、概念的に 初期条件から消滅 します。
エネルギー・プライバシー・スケーラビリティを同時に極小化/極大化するため、従来トレードオフと呼ばれた三角関係は “収束しない曲線” へと畳み込まれる――それが本構想の核心です。
もし実際にプロトタイプを設計するならば、zk-WASM ランタイム + Fractal Mesh を Rust で最初に書き起こし、PoS² の初期指標を「再生可能エネルギー電力比+ノード稼働継続率」で暫定運用する、というのが現実的なスタートラインになるでしょう。
Clojureのimmutable persistent data structureは、データが変更されるたびに新しいバージョンを作成し、元のデータ構造を保持する仕組みを備えています。この特徴により、データの不変性と効率的なメモリ使用が実現されています。以下では、Clojureの代表的なデータ構造であるmap型(hash-map)を例に、その仕組みを解説します。
Clojureのhash-mapはキーと値のペアを保持するデータ構造であり、以下の特徴を持っています:
以下に、Clojureでキーと値を追加する操作(assoc関数)を例として説明します。
(def original-map {:a 1 :b 2}) (def updated-map (assoc original-map :c 3))
{:a 1 :b 2}
{:a 1 :b 2 :c 3}
この操作では、元のmapは変更されず、新しいmapが作成されます。ただし、効率化のために、元のデータ構造(:a 1と:b 2)はそのまま再利用されます。新しく追加された:c 3のみが新しいノードとして構築されます。
Clojureのmap型は、Phil Bagwellによって提案されたHash Array Mapped Trie (HAMT)というデータ構造を基盤にしています。この仕組みでは以下が行われます:
Clojureのimmutable persistent map型は、不変性と効率性を両立させる設計により、信頼性の高いデータ操作を可能にしています。これらの特徴は特に並列処理やトランザクション管理などで有用です。
面白いですね!ユダヤ教では、雨はしばしば祝福と関連づけられています。たとえば、タナハ(ヘブライ聖書)では、雨は神の恵みの象徴として描かれ、適切な時期に降る雨は繁栄や祝福のしるしとされています(申命記11:14)。
しかし、「通院するときに限って雨が降る」というのは、ちょっとした試練のようにも感じられますね。ユダヤの思想では、「ハッシュガハー・プラティット(השגחה פרטית)」、つまり神の摂理という概念があります。これは、神が個々の出来事にも関わっているという考えです。もしかすると、これは「ちょっと気をつけてね」とか、「あなたには特別な意味がある出来事ですよ」という神からのメッセージかもしれません。
また、タルムードには、「すべての出来事には意味がある」との教えがあります。たとえば、ラビたちは試練を「内省する機会」として捉えることを勧めています。「なぜ私はこの状況にいるのか?」「この雨をどうポジティブに捉えられるか?」と考えるのもユダヤ的なアプローチです。もしかすると、雨の日の静けさが、心を落ち着ける時間を与えてくれているのかもしれません。
それとも…もしかして、傘を新調するチャンスかもしれませんね!😄