(57)【要約】  本開示は、製品の同一性を検証することに関する。特に、本開示は、製品の同一性を検証するための方法に関する。本方法は、第１のオリゴヌクレオチド配列を生成することと、第１のオリゴヌクレオチド配列の第１のハッシュ値を計算することとを含む標識化ステップを含む。第１のハッシュ値は、製品に関連付けられている。次に、本方法は、第１のオリゴヌクレオチド配列を合成することと、合成したオリゴヌクレオチド配列を製品に付加することとを含む。次に、製品からの第２のオリゴヌクレオチド配列を配列決定することと、配列決定したオリゴヌクレオチド配列の第２のハッシュ値を計算することと、製品の同一性を検証するために、第２のハッシュ値を製品に関連付けられた第１のハッシュ値と比較することとを含む検査ステップに従う。
2021534519.tif 000002
【特許請求の範囲】
【請求項１】
製品の同一性を検証する方法であって、
第１のオリゴヌクレオチド配列を生成することと、
前記第１のオリゴヌクレオチド配列の第１のハッシュ値を計算することであって、前記第１のハッシュ値が前記製品に関連付けられる、前記計算することと、
前記第１のオリゴヌクレオチド配列を合成することと、
前記合成したオリゴヌクレオチド配列を前記製品に付加することと、
前記製品からの第２のオリゴヌクレオチド配列を配列決定することと、
前記配列決定したオリゴヌクレオチド配列の第２のハッシュ値を計算することと、
前記製品の同一性を検証するために、前記第２のハッシュ値を前記製品に関連付けられた前記第１のハッシュ値と比較することと、
を含む、前記方法。
【請求項２】
前記第１のハッシュ値が、前記製品を含む包装に組み込まれる、請求項１に記載の方法。
【請求項３】
前記第１のハッシュ値がブロックチェーンに格納される、請求項１または請求項２に記載の方法。
【請求項４】
前記ブロックチェーンが分散型台帳の一部である、請求項３に記載の方法。
【請求項５】
前記第１のハッシュ値及び前記第２のハッシュ値を計算することが、付加データに基づく、先行請求項のいずれか１項に記載の方法。
【請求項６】
前記付加データが、
製品識別子、
エンティティ識別子、
共有秘密鍵、
パディングデータ、
公開鍵、
タイムスタンプ、
カウンタ、及び
製品固有製品識別子、
のうちの１つ以上を含む、請求項５に記載の方法。
【請求項７】
デジタル語を前記第１のオリゴヌクレオチド配列に符号化することにより、前記第１のオリゴヌクレオチド配列を生成することをさらに含む、先行請求項のいずれか１項に記載の方法。
【請求項８】
前記デジタル語を符号化することが、誤り訂正符号に基づく、請求項７に記載の方法。
【請求項９】
前記デジタル語を符号化することは、
ハミング符号語を生成することと、
前記ハミング符号語のセットをガロア体にマッピングすることと、
リードソロモン（ＲＳ）符号語を生成することにより、配列決定及び合成化誤差に対してロバストであるロバストな符号語を生成することと、
を含む、請求項８に記載の方法。
【請求項１０】
前記デジタル語が、前記方法を実施するエンティティに対してプライベートである、請求項７〜９のいずれか１項に記載の方法。
【請求項１１】
前記第１のハッシュ値を計算することが、前記第１のハッシュ値をデータベースに格納することを含み、前記第２のハッシュ値を前記第１のハッシュ値と比較することが、前記データベースから前記第１のハッシュ値を検索することを含む、先行請求項のいずれか１項に記載の方法。
【請求項１２】
前記方法が、前記第２のオリゴヌクレオチド配列上のプライマ部位にハイブリダイズする秘密のプライマセットを用いて、ポリメラーゼ連鎖反応（ＰＣＲ）によって、前記第２のオリゴヌクレオチド配列を増幅することをさらに含む、先行請求項のいずれか１項に記載の方法。
【請求項１３】
サプライチェーンの下流のエンティティが、前記製品に第３のオリゴヌクレオチド配列を付加する、先行請求項のいずれか１項に記載の方法。
【請求項１４】
前記製品に前記第３のオリゴヌクレオチド配列を付加することが、前記製品に関連付けられる第３のハッシュ値を計算することを含む、請求項１３に記載の方法。
【請求項１５】
前記第３のハッシュ値が、１つ以上の上流のハッシュ値に基づいて計算される、請求項１４に記載の方法。
【請求項１６】
前記第３のハッシュ値が、前記１つ以上の上流のハッシュ値に基づいて計算されることにより、付加されたオリゴヌクレオチド配列の順序がハッシュ値のチェーンを形成することを表現する、請求項１５に記載の方法。
【請求項１７】
前記第３のオリゴヌクレオチド配列を配列決定することと、
前記第２のハッシュ値と第４のハッシュ値との複数の組み合わせのそれぞれについて、前記第４のハッシュ値を計算することと、
前記複数の組み合わせの１つが一致をもたらす前記製品の同一性を識別するために、前記複数の組み合わせのそれぞれについて、前記第４のハッシュ値を前記第３のハッシュ値と比較することと、をさらに含む、請求項１６に記載の方法。
【請求項１８】
前記方法が、前記複数の組み合わせの１つに対する前記第４のハッシュ値が一致する上流ノードを識別することと、
前記識別した上流ノードの下流のノードに関係がある組み合わせに対してのみハッシュ値を計算することと、を含む、請求項１７に記載の方法。
【請求項１９】
前記第３のオリゴヌクレオチド配列を前記製品に付加することが、前記第３のオリゴヌクレオチド配列の前記第１のオリゴヌクレオチド配列へのライゲーションを促進することを含む、請求項１３〜１８のいずれか１項に記載の方法。
【請求項２０】
前記サプライチェーンの下流の前記エンティティによって付加される前記第３のオリゴヌクレオチド配列が、前記サプライチェーン内の前記エンティティの位置を示す、請求項１３〜１９のいずれか１項に記載の方法。
【請求項２１】
前記第２のオリゴヌクレオチド配列を配列決定することが、ロック核酸（ＬＮＡ）プライマを使用して、前記製品からの前記オリゴヌクレオチドを増幅することを含む、先行請求項のいずれか１項に記載の方法。
【請求項２２】
前記第２のハッシュ値を計算することが、前記配列決定したオリゴヌクレオチド配列を一方向に復号することと、復号に失敗すると、前記配列決定したオリゴヌクレオチド配列を反対方向に復号することと、を含む、先行請求項のいずれか１項に記載の方法。
【請求項２３】
前記配列決定した第２のオリゴヌクレオチド配列を、保存されているオリゴヌクレオチド配列に対してアラインメントすることをさらに含み、前記第２のハッシュ値を計算することが、前記アラインメントしたヌクレオチド配列に基づく、先行請求項のいずれか１項に記載の方法。
【請求項２４】
前記第１のオリゴヌクレオチド配列を生成することが、複数の符号シンボルに基づき、前記方法が、前記配列決定した第２のオリゴヌクレオチド配列を前記複数の符号シンボルに対してアラインメントすることを含む、請求項２３に記載の方法。
【請求項２５】
前記第１のオリゴヌクレオチド配列を生成することが、複数の符号語を生成することを含み、前記方法が、前記配列決定した第２のオリゴヌクレオチド配列を、以前に復号した符号語または符号語のデータベースに対してアラインメントすることを含む、請求項２３または請求項２４に記載の方法。
【請求項２６】
前記方法が、配列決定の誤りを判定することと、前記配列決定の誤りに基づいて、複数の符号シンボルに対して、または複数の符号語に対して、選択的にアラインメントを実行することとをさらに含む、請求項２５に記載の方法。
【請求項２７】
識別可能な製品を製造するための方法であって、
前記製品を製造することと、
第１のオリゴヌクレオチド配列を生成することと、
前記第１のオリゴヌクレオチド配列の第１のハッシュ値を計算することであって、前記第１のハッシュ値が前記製品に関連付けられる、前記計算することと、
前記第１のオリゴヌクレオチド配列を合成することと、
配列決定することを可能にするために前記合成したオリゴヌクレオチド配列を前記製品に付加し、前記製品の同一性を検証するために前記配列決定の結果の第２のハッシュ値を前記第１のハッシュ値と比較することと、を含む、前記方法。
【請求項２８】
製品の同一性を検証する方法であって、
ａ）第１のオリゴヌクレオチドが付加された製品を提供することと、
ｂ）前記第１のオリゴヌクレオチドの配列を取得し、前記配列からハッシュ値を計算することと、
ｃ）前記製品の同一性を検証するために、前記ハッシュ値を前記製品の所定の値と比較することと、を含む、前記方法。
【請求項２９】
コンピュータによって実行されると、前記コンピュータに先行請求項のいずれか１項に記載の方法を実行させる、ソフトウェア。
【請求項３０】
識別可能な製品であって、
１つ以上の製品構成要素と、
前記１つ以上の製品構成要素に付加された合成したオリゴヌクレオチド配列であって、前記合成したオリゴヌクレオチド配列が第１のハッシュ値に関連付けられて、前記合成したオリゴヌクレオチド配列の配列決定の結果の第２のハッシュ値を前記第１のハッシュ値と比較して、前記製品の同一性を検証することを可能にする、前記合成したオリゴヌクレオチド配列と、を備える、前記製品。
【請求項３１】
前記製品を含む包装をさらに備え、前記第１のハッシュ値が前記包装に組み込まれる、請求項３０に記載の製品。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、豪州仮出願２０１８９０２９２８及び２０１８９０４９００の優先権を主張するものであり、この豪州仮出願の内容を全体として参照により本明細書に援用する。
【０００２】
本開示は、製品の同一性を検証することに関する。例えば、本開示は、限定されないが、サプライチェーン内で製品の同一性を検証することに関する。
【背景技術】
【０００３】
過去２０年間にわたって偽造及び海賊行為が大幅に増加しており、偽造品及び海賊版製品は、世界中のほぼ全ての国で、事実上全ての経済部門において見つけられている。偽造のレベルの推定と、そのような製品の価値とは様々である。しかし、２０１３年の偽造品及び海賊版製品の世界貿易額は４，６１０億ドルと推定された（ＯＥＣＤ  ａｎｄ  ＥＵＩＰＯ，  ２０１６，  Ｔｒａｄｅ  ｉｎ  Ｃｏｕｎｔｅｒｆｅｉｔ  ａｎｄ  Ｐｉｒａｔｅｄ  Ｇｏｏｄｓ：  Ｍａｐｐｉｎｇ  ｔｈｅ  Ｅｃｏｎｏｍｉｃ  Ｉｍｐａｃｔ）。例えば、偽造医薬品は１００万人の死亡者を出しており、業界は毎年１，０００億ドルの損害を被っている。最近の研究では、毎年販売されている医薬品の１０％が偽造品であると推定されており、その数はオンライン薬局及び３Ｄ印刷された薬の台頭とともに増加すると予想されている。また、急速に拡大している医療用及び嗜好用の大麻市場は、必要最小限の器材を使って、組成的には類似しているが低水準の製品を製造する可能性のある偽造者に対し大いに開かれている。
【０００４】
製品のシリアル化と次世代のブロックチェーンベースのサプライチェーン監視技術とは、この脅威に対処しようとしてきた。しかしながら、暗号通貨とは異なり、ブロックチェーンは、いかなる物理的商品がサプライチェーン内で取引されようとも、その代用でしかない。根本的に、これらの「次世代」ソリューションは、未だにインク、染料、バーコード、ＱＲコード、ＲＦＩＤ、ホログラム、及び／またはＩｏＴデバイスなどの安全性の低い包装技術に依存している。さらに、既存の包装技術は、完成品の製造時点から、品物が包装を解かれる時点までのトレーサビリティのみを可能にするものにすぎない。完成品の製造時点から上流、及び製品が包装を解かれた時点から下流の全ての成分を追跡する能力は、依然として重要な課題である。下流の追跡及び識別は、製品が包装されていない状態で販売されている場合に、または２つ以上の製品が再結合され、再包装されて、第三の製品を形成している場合には、特に重要である。この機能はまた、規格外であると疑われている製品の全ての成分を、その出所まで迅速にさかのぼることができるようにする。
【０００５】
本明細書に記載されている開示された発明は、サプライチェーン情報が、製品に一体化される物理的オリゴヌクレオチドタグに格納されるとともに、不変のブロックチェーンにバックアップされる、製品の追跡及び検証のためのシステムである。開示された発明の核となる機能には、完全な途切れのないサプライチェーンカバレッジ、（成分及び製品単位のレベルでの）高解像度追跡、製品混合時のチェーン情報の自動転送（各トランザクションを認証する必要がない）、直前正規ノードを遡及する機能、偽造からの保護、及び製品認証が含まれる。
【０００６】
用途には、認定品（サステナブル、フェアトレード、コーシャ及びハラール）、パーム油、製薬、大麻（植物体から製品までを追跡）、悪用製品（すなわち、不正薬物の前駆体として使用される可能性のある製品）、乳製品及び乳児用調乳、ワイン、化粧品、宝石、化学製品、肥料、紙幣、カジノチップ、高級品、ならびに弾薬が含まれるが、これらに限定されない。
【発明の概要】
【０００７】
製品の同一性を検証する方法であって、本方法は、
第１のオリゴヌクレオチド配列を生成することと、
第１のオリゴヌクレオチド配列の第１のハッシュ値を計算することであって、第１のハッシュ値が製品に関連付けられる、計算することと、
第１のオリゴヌクレオチド配列を合成することと、
合成したオリゴヌクレオチド配列を製品に付加することと、
製品からの第２のオリゴヌクレオチド配列を配列決定することと、
配列決定したオリゴヌクレオチド配列の第２のハッシュ値を計算することと、
製品の同一性を検証するために、第２のハッシュ値を製品に関連付けられた第１のハッシュ値と比較することと、を含む。
【０００８】
「第１」及び「第２」の表示は、必ずしもサプライチェーン内の順序を示すわけではないため、例えば、第１のハッシュ値が、必ずしもサプライチェーンの最初のハッシュ値であるとは限らず、チェーン内の任意の場所のハッシュ値であり得る。この意味で、第１のハッシュ値は、元のハッシュ値、新しいハッシュ値、または生成されたハッシュ値と呼ばれる場合もある。同様に、第２のハッシュ値は、標本化ハッシュ値、標本ハッシュ値、またはテストハッシュ値と呼ばれる場合がある。
【０００９】
第１のハッシュ値は、ハッシュ値、ハッシュ値のバーコード、ハッシュ値のＱＲコード、またはハッシュ値に関連付けられた他の識別子として、製品を含む包装に組み込まれてもよい。
【００１０】
第１のハッシュ値は、ブロックチェーンに格納されてもよい。ブロックチェーンは、公開された分散型台帳の一部であってもよい。
【００１１】
第１のハッシュ値及び第２のハッシュ値を計算することは、付加データに基づいてもよく、付加データは、
製品識別子、
エンティティ識別子、
共有秘密鍵、
パディングデータ、
公開鍵、
タイムスタンプ、
カウンタ、及び
製品固有製品識別子のうちの１つ以上を含み得る。
【００１２】
本方法は、デジタル語をオリゴヌクレオチド配列に符号化することにより、第１のオリゴヌクレオチド配列を生成することをさらに含み得る。
【００１３】
デジタル語を符号化することは、誤り訂正符号に基づいてもよく、
ハミング符号語を生成することと、
ハミング符号語のセットをガロア体にマッピングすることと、
リードソロモン（ＲＳ）符号語を生成することにより、配列決定及び合成化誤差に対してロバストであるロバストな符号語を生成することと、を含んでもよい。
【００１４】
デジタル符号語は、本方法を実施するエンティティに対してプライベートであってもよい。
【００１５】
第１のハッシュ値を計算することが、第１のハッシュ値をデータベースに格納することを含んでもよく、第２のハッシュ値を第１のハッシュ値と比較することが、データベースから第１のハッシュ値を検索することを含んでもよい。
【００１６】
本方法は、第２のオリゴヌクレオチド配列上のプライマ部位にハイブリダイズする秘密のプライマセットを用いて、ポリメラーゼ連鎖反応（ＰＣＲ）によって、第２のオリゴヌクレオチド配列を増幅することをさらに含み得る。
【００１７】
サプライチェーンの下流のエンティティが、製品に第３のオリゴヌクレオチド配列を付加してもよい。
【００１８】
製品に第３のオリゴヌクレオチド配列を付加することが、製品に関連付けられる第３のハッシュ値を計算することを含んでもよい。第３のオリゴヌクレオチド配列は、別の／第２の元のハッシュ値、新しいハッシュ値または生成されたハッシュ値であり得る。
【００１９】
第３のハッシュ値が、１つ以上の上流のハッシュ値に基づいて計算されてもよい。
【００２０】
第３のハッシュ値が、１つ以上の上流のハッシュ値に基づいて計算されることにより、付加されたオリゴヌクレオチド配列の順序がハッシュ値のチェーンを形成することを表現してもよい。
【００２１】
本方法は、
第３のオリゴヌクレオチド配列を配列決定することと、
第２のハッシュ値と第４のハッシュ値との複数の組み合わせのそれぞれについて、第４のハッシュ値を計算することと、
複数の組み合わせのそれぞれについて、複数の組み合わせの１つが一致をもたらす製品の同一性を識別するために、第４のハッシュ値を第３のハッシュ値と比較することと、をさらに含み得る。
【００２２】
第４のハッシュ値は、別の／第２の標本ハッシュ値、標本化ハッシュ値またはテストハッシュ値であり得る。
【００２３】
本方法は、複数の組み合わせの１つに対する第４のハッシュ値が一致する上流ノードを識別することと、識別した上流ノードの下流のノードに関係がある組み合わせに対してのみハッシュ値を計算することとを含み得る。
【００２４】
第３のオリゴヌクレオチド配列を製品に付加することが、第３のオリゴヌクレオチド配列の第１のオリゴヌクレオチド配列へのライゲーションを促進することを含んでもよい。
【００２５】
サプライチェーンの下流のエンティティによって付加される第３のオリゴヌクレオチド配列が、サプライチェーン内のエンティティの位置を示してもよい。
【００２６】
第２のオリゴヌクレオチド配列を配列決定することが、ロック核酸（ＬＮＡ）プライマを使用して、製品からのオリゴヌクレオチドを増幅することを含んでもよい。
【００２７】
第２のハッシュ値を計算することが、配列決定したオリゴヌクレオチド配列を一方向に復号することと、復号に失敗した場合に、配列決定したオリゴヌクレオチド配列を反対方向に復号することと、を含んでもよい。
【００２８】
本方法は、配列決定した第２のオリゴヌクレオチド配列を、保存されているオリゴヌクレオチド配列に対してアラインメントすることをさらに含み、第２のハッシュ値を計算することが、アラインメントしたヌクレオチド配列に基づいてもよい。
【００２９】
第１のオリゴヌクレオチド配列を生成することが、複数の符号シンボルに基づいてもよく、本方法が、配列決定した第２のオリゴヌクレオチド配列を複数の符号シンボルに対してアラインメントすることを含んでもよい。
【００３０】
第１のオリゴヌクレオチド配列を生成することが、複数の符号語を生成することを含んでもよく、本方法が、配列決定した第２のオリゴヌクレオチド配列を、以前に復号した符号語または符号語のデータベースに対してアラインメントすることを含んでもよい。
【００３１】
本方法は、配列決定の誤りを判定することと、配列決定の誤りに基づいて、複数の符号シンボルに対して、または複数の符号語に対して、選択的にアラインメントを実行することとをさらに含んでもよい。
【００３２】
識別可能な製品を製造するための方法は、
製品を製造することと、
第１のオリゴヌクレオチド配列を生成することと、
第１のオリゴヌクレオチド配列の第１のハッシュ値を計算することであって、第１のハッシュ値が製品に関連付けられる、計算することと、
第１のオリゴヌクレオチド配列を合成することと、
配列決定することを可能にするために合成したオリゴヌクレオチド配列を製品に付加すること及び製品の同一性を検証するために、配列決定結果の第２のハッシュ値を第１のハッシュ値と比較することと、を含む。
【００３３】
製品の同一性を検証する方法は、
第１のオリゴヌクレオチドが付加された製品を提供することと、
第１のオリゴヌクレオチドの配列を取得し、配列からハッシュ値を計算することと、
製品の同一性を検証するために、ハッシュ値を製品の所定の値と比較することと、を含む。
【００３４】
ソフトウェアは、コンピュータによって実行されると、コンピュータに上記の方法を実行させる。
【００３５】
識別可能な製品は、
１つ以上の製品構成要素と、
１つ以上の製品構成要素に付加された合成したオリゴヌクレオチド配列であって、合成したオリゴヌクレオチド配列が第１のハッシュ値に関連付けられて、合成したオリゴヌクレオチド配列の配列決定の結果の第２のハッシュ値を第１のハッシュ値と比較して、製品の同一性を検証することを可能にする、合成したオリゴヌクレオチド配列と、を備える。
【００３６】
本製品は、製品を含む包装をさらに備え、第１のハッシュ値が包装に組み込まれてもよい。
【００３７】
上記の態様の１つに備わる任意選択の特徴は、方法、ソフトウェア、及び製品の態様を含む他の態様にも任意選択の特徴として等しく適用される。
【００３８】
次に、以下の図面を参照して実施例を説明する。
【図面の簡単な説明】
【００３９】
【図１】製品の同一性を検証する方法を説明する。
【図２】製品の同一性を検証するシステムを説明する。
【図３ａ】開示されたブロックチェーン−オリゴヌクレオチドタグアプローチのためのコンピュータシステム及び鍵情報交換を説明する。
【図３ｂ】開示されたブロックチェーン−オリゴヌクレオチドタグアプローチの第２の変形形態におけるコンピュータシステム及び鍵情報交換を説明する。
【図４】製品サンプリングのためのコンピュータシステムと、製品を検証するために、ＤＮＡ符号語のハッシュであるＨ（ＣＤＮＡ）を計算するための符号の誤り検出及び誤り訂正の使用とを説明する。
【図５】製品またはノードの情報がオリゴヌクレオチド断片に保存され、ノード順序がリモートで保存されるオリゴヌクレオチドタグ方法論１（ＯＴＭ１）を説明する。
【図６】ＯＴＭ１を使用して製品に情報を付加することができる方法を説明する。
【図７】ＯＴＭ１を使用して物理オリゴヌクレオチドに保存されているサプライチェーン情報を、データベースまたは分散型台帳にリンクさせることができる一手法を説明する。
【図８】オリゴヌクレオチド断片が製品または製品情報とノード配置／順序情報との両方を含むオリゴヌクレオチドタグ方法論２（ＯＴＭ２）を説明する。
【図９】ＯＴＭ２を使用して標識化された製品に情報を付加する方法と、その製品から情報を回収する方法とを説明する。
【図１０】ＯＴＭ２を使用して物理オリゴヌクレオチドに保存されているサプライチェーン情報を、データベースまたは分散型台帳にリンクさせることができる一手法を説明する。
【図１１】オリゴヌクレオチド断片が、ノードまたは製品の情報を含み、付加された順序を記録するために、互いに順次にライゲートされる、オリゴヌクレオチドタグ方法論３（ＯＴＭ３）を説明する。
【図１２】ＯＴＭ３を使用して、製品に情報を付加する方法と、その製品から情報を回収する方法とを説明する。
【図１３】ＯＴＭ３を使用して物理オリゴヌクレオチドに保存されているサプライチェーン情報を、データベースまたは分散型台帳にリンクさせことができる一手法を説明する。
【図１４】ハッシュチェーン、ハッシュリスト、またはハッシュ木におけるノード及びノード間で、ハッシュ関数を計算するための処理及び入力を説明する。
【図１５】ＤＮＡ符号語（ＣＤＮＡ）入力を使用してジェネシスハッシュ値を計算するための異なる方法論を説明する。
【図１６】ＯＴＭ１方法論で標識化された製品と、二分ハッシュ木アプローチまたは単純ハッシュリストを使用してオリゴヌクレオチドに含まれる情報を保存する方法とを説明する。
【図１７】ＯＴＭ１で標識化された製品が、二分ハッシュ木方法論を使用してデータが保存されるフォークを受けている（つまり、製品が分割される）ことを説明する。
【図１８】ＯＴＭ１で標識化された２つの製品が、マージされている（つまり、製品が混合されている）実施例を説明し、二分ハッシュ木方法論を使用してデータが保存される。
【図１９】ＯＴＭ１で標識化された２つの製品が、二分ハッシュ木方法論を使用してデータが保存される、マージと、それに続くフォークとを受けている拡張した実施例を説明する。
【図２０】ＯＴＭ１で標識化された製品の実施例であって、ノードが代替情報を組み込み、オリゴヌクレオチドタグが付加されない実施例を説明する。
【図２１】ＯＴＭ１で標識化された２つの製品が、マージと、それに続くフォークとを受けている拡張した実施例であって、二分ハッシュ木方法論を使用してデータが保存され、７つのノードがオリゴヌクレオチドタグ情報Ｈ（ＣＤＮＡ）を組み込まない、拡張した実施例を説明する。
【図２２】ｐＣＤＮＡが付加されたノードのみを記載する図２１の折り畳み版を説明する。この場合、図２１は、図２１の情報のみを含む製品サンプルから再作成されなければならない。
【図２３】製品中のｐＣＤＮＡが包装識別子技術に暗号でリンクされ得る方法を説明する。
【図２４】新しいｐＣＤＮＡが製品に付加されたときに、包装識別子技術が更新され得る方法を説明する。
【図２５】ＯＴＭ１で標識化された２つの製品がマージされて最終製品が形成される実施例を説明し、マージ点のハッシュ値が、包装上の一意識別子として使用され、包装識別子が、ｐＣＤＮＡが付加されないノードでチェーン情報を更新するのに使用され、ハッシュチェーンまたは木が、包装されていない製品のｐＣＤＮＡから回収され復元される。
【図２６】２者間で情報を転送するために使用される公開鍵暗号化プロトコルを説明し、その場合、トランザクションが分散型台帳に記録され得、ブロックチェーンによって保護され得る。
【図２７】オリゴヌクレオチドタグ情報がデジタルウォレット間で転送され、分散型台帳に保存され、ブロックチェーンによって保護されるシステムを説明する。
【図２８】混合され、開梱され、分割され、再包装される１つ以上のオリゴヌクレオチド標識製品間の鍵情報転送を説明する。
【図２９】製品のサンプリングとオリゴヌクレオチドタグの配列決定とのプロセスを説明する。
【図３０ａ】ヌクレオチドのセット｛Ａ、Ｃ、Ｇ、Ｔ｝を使用して、Ｚ４でハミングシンボルＨａｍ（ｎ、ｋ）を符号化する方法論を説明する。
【図３０ｂ】ハミングＤＮＡシンボルのセットをガロア体（ＧＦ）の要素にマッピングし得る方法を説明する。
【図３０ｃ】ガロア体（ＧＦ）にマッピングされたハミングシンボルからリードソロモン（ＲＳ）ＤＮＡ符号語を組み立てる方法を説明する。
【図３１】リードソロモン（ＲＳ）ＤＮＡ符号語を復号する方法論を説明する。
【図３２】符号語が、オリゴヌクレオチドに符号化され、暗号化され、製造され、製品に付加され、製品からサンプリングされ、復号され、データベースに対して検証される、方法の実施例を説明する。
【図３３】ＲＳ［９，５］ＤＮＡ符号語を符号化するステップを説明する。この図に示されている符号化ステップには、（Ａ）サイズＳＤＮＡ＝１２８シンボル（全体でＳＤＮＡ＝Ｓｓ）のＤＮＡライブラリを形成するためのＨａｍ［７，４］符号化ブロックの構築と、これらを（Ｂ）有限ガロア体ＧＦ（２７）＝ＧＦ（１２８）のシンボルにマッピングすることとが含まれる。これらのシンボルは、（Ｃ）確立されているリードソロモン符号化方法論に従って、ＳＤＮＡからＲＳ［９，５］符号語を組み立てるために使用された。
【図３４】ナノポアＤＮＡ配列決定の誤りのデータを説明する。
【図３５】復号ステップを説明する。
【図３６】復号ステップを説明する。
【図３７】データベースサイズに対する復号時間の分析を説明する。
【図３８】ステップＡ〜Ｃの復号時間対サンプルサイズを説明する。
【発明を実施するための形態】
【００４０】
本開示は、一意識別子で符号化された製品一体型の合成オリゴヌクレオチド（本明細書では「オリゴ」）マーカをブロックチェーンに「まく」ことにより、既存のサプライチェーン監視技術を制約する。本アプローチでは、製品及び／または製品のサプライチェーンに関する情報を含む個々の品物（つまり、製品または製品成分）にマーカ（複数可）が付加される。製品中のオリゴヌクレオチドタグ（複数可）は、温度追跡、地理学的追跡、リアルタイム追跡、またはバーコードスキャンなどの機能性を可能にするために、サプライチェーンの下流の時点で他の包装技術（インク、染料、ホログラム、バーコード、ＱＲコード、ＲＦＩＤ、二酸化ケイ素符号化粒子、ＩｏＴデバイスなど）と暗号によってリンクされ得る。開示されたアプローチは、情報転送を自動化し、かつ安全にするために、ブロックチェーンアーキテクチャに統合され得る。
【００４１】
本明細書に記載されたいくつかのステップは、好ましくはコンピュータ環境内で実施されるステップであることに留意されたい。そういった意味で、それぞれのプロセッサと、プロセッサ／コンピュータに、その記載されたステップを実行させるソフトウェアコードを格納するためのプログラムメモリとを備えたコンピュータシステムが提供されている。プログラムメモリは、ソフトウェアコードを格納した非一時的コンピュータ可読媒体であってもよい。一実施例では、最初の製造業者（ジェネシス）のための１つのコンピュータシステムと、さらなる製造者または品質保証エンティティであり得る各中間エンティティのための１つのコンピュータシステムと、製品の最終的な受領者のための１つのコンピュータシステムとが存在する。コンピュータで実施されるステップは、Ａｍａｚｏｎ  ＡＷＳなどの分散コンピューティングプラットフォーム（「クラウド」）上で実施されてもよい。鍵、単語、または配列などの「秘密」データについて述べると、これは、選択されたユーザまたは数人のユーザのみが、それぞれのデジタル保存の場所（ファイル、フォルダ、ウェブドライブなど）への読み出しアクセスにより、またはスマートカードを介して提供される個人的な復号鍵、もしくは秘密データを復号するユーザ自身の記憶からもたらされるパスフレーズにより、そのようなデータにアクセスすることができることを意味する。秘密データは、他のユーザがアクセスすることはできず、他のユーザから保護されている。
【００４２】
ここで開示されているアプローチは、サプライチェーン監視の重視すべき以下の５つの事柄に対処する。
ａ）セキュリティ：製品を分散型データベース（ブロックチェーン）、分権型または中央集権型データベースにリンクするために、製品一体型のアプローチが必要とされる。
ｂ）カバレッジ：オリゴ追跡は、サプライチェーン情報を、成分が製造された時点で、ブロックチェーンまたは中央集権型データベースに記録できるようにし、さらに、製品が包装を解かれた時点から下流で、追跡できるようにする。これにより、サプライチェーン全体が途切れることなくカバーされるようになる。
ｃ）情報転送：製品に付加されるオリゴヌクレオチドタグに符号化された情報が、製品が混合（マージ）されるとき、または分割される（分けられる）ときに、「自動的に」転送される。この成分のトレーサビリティは、再結合された製品及び包装されていない製品に含まれる。
ｄ）遡及機能：遡及機能により、再結合された最終製品のみから、サプライチェーン内のリークノード及び不正ノードの特定が可能になる。この機能は、認可されていない市場に販売された製品、盗まれた製品、希釈された、もしくは切断された製品、または悪用される製品（例えば、不正薬物の前駆体として使用される可能性のある製品）を追跡するのに有用である。
ｅ）チェーン修復：包装技術が解消されたか、または損傷したオリゴタグ付き製品から、一意識別子情報を回収することができる。これにより、壊れたチェーン／木を修復できるようになる。製品中のオリゴタグから得られた情報で符号化される包装識別子技術を用いて、二次製品を再包装してもよい。
【００４３】
一実施例では、Ｏｘｆｏｒｄ  Ｎａｎｏｐｏｒｅ社のＤＮＡ配列決定技術が使用されている。Ｏｘｆｏｒｄ  Ｎａｎｏｐｏｒｅは、可搬性と低い読み取りレイテンシとを提供するＤＮＡシーケンサであり、実地でのリアルタイムのサンプル回収及び復号を可能にする。さらなる実施例では、ＤＮＡタグ配列及び関連情報は、ビットコイン、イーサリアム、または独立系ブロックチェーンなどの分散型台帳またはブロックチェーンに格納される。製品が検査され、または移送されるたびに、分散型台帳は、コンセンサスメカニズムを使用して、製品の移送に照らして台帳を更新する。これにより、特定の品物または成分のセキュアな生産物流管理ログが作成される。
【００４４】
「ブロックチェーン」という用語は、本明細書では「ハッシュのハッシュ」であることを表すために広く使用されていることに留意されたい。この意味で、ブロックチェーンは、必ずしも公開、分散されている必要はなく、プルーフオブワークまたはプルーフオブステークに基づくものである必要もないが、例えば、Ｖｅｒｉｓｉｇｎ  Ｉｎｃ．が発行するＳＳＬ証明書など、既存の技術を用いて認証可能な信頼できるデータベースに格納され得る。このようなブロックチェーン内の各ブロックは、それまでの全てのブロックから計算されたハッシュ値を含み、以前のブロックを改ざんすることが事実上不可能になるという利点をもたらす。さらに、ハッシュ値のみを公開することで、ブロック内の実際のデータを開示せずに、ブロックのチェーンを検証できる。これについては、さらに詳しく後述する。
【００４５】
核酸分子は、本明細書では分子タグ（「タガント」とも呼ばれる）として使用される。これらの分子タグは、本質的に安定しており、情報密度が高く、毒性がなく、商業的に成熟した技術（例えば、連鎖停止配列決定、合成時配列決定、ナノポア配列決定、一分子リアルタイム配列決定、及びコンビナトリアルプローブアンカー配列決定技術など）を用いて合成され、配列決定されるという利点がある。非生物学的情報が、核酸塩基（ｂ）「アルファベット」を使用して、ＤＮＡまたはＲＮＡの断片に符号化することができ、その場合、利用可能な文字の組は、ＤＮＡについてはＳ＝｛Ａ（アデニン）、Ｃ（シトシン）、Ｇ（グアニン）、Ｔ（チミン）｝であり、ＲＮＡについてはＳ＝｛Ａ（アデニン）、Ｃ（シトシン）、Ｇ（グアニン）、Ｕ（ウラシル）｝である（ただし、組の大きさはｓ＝４である）。この４を基数とする体系では、膨大な量の情報を比較的短いＤＮＡ断片に格納できるようになり、文字列の長さｎ文字に対して利用可能な一意タガント符号語数がｗｎ＝ｓｎとなる。これは、データの２進表現を４要素からなるＤＮＡアルファベットにマッピングして配列に符号化できるという意味で、デジタル符号語をヌクレオチド配列に符号化できることを意味する。２元の符号語は、コンピュータのメモリに通常保存されている任意のデータとすることができる。
【００４６】
本明細書で提供されるほとんどの実施例は、４文字の使用に関連しているが、２進形式で２文字のみなど、より少ないオリゴヌクレオチド配列を使用すること、または上記の４文字よりも多いオリゴヌクレオチド配列を使用することも同様に可能である。さらに、｛Ａ、Ｃ、Ｇ、Ｔ、Ｕ｝で構成される５文字の体系を使用することも可能である。
【００４７】
オリゴヌクレオチド符号語に符号化し得る情報の量は、２元符号、３元符号、４元符号、．．．、ｎ元符号を表すものとして、オリゴヌクレオチド断片の大きさと、ヌクレオチドの配置、またはヌクレオチドのサブセットとによって定義される。各プライマ対用の可能な一意の符号（符号語空間）の総セットは、１００ｂを超えるオリゴヌクレオチド断片に対し、実用的な目的のためには本質的に無限である。場合によっては、１つのヌクレオチドが４文字のアルファベット中の１つのシンボルにマッピングされる直接符号化は、配列決定の誤り及び合成化誤差のために、実行可能ではない可能性がある。したがって、冗長性と誤り検出及び誤り訂正機能とをタガント設計に組み込み、それによって復号信頼度を高めることができる。冗長性及び／または誤り検出及び誤り訂正機能が組み込まれた符号化システムの実例としては、例えば、他の誤り訂正符号を使用できることに留意しつつ、ハミング、リードソロモン及びファウンテンの符号化が挙げられる。
【００４８】
図１は、製品が正しい製造業者から作り出されたものであることを検証するという意味で、製品の同一性を検証する方法１００を説明する。本方法は、最初に、ＤＮＡ配列については４文字のＡ、Ｔ、Ｇ及びＣからなるオリゴヌクレオチド配列を、またはＲＮＡ配列についてはＡ、Ｕ、Ｇ及びＣからなるオリゴヌクレオチド配列を生成すること（１０１）を含む。オリゴヌクレオチド配列は、文字列または２値ベクトルとして表すことができ、００が「Ａ」を表し、０１が「Ｃ」を表し、１０が「Ｇ」を表し、１１が「Ｔ」を表す。オリゴヌクレオチド配列は、ＡＳＣＩＩシンボルを表す文字列のセットに配置されてもよい。その場合、ＡＳＣＩＩ符号語が、ＡＳＣＩＩシンボルのセットから組み立てられ得る。配列の他の表現が同様に可能であってもよく、このことは、オリゴヌクレオチド配列を参照する本開示全体に適用される。言い換えれば、オリゴヌクレオチド配列という用語は、配列を表すデータのデジタル形式、または化学塩基を含む実際の分子を構成する化学形態を含めて、複数の形式を有し得る。この区別が文脈から明らかでない場合は、「デジタル形式」及び「化学形態」という用語で明確にされる。本文書全体を通して、文脈を明確にするために、次のシンボルも使用している。（ｉ）Ｃｘ（ＡＳＣＩＩ符号語）、（ｉｉ）ＣＤＮＡ（オリゴヌクレオチド符号語）、（ｉｉｉ）ｐＣＤＮＡ（オリゴヌクレオチドタグの物理形態または化学形態）、及び（ｉｖ）Ｈ（ＣＤＮＡ）（ＤＮＡ符号語ＣＤＮＡのハッシュ）である。
【００４９】
一実施例では、配列のデジタル形式を生成するステップ１０１は、デジタル値が配列に符号化される符号化ステップを含む。デジタル値は、製品コードまたは製造コード、あるいは特定の識別機能に関連付けられていない単なる乱数であり得る。以下では符号化ステップをさらに詳細に説明し、符号化ステップは、本質的に、配列が、生物学的制約を満たすことができ、配列決定の誤りをロバストな方法で回収できることを保証する。
【００５０】
方法１００は、オリゴヌクレオチド配列の第１のハッシュ値を計算すること（１０２）によって継続する。ハッシュ値は、システム全体のセキュリティ要件に応じて様々な形式範囲を取り得るハッシュ関数によって計算される。例えば、種々の配列の総数が制限されているために衝突が発生する可能性が低い積算ハッシュ法によって、ハッシュ値を計算してもよい。他の実施例では、ＭＤ５、または好ましくはＳＨＡ−２もしくはＳＨＡ−３などの、より高性能の関数を使用することができる。これらの高性能関数は高度に最適化されているため、計算負荷が最小限に抑えられ、したがって、この特定の用途で必要とされるよりも高性能のハッシュ関数を使用することのデメリットはほとんどない。
【００５１】
ハッシュ値の計算後、計算前、または計算中に、既知の手法を使用してオリゴヌクレオチド配列を合成して（１０３）製品に付加する（１０４）。これは、合成した（化学形態の）配列を製品に混合することを含んでもよい。その後、製品は、サプライチェーンを通過して、最終顧客、または中間製造業者、または品質管理代行者などの受領者に届けられる。
【００５２】
このとき、受領者が製品の同一性を検証できることが求められる。そのために、受領者は、その製品からの第２のオリゴヌクレオチド配列を配列決定する（１０５）。その場合、その配列が本来（または「上流」）の製造業者によって付加された配列と同じであるかどうかが不明である。これを検証するために、仲介者は、配列決定したオリゴヌクレオチド配列の第２のハッシュ値を計算し（１０６）、第２のハッシュ値を第１のハッシュ値と比較して（１０７）、製品の同一性を検証することができる。第２のハッシュ値が第１のハッシュ値と同一である場合、製品の同一性が検証される。ハッシュが異なる場合、製品の同一性は検証されない。
【００５３】
ハッシュ値はまた、製品識別子、その時点での取り扱いエンティティのエンティティ識別子、共有秘密鍵、公開鍵、タイムスタンプ、カウンタ、またはその製品の特定の個々の「インスタンス」に固有の製品固有製品識別子であり得る付加データに基づいて計算されてもよい。この付加データは、ハッシュが計算される前にオリゴヌクレオチド配列と連結されてもよく、またはオリゴヌクレオチド配列のハッシュは、付加情報と連結されてもよく、結果に基づいて別のハッシュが計算される。重要な態様は、付加データにおける任意の些細な契機が完全に異なるハッシュをもたらし、ハッシュが同じままであるように付加データを変更すること、またはハッシュのみから付加データを決定することは事実上不可能であるということである。
【００５４】
図２は、製品の同一性を検証するためのシステム２００である。本システムは、リモートサーバまたはサーバセット２０２、あるいはローカルコンピューティングデバイス２０３に実装され得るオリゴヌクレオチドエンコーダ２０１を備える。オリゴヌクレオチド符号は、オリゴヌクレオチドを合成するマシン２０５に製造のために送られる（２０４）。次に、１つ以上の様々な符号化されたオリゴヌクレオチド断片が、成分２０７または最終製品２０８に組み込まれる（２０６）。包装ステップ２０９では、バーコード、ＱＲコード、ＲＦＩＤ、インク、染料、符号化された二酸化ケイ素粒子、ＩｏＴデバイスなどの他の包装識別（ＰＩ）技術２１０を組み入れてもよい。サンプリングに関しては、１つ以上のサンプルを準備してバーコードを付け、共にプールし（２１１）、配列決定デバイス２１２で配列決定することができる。配列決定したデータは、ローカルコンピューティングデバイス２１４上の、または１つ以上のリモートサーバ２００に接続されたネットワーク２１５を介して、復号アプリケーション２１３に送られ、そこで復号され、任意選択でハッシュ値を計算され、エンコーダ２０１によって作成されたオリゴヌクレオチド配列から計算されたハッシュなどの、関連データの入ったローカルまたは分散型レジストリ２１６と比較される。
【００５５】
以下の記述は、拡張オリゴ標識の情報転送及び鍵構成要素（分散型台帳アプローチ）を提供する。
【００５６】
図３ａは、本明細書に開示されたブロックチェーン−オリゴアプローチを使用する情報交換のためのコンピュータシステム３００を説明する。システム３００は、ＡＳＣＩＩシンボル３０２（Ｃｘ）の符号語をＺ４オリゴヌクレオチド配列３０３（ＣＤＮＡ）に符号化するためのオリゴエンコーダモジュール３０１を備え、そこでは、例えば｛Ａ、Ｃ、Ｇ、Ｔ｝→｛０、１、２、３｝→｛００、０１、１０、１１｝とされる。オリゴヌクレオチド配列３０３はオリゴヌクレオチド製造業者３０４に送られ、そこで塩基対｛Ａ、Ｃ、Ｇ、Ｔ、及び場合によってはＵ｝を有する物理的オリゴヌクレオチド配列３０５（すなわち化学形態、ｐＣＤＮＡ）が製造される。物理的オリゴヌクレオチド配列３０５とＣＤＮＡのハッシュＨ（ＣＤＮＡ）３０６とは、認可された製品製造業者３１３、二次製品製造業者３１４、または他のメンバー３１５、３１６に送られる（３０７、３０８、３０９、３１０、３１１、３１２）。様々な符号語及び／または一意識別子配列３０７、３０８、３０９で符号化された１つまたは任意選択で複数のｐＣＤＮＡが、これらの符号化された断片のハッシュＨ（ＣＤＮＡ）３１０、３１１、３１２と共に、デジタルウォレット３１３、３１４、３１５、及び３１６によって表現されるこれらのメンバーに送られてもよい。
【００５７】
チェーンまたは木が作成されるプロセスを、製造業者のウォレット３１３に示す。ウォレット１（３１３）では、製造業者は、秘密鍵３１７及び公開鍵３１８を使用して、トランザクションのジェネシスハッシュ及び／またはジェネシス署名を作成し、それによって同一性のチェーンを開始する。公開鍵をジェネシス署名に適用して、製造業者を検証することができる。製造業者のウォレットはまた、バッチ番号、有効期限、製造施設、品質管理データ、またはその他の情報などの情報を含み得るメッセージ３１９を含む。図３ａに示す形式のメッセージ３１９はまた、Ｈ（ＣＤＮＡ）３１０、３１１及び３１２それぞれを入れたノードハッシュ３２０、３２１、３２２を含む。
【００５８】
ウォレット３１３、３１４及び３１５のそれぞれのハッシュ値３２０、３２１及び３２２を計算するための方法論が、以下及び図１６〜図２２に詳細に開示される。簡単に言えば、第１のハッシュ３２０は、Ｈ（ＣＤＮＡ）であり得るか、または任意選択でＸのゼロ以上もしくはＸのハッシュに連結された１つ以上のＨ（ＣＤＮＡ）のハッシュであり得る。ただし、Ｘ＝｛第２のＨ（ＣＤＮＡ）、タイムスタンプ、カウンタ、代替識別子、乱数、またはパディングテキスト｝である。第２のハッシュ３２１は、Ｘの１つ以上またはＸのハッシュに連結された３２０のハッシュである。第３のハッシュ３２２は、Ｘの１つ以上またはＸのハッシュなどに連結された３２１のハッシュである。バイナリハッシュ法が使用される場合、特定のノードのハッシュには、前のノードで計算された累積ハッシュ値と、ノードで付加されたいくつかの新しい情報とが含まれる。この構造はブロックチェーンに類似しており、いくつかの重要な利点が提示する。これらについては、以下に詳細に開示される。
【００５９】
また、３２３の情報には、メッセージ３１９が含まれ得る。メッセージには、例えば、製品のバッチ番号、有効期限、製造業者、製造施設、タイムスタンプ、管理情報、または品質管理及び品質分析情報などの情報が含まれ得る。転送を行うために、３２３の情報は暗号文（ＣＴ）に暗号化される。ＣＴ及びＣＴ３２４のハッシュは、送り手の秘密鍵３１７で署名され、受け手の公開鍵３１８を使用して受け手に送られる。３２３の情報が改ざんされていないことを保証するために、暗号文のハッシュが含まれる。同様にして、付加製品を混合してハッシュ木をマージし、または分割してハッシュ木をフォークさせることができる。製品中のｐＣＤＮＡは、混合または分割の際に、再結合させた製品へ自動的に転送されることに留意されたい。ここで説明する情報転送プロセスは、全てのウォレット３１３、３１４、３１５、３１６に適用される。
【００６０】
製品がサプライチェーンのノード間で転送され、任意選択で新しいｐＣＤＮＡが付加されるとき、製品を再包装してもよい（３２５、３２６、３２７）。特定の事象を記録するための製品へのｐＣＤＮＡの付加、または第２のタグ付き製品の混合による製品へのｐＣＤＮＡの付加を、３２８、３２９、及び３３０に示す。製品に含まれる情報は、任意選択で暗号化されてもよく、包装の時点でのノードハッシュ値レベル、またはチェーン内の別のノードハッシュ値を使用する包装識別子技術で表示することができる。例えば、ウォレット３（３１５）の場合、ハッシュ値３２２は、包装識別子技術３３３を用いて公に表示され得る。包装識別子技術には、インク、染料、バーコード、ＱＲコード、マイクロドット、二酸化ケイ素タグ、ＲＦＩＤまたはＩｏＴデバイスが含まれ得る。このアプローチは、製品を、包装、データベースに暗号でリンクさせ、全ての製品／管理情報を製品内のｐＣＤＮＡから回収できるようにする。
【００６１】
ノードハッシュ３２０、３２１、及び３２２をリンクする方法論を以下に開示する。
【００６２】
製品をサンプリングするために、コンピューティングデバイス３３５上のアプリケーション３３４は、以下のモジュールを含むユーザインタフェースを提供する。
（ｉ）ブロックチェーンプロセス３３７を実装するコンピューティングサービスプラットフォーム３３６に接続するモジュール、
（ｉｉ）包装識別子検出デバイス３３８及びオリゴ配列検出デバイス３３９からのデータストリームを処理するモジュール、及び
（ｉｉｉ）データストリームを復号するモジュール、である。
【００６３】
ローカルまたはリモートコンピューティングデバイス３３５が、アプリケーション３３４を実行する。コンピューティングデバイス３３５は、ブロックチェーン実装３３７を実行するコンピューティングサービスプラットフォーム３３６に接続されている。
【００６４】
図３ｂは、各ウォレット３２０、３２１、３２２内のＨ（ＣＤＮＡ）がメッセージ３１９とは別個の「メッセージヘッダ」として扱われることを除いて、図３ａと同様である。このアプローチは、ｐＣＤＮＡに関連付けられたメッセージ情報を分権型、分散型、または中央集権型のデータベースから回収できる効率を向上させる可能性がある。ノードハッシュ３２０、３２１、及び３２２をリンクする方法論を以下に開示する。
【００６５】
図４は、製品を標識化してサンプリングするためのコンピュータシステム４００を説明し、セキュリティ及びユーザビリティを向上させるために、Ｈ（ＣＤＮＡ）を計算するための符号の誤り検出及び誤り訂正の重要性を説明する。システム４００は、一般に開示することができる（つまり、包装技術に関して一般に開示することができる）包装識別子４２１としてＨ（ＣＤＮＡ＿Ａ）を使用するとともに、実際のＤＮＡ符号を偽造者から保護する手段として使用し、（Ｈ（ＣＤＮＡ）から導出できない）サンプラもまた使用する。Ｈ（ＣＤＮＡ＿Ａ）は、Ｈ（ＣＤＮＡ）であるか、または任意選択でＸのゼロ以上もしくはＸのハッシュに連結された１つ以上のＨ（ＣＤＮＡ）のハッシュである。ただし、Ｘ＝｛第２のＨ（ＣＤＮＡ）、タイムスタンプ、カウンタ、代替識別子、乱数、またはパディングテキスト｝である。説明のため、Ｈ（ＣＤＮＡ＿Ａ）はサンプル内の１つのｐＣＤＮＡのハッシュである。以下では、ハッシュ法の利点を包括的に取り上げる。明らかな利点の１つは、セキュリティ上の理由から実際のＤＮＡ配列を全ての関係者から保護するとともに、メッセージデータを格納するためのアドレスとして使用することもできる一意のハッシュ値を各ノードで生成することである。ここで、サンプリング、復号、及び検証プロセスの概要を説明する。
【００６６】
管理者４０１（または認証サービスプロバイダ）は、オリゴエンコーダ４０２でオリゴタグＣＤＮＡを符号化する。オリゴエンコーダ４０２は、ＡＳＣＩＩ符号語Ｃｘを４進オリゴ配列ＣＤＮＡに変換する。一実施例では、これには、ユニバーサルプライマ部位に隣接する符号語の６３ｂ（ＲＳ［９，５］−Ｈａｍ［７，４］）誤り検出及び誤り訂正の使用が含まれる。合成時または配列決定時の１つのヌクレオチドの誤りが、サンプル中のｐＣＤＮＡに由来するＨ（ＣＤＮＡ）の値を完全に変えてしまい、フォールスネガティブの製品検証になってしまうため、符号の誤り検出及び誤り訂正が必要である。
【００６７】
物理的断片ｐＣＤＮＡは、製造業者４０３によって合成され、製品製造業者４１０に送られ、製品製造業者４１０はｐＣＤＮＡを製品４２２に付加する。管理者４０１は、プライマ鍵配列ｐＫＤＮＡ４０４を別途、許可されたサンプラ（複数可）４３０に送る。管理者４０１及び／または製品製造業者４１０は、分権型、分散型、または中央集権型のデータベースをＨ（ＣＤＮＡ）及び関連情報で更新する。
【００６８】
オリゴ製造業者４０３は、物理的オリゴ断片ｐＣＤＮＡをＨ（ＣＤＮＡ）と共に顧客４１０に送る。顧客または製品製造業者４１０は、自身のデジタルウォレットをＨ（ＣＤＮＡ）情報で更新する。チェーンが作成されるプロセスの一実施例を、製造業者のウォレット４１０に示す。ここで、製造業者は、秘密鍵４１１及び公開鍵４１２を使用して、トランザクションのジェネシスハッシュ及び／またはジェネシス署名を作成し、それによって同一性のチェーンを開始する。公開鍵をジェネシス署名に適用して、製造業者を検証することができる。製造業者のウォレットはまた、バッチ番号、有効期限、製造施設、品質管理データ、またはその他の情報などの情報を含み得るメッセージ４１３を含む。メッセージ４１３及びＨ（ＣＤＮＡ）４１４を転送するためのアプローチは、図３ａ及び図３ｂで取り上げており、以下ではさらに詳細に取り上げる。
【００６９】
製造業者４１０は、ｐＣＤＮＡを製品４２２に混合し、次いでこの製品４２２は包装される（４２０）。包装した製品４２０は、任意選択で、Ｈ（ＣＤＮＡ）情報を含む１つ以上の包装識別子技術４２１を含む。Ｈ（ＣＤＮＡ）を計算するための方法論は以前にも紹介したが、以下に詳細に説明する。
【００７０】
サンプリングするために、人４３０が、ＤＮＡ配列決定技術（すなわち、ＤＮＡシーケンサ）４３２に接続されたコンピューティングデバイス４３１を用いて、製品４２２を検査する。コンピューティングデバイス４３１には、コンピュータ、ラップトップまたはスマートフォンなどが含まれてもよく、図２及び図３ａ、図３ｂに示すように、管理者からダウンロードされたアプリケーションを有する。
【００７１】
シーケンサ４３２による配列決定の前に、サンプラ４３０が、管理者４０１によって送られたプライマ鍵４０４のセットを使用するポリメラーゼ連鎖反応（ＰＣＲ）ステップ４３３があってもよい。この実施例では、鍵の配列は秘密であり、つまり、管理者／サンプラの関係外の関係者には知られていない。
【００７２】
製品検証４４０は、以下のステップを含む。シーケンサからの生データストリームは、サーバアプリケーションに送られ、そこでベースコールされて（４４１）、問い合わせＤＮＡ配列ｑＣＤＮＡが取得される。問い合わせ配列ｑＣＤＮＡには、ほとんどの場合、合成の誤り及び配列決定の誤りが含まれる。これらの誤りは、ＡＳＣＩＩ符号語Ｃｘを与える復号ステップ４４２において、検出され、訂正される。次に、ＡＳＣＩＩ符号語は、訂正されたＤＮＡ符号語ＣＤＮＡに変換され（４４３）、ハッシュされて（４４４）、Ｈ（ＣＤＮＡ）値が検出される。正しいＤＮＡ符号語を確立することは、１つのヌクレオチドの誤りにより、Ｈ（ＣＤＮＡ）の値と、ｎ分ハッシュ木における下流の全ハッシュ値とが完全に変わってしまうため、システム全体にとって非常に重要である。ハッシュ木の第１のレベルであるＡハッシュの値Ｈ（ＣＤＮＡ＿Ａ）は、Ｈ（ＣＤＮＡ）であるか、または任意選択でＸのゼロ以上もしくはＸのハッシュに連結された１つ以上のＨ（ＣＤＮＡ）のハッシュである。ただし、Ｘ＝｛第２のＨ（ＣＤＮＡ）、タイムスタンプ、カウンタ、代替識別子、乱数、またはパディングテキスト｝である。説明のため、図４ではＨ（ＣＤＮＡ＿Ａ）＝Ｈ（ＣＤＮＡ）である。サンプリング４４４によって導出されたＨ（ＣＤＮＡ＿Ａ）の値は、データベース４４５上のハッシュ値ストアに対して製品を検証するために使用されるとともに、分散型、分権型、または中央集権型のデータベースに以前に保存されたＨ（ＣＤＮＡ＿Ａ）の値に関連付けられたメッセージ情報を検索するためにも使用される。また、サンプリングによって導出されたＨ（ＣＤＮＡ＿Ａ）の値は、包装識別子技術４２１に関しての値Ｈ（ＣＤＮＡ＿Ａ）と比較することにより、製品を検証するのにも使用される。本システムの利点は、ＤＮＡ符号は秘密であるが、包装上の符号と容易に比較できることである。第２の利点は、ハッシュ木に含まれるノード情報を製品のみから回収できることである。
【００７３】
ハッシュ（ＤＮＡ）の鍵特性
以下の特性により、ハッシュ関数は本開示に有用である。
【００７４】
ハッシュ関数は決定的である。これは、任意の入力文字列に適用されたハッシュ関数が、同じ出力ハッシュ値を生成することを意味する。この特性により、製品中のｐＣＤＮＡに由来するハッシュ値を、データベースに格納されているハッシュ値と比較することから、製品を検証することが可能になる。
【００７５】
ハッシュ関数は不可逆的である。ハッシュ値は、所与の入力文字列（つまり、ＤＮＡ配列）について計算するのは容易だが、ハッシュ値から所与の入力文字列を見つけるのは非常に難しい。言い換えれば、任意のハッシュ値について、そのハッシュ値を生成した文字列をリバースエンジニアリングすることは非常に難しい。この品質により、Ａ、Ｃ、Ｇ、Ｔの実際のオリゴ配列を文字列（ハッシュ）に暗号でリンクできるようになる。ハッシュ値は公開され得るが、オリゴ配列は不明のままであるため、オリゴ配列を偽造者から保護することができる。例えば、以下である。
【００７６】
長さ６３ｂのＤＮＡ符号化領域（ＲＳ［９，５］−Ｈａｍ［７，４］符号語、７ｘ９＝６３ｂ）を想定している。また、偽造者／ハッカーは、ＤＮＡ符号語が６３ｂであることを知っているが、使用されている符号化システムを知らないことを前提としている。つまり、偽造者／ハッカーは、ＤＮＡ符号語ＣＤＮＡが長さ６３ｂのＺ４符号語であることを知っている。この情報があれば、ハッカーには、符号語空間が４６３＝８．５ｘ１０３７であることが分かる。また、最先端の８ｘ  Ｎｖｉｄｉａ  ＧＴＸ  １０８０  Ｈａｓｈｃａｔシステムが、３３０ＧＢハッシュｓ−１をブルートフォースすることを考えれば、解が見つかる前に、符号語空間の平均５０％が総当たりで試されると仮定すると、ハッシュを解くための予想時間は、Ｅ（解明）＝４．１ｘ１０１８年（宇宙が存在するよりも約２億８０００万倍長い）となる。したがって、Ｈ（ＣＤＮＡ）またはＨ（ＣＤＮＡ＿Ａ）を包装識別子として使用しても安全である。図４では、
・Ｃｘ＝１４−９８−１２２、．．．、−１２７：ＡＳＣＩＩ符号語、すなわちＧＦ（１２８）のＲＳ［ｎ，ｋ］、
・ＣＤＮＡ＝ＡＣＴＧＴＡＡ−ＧＴＡＣＴＧＧ：ＤＮＡ符号語、すなわちＲＳ［ｎ，ｋ］−Ｈａｍ［ｎ，ｋ］
・Ｈ（ＣＤＮＡ）＝２ｃｅｄ９８ｄ５ｅ４３ａ１９３．．．（ＳＨＡ−２５６）である。
【００７７】
入力文字列の１つを変更するだけで、まったく異なるハッシュ値が生成される。この特性は、潜在的なハッカーがハッシュ木内のレコードを変更するのを阻止する。また、類似のオリゴ配列を生成することで偽造を防止する。
【００７８】
同じハッシュ値を持つ２つの異なる文字列を見つけることは実行不可能である。この品質は、各ｐＣＤＮＡが一意のハッシュ値を生成し、すなわち２つの異なるｐＣＤＮＡのハッシュ値が衝突する可能性は極めて低い（すなわち、同じである）ことを保証する。いくつかの実施例では、ハッシュ値がオリゴ配列よりも短い長さである場合、衝突（同じハッシュ値を生成する２つの異なるＤＮＡ配列）が起こり得るが、非常に可能性が低い。それでもやはり、ＤＮＡ配列の難読化は存続し、異なるＤＮＡ配列に対する２つの同一のハッシュは、検索目的のためにシステム内で許容され得るので、衝突は、開示されたソリューションの動作に大きな影響を与えないことに留意されたい。一方、現在のコンピュータシステムは、使用されているＤＮＡ配列よりも長いハッシュを計算することが十分に可能であり、したがって、実用的な実装では衝突は発生しないはずである。さらに、衝突の発生率は、Ｈ（ＣＤＮＡ）の連結をＸの１つ以上またはＸのハッシュでハッシュすることによって減らすことができる。ただし、Ｘ＝｛第２のＨ（ＣＤＮＡ）、タイムスタンプ、カウンタ、代替識別子、乱数、またはパディングテキスト｝である。
【００７９】
本開示では、上記の理由から、暗号学的ハッシュ関数及び鍵付き暗号学的ハッシュ関数を優先する。これらの関数の非網羅的なリストには、ＢＬＡＫＥ−２５６、ＢＬＡＫＥ−５１２、ＢＬＡＫＥ２、ＢＬＡＫＥ２ｓ、ＢＬＡＫＥ２ｂ、ＥＣＯＨ、ＦＳＢ、ＧＯＳＴ、Ｇｒoｓｔｌ、ＨＡＳ−１６０、ＨＡＶＡＬ、ＨＭＡＣ、ＪＨ、ＭＤ２、ＭＤ４、ＭＤ５、ＭＤ６、Ｏｎｅ−ｋｅｙ  ＭＡＣ、Ｐｏｌｙ１３０５−ＡＥＳ、ＰＭＡＣ、ＲａｄｉｏＧａｔuｎ、ＲＩＰＥＭＤ、ＲＩＰＥＭＤ−１２８、ＲＩＰＥＭＤ−１６０、ＲＩＰＥＭＤ−３２０、ＳＨＡ−１、ＳＨＡ−２２４、ＳＨＡ−２５６、ＳＨＡ−３８４、ＳＨＡ−５１２、ＳＨＡ−３、ＳｉｐＨａｓｈ、Ｓｋｅｉｎ、Ｓｎｅｆｒｕ、Ｓｐｅｃｔｒａｌ  Ｈａｓｈ、Ｓｔｒｅｅｂｏｇ、ＳＷＩＦＦＴ、Ｔｉｇｅｒ、ＵＭＡＣ、ＶＭＡＣ、Ｗｈｉｒｌｐｏｏｌが含まれる。本文書では、「ハッシュ」及び「ハッシュ法」という用語は、周期的冗長チェック、チェックサム関数、ハッシュ関数、暗号学的ハッシュ関数、ならびに鍵付き及び鍵無しの暗号学的ハッシュ関数を含むハッシュ関数の変形全てを指す。
【００８０】
当業者には、Ｚ４オリゴヌクレオチドテキストの暗号文への変換は、シフト暗号、換字式暗号、ヴィジュネル暗号、置換暗号、ストリーム暗号（例えば、ローレンツ暗号、線形フィードバックシフトレジスタ、ＬＦＳＲ）、ブロック暗号（Ｆｅｉｓｔｅｌ、ＤＥＳ、Ｒｉｊｎｄａｅｌ）、メッセージ認証符号（例えば、ＨＭＡＣ）、公開鍵暗号（例えば、ＲＳＡ、Ｅｌ  Ｇａｍａｌ、Ｒａｂｉｎ、Ｐａｉｌｌｉｅｒ）などの多種多様な暗号化方法論を使用して達成できることが知られている。
【００８１】
上記のシステムでは、製造業者がＤＮＡ配列を作成し、それを製品に付加し、それに対するハッシュ値を計算することにより、単一の製造業者に由来する製品の識別を可能にすることに留意されたい。受領者は、製品中のＤＮＡ配列（複数可）を回収して復号し、それらをハッシュし、導出されたハッシュ値を製造業者（複数可）からのハッシュと比較する。図３は、製品をさらに製造する（精製、混合など）か、または製品の品質をチェックすることにより、それぞれがサプライチェーンに寄与する複数の関係者が存在する可能性があることをすでに予示している。以下の説明は、そのようなマルチエンティティサプライチェーンにおける製品を検証するための開示されたシステムの使用に関する詳細情報を提供する。
【００８２】
オリゴヌクレオチド断片設計アプローチ
ここで、サプライチェーン情報をオリゴヌクレオチドタグに記録するための３つの主要なアプローチが開示される。サプライチェーン内の製品から識別／管理／来歴のチェーンを回収するためには、３つの異なる情報が必要とされる。
（ｉ）製品を識別する情報、
（ｉｉ）サプライチェーン内のノードを識別する情報、
（ｉｉｉ）サプライチェーン内のノードの順序を与える情報、である。
【００８３】
ここで、製品、ノード識別、及びノード順序情報を製品中のｐＣＤＮＡタグに格納するための３つの広範なアプローチが開示される。これらの方法論は全て、仮想ブロックチェーンに記録されたトランザクションが、製品に一体化された物理的なオリゴヌクレオチド「ブロックチェーン」に反映される、または部分的に反映されるようにする。本開示が、これらの方法論の変形全てを対象として含むことが理解されよう。
【００８４】
第１のアプローチ（オリゴヌクレオチドタグ方法論１、ＯＴＭ１）では、オリゴヌクレオチドタグは、それらが付加されるノードのみを識別し、その順序は、ハッシュのチェーンまたは木として、分散型、分権型、または中央集権型データベースに格納される。
【００８５】
第２のアプローチ（オリゴヌクレオチドタグ方法論２、ＯＴＭ２）では、オリゴヌクレオチドタグは、ノードに関する情報とサプライチェーン内のノードの位置とを含む配置識別子を含む。
【００８６】
第３のアプローチ（オリゴヌクレオチドタグ方法論３、ＯＴＭ３）では、オリゴヌクレオチドタグはノード情報を含み、ライゲーション反応（例えば、ＰＣＲ）を使用して、製品中にすでに存在するオリゴヌクレオチドタグに順次にライゲートされる。伸長するオリゴヌクレオチドチェーンは、順序とノードの両方の情報を保存する。
【００８７】
オリゴヌクレオチドタグの２つの主要なクラスが、以下のＯＴＭ１〜３の説明で紹介される。１つ目は、ＣＤＮＡＵＩ＿ｎで表記される製品固有識別子である。２つ目は、ＣＤＮＡＵＩ＿ｎで表記されるノード固有識別子である。ＣＤＮＡＵＩ／ＮＩ両方のオリゴヌクレオチドタグの変形を共にハッシュし、ＰＩで表記される一意包装識別子に暗号でリンクすることができる。
【００８８】
オリゴヌクレオチドタグ方法論１（ＯＴＭ１）−ノード識別情報はオリゴタグに保存され、ノード順序情報はリモートで保存される。
図５は、説明のためにｐＣＤＮＡタグのみを使用するＯＴＭ１の図である。最初に、一意製品識別子（ｐＣＤＮＡＵＩ＿１）５０１で符号化されたオリゴヌクレオチド断片が製品５０２に付加される。任意選択で、ノード識別情報ｐＣＤＮＡＮＩ＿１  ５０３を持つ第２のオリゴヌクレオチド断片もまた、製品に付加される。一方または両方の断片符号語Ｈ（ＣＤＮＡＵＩ／ＮＩ）のハッシュを含むハッシュが、先に挙げたような包装識別技術５０３を使用して、包装上に表示されてもよい。
【００８９】
サプライチェーンに沿って付加ｐＣＤＮＡタグを付加して、品質管理ステップ５０４、５０５などの、ノードで発生する事象を記録することができる。これらのタグはノードを識別し、ＤＮＡにおける公開鍵と類似したものと見なし得る。図５では、これらのタグは、ｐＣＤＮＡＮＩ＿１〜３  ５０３、５０４、５０５と記されている。ＰＩ符号は、新しいｐＣＤＮＡが付加され、製品が再包装または再結合される（５０７、５０８）とき、更新され得る。この機能は、完成品の製造時点から上流の成分追跡にとって、特に重要である。
【００９０】
図５はまた、ＵＰ＿Ｆ５１０がユニバーサルフォワードプライマ部位であり、ＵＰ＿Ｒ５１１がユニバーサルリバースプライマ部位であり、ＵＩ／ＮＩ５１２がそれぞれ製品またはノードを識別する一意の配列であるオリゴヌクレオチドタグの構造を示す。オリゴヌクレオチドタグは、使用されるＤＮＡ符号化システムのバージョンを識別する部分配列Ｖ５１３を任意選択で含んでもよい。さらに、オリゴヌクレオチド断片は、任意選択で、ＵＩタグをＮＩタグから区別する付加部分配列Ｔ５１４を含んでもよい。これらの任意選択の部分配列は、検査効率、ジェネシスハッシュの検証効率を改善し、使用されるオリゴヌクレオチド符号化システムを識別するのに役立ち得る。
【００９１】
ＯＴＭ１では、オリゴタグが付加される順序は、製品だけから導き出すことはできない。したがって、このアプローチでは、外部システムを使用して順序を、この場合は、製品に付加されたｐＣＤＮＡの一連のハッシュ値を保存する（下記参照）。順序は、製品サンプル中のｐＣＤＮＡからノードハッシュ値を繰り返し計算し、分散型、分権型、または中央集権型データベースに保存されている値を交差検証することによって求められる。
【００９２】
ＯＴＭ１がＯＴＭ２よりも有利な点は、ノードごとに１つのｐＣＤＮＡＮＩ符号が、異なるバッチ及び異なる製品にまたがって使用されることである。ＯＴＭ２では、異なる順序情報を含む複数のｐＣＤＮＡＮＩが各ノードで使用されるが、これは非能率的であり、ノードメンバーが、誤った配置情報を持つ断片を付加するリスクを高める可能性がある。
【００９３】
ＯＴＭ１がＯＴＭ３よりも有利な点は、ＯＴＭ１が、ライゲートされたオリゴヌクレオチドタグを製品に戻すノードメンバーに依存しないことである。最適なアプローチは、特定のアプリケーションに依存する可能性が高い。
【００９４】
図６は、ｐＣＤＮＡにおける生産物流管理の操作を説明する。この図は、サプライチェーン内の３つのノード６１０、６２０、及び６３０を示す。第１のノード６１０では、２つのタグが付加され、１つは製品固有識別子ｐＣＤＮＡＵＩ＿１  ６１１を含むタグであり、もう１つはノード識別子配列ｐＣＤＮＡＮＩ＿１  ６１２を含むタグである。製造業者ノード識別情報は、ｐＣＤＮＡＵＩ＿１及びｐＣＤＮＡＮＩ＿１のハッシュを含むハッシュチェーンまたはハッシュ木Ｈ（ＣＤＮＡ＿Ａ）６１３に格納されている。第２のノード及び第３のノード６２０、６３０では、下流の製品製造業者が、異なる由来の製品を組み合わせる（すなわち、目的のカンナビノイド含有量を得るために、異なるカンナビスオイルを混ぜ合わせる）こと、または品質管理ステップを実行する（すなわち、カンナビノイドを検査する）ことを望む場合がある。このステップは、それらのノードそれぞれのノード識別子６２２、６３２で認証され得、これらの識別子のハッシュは、ハッシュＨ（ＣＤＮＡ＿Ｂ）６２３及びＨ（ＣＤＮＡ＿Ｃ）６３３の木に付加され得る。ノードハッシュ値６１３、６２３及び６３３には、他のメッセージ情報が追加されてもよい。
【００９５】
図７は、オリゴヌクレオチド断片に格納された情報の物理チェーンを、ＯＴＭ１とハッシュの二分木とを使用してデジタルウォレット間で取引される情報の仮想チェーンにリンクさせる方法の実施例を示す。この実施例では、製品７００内のｐＣＤＮＡは、分散型、分権型、または中央集権型データベース７１０に格納されている識別／管理の仮想チェーンに暗号でリンクされている。製品に付加された各ｐＣＤＮＡ７０１、７０２、７０３、７０４のハッシュは、ハッシュの二分木を計算するための入力として使用することができ、各ノードのハッシュ値は、２つの入力を持つ累積ハッシュである。第１の入力にはチェーン内の以前のトランザクションを識別する値が含まれ、第２の入力にはノードで追加された新しい情報が含まれる。ノードハッシュ値が計算され、ウォレット７１１、７１２、７１３、または分散型台帳に、ハッシュの仮想チェーン／木として格納される。これらのハッシュは、物理的オリゴヌクレオチドタグｐＣＤＮＡＮＩ／ＵＩに符号化されたＣＤＮＡＮＩ／ＵＩ符号語の一連のハッシュで構成されている。この実施例では、累積ノードハッシュを、付加された次のｐＣＤＮＡのハッシュに順次にリンクする二分木アプローチを示したが、他のアプローチを取ってもよい（下記参照）。７００の順序は、サンプル中に検出されるｐＣＤＮＡからの全ての可能なノードハッシュ値を、データベースに保存されている値に対してブルートフォースすることにより、サンプルから復元される。このことは、使用可能な上流のノードハッシュ値の複数の組み合わせのそれぞれについて最終的なハッシュ値が計算され、その結果が、１つの組み合わせのみが一致をもたらすはずであることに留意して、データベースと比較されることを意味する。
【００９６】
この全ての組み合わせのブルートフォース計算は、経路が分岐しかつマージする可能性のある多数のノードに対しては、実行不可能になる可能性がある。計算効率の高い代替手段として、ハッシュ値が一致する上流ノードを特定することが可能である。例えば、２つのハッシュ値のみの２値ペアを計算でき、それらは最初のノードの１つと一致しなくてはならない。そこから、プロセスは、各ステップで、現在のチェーンハッシュと全ての個別ハッシュとの組み合わせのみが計算される必要があるように、下流に反復的に進み得る。その結果は、上記のブルートフォースオプションの指数関数的な複雑さと比較して、複雑さは直線的になるはずである。ハッシュ値が、製品識別子、エンティティ識別子などの付加データに基づいた実施例では、サンプリングされたハッシュ値は、データベース上での一致を検証するために、付加データの異なる組み合わせに対して反復的に検査され得る。
【００９７】
さらに、下記のように、任意のノードにおけるハッシュ値は、Ｈ（ＣＤＮＡＵＩ／ＮＩ）であり得るか、またはＸのゼロ以上もしくはＸのハッシュに任意選択で連結された１つ以上のＨ（ＣＤＮＡＵＩ／ＮＩ）のハッシュであり得る。ただし、Ｘ＝｛第２のＨ（ＣＤＮＡＵＩ／ＮＩ）、タイムスタンプ、カウンタ、代替識別子、乱数、またはパディングテキスト｝である。また、上記のように、ノードハッシュは、包装識別子技術を使用して公に表示されてもよい。
【００９８】
要約すれば、ＯＴＭ１では、管理のための（順序のない）「指紋」が、符号化されたオリゴヌクレオチド断片ｐＣＤＮＡＮＩ／ＵＩのセットとして製品中に保存される。断片が製品に付加される順序は、リモートでハッシュ木のリストとして保存される。順序は、生成されたハッシュ値のブルートフォース及び交差検証を通じて、サンプル中に検出されたｐＣＤＮＡ断片から反復的にリバースエンジニアリングされ得る。
【００９９】
個別のノードでハッシュする方法論、及びノード間でハッシュする方法論を以下に説明する。
【０１００】
オリゴヌクレオチドタグ方法論２（ＯＴＭ２）―ノード識別情報及び順序情報がタグに保存される
図８は、オリゴヌクレオチドタグ方法論２（ＯＴＭ２）を示す。最初に、一意製品識別子（ｐＣＤＮＡＵＩ）８０１で符号化されたオリゴヌクレオチド断片が製品５０２に付加される。製品に付加された後続のｐＣＤＮＡは、ノードｐＣＤＮＡＮＩを識別し、さらに「配置識別子」部分配列（ＰＬ）８１１を含む。配置識別子８１１は、タグが製品に付加される順序を復元するために使用される。それによって、製品中のｐＣＤＮＡ断片だけで、生産物流管理／チェーン情報を確立できるようになる。第１の識別子Ｈ（ＣＤＮＡＵＩ）のハッシュ、またはハッシュチェーン／ハッシュ木内の任意のノードのハッシュ値を含むハッシュが、先に挙げたような包装識別技術５０３を使用して、包装上に表示されてもよい。
【０１０１】
ＯＴＭ２に関する注記
ＯＴＭ２により、サプライチェーンのノードの情報と順序とが、製品のみから回収されるようになる。ただし、各ノードには、異なる配置識別子を持つ複数の異なるタグ（ｐＣＤＮＡＮＩ）が必要であり、これらは正しく使用されなければならない。
【０１０２】
ＯＴＭ２がＯＴＭ１よりも有利な点は、サプライチェーンノード及び順序の情報を製品のみから回収できることである。
【０１０３】
ＯＴＭ１がＯＴＭ３よりも有利な点は、サンプリングされてライゲートされた製品は、特定の事象が発生したことを記録するために、製品に戻される必要がないことである。
【０１０４】
図８はまた、ＯＴＭ２で使用されるオリゴヌクレオチドタグの設計を示す。この場合も先と同様に、ＵＰ＿Ｆ５１０がユニバーサルフォワードプライマ部位であり、ＵＰ＿Ｒ５１１がユニバーサルリバースプライマ部位であり、ＵＩ／ＮＩ５１２がそれぞれ製品またはノードを識別する一意の符号語であるオリゴヌクレオチドタグの構造を示す。ＯＴＭ２では、ノード配置識別子ＰＬ８１１もまた必要とされる。８１１の正確な配置は、５１０と５１１との間のどこであってもよい。オリゴヌクレオチドタグは、使用されるＤＮＡ符号化システムのバージョンを識別する部分配列Ｖ５１３を任意選択で含んでもよい。さらに、オリゴヌクレオチド断片は、任意選択で、ＵＩタグをＮＩタグから区別する付加部分配列Ｔ５１４を含んでもよい。これらの任意選択の部分配列は、検査効率、ジェネシスハッシュの検証効率を改善し、使用されるオリゴヌクレオチド符号化システムを識別し得る。
【０１０５】
図９は、ＯＴＭ２を使用して製品から識別のチェーンを回収する方法を説明する。コンセプトはＯＴＭ１と似ているが、ｐＣＤＮＡＮＩが、サプライチェーン内でのノードの配置を識別する付加的な部分配列を含む点で異なっている。この実施例では、単一の製品９００が、サプライチェーン内の３つの異なるノード９０１、９０２、及び９０３において標識化される。ノード１  ９０１の製品は、１つの製品固有識別子配列ｐＣＤＮＡＵＩ＿１  ９１１と、配置識別子ＰＬ１を含む１つのノード識別子配列ｐＣＤＮＡＮＩ＿１  ９１２とを含む。ノード２の製品は、配置識別子ＰＬ２を含む１つの付加ノード識別子配列ＣＤＮＡＮＩ＿２  ９１３で標識化される。ノード３の製品は、配置識別子ＰＬ３を含む第３のノード識別子配列ＣＤＮＡＮＩ＿３  ９１４で標識化される。これらの配列は、包装識別子（ＰＩ）技術５０３、５０４、５０５に暗号によってリンクされ、包装上に表示されてもよい。ノード識別子Ｈ（ＣＤＮＡＮＩ）のハッシュは、ノード公開鍵であると考えられ得る。
【０１０６】
サプライチェーン情報は、最初に製品のサンプルを、ＰＣＲ反応でプライマ鍵ｐＫＤＮＡ９１５の秘密のセットと反応させることによって、製品から回収される。ユニバーサルプライマ部位の使用と、場合によっては同一の符号化領域の部分配列の使用とは、交差断片ハイブリダイゼーションを引き起こす可能性がある。この問題は、２０１７年７月２１日に提出され、「Ａ  ＭＥＴＨＯＤ  ＦＯＲ  ＡＭＰＬＩＦＩＣＡＴＩＯＮ  ＯＦ  ＮＵＣＬＥＩＣ  ＡＣＩＤ  ＳＥＱＵＥＮＣＥＳ」と題するＰＣＴ／ＡＵ２０１７／０５０７５７に開示された、アニーリング温度識別ＰＣＲ（ＡＴＤ  ＰＣＲ）と呼ばれる技法を使用して対処される。ＡＴＤ  ＰＣＲにより、９１０のノードにあるｐＣＤＮＡの任意のセットを、１回の反応のみで増幅できるようになる。
【０１０７】
配置識別子部分配列（ＰＬ）により、それぞれ別個のｐＣＤＮＡＮＩを付加する順序を、製品のみから復元できるようになる。例えば、９２０では、ＯＴＭ２断片の順序は、説明のために、ＣＤＮＡＵＩとＣＤＮＡＮＩとの連結（｜｜）として示されている。９２０のノード３では、順序は、ＣＤＮＡＵＩ＿１｜｜ＣＤＮＡＮＩ＿１｜｜ＣＤＮＡＮＩ＿２｜｜ＣＤＮＡＮＩ＿３として与えられている。前に取り上げ、９３０に示すように、製品内のｐＣＤＮＡのハッシュとセットＸ  ９３２の要素とは、サプライチェーンのメンバーもしくは管理者、またはその２つの組み合わせによって管理されている分散型、分権型、または中央集権型データベース３３１に、ノード情報を格納するために使用され得る。
【０１０８】
図１０は、ＯＴＭ２において、物理的オリゴヌクレオチドチェーンに符号化されたサプライチェーン情報１０００を、分散型、分権型、または中央集権型データベース１０１０に格納されたサプライチェーン情報に、暗号でリンクさせることができる方法を示す。この実施例では、製品は、１つのｐＣＤＮＡＵＩ  １００１と、ノード１で配置識別子部分配列を含む１つのｐＣＤＮＡＮＩ  １００２とで標識化されている。他の各ノードで、製品は、１つのｐＣＤＮＡＮＩ  １００３、１００４で標識化されている。物理チェーンは、ｐＣＤＮＡＮＩの配置識別子部分配列ＰＬ−１３から復元される。この実施例では、製品に付加された各ｐＣＤＮＡのハッシュは、分散型、分権型、または中央集権型のデータベースに格納された累積二分木１０１０において順次に計算される。ノードハッシュ値は、製品中のｐＣＤＮＡから計算され、ノードハッシュ値と付加ノードメッセージ情報とを含むデータベースに対して検証され得る。
【０１０９】
下記のように、ＯＴＭ２のための任意のノードにおけるハッシュは、Ｈ（ＣＤＮＡＵＩ／ＮＩ）であり得るか、またはＸのゼロ以上もしくはＸのハッシュに任意選択で連結された１つ以上のＨ（ＣＤＮＡＵＩ／ＮＩ）のハッシュであり得る。ただし、Ｘ＝｛第２のＨ（ＣＤＮＡＵＩ／ＮＩ）、タイムスタンプ、カウンタ、代替識別子、乱数、またはパディングテキスト｝である。ノードを互いに暗号によってリンクするための異なる方法論を以下に開示する（図１０では二分木構造を示す）。最後に、各ノードのハッシュ値は、包装識別子技術を使用して公に表示され、他の関連メッセージ情報を検索するために使用されてもよい。
【０１１０】
ＯＴＭ２がＯＴＭ３よりも有利な点は、試験段階から、既存の製品タグにライゲートされるのではなく、精製されたオリゴタグが付加されることである。ライゲートされた製品タグの使用は、一部のアプリケーションでは問題となる場合がある。ＯＴＭ２の場合、（１）付加オリゴタグの量と精製基準とを容易に制御することができ、（２）後述するＯＴＭ３のより複雑なステップをノードメンバーが正しく実行することに依存しないシステムとなっている。
【０１１１】
オリゴタグ方法論３（ＯＴＭ３）―オリゴタグがノード情報を含み、ノード識別子配列を製品中のｐＣＤＮＡに順次にライゲートすることで順序が保存される。
オリゴヌクレオチドタグ方法論３（ＯＴＭ３）では、付加ｐＣＤＮＡをライゲートするための連結反応を使用して、各ノードで伸長するオリゴヌクレオチド断片に漸進的に書き込まれる物理的オリゴヌクレオチド「ブロックチェーン」を構成する。図１１は、ノード識別子断片ｐＣＤＮＡＮＩが付加される順序が、順次的なライゲーション（例えば、ＰＣＲまたは他のライゲーション反応）によって、伸長中のＤＮＡ鎖に記録される、ＯＴＭ３を説明する。各ステップで、ノードメンバーは、製品のサンプルを取得し、自製品のｐＣＤＮＡＮＩ（１１０２、１１０３、１１０４）をすでに製品中に含まれているｐＣＤＮＡにライゲートし、ライゲートしたオリゴヌクレオチド断片を製品に戻す。このようにして、ノードに関する情報と、ノード識別子タグが付加される順序とが、製品に再組み込みされるオリゴヌクレオチド鎖に書き込まれる。ライゲーションステップは、一連のｐＣＤＮＡ連結ステップであると考えられ得る。上記のように、各ノードの累積ハッシュは、一意包装識別子（５０３、５０４、５０５）として表示されてもよい。
【０１１２】
ＯＴＭ３で用いられるオリゴタグの構造は、プライマ鍵ｐＫＤＮＡの１つにｐＣＤＮＡＮＩ  １１０２、１１０３、１１０４、またはｐＣＤＮＡＮＩの逆相補配列が含まれることを除いて、ＯＴＭ１で開示されたものと同様であり、５１０、５１１、５１２、５１３、５１４を含む。第２のｐＫＤＮＡは、ｐＣＤＮＡＮＩを含む第１のｐＫＤＮＡと組み合わせて使用すると、指数関数的なポリメラーゼ連鎖反応を可能にするユニバーサルプライマ配列である。
【０１１３】
ＯＴＭ３に関する注記
ＯＴＭ３では、ｐＣＤＮＡタグを互いに物理的に連結することにより、サプライチェーン情報がオリゴヌクレオチドタグに保存される。このアプローチでは、ノードメンバーが、到着する製品をサンプリングし、それらのｐＣＤＮＡＮＩでライゲーション反応を行い、ライゲーション反応の生成物を製品に戻す必要がある。
【０１１４】
ＯＴＭ３がＯＴＭ１よりも有利な点は、製品（順序＋ノード情報）から、全てのサプライチェーン情報を回収可能なことである。
【０１１５】
ＯＴＭ３がＯＴＭ２よりも有利な点は、異なる配置識別子を含む各ノードに対する複数の公開鍵を発行する必要がないことである。
【０１１６】
図１２は、サプライチェーン情報が、オリゴヌクレオチド断片に符号化され、ＯＴＭ３で製品を標識化するのに使用される方法を説明する。ノード識別子ＣＤＮＡＮＩは、公開鍵に類似していると見なすことができる。
【０１１７】
図１２の実施例では、システム１２００は、ノード情報（ＣＤＮＡＮＩ）１２０６、１２０７、１２０８を含む第１のユニバーサルプライマ配列及び第２のプライマ配列を含むノードメンバー１２０２、１２０３、１２０４に、プライマ鍵のセットを送る管理者１２０１を含む。メンバーとそのデジタルウォレットとは、１００２、１００３、１００４で表される。この場合のジェネシスノードは、ノード１２０２である。管理者はまた、ＣＤＮＡＮＩ／ＵＩのハッシュをノードメンバーに送り、実際のオリゴヌクレオチド配列は開示されないようにする。製品固有識別子ｐＣＤＮＡＵＩ＿１  １２０５もまた、１２０２に送られる。
【０１１８】
デジタルウォレットには、上記のように、各ノードで付加されたｐＣＤＮＡに由来するノードハッシュ値Ｈ（ＣＤＮＡ＿Ａ〜Ｃ）と、任意選択でセットＸからの付加情報とが含まれる。この実施例では、１００２のジェネシスハッシュはＨ（ＣＤＮＡ＿Ａ）であり、１００３のノードハッシュはＨ（ＣＤＮＡ＿Ｂ）であり、１００４のノードハッシュはＨ（ＣＤＮＡ＿Ｃ）である。ノードハッシュは、物理的なオリゴヌクレオチド断片ｐＣＤＮＡＵＩ／ＮＩに格納されている情報のチェーンを、分散型台帳またはその他のデータベースに格納されている情報の仮想チェーンにリンクする。したがって、仮想の生産物流管理が、製品に一体化された物理的な生産物流管理によって反映される。
【０１１９】
図１２の実施例では、第１のメンバー１２０２は、反応１２１０において、そのノード識別子ｐＣＤＮＡＮＩ＿１  １２０６を製品固有識別子ｐＣＤＮＡＵＩ＿１  １２０５にライゲートする。以下に説明する他のジェネシスハッシュの変形もまた、可能であることに留意されたい。結果として生じる連結オリゴヌクレオチド断片ｐＣＤＮＡ＿Ａ１２２０は、製品１２３０を標識化するのに使用される。同等の連結配列は１２２３である。断片１２０５及び１２０６のハッシュのハッシュが、任意選択で、セットＸ中のゼロ以上の要素の代わりに、またはセットＸ中のゼロ以上の要素と共に、ノード１００２Ｈ（ＣＤＮＡ＿Ａ）でのジェネシスハッシュを計算するのに使用されてもよい。サンプリングするには、連結オリゴヌクレオチド断片ｐＣＤＮＡ＿Ａ１２２０が、製品から回収され、任意選択でＰＣＲによって増幅され、サンプルに由来するＨ（ＣＤＮＡ＿Ａ）１２４０を計算して、分散型、分権型、または中央集権型のデータベースなどの仮想環境に保存されたＨ（ＣＤＮＡ＿Ａ）を用いて交差検証することにより、サプライチェーン情報を回収するのに使用される。
【０１２０】
第２のステップでは、ノード２のメンバー１２０３は、製品１２３０から連結ｐＣＤＮＡ＿Ａオリゴヌクレオチドのサンプルを回収し、反応１２１１において自製品のノード識別子配列ＣＤＮＡＮＩ＿２  １２０７をライゲートする。このとき、結果として生じるオリゴヌクレオチド鎖ｐＣＤＮＡ＿Ｂ１２２１は、ノード２に関するノード／管理情報を含み、ノード２で製品１２３１を標識化するのに使用される。また、結果として生じるオリゴヌクレオチドを使用して、サンプル中の以前のＣＤＮＡ＿ＵＩ／ＮＩのハッシュを計算することにより、受け取った製品を検証する（１２４０）こともできる。
【０１２１】
同様に、第３のステップでは、ノード３のメンバー１２０４は、製品１２３１から連結ｐＣＤＮＡ＿Ｂオリゴヌクレオチドのサンプル１２２１を回収し、反応１２１２において自製品のノード識別子配列ＣＤＮＡＮＩ＿２  １２０８をライゲートする。このとき、結果として生じるオリゴヌクレオチド鎖ｐＣＤＮＡ＿Ｃ１２２２は、ノード３に関するノード／管理情報を含み、ノード３で製品１２２２を標識化するのに使用される。また、サンプリングするために、結果として生じるオリゴヌクレオチドを使用して、サンプル中の以前のＣＤＮＡ＿ＵＩ／ＮＩのハッシュを計算することにより、受け取った製品を検証する（１２４０）こともできる。
【０１２２】
ＯＴＭ１及びＯＴＭ２の場合のように、ノード１２０２、１２０３、１２０４でのＯＴＭ３について上記で説明した処理は、無制限の数のノードに対して続けることができる。
【０１２３】
図１３は、方法論３（ＯＴＭ３）において、物理的オリゴヌクレオチド断片（複数可）１３００が、分散型、分権型、または中央集権型データベースに格納されている識別／管理の仮想チェーン１３１０に暗号でリンクされる方法を示す。物理的配列とは、一連のライゲートされたｐＣＤＮＡＵＩ／ＮＩ部分配列１３０１、１３０２、１３０３、及び１３０４で構成される１つの断片１３００であることに留意されたい。この実施例では、各ノード１３１１、１３１２、１３１３のハッシュは、同様に、ＣＤＮＡＮＩ／ＵＩ物理タグｐＣＤＮＡＮＩ／ＵＩ  １３０１、１３０２、１３０３、及び１３０４の一連のハッシュで構成されている。下記のように、任意のノードにおけるハッシュは、Ｈ（ＣＤＮＡＵＩ／ＮＩ）であり得るか、またはＸのゼロ以上もしくはＸのハッシュに任意選択で連結された１つ以上のＨ（ＣＤＮＡＵＩ／ＮＩ）のハッシュであり得る。ただし、Ｘ＝｛第２のＨ（ＣＤＮＡＵＩ／ＮＩ）、タイムスタンプ、カウンタ、代替識別子、乱数、またはパディングテキスト｝である。ノードを暗号によってリンクするための異なる方法論を以下に開示する。図１３の実施例では、二分木構造を示す。最後に、各ノードのハッシュ値は、包装識別子技術を用いて公に表示してもよい。
【０１２４】
上記のステップは、製品に戻される物理的に伸長するＤＮＡ鎖１３００に書き込まれた変更不可能なチェーン識別／管理をもたらす。伸長しているオリゴ断片に生産物流管理が書き込まれるとき、順序が重要になることに留意されたい。共通のプライマ部位または共通の部分配列を含む複数の異なる断片間の交差ハイブリダイゼーションを最小限に抑えるために、ＡＴＤ  ＰＣＲ（２０１７年７月２１日に出願され、「Ａ  ＭＥＴＨＯＤ  ＦＯＲ  ＡＭＰＬＩＦＩＣＡＴＩＯＮ  ＯＦ  ＮＵＣＬＥＩＣ  ＡＣＩＤ  ＳＥＱＵＥＮＣＥＳ」と題するＰＣＴ／ＡＵ２０１７／０５０７５７に開示される）が使用されてもよい。ハッシュ関数は決定的であるという特性により、最終的に連結されたｐＣＤＮＡ断片１３００のハッシュをサプライチェーンのハッシュと比較することにより、サプライチェーン全体を検証してもよい。
【０１２５】
当業者には、２段階反応を使用して、ＯＴＭ３で、製品をサンプリングし、標識することができることが理解されよう。第１のステップでは、オリゴヌクレオチド断片がＰＣＲ反応で増幅され、増幅されたＰＣＲ生成物が、（１）サンプルを検証するために使用され、（２）後続のノード情報／生産物流管理情報が連結される第２のライゲーション反応における基質として使用される。ライゲーション反応は、連結オリゴヌクレオチド断片をもたらす任意の反応を指すことも理解されよう。
【０１２６】
ネットワーク内のノードで及びノード間で、ＣＤＮＡＵＩ／ＮＩを暗号によってリンクする方法論。
この節では、ＤＮＡ符号語ＣＤＮＡを暗号化し、ノードで、かつノード間で、ｐＣＤＮＡを暗号によってリンクするための様々な方法論を開示する。これらのアプローチは、（１）オリゴヌクレオチド符号語ＣＤＮＡを保護すること、（２）データのハッキング／改ざんから保護すること、（３）検証目的で製品の物理ｐＣＤＮＡから計算し得る一意の累積暗号署名を各仮想ノードで生成すること、（４）他のメッセージ情報の追加及び検索を行うために使用できる一意の累積暗号署名を各仮想ノードで生成すること、ならびに（５）オリゴヌクレオチドタグが（ＯＴＭ１の）サプライチェーンに沿って付加される順序をリバースエンジニアリングする目的で、一意の累積暗号署名を各仮想ノードで生成すること、のために使用される。
【０１２７】
セキュアなオリゴ追跡システムの主要な機能及び特性
まず、セキュアなオリゴ暗号化システムの主要な機能及び特性を要約する。
・オリゴタグ配列ＣＤＮＡは保護されている。
・ＣＤＮＡが付加される順序は、保存されているか、またはＣＤＮＡから導出される。
・ＣＤＮＡは安全に保管され、改ざんから保護される構造になっている。
・製品に付加された各ｐＣＤＮＡに関連付けられた順序及びノードの情報が、包装されていない製品に含まれている情報から導き出せる。
不明の方法で混合されている複数の製品に付加された各ＣＤＮＡに関連付けられた順序及びノードの情報が、包装されていない製品から回収可能である（すなわち、ハッシュチェーン／ハッシュ木内のアドレスが製品から回収可能である）。
・サプライチェーンは、サプライチェーンの各ノードを識別する値とともに、サンプルのｐＣＤＮＡから計算可能でなければならない。
・サプライチェーンの各ノードを識別する値が、付加ノード情報（例えば、バッチ番号、有効期限、製造施設、製造業者、タイムスタンプ、製品の安全性情報、品質管理情報など）を添付するための識別子として使用し得る。
・サプライチェーン情報は、包装されていない製品から、適切な権限で、回復可能でなければならない。
・製品に付加するＣＤＮＡタグは、できる限り少なくする必要がある。
【０１２８】
ＣＤＮＡをハッシュする理由
ハッシュ法は、多くの場合、暗号化技術の中心的存在として説明される。本開示のために、ハッシュは以下を提供する。
・オリゴヌクレオチド符号語ＣＤＮＡを偽造者から保護する
・ＣＤＮＡ符号語を、ブロックチェーンと同様の方法で互いにリンクして、分散型、分権型、または中央集権型のデータベースに保存されているデータへの攻撃から保護する方法
・ｐＣＤＮＡタグが製品に付加された順序の記録を可能にする（ＯＴＭ１の場合）
・２つ以上のＣＤＮＡのチェーンをリンクして、製品ごとの一意のハッシュ値の木を計算するために、１つの一意のＣＤＮＡのみが必要になるようにする
・２つ以上のＣＤＮＡをリンクして、結合されたハッシュノード値が一意であり、検索可能になるようにする
・タグ付き製品が分割される、または混合される場合でも、包装されていない製品のｐＣＤＮＡのセットから復元できるサプライチェーンの一意のハッシュレコードを生成する。
【０１２９】
ノードで及びノード間のハッシュ方法論
次に、個別のノードで及びノード間でＣＤＮＡ符号語をハッシュするための方法論を開示する。図１４は、一意包装識別子１４０２で包装されるｐＣＤＮＡタグ付き製品１４０１を説明する。各ノード１４０５（ハッシュ方法論レベル１、ＨＭ＿Ｌ１）のハッシュ値、及びノード１４０６（ハッシュ方法論レベル１、ＨＭ＿Ｌ２）間のハッシュ値は、１つ以上のオリゴヌクレオチド符号ＣＤＮＡ１４０３、及び任意選択でセットＸ１４０４のゼロ以上で構成されるか、またはそれらから導出される。
【０１３０】
セットＸ１３０４には、｛第２のＨ（ＣＤＮＡ）、代替識別子もしくはＨ（代替識別子）、タイムスタンプもしくはＨ（タイムスタンプ）、カウンタもしくはＨ（カウンタ）、乱数もしくはＨ（乱数）、またはパディングテキストもしくはＨ（パディングテキスト）｝が含まれる。セットＸの用語は、次のように定義されている。
・ＣＤＮＡ＝ノード識別子（ＣＤＮＡＮＩ）または一意製品識別子（ＣＤＮＡＵＩ）符号語のいずれかを表す｛Ａ、Ｃ、Ｇ、Ｔ、及び／または任意選択でＵ｝で構成されるＺ４符号語。
・代替識別子（Ａｌｔ＿ＩＤ）＝任意のＣＤＮＡに直接関連付けられていない公開鍵（ＰｂＫ）、または秘密鍵Ｈ（ＰｖＫ）のハッシュに類似したＡＳＣＩＩテキストの文字列。
・タイムスタンプ＝定義された間隔で更新される時刻及び日付のレコード。
・カウンタ＝任意であり、定義された間隔で更新されるカウンタ。
・パディングテキスト（Ｐｎ）＝ＣＤＮＡ符号語をパディングするために任意選択で使用されるＡＳＣＩＩテキスト。パディングテキストは、符号語を長くし、それによって衝突の発生率を低下させ、セキュリティを向上させる可能性がある。
【０１３１】
連結テキスト（｜｜）は、互いに直列に、または互いにチェーン状にリンクされたテキストのことであり、入力に適用されるハッシュ関数は、本文書全体を通してＨ（入力）と表記される。包装識別子は、ＰＩで表記され、製品サプライチェーンの事象を表すハッシュ木のノードで計算されたハッシュ値を介して、製品中のｐＣＤＮＡに暗号でリンクされ得る。あるいは、包装識別子は、ハッシュ木内のノードのハッシュ値を指し示すプロキシ識別子を介して、ハッシュ木に関連付けられる場合がある。
【０１３２】
次に、ノード（ＨＭ＿Ｌ１）１４０５のレベル、及びノード間（ＨＭ＿Ｌ２）１４０６のレベルで使用される異なるハッシュ方法論が、図１４を参照して開示される。図１４では、ＨＭ＿Ｌ１  １４０５は、個々のノード（ＨＭ＿Ｌ１）ごとでのハッシュ方法論を含み、ＨＭ＿Ｌ２  １４０６は、ノードハッシュが互いにリンクされる方法論を含む。
【０１３３】
各ノード（ＨＳ＿Ｌ１、レベル１）１４０５でのハッシュ方法論はネストしていてもよく、ＣＤＮＡとＸとの任意の順序での任意の連結する形態を取ってもよい。以下の非網羅的なリストは、ＨＭ＿Ｌ１ハッシュの実施例を示す。図７、図１０、及び図１３の実施例では、２つのＣＤＮＡ入力、Ｈ［Ｈ（ＣＤＮＡ＿１）｜｜Ｈ（ＣＤＮＡ＿２）］を有するバイナリジェネシスハッシュを使用した。ノードハッシュはＨ（ＣＤＮＡ）を含むことはできないが、累積ハッシュは少なくとも１つのＨ（ＣＤＮＡ）から得る必要があることに留意されたい。各ノード（ＨＳ＿Ｌ１、レベル１）でのハッシュ方法論には、
・Ｈ（ＣＤＮＡ）
・Ｈ（Ｘ）
・Ｈ［Ｈ（ＣＤＮＡ１）｜｜Ｈ（ＣＤＮＡ２）］
・Ｈ（Ｘ１｜｜Ｘ２）
・Ｈ［Ｘ｜｜Ｈ（ＣＤＮＡ）］
・Ｈ［Ｘ１｜｜Ｘ２｜｜．．．Ｘｎ｜｜Ｈ（ＣＤＮＡ）］
・または上記の任意の組み合わせ、がある。
【０１３４】
各ノード（ＨＭ＿Ｌ１）のハッシュ方法論は、レベル２のハッシュ方法論ＨＭ＿Ｌ２と共にリンクされてもよい。全てのＨＭ＿Ｌ２ハッシュは、前のノードで組み込まれた１つ以上のＨ（ＣＤＮＡ）から得るか、それらを含むことに留意されたい。レベル２のハッシュ方法論には、以下のものがある。
・チェーン／木におけるリンクされていない以前のハッシュのリスト：
例えば、Ｈ（ＣＤＮＡ＿１）、Ｈ（Ｘ＿１）、Ｈ（ＣＤＮＡ＿２）、Ｈ（Ｘ＿２）、．．
・連結されてからハッシュされる以前の識別子のリスト：Ｈ（ＣＤＮＡ＿１｜｜Ｘ＿１｜｜ＣＤＮＡ＿２｜｜Ｘ＿２、．．．）
・新しいノードハッシュ値が、セットＸの１つの要素が連結された以前のノードハッシュ値のハッシュであるハッシュの二分木。例えば：
・ノード１：Ｈ（Ａ）＝Ｈ［Ｘ１｜｜Ｈ（ＣＤＮＡ＿１）］
・ノード２：Ｈ（Ｂ）＝Ｈ［Ｈ（Ａ）｜｜Ｈ（Ｘ２）］、製品にｐＣＤＮＡが付加されていない
・ノード３：Ｈ（Ｃ）＝Ｈ［Ｈ（Ｂ）｜｜Ｈ（ＣＤＮＡ＿２）、製品に付加された付加ｐＣＤＮＡ
・新しいノードハッシュ値が、セットＸの１つ以上の要素が連結された以前のノードハッシュ値のハッシュであるハッシュのｎ分木
・マークル木
【０１３５】
説明のために、以下の節では主に、図７に示すように、二分木ハッシュアプローチと組み合わせたオリゴタグ方法論１ＯＴＭ１について説明する。
【０１３６】
ジェネシスハッシュ
ジェネシスハッシュとは、ハッシュのチェーンまたは木における最初のハッシュのことである。ハッシュが木においてリンクされている場合、１つの入力ハッシュ値を変更すると、全ての下流ノードハッシュ値の値が変更される。これは、１つの入力ＣＤＮＡ値の変更が、製品のサプライチェーン内の全ての下流ノードに伝達されることを意味する。ジェネシスハッシュの１つの要素がサプライチェーンに一意であれば、全ての下流ノードハッシュ値もまた一意になることを意味する。
【０１３７】
１つ変更された入力からハッシュのチェーンまたは木を下る異なるノードハッシュ値の伝播により、（１）ノード識別子符号語が再利用（ｐＣＤＮＡＮＩ）されるようになり、（２）他の製品情報が、別個のノードハッシュ値（例えば、品質管理、管理、タイムスタンプなど）に添付され、データベースに保存されるようになる。これは、特定の事象が発生したことを示すために発行する必要のある一意のｐＣＤＮＡが少なくなることを意味する。ネストされたハッシュでは、製品の全てのタグを変更するのではなく、木における１つの要素のみが変更されるようにし、それによって、この変更が木における全ての下流ノードに伝達される。以下の開示は、一意のジェネシスハッシュを作成するための６つの実施例を提供する。
【０１３８】
図１５は、ジェネシスハッシュＨ（Ａ）を生成するための６つの異なるアプローチを説明する。一意のジェネシスハッシュを作成するには、ハッシュの少なくとも１つの要素が、特定の品物／バッチ／製品に対して一意でなければならない。実施例１５０１、１５０２、１５０３、１５０４、１５０５、及び１５０６では、一意の要素を赤色で示し、セットＸの要素（上記を参照）を含む場合がある。個々の要素のハッシュは、その要素を秘密にすべき場合にのみ必要となる。本明細書に開示される実施例では、各ＣＤＮＡ要素のハッシュのみを示している。ｎ回ネストした木のハッシュアプローチでは、同じノード識別子ＣＤＮＡＮＩが異なるバッチ間で再利用されるようになるため、ＣＤＮＡＮＩは（ＯＴＭ１の）一意の要素として使用されないことに留意されたい。「＿１」は、ジェネシスハッシュＨ（Ａ）が計算される最初のノードを示す。
【０１３９】
第１の実施例１５０１では、ジェネシスハッシュＨ（Ａ）は、単純に、一意のオリゴヌクレオチド製品識別子のハッシュＨ（ＣＤＮＡＵＩ＿１）である。
【０１４０】
第２のアプローチ１５０２では、ジェネシスハッシュＨ（Ａ）は、ハッシュされた一意の製品識別子と代替識別子とののハッシュされた連結Ｈ［Ｈ（ＣＤＮＡＵＩ＿１）｜｜Ｘ］である。ここで、Ｘ＝Ａｌｔ＿ＩＤは、ノードを識別する「公開鍵」であると考えられ得る固定値であってもよい。このアプローチの利点は、Ｈ（Ａ）を生成するために１つのＣＤＮＡのみが使用され、Ｈ（Ａ）にノード情報が含まれていることである。ジェネシスハッシュは、サンプル内の各ＣＤＮＡＵＩのハッシュを検索し、一致するものが見つかるまで、すなわち、Ｈ（Ａ）サンプル＝Ｈ（Ａ）データベースとなるまで、Ａｌｔ＿ＩＤ／公開鍵のデータベースに対して全ての可能なＨ（Ａ）を計算することにより、製品サンプルから識別される。
【０１４１】
第３のアプローチ１５０３では、ジェネシスハッシュＨ（Ａ）は、ハッシュされたノード識別子とＸとのハッシュされた連結Ｈ［Ｈ（ＣＤＮＡＮＩ＿１）｜｜Ｘ］である。ただし、Ｘ＝代替識別子である。ここで、Ｈ（ＣＤＮＡＮＩ＿１）の値は、同じノードの異なる製品／バッチ／品物／トランザクション間で、固定され、再利用される、「公開鍵」であると考えられ得る。製品またはバッチに関する一意の情報は、製品／バッチごとに変わる代替識別子に保存される。ジェネシスハッシュは、サンプル内の各Ｈ（ＣＤＮＡＮＩ）を検索し、一致するものが見つかるまで、すなわち、Ｈ（Ａ）サンプル＝Ｈ（Ａ）データベースとなるまで、Ｘ代替識別子のデータベースを使用して各Ｈ（Ａ）を計算することにより、サンプルから回収される。
【０１４２】
第４のアプローチ１５０４では、ジェネシスハッシュＨ（Ａ）は、ハッシュされたノード識別子とＸとのハッシュされた連結Ｈ［Ｈ（ＣＤＮＡＮＩ＿１）｜｜Ｘ＝タイムスタンプ／カウンタ／乱数］である。ただし、Ｘ＝タイムスタンプ、カウンタ、または乱数である。このアプローチでは、時間間隔は、単一のトランザクションを取得するためには十分に短いが、復号を可能にするように指定された期間にわたって、好適な数のハッシュが生成されるように、十分に長く設定されるべきである。例えば、タイムスタンプが１分間隔に設定され、１０年の期間を想定した場合、５，２５６，０００個のジェネシスハッシュ値が可能である。ハッシュのマイニング速度が３３０Ｂハッシュｓ−１であり、サンプル中に１０個のｐＣＤＮＡＮＩがあると仮定すると、サンプルからジェネシスハッシュを計算して検証する予想時間は０．０００１秒未満となる。
【０１４３】
第５のアプローチ１５０５では、ジェネシスハッシュＨ（Ａ）は、ハッシュされたＣＤＮＡ製品固有識別子と、ハッシュされたＣＤＮＡノード識別子とのハッシュされた連結Ｈ［Ｈ（ＣＤＮＡＵＩ＿１）｜｜Ｈ（ＣＤＮＡＮＩ＿１）］である。このアプローチでは、２つのＣＤＮＡタグが製品に付加されてＨ（Ａ）が生成される。ジェネシスハッシュは、サンプル中の可能なジェネシスハッシュの全ての組み合わせ、つまり、Ｈ（ＣＤＮＡＵＩ）と、検出された各Ｈ（ＣＤＮＡＮＩ）との全ての組み合わせを計算し、結果として生じる値をジェネシスハッシュ値のデータベースに対して交差検証することにより、サンプルから回収される。
【０１４４】
最後に、第６のアプローチ１５０６では、ジェネシスハッシュは、Ｘ１とＸ２とのハッシュされた連結であり、Ｈ（ＣＤＮＡ）を含まない。このアプローチでは、Ｘ１は変数であり、製品またはバッチ番号を識別し、Ｘ２は定数であり、ノードを識別する。ｐＣＤＮＡが製品に付加される下流ノードでは、ノードハッシュ値は、付加されたオリゴヌクレオチドのＨ（ＣＤＮＡ）を使用して計算される。ただし、このアプローチは、サプライチェーンの可能な限り早い時点で製品にｐＣＤＮＡタグを付加するというセキュリティ上の利益を供しないため、好まれていない。
【０１４５】
順序がハッシュの二分木に格納されるオリゴヌクレオチドタグ方法論１（ＯＴＭ１）で標識化された製品から、サプライチェーン情報を復元する。
ジェネシスハッシュ方法論１５０１〜１５０６では、最初にデータベース検索フィールドを、（上記で開示したように）製品中のｐＣＤＮＡに暗号でリンクされた包装識別子に制限することにより、ジェネシスハッシュが製品サンプルから計算され、検証される効率が向上する。製品が包装されていない場合、製品サンプルのみからのジェネシスハッシュ識別では、サンプル中のｐＣＤＮＡが与えられる全ての可能なＨ（Ａ）を計算し、これらの値をＨ（Ａ）のデータベースと比較する必要がある。全てのＨ（Ａ）を計算する効率は、上記のアプローチ１５０１〜１５０６のどれを採用するかによって異なるが、これらのアプローチのいずれにおいても、計算効率は法外なものではない。
【０１４６】
ジェネシスハッシュが見つかった後に識別／管理の完全な木を復元するには、ＯＴＭ１で他のｐＣＤＮＡが付加される順序を、繰り返しリバースエンジニアリングしなくてはならない。これは、全ての可能なノード２のハッシュ値を計算し、すでに検証済みのジェネシスハッシュを含むチェーンのセットに対して、これらの値を交差検証することによって達成される。リバースエンジニアリングの処理は、識別／管理のチェーン／木においてフォークがある場合に必要とされ、タグ付けされた製品成分が分割され、及び／または再結合されて、（例えば）２つ以上の異なる完成品を生産するときに行われ得る。製品におけるＨ（ＣＤＮＡＵＩ）とＨ（ＣＤＮＡＮＩ）との２つの異なる組み合わせが衝突する確率は、実際の適用では実質的にゼロである。
【０１４７】
上記のハッシュ方法論Ｌ１及びＬ２では、ノードを互いリンクする方法が開示された。レベル１の方法論（ＨＭ＿Ｌ１）は、それぞれ別個のノードで情報をハッシュする方法を開示した。レベル２の方法論（ＨＭ＿Ｌ２）は、ノードでハッシュされた情報をリンクして、ハッシュのリストまたはｎ分木を形成する方法を開示した。
【０１４８】
図１６は、３つのノードで順次製品に付加されるｐＣＤＮＡオリゴタグの図１６０１と、ノードハッシュ値を計算して記録するための２つの方法論とを示す。第１の方法論１６０２はハッシュの二分木であり、第２の方法論１６０３は単純ハッシュリストである。第１の方法論１６０２は、２項またはｎ項の構造を取り得ることに留意されたい。上記に開示された他のハッシュ構造には、マークル木が含まれる。
【０１４９】
第１の方法論１６０２では、各ＣＤＮＡ（及び任意選択でセットＸの要素）のハッシュが共にハッシュの二分木に順次ハッシュされ、この情報が分散型、分権型、または中央集権型データベースに格納される。実施例１６０２では、各ノードハッシュ値は、（セットＸからの）新しいノードに関する情報と連結された以前のノードハッシュ値（履歴）のハッシュである。
【０１５０】
方法論１６０２は、一致するものが見つかるまで、製品サンプル内の情報（下記及び上記の節を参照）から導出されたハッシュの異なるバイナリ順列を計算することにより、包装されていないサンプルを容易に識別できるようにする。このアプローチには、単純リストよりも多くの利点がある。
・ハッシュチェーン／木は、全てのハッシュが共にハッシュされるために、レコードの改ざんを防ぐ。
・ハッシュチェーン／木により、オリゴタグが製品に付加された順序を回収できるようになる。
・各ノードで生成された一意のハッシュ値は、他の製品情報（すなわち、タイムスタンプ、トランザクション及び管理データ、品質管理情報、バッチ番号、有効期限、製造施設など）を追加し、保存するための識別子として使用できる。
・Ｈ（ＣＤＮＡ）をジェネシスハッシュの一部として使用することで、サプライチェーンを完全にカバーすることを可能とし、物理的な商品の取引のセキュリティを向上させる。
【０１５１】
第２の方法論１６０３は、単純に、Ｈ（ＣＤＮＡＵＩ／ＮＩ）のリストを、分散型、分権型、または中央集権型のデータベースに格納する。各ノードでのハッシュのリストは、分散トランザクション台帳に保存することもできる。分散型ブロックチェーン台帳のハッシュレコードは、確立されたブロックチェーン手法によって、改ざんから保護されている。Ｈ（ＣＤＮＡＵＩ／ＮＩ）を見つけるために、各ブロック内のトランザクションリストをクロールする。この意味で、方法論１６０２は、チェーンまたは木とは見なされない場合がある。
【０１５２】
ＯＴＭ１と組み合わせてノード順序情報を格納するためのハッシュの二分木の使用
この節では、ハッシュの二分木の方法論を、オリゴヌクレオチドタグ方法論１のＯＴＭ１と組み合わせて実装することについて詳細に検討する。本開示は、上記に開示されたＯＴＭ１〜３とハッシュ方法論との全ての組み合わせをカバーすることが理解されよう。
【０１５３】
図１７は、ハッシュの二分木方法論１７０１〜１７０４及びＯＴＭ１  １７１１〜１７１４を使用するフォークの実施態様を説明し、図１８は、ハッシュの二分木方法論１８０１〜１８０５及びＯＴＭ１  １８１１〜１８１５を使用するマージを実施する方法を説明する。説明のために、これらの実施例は、各ノードでｐＣＤＮＡが付加される事例のみを示している。前に説明したように、セットＸからの他の識別子を使用することもできる。
【０１５４】
図１７では、ジェネシスハッシュ１７０１は、２つのハッシュ化ＣＤＮＡのハッシュされた連結Ｈ（ＣＤＮＡ＿Ａ）＝Ｈ［Ｈ（ＣＤＮＡＵＩ＿１）｜｜Ｈ（ＣＤＮＡＮＩ＿１）］である。包装した製品１７１１には、物理タグｐＣＤＮＡＵＩ＿１及びｐＣＤＮＡＮＩ＿１が示されている。ノード２  １７１２において、第３のタグｐＣＤＮＡＮＩ＿２が付加され、累積ハッシュ１７０２、Ｈ（ＣＤＮＡ＿Ｂ）＝Ｈ［Ｈ（ＣＤＮＡ＿Ａ）｜｜Ｈ（ＣＤＮＡＮＩ＿２）］が計算される。この時点でフォークが行われる。「物質界」では、このフォークは、（例えば）製品の成分が分割され、２つ以上の異なる完成品製造業者に送られるときに行われ得る。１７１２における製品中のｐＣＤＮＡは、１７１３と１７１４との分割製品に自動的に移動される。製品１７１３及び１７１４のノードハッシュ値は、それぞれ１７０３及び１７０４で計算され、１７０１及び１７０２の場合と同じ方法論を使用する。図１７では、１７１３及び１７１４で付加されたｐＣＤＮＡが、品質管理ステップまたはチェーン管理を証明している場合があることに留意されたい。これらのケースでは、製品は同じであっても、生産物流管理が異なるため、最終的なハッシュ値が異なる。
【０１５５】
図１８では、１８０１、１８０２、１８０３、及び１８０４におけるハッシュは、図１７のフォークの実施例と同じ二分ハッシュ木方法論を使用して計算されている。ただし、図１８では、ノード１８０５において、ノード１８０２と１８０４との間でマージが行われる。マージ点１８０５では、ｐＣＤＮＡは付加されず、１８０２及び１８０４のノードハッシュ値の間で、「仮想」バイナリハッシュＨ（ＣＤＮＡ＿Ｅ）＝Ｈ［Ｈ（ＣＤＮＡ＿Ｂ）｜｜Ｈ（ＣＤＮＡ＿Ｄ）］が実施される。付加ｐＣＤＮＡは、マージ点から下流で付加されて、ハッシュされてもよい。
【０１５６】
図１９は、枝１９０１と枝１９０２との間のノード１９０３におけるマージと、ノード１９０４におけるフォークとを含む二分ハッシュ木の実施例を示す。１９０３及び１９０４の下流で、追加のｐＣＤＮＡが付加され、木に記録されることに留意されたい。最終的なハッシュ値１９０５及び１９０６は、両方の最終製品が同様の履歴を共有しているにも関わらず一意なものである。ｐＣＤＮＡに符号化されて製品に付加された情報は、フォーク及びマージの操作時に、自動的に新しい製品に伝達される。
【０１５７】
ノードでオリゴタグが付加されない場合のハッシュ法
図２０は、オリゴｐＣＤＮＡタグが製品に付加されないときのハッシュが行われる方法を説明する。ノード２００１において、以前のノードハッシュは、ＣＤＮＡを除くセットＸの１つ以上でハッシュされる（Ｈ（ＣＤＮＡ＿Ｃ）＝Ｈ［Ｈ（ＣＤＮＡ＿Ｂ）｜｜Ｘ］）。
【０１５８】
２００１での操作において、タイムスタンプまたは任意のカウンタが使用される場合、
・時間／カウンタの間隔は、単一のトランザクションを取得するためには十分に短いが、復号を可能にするように指定された期間にわたって、好適な数のハッシュが生成されるように、十分に長く設定されるべきである。
・例えば、タイムスタンプ間隔が１分に設定され、期間が１０年であると仮定すると、Ｈ（ＣＤＮＡ＿Ｃ）の有効な値を見つけるためには、２００１で５，２５６，０００個の可能なノードハッシュ値を計算して交差検証する必要があり得る。３３０Ｂハッシュｓ−１のハッシュマイニング速度が与えられ、製品中に１０個のｐＣＤＮＡがあると仮定すると、タイムスタンプ付きノードでは、可能な全てのハッシュ値を０．０００１秒未満で計算することができる。
・ノードのハッシュ値が検証されると、ハッシュ値の作成時に追加された付加情報（つまり、管理情報、品質管理情報、輸入情報など）を取得できる。
【０１５９】
図２１は、マージ及びフォークを伴うハッシュの二分木を説明し、ｐＣＤＮＡタグが付加されない、セットＸからの要素を有するノードハッシュを記載する。この実施例では、第１のチェーン２１０１のジェネシスハッシュは、２つのＣＤＮＡのハッシュされた連結Ｈ［Ｈ（ＣＤＮＡＵＩ＿ｉ）｜｜Ｈ（ＣＤＮＡＮＩ＿１）］である。第２のチェーン２１０２のジェネシスハッシュは、１つのＣＤＮＡとＸとのハッシュされた連結Ｈ［Ｈ（ＣＤＮＡＵＩ＿ｉｉ）｜｜Ｈ（Ｘ＿４）］である。２つのチェーンは２１０３で仮想ハッシュＨ［Ｈ（Ｄ＿ｉ）｜｜Ｈ（Ｃ＿ｉｉ）］とマージされる。２１０４においてフォークが行われ、ノード２１０５及び２１０７は両方とも、セットＸの要素でハッシュされる。Ｘが１分間隔のタイムスタンプである場合、２１０５における操作と２１０７における操作とが１分以上離れて実行された場合にのみ、一意のハッシュ値が生成される。時間間隔は、衝突が十分に起こりそうにないように設定されるべきである。最終的なハッシュ値２１０６及び２１０７は、各ノードで結合された履歴と、２１０６及び２１０７で付加された新しい情報とから計算される。
【０１６０】
図２２は、ｐＣＤＮＡが付加されたノードのみを示す図２１の表現である。以下の節では、ＯＴＭ１方法論を使用して標識化された包装されていない製品において検出されるｐＣＤＮＡから、完全なハッシュチェーン／木を復元する方法、例えば、図２２から図２１を復元する方法を開示する。
【０１６１】
ＯＴＭ１標識付き製品からのサプライチェーン情報の回収及び復号
ここでは、順序がハッシュの二分木に格納されている、ＯＴＭ１で標識化された製品サンプルから、サプライチェーン情報を復元するための２つの主要なアプローチを開示する。
ハッシュ木をジェネシスハッシュから順次に復元する
ステップ１．  製品サンプル中の全てのＨ（ＣＤＮＡＵＩ）を探し出す
ステップ２．  サンプル中の各ＣＤＮＡＮＩに対して、各ＣＤＮＡＵＩを繰り返しハッシュすることにより、可能な全てのジェネシス「Ａ」レベルのハッシュを計算する。可能なジェネシスハッシュの組み合わせの数ｎ（ＣＤＮＡＵＩ）ｘｎ（ＣＤＮＡＮＩ）は少ない。
または、使用する方法に応じて、
セットＸの各要素が取り得る可能な全ての値に対して、各ＣＤＮＡＵＩを繰り返しハッシュすることにより、可能な全てのジェネシス「Ａ」レベルのハッシュを計算する。
ステップ３．  ステップ２で生成されたハッシュ値を、一致するものが見つかるまで、ジェネシスハッシュ値のデータベースと比較する。
ステップ４．  全てのＨ（ＣＤＮＡＵＩ／ＮＩ）が解決される前に、チェーンが停止した場合には、２つのチェーンを共にハッシュすることを試みる。図２１に示すように、「仮想」マージがあった可能性がある。
ステップ４．  ステップ３で検証されたジェネシスハッシュに関連付けられた木において、検索フィールドを「Ｂ」レベルのノード２のハッシュに制限する。
ステップ５．  ステップ２の方法論を使用して、可能な全ての「Ｂ」レベルのハッシュを計算する。
ステップ６．  ステップ５で生成されたハッシュ値を、ステップ４の制限付きノード検索フィールドと比較する。
ステップ７．  サンプル中の全てのｐＣＤＮＡが解決され、ターミナルハッシュが見つかるまで、ステップ２〜６を繰り返す。
【０１６２】
ジェネシスハッシュを生成するために２つのｐＣＤＮＡを使用し、各ノードに１つの追加のｐＣＤＮＡを付加した場合、可能なハッシュの総数ｃは、
ｃ＝ｕ．（（ｎ２）／２）
である。ただし、ｎはサンプル中のノード識別子の数であり、ｕはサンプル中の製品固有識別子の数である。
製品中のｐＣＤＮＡに暗号でリンクされている包装識別子の値から、ハッシュチェーン／木をリバースエンジニアリングする。
【０１６３】
本アプローチは、包装識別子技術に、完成した製品の製造及び包装の時点で計算されたノードハッシュ値が含まれているときに実行することができる。
ステップ１．  包装識別子技術に表示されたノードハッシュ値に関連付けられている全てのジェネシスハッシュを検索する。
ステップ２．  サンプル中の各ＣＤＮＡＮＩに対して、各ＣＤＮＡＵＩを繰り返しハッシュすることにより、可能な全てのジェネシス「Ａ」レベルのハッシュを計算する。可能なジェネシスハッシュの組み合わせの数ｎ（ＣＤＮＡＵＩ）ｘｎ（ＣＤＮＡＮＩ）は少ない。
または、Ｘが使用される場合、
セットＸの各要素が取り得る可能な全ての値に対して、各ＣＤＮＡＵＩを繰り返しハッシュすることにより、可能な全てのジェネシス「Ａ」レベルのハッシュを計算する。
ステップ３．  ステップ２で生成されたハッシュ値を、一致するものが見つかるまで、ステップ１のハッシュ値と比較する。
ステップ４．  一致するものが見つかった場合は、ステップ２の方法論を使用して、適切に制限された検索フィールドに対して他の全てのノードを反復的に検証する。
【０１６４】
また、チェーン／木を、トップダウンで（つまり、ターミナルハッシュからジェネシスハッシュへ）ブルートフォースによってリバースエンジニアリングすることも可能であるが、このアプローチは上記のアプローチよりも計算コストが高くなる。例えば、次の２つのシナリオについて考えてみる。
【０１６５】
シナリオ１．  １０個のノードがｐＣＤＮＡで標識化され、１０個のｐＣＤＮＡＮＩがサンプル中に検出される。これは、ＣＤＮＡ空間がｎ＝１０であり、ノード空間がｔ＝１０であることを意味する。このシナリオでは、ｎ！−（ｎ−ｔ）！＝ｎ！＝１０！＝約３．６３ｘ１０６の可能なターミナルハッシュ値が存在する。これは、容易にブルートフォースされ得る数値である。ハッシュの計算速度が３３０ｘ１０９ハッシュｓ−１だとすると、計算には約０．００００１秒かかることになる。
【０１６６】
シナリオ２．  ジェネシスハッシュには１つのｐＣＤＮＡが組み込まれ、ｔ＝１０ノードがタイムスタンプでハッシュされ、ｎ＝５，２５６，０００の可能なタイムスタンプ間隔が存在する（１分の時間間隔で１０年の検索フィールド）。このシナリオでは、ターミナルハッシュ空間をカバーするために、ｎ！−（ｎ−ｔ）！＝１．６ｘ１０６７回のハッシュ計算が必要である。この数は、「トップダウン」でブルートフォースするには大きすぎる。ハッシュ計算速度が３３０×１０９ハッシュｓ−１だとすると、これは約１．５４×１０４８年、または可能な全てのハッシュ木を生成するために、宇宙が存在していたよりも１．０４×１０３８倍長い時間がかかることになる。
【０１６７】
ただし、このシナリオのターミナルハッシュ値は、「ボトムアップ」（つまり、ジェネシスハッシュからターミナルハッシュへ、各ノードでハッシュ値を計算して順次に検証する）でブルートフォースされる可能性がある。ボトムアップ方法論では、ｎ＋（ｎ−１）＋（ｎ−２）＋．．．＋（ｎ−ｔ）＝約５２．５６ｘ１０６の異なるハッシュ順列が、可能なターミナルハッシュ空間をカバーする。ハッシュの計算速度が３３０ｘ１０９ハッシュｓ−１であるとすると、計算にかかる時間は約０．０００２秒になる。
【０１６８】
ノードハッシュを表示するための包装識別子の利用
この節では、製品中のｐＣＤＮＡを、包装識別子技術（ＰＩ）で表示された符号に暗号でリンクする方法論が開示されている。ＰＩ−ＣＤＮＡ符号は、３つの主な目的を果たす。（１）製品と包装との間のリンクを提供する。（２）ノードハッシュの交差検証に使用される検索フィールドを制限することにより、製品サンプルからハッシュチェーン／木を復元する際の計算効率を向上させる。（３）ｐＣＤＮＡタグが付加されない下流ノードで、生産物流管理／チェーン情報を拡張するために容易に使用できる識別子符号を提供する。ポイント（３）に関して、識別子符号は、セットＸの要素でハッシュすることにより、チェーンを拡張するために使用され得る。結果として生じる新しい仮想ノードは、分散型、分権型、または中央集権型データベースに格納され得る。この仮想チェーン拡張は、ｐＣＤＮＡが（図２５に示すように）付加される任意の下流ノードで、Ｈ（ＣＤＮＡ）を使用して再度ハッシュされてもよい。
【０１６９】
包装識別技術（ＰＩ）とは、製品を識別する目的で包装に表示される任意の技術のことをいう。包装識別技術には、インク、染料、ホログラム、バーコード、ＱＲコード、ＲＦＩＤ、二酸化ケイ素符号化粒子、製品のスペクトル画像データ、及びＩｏＴデバイスが含まれるが、これらに限定されない。図２３は、包装識別子（ＰＩ）技術２３０２に暗号でリンクされている１つ以上のｐＣＤＮＡＵＩ／ＮＩ２３０１で標識化された包装した製品２３００を示す。ＰＩは、任意のノードでハッシュ値を表示することができる。したがって、ＰＩ符号には、少なくとも１つのＨ（ＣＤＮＡＵＩ／ＮＩ）と、セットＸの０個以上の要素とが組み込まれている。
【０１７０】
ハッシング関数を使用すると、製品中のｐＣＤＮＡタグと製品包装との間の安全でセキュアなリンクが可能になる。
・ＰＩは包装上に公に表示される
・Ｈ（ＣＤＮＡ）は、ＣＤＮＡ符号語を秘密に保ちながら、ｐＣＤＮＡへの暗号によるリンクを提供する。
・ＰＩは、ｐＣＤＮＡの少なくとも１つのＨ（ＣＤＮＡ）を製品に組み込む。
・ＰＩ符号は、ジェネシスハッシュ、包装時の最新のノードハッシュ、または製品のハッシュチェーン／木内の他の任意のノードハッシュであり得る。
・ＰＩは、ノードのハッシュ値を指す代替識別子であり得る。
【０１７１】
ＯＴＭ１の製品検証
上記のように、製品の検証には、製品サンプル中のｐＣＤＮＡからハッシュの木を復元し、この木をデータベースに保存されている木に対して交差検証することが含まれる。簡潔に、
・製品が包装されていない場合、ハッシュチェーン／木は、ジェネシスノードから最新のターミナルノードへの可能なノードハッシュの順列を順次に、ブルートフォース及び交差検証することによって、復元される可能性がある（上記を参照）。
・製品が包装されている場合、製品中のｐＣＤＮＡから復元されたノードハッシュを交差検証するために、ＰＩ符号を最初に使用して、検索フィールドを制限する。
【０１７２】
図２４は、包装識別子技術に関連付けられた累積Ｈ（ＣＤＮＡＵＩ／ＮＩ）を説明する。このアプローチの利点は、製品中のＣＤＮＡＵＩ／ＮＩ断片が、包装マーカに明示的にリンクされており、検証に役立ち得ることである。累積ノードハッシュ値は、説明したように、セットＸの要素を含んでいてもよい。
【０１７３】
混合された包装されていない製品からのハッシュ木の修復
ハッシュ木は、混合された包装されていない製品から修復される場合がある。製品サンプルが回収されて復号された後、２つのターミナルノードハッシュを共に「仮想」バイナリハッシュにハッシュすることにより、ハッシュ木を修復することができる。この操作は、基本的には図１８で説明したマージと同じであるが、適切な権限を持つ者（つまり、製品の再包装及び販売を許可されている人物）に制限されるべきである。
【０１７４】
マージし、フォークし、途切れ、修復されるチェーンの実施例
図２５は、マージし、フォークし、途切れ、そして修復されるハッシュチェーン／木の実施例の図である。チェーン／木は、第１のｐＣＤＮＡ標識付き成分２５０１と、第２のｐＣＤＮＡ標識付き成分２５０２とを示す２つの異なるジェネシスハッシュで始まる。２つの成分が共に混合されて、マージ点２５０３で完成品を生産する。マージする前に、成分２５０１に対して、セットＸの要素でハッシュすることによって記録される３つの操作／トランザクションが実行される。成分２５０２に対して、第３のＨ（ＣＤＮＡ）とセットＸの１つの要素とでハッシュすることによって記録される２つの操作が実行される。
【０１７５】
マージ点では、完成品ハッシュ値２５０３は、完成品包装の時点２５０４で包装識別子技術２５０５に転送される。包装識別子２５０５は、２５０３においてハッシュ値で符号化され、オリゴヌクレオチドタグ付き製品２５０６の包装上に公に表示される。この例では、包装された製品２５０７は、次に、セットＸの要素でハッシュすることによって記録される２つのさらなる操作を受ける。これらの操作は、例えば、サプライチェーンまたは品質管理ステップでの管理トランザクションを表し得る。
【０１７６】
ポイント２５０８において、包装された製品２５０７が包装を解かれ（２５０９）、包装識別子技術２５０５が失われる。ハッシュ木は、前述の方法論に従って、包装されていない製品２５０９のｐＣＤＮＡから復元される（２５１０）。この実施例では、追加のｐＣＤＮＡ標識が、包装されていない製品に付加されて、ノード２５１１でハッシュチェーン／木が修復される。製品は２５１２で再包装され、２５１１で計算されたハッシュ値が、第２の包装識別子技術２５１３に転送される。第２の包装識別子２５１３は、再包装されたオリゴタグ付き製品２５１４、２５１５上に表示される。
【０１７７】
安全性と、Ｈ（ＣＤＮＡ）からのＣＤＮＡのリバースエンジニアリングとに関する注記
ここで、開示された発明の安全性が、管理者、サンプラ及び偽造者の観点から調査される。次のシナリオでは、それぞれが１つのｐＣＤＮＡで標識化された１０ノードのハッシュチェーンをブルートフォースするのに必要な計算リソースを検討する。
【０１７８】
管理者．  管理者が１，０００，０００個のｐＣＤＮＡを顧客に供給し、製品にはそのサプライチェーンに従って１０個が付加されたと仮定する。したがって、本実施例では、ＣＤＮＡ符号語空間をｎ＝１，０００，０００、ノード空間をｔ＝１０とする。管理者がチェーン内の各ノードの累積ハッシュ値を知っていて、最終的なターミナルハッシュ値をブルートフォースしようとした場合、必要なハッシュ計算の数は、ｎ＋（ｎ−１）＋（ｎ−２）＋．．．＋（ｎ−ｔ）＝９，９９９，９５５となる。マイニング速度が３３０Ｂハッシュｓ−１であるとすると、ハッシュ空間をカバーするには約０．０００１秒かかることになる。管理者が最終的なハッシュ値しか知らない場合、必要なブルートフォース計算の数は、ｎ！−（ｎ−ｔ）！＝約１０６０となる。マイニング速度が３３０ｘ１０９ハッシュｓ−１であるとすると、ハッシュ空間全体をブルートフォースでカバーするには、９．６ｘ１０４０年かかることになり、これは明らかに実行不可能である。
【０１７９】
サンプラ．  次に、同じシナリオが、サンプラの視点（またはより正確にはサンプリングソフトウェアの視点）から検討される。サンプラは、製品中の１０個のｐＣＤＮＡのそれぞれのハッシュ値を取得するが、タグが付加された順序は分からない。したがって、サンプラは、製品から取得したＨ（ＣＤＮＡ）の各組み合わせのハッシュを比較することにより、この順序を導出しなければならない。本実施例では、符号語空間をｎ＝１０、ノード空間をｔ＝１０とする。サンプラが、各ノードでの累積ハッシュ値を知っている場合、ハッシュ空間をカバーするためにブルートフォースする必要がある最終的なノードハッシュ値の数は、ｎ＋（ｎ−１）＋（ｎ−２）＋．．．＋（ｎ−ｔ）＝５５となる。この数は簡単にブルートフォースされ得る数である。１．１ｘ１０−１０秒かかることになる。サンプラがチェーンの最終的なハッシュ値しか知らない場合、全ての最終的なハッシュ値の空間をカバーするために計算する必要のあるハッシュの数は、ｎ！−（ｎ−ｔ）！＝１０！＝３，６２８，８００となる。この数もまた、簡単にブルートフォースされ得る数である。１．１ｘ１０−５秒かかることになる。
【０１８０】
偽造者：次に、同じシナリオが、偽造者の視点から検討される。偽造者は、提供されたｐＣＤＮＡについて何の知識も持たず、使用されている符号化システムを知らないと仮定する。これは、偽造者が、Ｚ４で符号化されたオリゴヌクレオチド断片の可能性のある全ての組み合わせを検査する必要があることを意味する。この演習の目的のために、偽造者は、断片の符号化領域が６０ヌクレオチド長であり、１０個の断片が製品に付加されていることを知っていると仮定する。ここで、可能なＣＤＮＡ断片符号語空間は、ｎ＝４６０＝１．３３ｘ１０３６となり、ノード空間は、ｔ＝１０となる。偽造者が各ノードでの累積ハッシュ値を知っている場合、最終的なハッシュ値の可能性のある空間は、ｎ＋（ｎ−１）＋（ｎ−２）＋．．．＋（ｎ−ｔ）＝１．３３ｘ１０３７となる。マイニング速度が３３０ｘ１０９ハッシュｓ−１であるとすると、可能性のある全ての最終的ノードハッシュを計算するには、１．４０ｘ１０１８年かかることになる（または、宇宙が存在していたよりも、約９７ｘ１０６倍長くなる）。同様に、偽造者が最終的なノードハッシュしか知らない場合、全ての可能性をカバーするのに必要な計算の数は、ｎ！−（ｎ−ｔ）！＝（１．３３ｘ１０３６）！−（１．３３ｘ１０３６−１０）！＝約１．３３ｘ１０３４１年となる。したがって、偽造者が製品のＣＤＮＡ符号をブルートフォースでリバースエンジニアリングすることは不可能である。
【０１８１】
上記のシナリオでは、提案されたシステムをハッキングすることは事実上不可能であるが、適切な権限を持つ許可された者が使用できる可能性があることが示されている。
【０１８２】
ハッシュ（ＤＮＡ）データをブロックチェーンに格納する
ここでは、ブロックチェーン技術の簡単なレビューを行い、次にブロックチェーンアーキテクチャにＨ（ＣＤＮＡ）を格納するための様々なアプローチについて説明する。
【０１８３】
ブロックチェーンの概要―主要なプロセス
図２６は、２者間で情報を転送するために使用される公開鍵暗号化プロトコルを説明し、その場合、トランザクションが分散型台帳に記録され得、ブロックチェーンによって保護され得る。図２６では、ＡＥＳ２６０１は、プレーンメッセージテキスト２６０２を暗号文２６０３に変換するために使用される高度暗号化アルゴリズムである。開示された発明では、Ｈ（ＣＤＮＡ）情報は、プレーンメッセージテキスト内に格納され得る。ＡＥＳ２６０１は、乱数発生器２６０５または信頼できる鍵インフラストラクチャによって生成されたセッション鍵２６０４を使用する。ＲＳＡ（リベスト、シャミア、エーデルマン）２６０６アルゴリズムは、受領者２６０８の公開鍵２６０７を使用して、暗号文２６０３に追加されるセッション鍵２６０９を暗号化する。
【０１８４】
次に、追加された暗号文２６０３及びセッション鍵２６０９がハッシュされて、暗号文２６０３プラスセッション鍵２６０９ブロックのハッシュ値２６１０が与えられる。ハッシュ２６０１は、ＳＨＡ（セキュアハッシュアルゴリズム）２６１１、または同様の方法によって計算され得る。ハッシュ値２６１０は、それらの入力における１ビットの変化が、ハッシュ２６１０を根本的に変化させ、データがハッカーによって変更されないことを保証するために使用されるという意味で、特定の暗号文２６０３プラスセッション鍵ブロック２６０９に固有である。
【０１８５】
次に、送り手（図示せず）は、送り手の秘密鍵に基づく署名２６１２と、ＤＳＡ（デジタル署名アルゴリズム）などの署名アルゴリズム２６１４で暗号化された乱数２６１３とを提供することによって、ブロック全体に署名する。受領者側では、これらの４つのアルゴリズムが逆に実行され、元のプレーンテキストメッセージが取得される。まず、送り手の署名を使用して、送り手を確認する。次に、受け手はメッセージのハッシュ値をチェックする。
【０１８６】
図２７は、サプライチェーン情報が、製品に一体化される物理的オリゴヌクレオチドタグに格納されるとともに、不変のブロックチェーンにバックアップされる、製品の追跡及び検証のためのシステムを説明する。図２７では、Ｈ（ＣＤＮＡ）情報は、メンバー２７１０のデジタルウォレット間で取引され、分散型台帳２７２０に格納され、ブロックチェーンアーキテクチャ２７３０によって保護される。２つのメンバー間のトランザクションが発生すると、１つ以上のＨ（ＣＤＮＡ）から導かれるノードハッシュ値が計算され、関連するメッセージ情報の識別子として使用される。ノードハッシュ及び関連するメッセージ情報は、分散型台帳２７２０に格納される。分散型台帳に保存されているデータは、ブロックチェーンによって保護されたブロック単位で処理される。なお、本実施例では、必ずしもそうである必要はないが、ウォレット２７１１、２７１２、２７１３間のトランザクションは、異なる台帳ブロック２７２１、２７２２、２７２３に格納されている。
【０１８７】
本実施例では、ブロックチェーン２７３０のブロックは次のもので構成されている。
・ブロックヘッダは８０バイトである。
・ブロックバージョン（４バイト）は、ソフトウェアのバージョンを指定し、ソフトウェアのアップグレード時に変更される。
・以前のブロックのハッシュ（３２バイト）は、以前のブロックヘッダのハッシュであり、新しいブロックが設定されたときに更新される。
・マークルルートのハッシュ（３２バイト）は、ブロックに格納されている全てのトランザクションの二分ハッシュ木であり、新しいトランザクションの追加が停止するまで更新される。
・タイムスタンプ（４バイト）であり、数秒ごとに更新される。
・ビット（４バイト）は、ブロックのマイニングの難易度を設定するために使用され、マイニングの難易度を調整する必要がある場合に更新される。
・ノンス（４バイト）は１度だけ使用される数値であり、その値は、ブロックのハッシュに先行する０の連続が含まれるような値である。
【０１８８】
各ブロックハッシュ値に関するコンセンサスは、マイニングと呼ばれるプロセスを通じて参加者間で達成される。ハッシュ（ハッシュブロックヘッダ（ノンスを含む））＝定義された数の０のハッシュであるようなノンス値が見つかった場合に、ブロックは「マイニング」される。０の数は難易度を設定する。通常、ノンス値は、分散型台帳のブロックデータのマークル木表現の左端のリーフに位置している。ノンス値を変更すると、マークルルート値も変更される。
【０１８９】
マイニングは、異なるノンス値を反復的に試行し、生成されたマークルルート値に対してこれらの値を検査するプロセスである。マイナは、マークルルート値＝事前定義された０の先行実行を含む文字列であるようなソリューションを見つけると、そのソリューションをネットワークにアドバタイズする。ネットワーク内の他のメンバーがソリューションをチェックし、検証された場合、ブロックはブロックチェーンに追加される。その後、マイニングされたブロックのハッシュが次のブロックに渡される。このようにして、各ブロック３０３１、３０３２、３０３３は不変のチェーンで相互に接続される。
【０１９０】
開示された発明の主な利点
図２８は、混合され、開梱され、分割され、再包装される１つ以上のオリゴヌクレオチド標識製品間の鍵情報転送を説明する。
【０１９１】
一意識別子が、品物に付加されるオリゴヌクレオチドタグに符号化される。一意識別子は、任意選択で、サプライチェーンの下流で品物に取り付けられている１つ以上の包装技術にリンクされ得る。一意識別子は、オリゴヌクレオチドタグまたは包装技術のいずれかから回収され得る。一意識別子に関連付けられた情報は、分散型台帳、分散型データベース、または中央集権型データベースに保存され得る。提案されたオリゴタグ−ブロックチェーンシステムの主な利点は、（１）オリゴタグが製品に一体化され、分子の「ロックアンドキー」によって保護されているために、偽造が事実上不可能である、（２）オリゴタグは、完成品の製造時点から上流で、開梱時点から下流で、サプライチェーンを安全にする、（３）オリゴタグは混合時に「自動的に」転送されるため、複合商品の完全なトレーサビリティを可能にする、及び（４）品物が開梱された場合、または（例えば）包装識別子技術が破損した場合に、そのサプライチェーン／来歴を再確立することができる、ということである。図２８には、４つの塩基対のセット｛Ａ、Ｃ、Ｇ、Ｔ｝と、場合によってはＵとを使用して、一意の識別情報を有する１つ以上のオリゴヌクレオチド２８０２を符号化するオリゴヌクレオチドエンコーダ２８０１が示されている。また、１つ以上のオリゴヌクレオチドタグで標識化された１つ以上の製品成分２８０３が存在する。包装の一意識別子技術（インク、染料、バーコード、ＩｏＴデバイスなど）２８０４には、製品内のオリゴヌクレオチドタグ（複数可）にリンクされた情報が含まれている。１つ以上の包装デバイス２８０５が、任意選択で、包装されたオリゴ標識成分に取り付けられる。オリゴ標識成分が最終製品２８０６に再結合され、複数のオリゴ標識成分が含まれる。１つ以上のオリゴヌクレオチドタグ２８０７は、完成製品の製造の時点で任意選択で付加され得る。包装固有識別子技術２８０８は、製品の成分中のオリゴタグにリンクされた包装識別子技術からの情報を使用して、完成した製品中のオリゴタグ（複数可）（ＱＲコード、バーコード、ＩｏＴなど）にリンクされ得る。
【０１９２】
オリゴ一体型タグ（複数可）を有する包装された完成品２８０９が、完成品包装２８０９に取り付けられた包装識別子技術２８１０にリンクされている。第２、第３、またはそれ以上の「層状」包装識別またはセキュリティデバイス（例えば、ＩｏＴデバイス）２８１１と、包装された完成したオリゴ標識製品２８１２であって、このオリゴ標識製品２８１２に取り付けられた１つ以上の包装識別子技術２８１１を有するオリゴ標識製品２８１２とが存在し得る。
【０１９３】
次に、図２８は、包装されていない完成品２８１３と、廃棄された完成品包装２８１４（包装識別技術及びセキュリティ技術も廃棄される）と、一意識別子で符号化された１つ以上のオリゴでタグ付けされた第２、第３またはそれ以上のオリゴタグ付き完成品２８１５とを示す。また、１つ以上の一意識別子で符号化されたオリゴ標識を含む１つ以上の再結合された完成品からなる第２の完成品２８１６も存在する。
【０１９４】
したがって、製品２８１６中のオリゴタグ（複数可）から回収された情報を有する１つ以上の一意包装識別子（複数可）２８１７と、製品中のオリゴタグから復元された来歴のチェーンを有する再結合され、再包装された製品２８１８とが存在し得る。
【０１９５】
以下の記述は、異なるエンティティとモジュールと間の情報転送を含む、製品の同一性を検証するための方法を提供する。一意識別子（複数可）が、オリゴヌクレオチド断片（複数可）に符号化され（２８５０）、成分に混合され／標識付けされる。２８０１における一意識別子が、成分包装２８０５に取り付けられる１つ以上の包装技術２８０４に符号化される（２８５１）。２８０５における一意包装識別子（複数可）からの情報が、完成品包装に取り付けられる第２の包装技術に転送される（２８５２）。２８０８において、包装の一意識別子に追加の情報が付加されてもよい。追加の情報が、任意選択で、別の一意のオリゴ識別子（複数可）２８５４に符号化され、完成品２８０６に付加される。２８０６の一意のオリゴ識別子からの情報は、任意選択で包装固有識別子２８１０に転送される（２８５６）（第２のルート）。１つ以上の付加包装技術（すなわち、バーコード、ＱＲコード、ＩｏＴなど）が、任意選択で完成品包装に取り付けられ（２８５７）／含められる。包装技術からの情報は、開梱時に廃棄される（２８５８）。１つ以上の異なる完成品からの情報が、オリゴタグを介して、新たに再結合された完成品２８１６に転送される（２８５９）。新たに再結合された製品が分割される（２８６０）と、ｐＣＤＮＡタグ内の情報が転送される。包装されていない再結合された製品のオリゴタグ（複数可）から、来歴のチェーンが復元され（２８６１）、この情報は、再包装された製品２８１８上に表示される新しい包装固有識別子技術２８１７に組み込まれる。
【０１９６】
オリゴタグサンプルの調製、符号化、及び復号
この節では、誤り検出及び誤り訂正符号が本開示のシステム及び方法によって採用され得ることに留意して、オリゴヌクレオチドの符号化、オリゴヌクレオチドの復号、及びサンプル調製の背景を説明する。これは、製品中の任意のオリゴヌクレオチド断片での単一のヌクレオチドの誤りであっても、ハッシュ木内の全ての下流ノードに伝播するハッシュ値の誤りを生じる可能性があるためである。この種の誤りにより、製品内のｐＣＤＮＡタグからの製品検証が不可能になる場合がある。誤りは、ほとんどの場合、オリゴヌクレオチド合成またはオリゴヌクレオチド配列決定中に発生する。
【０１９７】
符号の誤り検出及び誤り訂正は、開示された技術とＯｘｆｏｒｄ  Ｎａｎｏｐｏｒｅ技術との互換性のために特に重要である。Ｏｘｆｏｒｄ  Ｎａｎｏｐｏｒｅは、可搬性と低読み取りレイテンシーとを提供するが、他のプラットフォームと比較して大幅に高い配列決定誤り率を示す（短い断片の場合は約１０％）。
【０１９８】
オリゴヌクレオチドサンプルの調製
【０１９９】
図２９は、オリゴヌクレオチドタグのサンプリングとサンプル調製とを説明する。
【０２００】
２９０１では、それぞれ１つ以上のオリゴヌクレオチドタグを含む製品のサンプルが示されている。オリゴタグは一意識別子で符号化されている。サンプルは、ターゲット配列のプライマ部位に相補的な部位と、サンプルを識別するバーコード配列（ＢＣ）とで構成されるプライマで増幅される（２９０２）。これには、２０１７年７月２１日に出願され、「Ａ  ＭＥＴＨＯＤ  ＦＯＲ  ＡＭＰＬＩＦＩＣＡＴＩＯＮ  ＯＦ  ＮＵＣＬＥＩＣ  ＡＣＩＤ  ＳＥＱＵＥＮＣＥＳ」と題するＰＣＴ／ＡＵ２０１７／０５０７５７に記載されているロック核酸（ＬＮＡ）が含まれ得る。増幅されバーコード化されたサンプルは、共にプールされ（２９０３）、標準プロトコルに従って配列決定のために準備され、その後、配列決定される。配列決定された断片は、サンプルを識別するそれぞれのバーコード配列に従って分割される（２９０４）。各サンプルは、任意選択で、サンプル内で以前に配列決定された鎖とのセミグローバル配列アラインメントと、記録されたリードカウントとに基づいて、符号語の同様のセット２９０５にさらに分割されてもよい。次に、各サンプルのベースコールされたデータが復号される（２９０６）（図３１を参照）。
【０２０１】
オリゴヌクレオチドの誤り検出及び誤り訂正の符号化アプローチ
図３０ａ、図３０ｂ及び図３０ｃは、ナノポア配列決定のために最適化されたオリゴヌクレオチド符号化システムの実施例を説明する。前に説明したように、ヌクレオチドのセットＳｎ＝｛Ａ、Ｃ、Ｇ、Ｔ｝の大きさはｓｎ＝４である。図３０ａでは、ＤＮＡシンボルのセットがハミングＨａｍ［ｎｉ，ｋｉ］符号を使用してＺ４で符号化されている。ただし、シンボルの長さはｎｉ＝７であり、ｋｉ＝４データヌクレオチドと、ｄｉ＝ｎｉ−ｋｉ＝３パリティヌクレオチドとで構成されている。この設計により、各ブロックは、ｄｍｉｎ＝３ヌクレオチドの相互最小距離で分離されることを保証する。また、Ｈａｍ  ［７，４］では、シンボルごとに、２  ｂ（塩基またはヌクレオチド）の誤り検出と、１ｂの誤り訂正とが可能である。可能なＨａｍ［７，４］ブロックのセットの大きさは、ｓｓ＝ｓｎｋｉ＝２５６シンボルである。生化学的制約をフィルタリングした後、可能なシンボルのセットは１３３シンボルに削減された。このシンボル数は、リードソロモン（ＲＳ）符号語の符号化に使用されるガロア体ＧＦ（２７）＝ＧＦ（１２８）の要素をカバーするのに十分であった。ＧＦ（１２８）でＲＳ符号語を符号化するのに必要なＨａｍ［７，４］シンボルＳＤＮＡのセットの大きさは、ｓＤＮＡ（またはｓｓ）＝１２８シンボルである。
【０２０２】
場合によっては、ＳＤＮＡの各シンボルにターミナル配列が付加されることがある。このアプローチは、大きな挿入エラー及び欠失エラーが、従来のハミング及びリードソロモン復号アプローチでは復号できない、破局的なフレームシフトエラーをもたらす状況での復号を支援する。
【０２０３】
図３０ｂでは、Ｈａｍ［７，４］シンボルのセットＳＤＮＡがＧＦ（１２８）の要素にマッピングされている。図３０ｃの例は、リードソロモン符号語を符号化するための標準的な手順を示している。この実施例では、ｎ＝９シンボルであり、ｋ＝５データシンボル、ｄ＝ｎ−ｋ＝４パリティシンボルからなる、ＲＳ［９，５］符号が使用されている。本システムは、ｄ／２＝２シンボルまたは１４ヌクレオチドのバーストエラー検出及び訂正機能が可能であり、３４０億の符号語数を超えるサイズの符号語ライブラリを可能にする。本アプローチは、このデバイスの誤り率とタイプとを考えると、Ｏｘｆｏｒｄ  Ｎａｎｏｐｏｒｅ技術と互換性があることが分かった。
【０２０４】
Ｈａｍ［ｎ，ｋ］及びＲＳ［ｎ，ｋ］の内側または外側の符号語の組み合わせのうちの任意の組み合わせを使用できることが理解されよう。図３０ａ、ｂ、ｃの実施例は、ＲＳ［９，５］−Ｈａｍ［７，４］の設計を示している。
【０２０５】
オリゴタグ復号アルゴリズム
図３１は、以下のステップを含むオリゴヌクレオチド復号の方法論を説明する。
【０２０６】
まず、ベースコールされたデータが、サンプル回収時にＰＣＲライゲーションを介して添付されたバーコード配列に従って、サンプルに分割される。プライマ部位配列は、任意選択で同等のテンプレート鎖に変換される相補鎖を検出するのに使用される。次に、プライマ部位が３１０１から切断されて、問い合わせ配列符号語ｑＣＤＮＡが取得される。各サンプル内のｑＣＤＮＡのセットは、任意選択で、サンプル内の以前に分割されて復号されたｑＣＤＮＡに対するｑＣＤＮＡの類似性に基づいて、符号語セット３１０２に分割され得る。このステップには、完全な断片長のセミグローバル配列アラインメントが含まれる。３１０３では、符号語問い合わせ配列は、５’末端３１０３からシンボル長ｎのヌクレオチドのブロックに分割された最初の文字列である。文字列分割配列は、最初にハミング復号アプローチを使用してシンボルを修正し、次にＲＳ復号手順を適用することによって復号される。このアプローチは、断片の３’末端に向かっているシンボルが、挿入及び欠失エラーのためにハミング方法論では復号できない場合に、成功する可能性が高い。復号が失敗した場合、問い合わせ配列は、３’末端３１０４からシンボル長ｎのヌクレオチドのブロックに文字列分割される。文字列分割配列は、最初にハミング復号アプローチを使用してシンボルを修正し、次にＲＳ復号手順を適用することによって復号される。このアプローチは、断片の５’末端に向かっているシンボルが、挿入及び欠失エラーのためにハミング方法論では復号できない場合に、成功する可能性が高い。ステップ３１０４が失敗した場合、断片を符号化するために使用されるシンボル配列のセットに対して、任意選択で局所的配列アラインメントが実行される（３１０５）。少なくともｎ−ｄ／２のシンボルに対して最適なアラインメントが見出され、その後、標準的なＲＳ復号が実行される。ｎ−ｄ／２シンボルが、定義されたアラインメント閾値を満たさない場合、サンプル内の以前に復号された配列、または発行された符号語のデータベース内の全ての符号語配列に対する完全な断片長のセミグローバル配列アラインメント分析３１０６を任意選択で実行してもよい。定義された閾値が、完全な断片長のセミグローバル配列アラインメントで満たされない場合、問い合わせ配列は破棄される（３１０７）。
【０２０７】
図３２は、符号語が、オリゴヌクレオチドに符号化され（３２０１）、暗号化され、ハッシュされ、データベース（分散型、分権型、または中央集権型）に送信され（３２０２）、製造され（３２０３）、製品３２０４に付加され、包装識別子技術３２０５に含められ、配列決定アプリケーション３２０８を備えたローカルコンピューティングデバイスと組み合わせて、サンプリングデバイス３２０６及びオリゴヌクレオチド鍵３２０７を使用して製品からサンプリングされ、サーバ３２０９上のアプリケーションを用いて製品サンプルから復号され、ハッシュ値のデータベースに対して検証される（３２０２）、方法を示す別の実施例である。
【０２０８】
図３２のシンボルは次のとおりである。
ＰｂＫＡ：公開鍵管理者（公開）
ＰｖＫＡ１：秘密鍵管理者１（秘密）
ＰｖＫＡ２：秘密鍵管理者２（秘密）
ＰｂＫＭ：公開鍵製造業者（公開）
ＰｖＫＭ：秘密鍵製造業者（秘密）
ＰｖＫＳ：秘密鍵サンプラ（秘密）
ＣＴ：暗号文（公開）
Ｈ（Ａ１）：ＣＤＮＡを含むハッシュ（公開）
Ｈ（ＡＰ）：Ｈ（Ａ１）である包装識別子符号（公開）
Ｈ（Ａｓ）：サンプルのｐＣＤＮＡから導かれたハッシュ値（公開）
Ｃｘ＝英数字のメッセージテキスト（秘密）
ＣＤＮＡ＝オリゴヌクレオチド符号語（秘密）
ｐＫＤＮＡ＝物理的オリゴヌクレオチド鍵（秘密）
ｐＣＤＮＡ＝符号語で符号化された物理的オリゴヌクレオチド断片（秘密）
ｑＣＤＮＡ＝問い合わせオリゴヌクレオチド符号語（秘密）
Ｐ１＝パディングテキスト１（公開）
Ｐ２＝パディングテキスト２（公開）
Ｈ（）＝ハッシュ関数（公開）
｜｜＝連結テキスト
ＲＤＮＡ＝ベースコールされない生オリゴヌクレオチド配列データ（秘密）
【０２０９】
図３２には、符号語をオリゴヌクレオチド配列に符号化し、符号語のハッシュ値を計算し、そのハッシュ値をデータベース３２０２に格納する、エンコーダ３２１０が示されている。この実施例では、ハッシュ値は、管理者の秘密鍵、パディングテキスト、及びオリゴヌクレオチド符号語を連結したものＨ（ＰｖＫＡ１｜｜Ｐ１｜｜ＣＤＮＡ）であるが、他の多くの変形も可能である。製造機３２０３は、製品に付加される物理的オリゴヌクレオチド配列３２０４を合成し、その配列のハッシュ値が、包装識別子技術に組み込まれ、包装３２０５上に表示される。サンプリングデバイス３２０６は、オリゴヌクレオチド鍵配列３２０7を使用して、製品からオリゴヌクレオチド配列（複数可）を回収するために使用され、生の配列データをコンピューティングデバイス３２０８に提供する。コンピューティングデバイス３２０８によって実行されるステップは、上記の方法で提供される。生データは、コンピューティングデバイス３２０８によって暗号化され、サーバ３２０９上のアプリケーションに設定される。サーバーアプリケーションは、生データをベースコールし、ベースコールした配列（複数可）を復号して、訂正されたオリゴヌクレオチド符号語（複数可）を導き出し、訂正された符号語（複数可）に対する問い合わせハッシュ値（複数可）を計算し、問い合わせハッシュ値（複数可）をデータベース３２０２に格納されているハッシュ値と比較する。この実施例では、サンプルのハッシュ値を計算するために、パディングテキストと管理者の秘密鍵とが適用されていることに留意されたい。言い換えると、コンピューティングデバイスは、データベース内のルックアップキーとして製品識別子を使用して、その製品の正しい／期待されるハッシュを取得する。ハッシュが一致する場合、製品の同一性が確認される。これは、製品認証と呼ばれることもある。
【０２１０】
以下の説明は、復号ステップに関する詳細情報を提供する。特に、一部のプラットフォームでの配列決定には、符号の符号語及び符号シンボルとの不整合につながる大量の誤りが含まれる可能性がある。したがって、コンピューティングデバイス２１４は、アラインメントステップを実行して、生成物からの配列決定されたオリゴヌクレオチド配列を、保存されたオリゴヌクレオチド配列に対してアラインメントすることができる。次に、コンピューティングデバイス２１４は、コンピューティングデバイス２１４が復号ステップでアラインメントされた配列を使用し、次いで復号後にハッシュを計算するという意味で、アラインメントされたヌクレオチド配列に基づいてハッシュ値を計算することができる。アラインメントステップは、システムのロバスト性を高めるための更なる機構を提供する。特に、アラインメントステップは、個々の塩基または配列の一部が削除されている場合に有用である。
【０２１１】
上記のハミングシンボルなどの複数の符号シンボルを使用してオリゴヌクレオチド配列が生成される場合、コンピューティングデバイス２１３は、配列決定された第２のオリゴヌクレオチド配列を複数の符号シンボルに対してアラインメントすることができる。さらに、オリゴヌクレオチド配列の生成が、上記のＲＳ符号語などの生成された符号語に基づく場合、コンピューティングデバイス２１４は、以前に復号された符号語または符号語のデータベースに対して、配列決定された第２のオリゴヌクレオチド配列をアラインメントすることができる。
【０２１２】
これらの様々なオプションが利用可能であるので、アラインメントのオプションのうちの１つを選択的に選択することが可能である。このことは、符号シンボルのアラインメントのための計算複雑性が比較的低いため、アラインメントが複数の符号シンボルに対して比較的低い誤り率で実行されるように、配列決定の誤りに基づいていてもよい。代替の方法として、さらに、この符号語アラインメントのための計算の複雑性が比較的高いので、比較的高い誤り率で複数の符号語に対してアラインメントを実行することができる。
【０２１３】
以下の説明は、ＤＮＡ断片の符号化のための符号化ステップから再び始まるさらなる詳細を提供する。
【０２１４】
ＯＮ技術の比較的高い誤り率は、信頼できる復号化のために十分な冗長性を必要とした。この節では、符号化されたＤＮＡ断片から情報を確実に回収するために使用されるＲＳ［９，５］−Ｈａｍ［７，４］符号化システムについて説明する。
【０２１５】
ハミング符号化されたＤＮＡシンボル
符号語シンボルは、ハミング［ｎｉ、ｋｉ、ｄｉ］符号を用いて構築された。ただし、ｎｉはヌクレオチドのブロック長、ｋｉはデータヌクレオチドの数、ｄｉはパリティヌクレオチドの数である（１、２）。また、シンボル間の最小ハミング距離もまたｄｉで与えられ、レートはｒ＝ｋｉ／ｎｉで与えられる。本明細書では、省略形の仕様Ｈａｍ［ｎｉ，ｋｉ］を使用する。ただし、ｄｉ＝ｎｉ−ｋｉである。この実施例では、Ｈａｍ［７，４］ブロックを使用した。Ｈａｍ［７，４］ブロックの生成に使用される内部シンボル符号（添え字ｉで表記される）の仕様は、以下のとおりであった。
【０２１６】
ｎｉ＝７は、ヌクレオチドの総数である
・ｋｉ＝４は、「データ」ヌクレオチドの数である
・ｄｉ＝ｎｉ−ｋｉ＝３は、パリティヌクレオチドの数である
・ｄｍｉｎ＝ｄｉ＝３は、各ブロック間の最小距離である
・ｒｉ＝ｋｉ／ｎｉ＝０．５７１＝１．１４ビットｂ−１は、シンボルのレートまたはデータ密度である
【０２１７】
ハミング符号で定義されているように、パリティ（ｄｉ）ヌクレオチドは、４次シンボルの２ｎｉの位置ごとに配置されていた（表１）。Ｈａｍ［７，４］符号の場合、パリティヌクレオチドｄ０、ｄ１、ｄ２は位置１、２、４にあり、データヌクレオチドｋ０、ｋ１、ｋ２、ｋ３は位置３、５、６、７にある。シンボルは、サイズｓｎ＝４のヌクレオチドＱｎ＝｛Ａ、Ｃ、Ｇ、Ｔ｝の４進セットを、４進数字セットＱ４＝｛０、１、２、３｝及び２進セットＱ２＝｛００、０１、１０、１１｝にマッピングすることによって構築された。
【０２１８】
表１では、パリティヌクレオチドは、符号化されたブロックが次の条件を満たすように、「ｘ」とマークされた位置をカバーしている。
・（ｄ０＋ｋ０＋ｋ１＋ｋ３）ｍｏｄ４＝０
・（ｄ１＋ｋ０＋ｋ２＋ｋ３）ｍｏｄ４＝０
・（ｄ２＋ｋ１＋ｋ２＋ｋ３）ｍｏｄ４＝０
・（ｄ０＋ｄ１＋ｋ０＋ｄ２＋ｋ１＋ｋ２＋ｋ３）ｍｏｄ４＝０（Ｈａｍ［８，４］に含まれる）
【０２１９】
パリティヌクレオチドの値は、次のように計算された。
・ｄ０＝（−ｋ０−ｋ１−ｋ３）ｍｏｄ４
・ｄ１＝（−ｋ０−ｋ２−ｋ３）ｍｏｄ４
・ｄ２＝（−ｋ１−ｋ２−ｋ３）ｍｏｄ４
・ｄ３＝（ｄ０＋ｄ１＋ｋ０＋ｄ２＋ｋ１＋ｋ２＋ｋ３）ｍｏｄ４（Ｈａｍ［８，４］に含まれる）
【０２２０】
ライブラリＳｓ内のＨａｍ［７，４］シンボルのセットの大きさは、ｓｓ＝４４＝２５６である。Ｓｓ（ＳＤＮＡは全体を通してＳｓ）の各シンボルは、ｄ＝３ｂ（ｂは塩基またはヌクレオチド）の最小相互距離で区切られている。ＳｓのＨａｍ［７，４］シンボルの完全なセットを表２に示す。
【０２２１】
シンボルの最終セットは、符号語アセンブリ時にＧＣリッチでホモポリマーのサブ領域を回避するために、生化学的制約のある２５６個のＨａｍ［７，４］シンボルの候補セットをフィルタリングすることによって取得された。以下の制約により、符号語内の４ｂを超えるホモポリマー部分配列が排除された。
内部ホモポリマー≧４ｂ
５’末端ホモポリマー≧３ｂ
３’末端ホモポリマー≧２ｂ
ＡＴ及びＧＣ含有量≧６ｂ
５’または３’末端の３ｂＧＣ
≧５ｂの内部ＧＣ配列
【０２２２】
これらの制約により、ガロア体ＧＦ（２７）の１２８個の要素をカバーするのに十分な１３３個の候補シンボルを残して、１２３個のシンボル配列がフィルタリングされた。５つのシンボルは生化学的フィルタリングを通過したが、必要とされず廃棄された。
【０２２３】
リードソロモン符号語アセンブリＲＳ［９，５］−Ｈａｍ［７，４］
表２及び図３３は、リードソロモン符号語ｃ（ｘ）がどのように構築されたかを示す。符号語は、１２８個のＨａｍ［７，４］ブロックのセットを、ガロア体ＧＦ（２ｍ）＝ＧＦ（２７）＝ＧＦ（１２８）上の次数ｍ＝７の１２８個のシンボルのセットにマッピングすることによって組み立てられた。ＧＦ（１２８）のシンボルは、既約多項式ｐ（ｘ）＝ｘ７＋ｘ＋１＝１０００００１１２＝１３１１０を使用して生成され、最初の要素をａ０＝０ｘｍ−１＋０ｘｍ−２＋．．．＋１ｘ＋０＝ｘに設定し、ａを再帰的に乗算する。要素値は、ガロア体理論に従ってｐ（ｘ）によって生成された各要素多項式のバイナリｍタプルベクトル係数として取得され、ＧＦ（１２８）記号｛ａ−∞，ａ０，ａ１，．．．，ａ１２６｝で標識化された。ＧＦ（１２８）要素とＨａｍ［７，４］ＤＮＡ符号化ブロックとのフルセットを表２に示す。
【０２２４】
使用されたリードソロモン符号語の完全な仕様は、ＲＳ［ｎ，ｋ］２ｔであった。ただし、
・ｎ＝符号語内のＨａｍ［７，４］シンボルの数＝９
・ｋ＝符号語内のメッセージシンボルの数＝５
・ｎ−ｋ＝パリティチェックシンボルの数＝４
・ｔ＝（ｎ−ｋ）／２＝順方向誤り検出及び誤り訂正機能＝２シンボル
・ｎｉ＝各シンボルのヌクレオチド数＝７
【０２２５】
ＲＳ［９，５］符号語ｃ（ｘ）には、５つのメッセージシンボルｍ（ｘ）と４つのパリティチェックシンボルｄ（ｘ）とが含まれていた。この設計により、ｗ＝ｓＧＦｋ＝１２８５＞３４０億の一意の符号語の符号語空間が可能になった。パリティチェック情報ｄ（ｘ）は、リードソロモン理論に従って式Ｓ１から取得された。
【数１】
2021534519.tif 000003
【０２２６】
ＲＳ［９，５］−Ｈａｍ［７，４］符号化システムの密度は０．６３ビットｂ−１であり、理論上の最大値である２ビットｂ−１を大幅に下回っているが、この設計により、２ｔ＝４、ｔ＝２のシンボル誤り、または１４ヌクレオチド以下のバーストエラーを検出して修正することができた。短い断片長の配列ではＯＮ技術の誤り率が比較的高いため、このレベルの冗長性が必要とされた（図３４を参照）。
【０２２７】
実験で使用した断片の配列と設計仕様とを表６に示す。
【０２２８】
表１  Ｈａｍ［７，４］符号化システム
この表では、ｋ０−３はデータビット、ｄ０−２はパリティビットである。「ｘ」は、パリティヌクレオチドがカバーする位置を示す。
【表１】
2021534519.tif 000004
表2  Ｈａｍ（７，４）ＤＮＡシンボルにマップされたＧＦ（１２８）要素のアルファベットセット
【表２Ａ】
2021534519.tif 000005
【表２Ｂ】
2021534519.tif 000006
【０２２９】
復号ステップ
ＤＮＡ断片の復号
ＯＮ技術の比較的高い誤り率は、信頼できる復号化のために十分な冗長性を必要とした。例えば、開発したＲＳ［９，５］−Ｈａｍ［７，４］システムの密度は、０．６３ビットｂ−１（ｂは塩基またはヌクレオチド）であり、最大の２ビットｂ−１よりも大幅に低くなっている。ＤＮＡ配列決定の誤りの分析を図３５に示す。全てのＲＳ［９，５］−Ｈａｍ［７，４］レコード（ｎ＝２４，４８７）及びＨａｍ［８，４］レコード（ｎ＝１６，３９６）で、予想される合計誤り率はＥ（ｘ）±ＳＤ（ｘ）＝７．５３±５．５６ｂ〜７．５±５．５％（長さで加重）であった。読み取りの５．１％でのみ、いずれのタイプＰ（ｘ＝０）の誤りも検出されなかった。問い合わせ断片の長さは、それぞれ２２ｂのフォワード及びリバースプライマ部位を含めて、９２〜１０７ｂであった。
【０２３０】
塩基ミスマッチの期待誤差は、Ｅ（ｘ）±ＳＤ（ｘ）＝０．８０±０．９７ｂ＝０．７９±０．９６％であった。予想されるギャップオープン及びギャップ拡張誤差は、それぞれ４．３４±３．６０＝４．２９±３．５６％及び３．５３±３．８４＝３．５０±３．８０％であった。これらの分析には、１％の寄与があると考えられるオリゴヌクレオチド合成化誤差は含まれていない。
【０２３１】
ＲＳ［９，５］−Ｈａｍ［７，４］断片の復号
ＯＮ技術の誤り率が比較的高いため、開発された復号システムは、ＲＳ復号、局所的シンボル配列アラインメント、及び完全断片長配列アラインメントの組み合わせを使用した。シンボル局所的配列アラインメントは、符号語部分配列の類似度を、符号語の構築に使用されるセットシンボル配列（表２のＳＤＮＡ）と比較する。完全な断片長の配列アラインメントは、サンプル内の以前に復号された符号語のセット、または符号語配列のデータベースのいずれかに対して、符号語の類似度を比較する。全ての場合において、局所的配列アラインメントのためのスミス−ウォーターマンアルゴリズムが、ソフトウェアパッケージＢｉｏＰｙｔｈｏｎ２２から使用された１。
【０２３２】
ここで説明するステップを図３４及び図３５に示す。図３５のステップＡ〜Ｃは、最初にサンプル内の全ての問い合わせ配列に対して実行され、ステップＤは、Ａ〜Ｃで正常に復号された配列のセットに対して実行され、ステップＥは、断片のデータベースに対して実行されることに留意されたい。
【０２３３】
Ａ．  プライマトリミング
ＤＮＡ符号語は、問い合わせ配列のフォワード及びリバースプライマ部位の上流及び下流のヌクレオチドをトリミングすることによって分離した。プライマ部位配列は、符号語に直接隣接するｎ＝７のプライマ部位ヌクレオチドを文字列検索することによって識別した。一致するものが見つからなかった場合は、相補鎖の対応するｎ＝７のフォワード及びリバースプライマ部位ヌクレオチドを使用して検索を再実行した。プライマ部位が検出されなかった場合、問い合わせ配列は、それに関係なく、ステップＢに転送された。
【０２３４】
Ｂ．  左側のリードソロモン（ＬＨＳ  ＲＳ）復号
ＬＨＳ  ＲＳ復号は、図３５に示すように、断片の５’末端（左）から長さｎｉ＝７シンボルヌクレオチド（つまり、Ｈａｍ［７，４］）のスライディングウィンドウを使用して実行した。問い合わせ配列のＲＨＳで誤りの密度が高い場合、ＬＨＳ  ＲＳ復号は、ＲＨＳ  ＲＳ復号よりも成功する可能性が高い。
【０２３５】
以下のステップは、問い合わせ配列内のシンボル部分配列を復号するために行い、図３５に示される。
ｉ．最初に、各問い合わせ配列の一致スコアｆを０に初期化した。
ｉｉ．スライディングウィンドウでハミング符号語が誤りなしで検出された場合（Ｅ＝０）、スコアはｆ＝ｆｐ＋７ｐｍに従って更新された。ここで、ｆｐは以前のスコアであり、ｐｍは塩基対一致アラインメントパラメータである。
ｉｉｉ．ウィンドウサブストリングの距離が、有効なハミングシンボルからｄｈ＝１の場合（０＜Ｅ＜（ｎｉ−ｋｉ）／２）、シンボルは修復され、スコアはｆ＝ｆｐ＋６ｐｍで更新された。ここでｆｐは以前のスコアである。両方の場合（ｉ、ｉｉ）で、スライディングウィンドウはその後、ｎｉ＝７ｂだけ前方に移動した。
ｉｖ．ウィンドウ部分文字列の距離が有効なハミングシンボルからｄｈ＝２（（ｎｉ−ｋｉ）／２＜Ｅ＜（ｎｉ−ｋｉ）／２＋１）の場合、ウィンドウは１（ｎｉ＝８）だけ拡張され、全てのＨａｍ［７，４］シンボルのアルファベットに対する局所的配列アラインメントは、以下に指定されたアラインメントパラメータ（ｖｉ）を使用して行った。アラインメントスコアが＞５ｐｍの場合、スコアはｆ＝ｆｐ＋５ｐｍで更新された。次に、スライディングウィンドウがｉ＋１だけ前方に移動した。ここで、ｉは最後に一致したヌクレオチドのインデックスであり、そのサイズはリセットした。
ｖ．一致するものが見つからなかった場合には、スライディングウィンドウを２ｂだけ前方に移動させ、ステップ（ｉ〜ｉｖ）を繰り返した。
ｖｉ．使用したアラインメントパラメータは、ｐｍ（塩基対の一致）＝５．０、ｐｍｍ（塩基対の不一致）＝−４．５、ｐｇｏ（ギャップオープン）＝−２．５、ｐｇｅ（ギャップ拡張）＝−２．０であった。（ｎｉ−ｋｉ）／２が非整数値の場合、最も近い整数に切り捨てられることに留意されたい。
【０２３６】
上記の（ｉ〜ｖ）で見つかった問い合わせシンボルの文字列から符号語を復号するために、以下のステップを実行した。
ｉ．検出されたシンボルの数がｎ−（ｄ／２）＝７未満の場合、問い合わせ符号語はＲＳ復号可能ではなく、Ｄに転送された。
ｉｉ．７つのシンボルが検出された場合、問い合わせ符号語がｎ＝９シンボルの長さになるように、２つの消去シンボルが追加された。ｎ−９問い合わせ符号語は、表２のＧＦ（１２８）要素フィールドに従って整数多項式に変換され、誤りを修復するためにＲＳ復号が行われた。
ｉｉｉ．８つのシンボルが検出された場合、問い合わせ符号語がｎ＝９シンボルの長さになるように、１つの消去シンボルが追加された。ｎ−９問い合わせ符号語は、表２のＧＦ（１２８）要素フィールドに従って整数多項式に変換され、誤りを修復するためにＲＳ復号が行われた。
ｉｖ．次に、パリティチェックを実行して、符号語が有効なリードソロモン多項式であることを確認した。
ｖ．問い合わせ配列を補完するためにステップ（ｉ〜ｉｖ）を繰り返し、２つのスコアのうち最大のスコアを持つ配列を保持した。
ｖｉ．有効なリードソロモン多項式が見つからなかった場合、問い合わせ配列はＣに転送された。
【０２３７】
Ｃ．  右側のリードソロモン（ＲＨＳ  ＲＳ）復号
ＲＨＳ  ＲＳ復号のステップは、ＬＨＳ  ＲＳ復号と同様である。ＲＨＳ−ＲＳ復号では、スライディングウィンドウは問い合わせ配列の反対の末端で開始され、右から左に移動した（示すものとは反対）。そのため、最初に検出されたシンボルは、ＲＳ多項式の最後の要素となる。問い合わせ配列の３’末端（ＬＨＳ）で誤りの密度が高い場合、ＲＨＳ  ＲＳ復号は成功する可能性が高い。
ｉ．ＲＨＳ  ＲＳ復号が失敗した場合、Ｂのステップに従ってＬＨＳ  ＲＳ復号が実行された（３’→５’スライディングウィンドウに対して関連する調整が行われた）。
ｉｉ．ＬＨＳ  ＲＳ復号が失敗した場合、問い合わせ配列はＤに転送された。
【０２３８】
Ｄ．  以前に復号された（Ｂ、Ｄからの）断片に対する局所的配列アラインメント
ステップＢ及びＣで復号されなかった問い合わせ配列については、Ｂ及びＣで正常に復号された配列のプールに対して、局所的配列アラインメントを行った。
ｉ．アラインメントスコアがｆ＞０．７ｆｍａｘ（＞２２０）の場合、問い合わせ配列は受け入れられた。
ｉｉ．アラインメントスコアがｆ＜０．７ｆｍａｘ（＜２２０）の場合、問い合わせ配列はＥに転送される。
【０２３９】
使用した局所的配列アラインメントパラメータは、ｐｍ（塩基対の一致）＝５．０、ｐｍｍ（塩基対の不一致）＝−４．５、ｐｇｏ（ギャップオープン）＝−２．５、ｐｇｅ（ギャップ拡張）＝−２．０であった。局所的配列アラインメントは、ＢｉｏＰｙｔｈｏｎパッケージＰａｉｒｗｉｓｅ２２を使用して実行された。
【０２４０】
Ｅ．  データベース断片に対する局所的配列アラインメント
問い合わせ配列が、Ｂ、Ｃ、及びＤで正常に復号されなかった場合、発行された断片のデータベースに対してＤと同様に、局所的配列アラインメントが実行された。
ｉ．アラインメントスコアがｆ＞０．７ｆｍａｘ（＞２２０）の場合、問い合わせ配列は受け入れられた。
ｉｉ．アラインメントスコアがｆ＜０．７ｆｍａｘ（＜２２０）の場合、問い合わせ配列は拒否された。
【０２４１】
Ｄと同様の配列アラインメントパラメータを用いた。
【０２４２】
ＤＮＡ配列決定の誤り
図３４にナノポアＤＮＡ配列決定の誤りの分析を示す。（Ａ）塩基対の不一致、（Ｂ）ギャップオープン、（Ｃ）ギャップ拡張、及び（Ｄ）合計エラーを含む、ＲＳ［９，５］−Ｈａｍ［７，４］（ｎ＝４０，８８３問い合わせ配列）の様々なエラータイプの確率分布である。９２〜１０７ｂの符号化領域の予想誤り率の合計は、Ｅ（ｘ）±ＳＤ（ｘ）＝７．５３±５．５６ｂ〜７．５±５．５％（長さで加重）であった。読み取りの５．１％でのみ、いずれのタイプＰ（ｘ＝０）の誤りも検出されなかった。短いリード長（＜１２０ｂ）に対するＯｘｆｏｒｄ  Ｎａｎｏｐｏｒｅプラットフォームの比較的高いエラー率は、復号を成功させるのに十分な冗長性を有する符号化（＞５０％）を必要とした。 
【０２４３】
復号ステップ
図３５は、復号ステップを説明する。この図は、上記の復号ステップの図である。簡潔に、復号ステップには、（Ａ）プライマ部位のトリミング、（Ｂ）左側のリードソロモン（ＬＨＳ  ＲＳ）の復号、（Ｃ）右側のリードソロモン（ＲＨＳ  ＲＳ）の復号、（Ｄ）リードソロモン復号に成功した断片に対する局所的配列アラインメント（ＬＡ）、（Ｅ）発行された配列のデータベースに対するＬＡ、及び（Ｆ）失敗した読み取りが含まれる。ステップＢ〜Ｆは、Ｂが成功しなければＣを試行するなどの階層構造になっている。各ステップで復号された問い合わせ配列の割合を表３に示す。
【０２４４】
図３６は、特に、Ｂ（ｉ）がＨａｍ［ｎｉ，ｋｉ］またはＲＳ［ｎｉ，ｋｉ］シンボルのいずれかで構成されるＲＳ符号語を示す復号ステップをグラフィカルに説明する。復号は、サイズｎｉのスライディングウィンドウを使用して実行される。ウィンドウで検出されたエラーの数（Ｅ）が、Ｅ＝０の場合、Ｂ（ｉｉ）標準のＨａｍまたはＲＳ復号が実行される（シンボルの符号化方法によって異なる）。０≦Ｅ≦（ｎｉ−ｋｉ）／２の場合、Ｂ（ｉｉｉ）標準のＨａｍまたはＲＳ復号が実行される。（ｎｉ−ｋｉ）／２≦Ｅ≦（ｎｉ−ｋｉ）／２＋１の場合、Ｂ（ｉｖ）ＤＮＡシンボルのセットに対する局所的アラインメント（ＬＡ）ＳＤＮＡが実行される。Ｅ≦（ｎｉ−ｋｉ）／２＋１の場合、Ｂ（ｖ）スライディングウィンドウは＋１ヌクレオチドだけ前方に移動し、ステップＢ（ｉｉ）〜  Ｂ（ｖ）が繰り返される。シンボルが正常に復号されると、スライディングウィンドウはｉ＋１だけ前方に移動する。ここで、ｉは最後に一致したヌクレオチドのインデックスである。（ｎｉ−ｋｉ）／２が非整数値の場合、値は最も近い整数に切り捨てられる。ＬＨＳ復号が示されているが、これらのステップはＲＨＳ復号にも適用され、その場合テキストで説明されているようにスライディングウィンドウが右から左に移動する。
【０２４５】
分析
この節では、２４，４８７個の問い合わせ配列を含むサンプルについて、上記の復号アルゴリズムの分析を示す。図３７及び表３は、本明細書に開示される復号アルゴリズムの各ステップ（Ａ〜Ｅ）で復号される配列の総数を示す。ＲＳステップ（Ａ及びＢ）は、問い合わせ配列の合計１８．７１％を復号した。問い合わせ配列のさらに５３．９３％がステップＣで復号され、問い合わせ配列がステップＡ及びＢで正常に復号された配列と比較された。１秒あたりの配列数（配列ｓ−１）での復号効率は、ＲＳ復号（ステップＡ及びＢ）及びステップＣでそれぞれ３．４７及び５．８１配列ｓ−１であった。最後のステップＤ、配列のデータベースに対する局所的配列アラインメントは、配列の１０．５７％をさらに復号したが、復号効率は０．５３配列ｓ−１へと約１０分の１に低下した結果となった。合計すると、１６．７９％の問い合わせ配列は復号できなかった。比較のために、データベースに対する完全な断片長の局所的アラインメントのみが使用される場合、復号効率はさらに０．１４配列ｓ−１に低下する。
【０２４６】
図３７は、表４のデータをグラフで表したもので、クエリシーケンスの７２．６４％を正常に復号したステップＡ〜Ｃの復号時間は、データベースのサイズに依存していなかったことを示している。ステップＡ〜Ｅの場合、及びデータベースに対する局所的アラインメントの場合のみ、復号時間とデータベースサイズとの関係は直線的に増加した。これは、実際のアプリケーションで使用するためのスケーリングには適していない。最後に、図３８と表５とは、ステップＡ〜Ｃの復号時間がサンプルサイズに比例して変化し、平均復号効率が５．８１配列ｓ−１であることを示している。
【０２４７】
配列決定実験で使用した断片の配列と設計仕様とを表６に示す。
【０２４８】
復号結果
表３  復号アルゴリズムの各ステップで復号された問い合わせ配列の割合と復号効率。
【０２４９】
データは、各ステップで正常に復号された問い合わせ配列の数（ｎ＝２４，４８７問い合わせ配列）と、配列ｓ−１での復号効率とを示す。ステップＡ〜Ｃは、データベースのサイズとは無関係であることに留意されたい。頭字語には、左側のリードソロモン（ＬＨＳ  ＲＳ）、右側のリードソロモン（ＲＨＳ  ＲＳ）、局所的アラインメント（ＬＡ）、データベース（ＤＢ）がある。
【表３】
2021534519.tif 000007
【０２５０】
図３７は、データベースサイズに対する復号時間の分析を説明する。この図は、表３に示されているデータをグラフで表したものである。データは、データベースサイズの関数として、サンプル内の問い合わせ配列（ｎ＝２４，４８７問い合わせ配列）を復号するのにかかる時間を示している。局所的配列アラインメントによる復号は、データベースサイズに比例して変化するだけで、平均復号時間効率は０．１４配列ｓ−１であった。ステップＡ〜Ｅもまた、データベースのサイズに比例して変化したが、平均復号時間効率は０．５３配列ｓ−１であった。ステップＡ〜Ｂ及びＡ〜Ｃの復号時間は、データベースのサイズに依存せず、効率はそれぞれ３．４７配列ｓ−１及び５．８１配列ｓ−１であった。これらのデータは、ＲＳによって正常に復号された配列に対する符号語長の局所的配列アラインメントにより、復号される配列の数と復号時間の効率とが大幅に向上することを示している。データベースに対するアラインメントは直線的にスケーリングするため、実際的なアプリケーションには適していない。
【０２５１】
表４  データベースサイズに対する復号時間の分析
データは、データベースサイズの関数として、サンプル内の全ての問い合わせ配列（ｎ＝２４，４８７問い合わせ配列）を復号するのにかかる時間を示している。データベースには、実験で使用され、ランダムに生成されたＲＳ［９，５］配列でパディングされた１２個のＲｓ［９，５］配列が含まれていた。これらのデータは、局所的配列アラインメントのみの場合、及びステップＡ〜Ｅの場合、復号時間がデータベースサイズに比例して変化することを示している。復号時間は、ステップＡ〜Ｃのデータベースサイズとは無関係である。
【表４】
2021534519.tif 000008
【０２５２】
図３８は、ステップＡ〜Ｃの復号時間対サンプルサイズを説明する。これらのデータは、ステップＡ〜Ｃでは、復号時間はサンプルサイズに比例して変化し、平均復号効率は５．８１配列ｓ−１であることを示している。ステップＡ〜Ｃは問い合わせ配列の７２．６４％を取得することに留意されたい。（表５参照）
表5  ステップA〜Cの復号時間対サンプルサイズ
【表５】
2021534519.tif 000009
【０２５３】
実験で使用したＲＳ［９，５］−Ｈａｍ［７，４］配列仕様
表６  シリーズ１の実験で使用したＲＳ［９，５］−Ｈａｍ［７，４］断片の配列仕様（９ｍｍ及び０．３００口径の銃）
各タグのテンプレート鎖のみが５’→３’方向に与えられる。符号語は角括弧内に太字で示され、各Ｈａｍ［７，４］シンボルは「−」で区切られている。パリティシンボルは灰色で示される。符号語に隣接するユニバーサルプライマ部位配列はプレーンテキストである。
【表６Ａ】
2021534519.tif 000010
【表６Ｂ】
2021534519.tif 000011
【０２５４】
開示された発明の主な利点
開示された発明は、サプライチェーン情報が、製品に一体化される物理的オリゴヌクレオチドタグに格納されるとともに、不変のブロックチェーンにバックアップされる、製品の追跡及び検証のためのシステムである。開示された発明の核となる機能には、完全な途切れのないサプライチェーンカバレッジ、（成分及び製品単位のレベルでの）高解像度追跡、製品混合時のチェーン情報の自動転送（各トランザクションを認証する必要がない）、直前正規ノードを遡及する機能、偽造からの保護、及び製品認証が含まれる。
【０２５５】
完全なサプライチェーンカバレッジ。ブロックチェーン技術と組み合わせた製品一体型ストレージメディアとしてのオリゴヌクレオチド断片の利用は、以前の追跡システムに比べていくつかの明らかな利点を提供する。まず第一に、符号化されたオリゴヌクレオチド断片を製品に組み込むと、物理的な製品と仮想ブロックチェーンに保存されたデータとの間に不変のリンクが作成される。これは、セキュリティの段階的変化を表す。これまでのブロックチェーンベースのアプローチは全て、物理的な商品の受け渡しを代理するだけの包装技術を使用していた。第二に、オリゴヌクレオチドタグが混合時に自動的に転送されるという特性は、あるノードで追加されたタグをサプライチェーンの下流の全てのノードまで追跡できることを意味する。以前のシステムでは、サプライチェーン内の各トランザクションを認証する必要があり、実行にはより多くの労力が必要とされる。第三に、製品のオリゴヌクレオチドタグから計算された一意のノードハッシュをブロックチェーン技術と組み合わせて使用することにより、追加情報を製品のタグに直接追加できるようになる。第四に、オリゴヌクレオチドマーカが製品に組み込まれているため、遡及機能またはチェーン修復を、未包装製品（例えば、エンドユーザまたは消費者によって変更された製品）に対して実行することができる。最後に、完全なサプライチェーンカバレッジの提供は、認証スキームにとって利点となる可能性がある。例えば、フェアトレード、サステイナブル、またはコーシャ／ハラールとして検証された食材は、最終製品のみから認定された生産者にたどり着くことができる。
【０２５６】
偽造防止とセキュリティ。開示された発明は、製品の成分、完成品、包装、及び分散された不変のブロックチェーンに格納された製品データの間に破られないリンクを作成するので、偽造の可能性を実質的に排除する。これにより、例えば、（１）完成品の包装の時点から上流で切断または交換された偽造品、（２）偽の包装材料に包装された偽造品、（３）リサイクルされた合法的な包装材料に包装された偽造品、（４）正規品と取り替えられた委託販売品に交換される偽造品、（５）古く、誤った有効期限情報が再スタンプされた偽造品の検出が可能になる。
【０２５７】
高解像度の追跡機能（包装ではなく製品）。開示された発明は、製品成分の追跡を、個々の製品単位（例えば、錠剤、乳児用調乳、ブレンドされた大麻製品など）の分解能まで可能にし、単なる包装容器または包装容器の委託ではない。現在のサプライチェーン監視技術では、サプライチェーンの各ノードで商品のトランザクションを認証する必要があり、そうでなければ、管理ができなくなる。これは、製品単位または包装製品の解決では実現できないため、ノード認証は委託レベルで実行され、システムのセキュリティが損なわれる。例えば、サプライチェーンの各ノードで、１０，０００個のパッケージの委託品に含まれる個々の錠剤または医薬品のパッケージをスキャンすることはできない。開示された技術によれば、所望に応じて、包装されていない各錠剤からサプライチェーン情報を回収することができる。
【０２５８】
不正／漏洩ノードの識別。偽造品または規格外品が検出された場合、開示された技術は、包装されていない製品だけから、サプライチェーン内の最後の正当なノードへの遡及機能を提供する。これらの機能により、漏洩または不正なノードを検出できるため、ターゲットを絞った行動を取ることができる。例えば、製品の誤用（例えば、違法薬物の前駆体を違法に使用した製品）、希釈による偽造（例えば、安価な添加剤でカットされた医薬品）、または不正市場への販売（並行輸入）の時点を検出することができる。
【０２５９】
リコールされた製品。開示された技術によれば、包装されていない最終製品だけからサプライチェーン情報を回収することができる。この機能により、標準以下の製品がサプライチェーンに入るノードを検出できるようになる。また、ブランドを標準以下の製品や偽造品から分離するための迅速かつ確実な検査も提供する。
【０２６０】
開示された技術の実際の使用例
パーム油。パーム油は、食品、化粧品、洗浄剤、医薬品など幅広い製品に使用されている。パーム油の生産は、森林破壊、生物多様性の損失、劣悪な労働条件にも関係している。開示された技術は、パーム油の起源を最終製品のみから持続可能な認証を受けた製造業者にまでさかのぼることができるように、既存の認証スキーム（ＲＳＰＯなど）と統合することができる。
【０２６１】
製薬。偽造医薬品が原因で１００万人の死亡者を出しており、業界は毎年１０００億ドルの損害を被っている。オンライン薬局の台頭に伴い、医薬品偽造事件が増加している。さらに、多くの発展途上国や移行経済圏では、医薬品は包装されていない個別の錠剤や用量で販売されている。個々の錠剤だけからサプライチェーン情報を回復する能力は、偽造医薬品の莫大な人的及び経済的コストに対処できる可能性がある。
【０２６２】
大麻製品。化粧品や薬用大麻業界は、バックヤードやレクリエーション用の栽培者からの偽造にさらされている。偽造品は、大麻（ＴＨＣ、ＣＢＤ）に含まれる活性化合物の含有量が、異なる条件で栽培された植物や、異なる植物の株間で大きく異なる可能性があるため、深刻な懸念がある。厳格な品質管理を受けていない偽物の医薬品は、治療効果の低いレベルのカンナビノイドを含んでおり、治療効果を欠いている可能性がある。さらに、米国などの一部の国では、税務上の目的で、製品を州の境界内で栽培、製造、及び販売する必要がある。製品が州の境界を越えやすいことは、税収で数十億ドルの損失をもたらす可能性がある。開示された発明は、「プラントから製品」まで材料を追跡する手段を提供し、製造／サプライチェーンに沿った様々な混合及び品質管理ステップをマークする。この情報は、包装されていない最終製品だけから回収できるため、上記で強調した問題に対処することができる。
【０２６３】
不正薬物の前駆体（例えばメタンフェタミン）。開示された技術は、誤用された製品の生産物流管理を遡及するために使用される場合がある。例えば、メタンフェタミンなどの不正薬物の製造の前駆体として使用される合法的な成分は、薬物サンプルのみからサプライチェーンの最後の合法的なノードまでたどることができる。この機能は、サプライチェーン内の不正なノードやリークしているノードを特定し、麻薬ネットワークの運用方法に関する情報を収集するのに役立つ場合がある。
【０２６４】
コーシャ及びハラール。コーシャ及びハラール製品は最終製品だけでは識別できない（コーシャ及びハラールでは検査がない）。開示された技術は、コーシャ及びハラールの認証を受けた生産者からの製品を検証及び追跡するために使用することができ、それによって、業界内に蔓延している偽造問題に対処することができる。
【０２６５】
乳製品。偽造乳製品はアジア市場で頻繁に検出されており、２００８年以来５万人以上の乳児がメラミン中毒で入院する結果となっている。乳製品だけから、全てのサプライチェーン情報を回収し、検証する能力は、この問題に対処できる可能性がある。
【０２６６】
弾薬。最近の銃器技術の進歩は、違法な武器や弾薬の移動を検出するという、すでに困難な作業を悪化させている。２０１２年には、世界の非紛争型殺人事件の４１％が銃器によるもので、そのうち約５７％が未解決のままになっている。２０１６年、オバマ大統領とアメリカ医師会は、銃による暴力を公衆衛生上の懸念事項であると宣言し、米国経済には毎年２２９０億ドルの費用がかかると推定されており、これは、肥満症に対する費用をさらに上回っている。また、モジュラー銃、ポリマー銃、３Ｄプリント銃の出現は、銃器の追跡と登録に新たな課題をもたらしている。オリゴヌクレオチドでタグ付けされた弾薬を銃弾の進入創に標識し、追跡する能力は、以前に実証されている。開示された技術革新は、標識された弾薬を介して犯罪を追跡して追跡する方法を提供する。
【０２６７】
その他のアプリケーション。開示された技術は、ワイン、化粧品、宝石、化学薬品、肥料、紙幣、カジノチップ、及び高級品を含むが、これらに限定されない、他の多くの製品を追跡して追跡するために使用することができる。
【０２６８】
本開示の広範な一般的範囲から逸脱することなく、多数の変形及び／または修正が、上記の実施形態に行われ得ることは、当業者には理解されよう。したがって、本実施形態は、全ての点で例示的であり、限定的ではないと見なされるべきである。
【図１】
2021534519.tif 000012
【図２】
2021534519.tif 000013
【図３ａ】
2021534519.tif 000014
【図３ｂ】
2021534519.tif 000015
【図４】
2021534519.tif 000016
【図５】
2021534519.tif 000017
【図６】
2021534519.tif 000018
【図７】
2021534519.tif 000019
【図８】
2021534519.tif 000020
【図９】
2021534519.tif 000021
【図１０】
2021534519.tif 000022
【図１１】
2021534519.tif 000023
【図１２】
2021534519.tif 000024
【図１３】
2021534519.tif 000025
【図１４】
2021534519.tif 000026
【図１５】
2021534519.tif 000027
【図１６】
2021534519.tif 000028
【図１７】
2021534519.tif 000029
【図１８】
2021534519.tif 000030
【図１９】
2021534519.tif 000031
【図２０】
2021534519.tif 000032
【図２１】
2021534519.tif 000033
【図２２】
2021534519.tif 000034
【図２３】
2021534519.tif 000035
【図２４】
2021534519.tif 000036
【図２５】
2021534519.tif 000037
【図２６】
2021534519.tif 000038
【図２７】
2021534519.tif 000039
【図２８】
2021534519.tif 000040
【図２９】
2021534519.tif 000041
【図３０ａ】
2021534519.tif 000042
【図３０ｂ】
2021534519.tif 000043
【図３０ｃ】
2021534519.tif 000044
【図３１】
2021534519.tif 000045
【図３２】
2021534519.tif 000046
【図３３】
2021534519.tif 000047
【図３４】
2021534519.tif 000048
【図３５】
2021534519.tif 000049
【図３６】
2021534519.tif 000050
【図３７】
2021534519.tif 000051
【図３８】
2021534519.tif 000052
【国際調査報告】
2021534519.tif 000053
2021534519.tif 000054
2021534519.tif 000055