<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Terms on tumf合同会社</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/</link><description>Recent content in Terms on tumf合同会社</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><copyright>Copyright © tumf LLC.</copyright><lastBuildDate>Mon, 17 Feb 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://778172da.llc-tumf-jp.pages.dev/terms/index.xml" rel="self" type="application/rss+xml"/><item><title>Skiaとは？Googleが開発した高性能2Dグラフィックスエンジンの特徴と活用例</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/skia/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/skia/</guid><description>&lt;p>**Skia（スキア）**は、Google が開発・保守している高性能な 2D グラフィックスライブラリです。Google Chrome、Android OS、&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a> などの主要プロダクトで採用され、数十億台のデバイスで日々使用されている実績のあるグラフィックスエンジンです。&lt;/p>
&lt;h2 id="skiaとは">Skiaとは&lt;/h2>
&lt;p>Skiaは、ベクターグラフィックス、ビットマップ、テキスト、画像処理などを統一的に扱える2Dグラフィックスライブラリです。C++で実装されており、複数のプラットフォームで一貫した高品質なレンダリングを実現します。&lt;/p>
&lt;p>もともとはSkia社が開発していましたが、2005年にGoogleが買収し、現在はオープンソースプロジェクトとして公開されています。&lt;/p>
&lt;h2 id="主な特徴">主な特徴&lt;/h2>
&lt;h3 id="1-クロスプラットフォーム対応">1. クロスプラットフォーム対応&lt;/h3>
&lt;p>Skiaは以下のプラットフォームで動作します：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>モバイル&lt;/strong>: Android、iOS&lt;/li>
&lt;li>&lt;strong>デスクトップ&lt;/strong>: Windows、macOS、Linux&lt;/li>
&lt;li>&lt;strong>Web&lt;/strong>: WebAssembly（CanvasKit）&lt;/li>
&lt;li>&lt;strong>組み込み&lt;/strong>: Raspberry Pi などの組み込みシステム&lt;/li>
&lt;/ul>
&lt;p>同じコードで異なるプラットフォームでも一貫したレンダリング結果が得られるため、&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a>のようなクロスプラットフォームフレームワークで重宝されています。&lt;/p>
&lt;h3 id="2-ハードウェアアクセラレーション">2. ハードウェアアクセラレーション&lt;/h3>
&lt;p>Skiaは複数のレンダリングバックエンドをサポートしています：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>GPU&lt;/strong>: OpenGL、Vulkan、Metal、Direct3D&lt;/li>
&lt;li>&lt;strong>CPU&lt;/strong>: ソフトウェアレンダリング（Raster）&lt;/li>
&lt;/ul>
&lt;p>用途やプラットフォームに応じて最適なバックエンドを自動選択し、高速なグラフィックス描画を実現します。&lt;/p>
&lt;h3 id="3-豊富な描画機能">3. 豊富な描画機能&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>パスとシェイプ&lt;/strong>: ベクターグラフィックス、曲線、多角形&lt;/li>
&lt;li>&lt;strong>テキストレンダリング&lt;/strong>: 高品質なフォント描画、カーニング、リガチャ&lt;/li>
&lt;li>&lt;strong>画像処理&lt;/strong>: フィルタ効果、ブレンドモード、変形&lt;/li>
&lt;li>&lt;strong>アニメーション&lt;/strong>: スムーズな60fps/120fpsレンダリング&lt;/li>
&lt;/ul>
&lt;h3 id="4-軽量かつ高速">4. 軽量かつ高速&lt;/h3>
&lt;p>Skiaのコア部分は非常にコンパクトで、モバイルデバイスでも効率的に動作します。また、継続的なパフォーマンス最適化により、低スペックデバイスでも高速なレンダリングが可能です。&lt;/p>
&lt;h2 id="skiaの主な活用例">Skiaの主な活用例&lt;/h2>
&lt;h3 id="google-chrome">Google Chrome&lt;/h3>
&lt;p>Chromeブラウザの2Dグラフィックス（Canvas API、テキストレンダリング、UI描画など）はSkiaによって実装されています。&lt;/p>
&lt;h3 id="android-os">Android OS&lt;/h3>
&lt;p>Android 3.0（Honeycomb）以降、AndroidのUIレンダリングシステムにSkiaが採用されています。アプリのUIやシステムUIの描画に使用されます。&lt;/p>
&lt;h3 id="flutter">Flutter&lt;/h3>
&lt;p>&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a>フレームワークは、Skiaをレンダリングエンジンとして採用しています。これにより、iOS、Android、Web、デスクトップで一貫したUIを実現しています。&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a>の高速でスムーズなUIはSkiaの性能によるものです。&lt;/p>
&lt;h3 id="その他のプロダクト">その他のプロダクト&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Mozilla Firefox&lt;/strong>: 一部のグラフィックス機能でSkiaを使用&lt;/li>
&lt;li>&lt;strong>Chrome OS&lt;/strong>: システムUI全体でSkiaを活用&lt;/li>
&lt;li>&lt;strong>Androidアプリ&lt;/strong>: Canvas APIを使用する多くのアプリがSkiaを利用&lt;/li>
&lt;/ul>
&lt;h2 id="skiaとflutterの関係">SkiaとFlutterの関係&lt;/h2>
&lt;p>&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a>は、Skiaをグラフィックスエンジンの中核として採用しています。&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a>のウィジェットはすべてSkiaのキャンバス上に描画され、60fps以上の滑らかなアニメーションを実現しています。&lt;/p>
&lt;p>&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a>とSkiaの組み合わせにより、以下のメリットが得られます：&lt;/p></description></item><item><title>ソフトウェアエンジニアリングサービス（SES）</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/ses/</link><pubDate>Mon, 06 May 2024 00:00:00 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/ses/</guid><description>&lt;p>ソフトウェアエンジニアリングサービス（SES）は、特定の技術や専門知識を必要とするITプロジェクトや業務に対して、専門的なサポートやサービスを提供します。このサービスでは、外部の専門家がクライアントのチームに一時的に参加し、開発、運用、保守などのタスクに取り組むことが一般的です。SESは特に内部リソースや専門知識が不足している場合に有効であり、柔軟かつ専門的な対応が求められる状況で利用されます。&lt;/p>
&lt;p>報酬は専門家の労働時間に基づき、プロジェクトの進捗に応じて調整が可能ですが、成果物の責任は主にクライアント側に依存します。また、プロジェクトの規模が拡大すると予想外のコストが発生する可能性もあります。専門家がクライアントの事務所やプロジェクトサイトに常駐することは一般的ですが、SESの契約形態はプロジェクトやクライアントのニーズに応じて柔軟に設定され、リモートワークや部分的な常駐といった形態も選択できます。&lt;/p>
&lt;p>一方、&lt;a href="https://778172da.llc-tumf-jp.pages.dev/services/foundry">受託開発(SFS)&lt;/a>は、クライアントが外部の開発会社にプロジェクト全体を依頼し、特定の成果物の納品を求める契約形態です。この場合、報酬はプロジェクト途中および完了時に成果物に基づいて支払われます。
これにより、顧客はリスクを分散し、開発プロセスの各段階での資金流動を確保することができます。&lt;/p>
&lt;div class="self-ad">
tumf合同会社では、SESによる人材の提供は行なっておりません。
確かな成果を得るたいなら受託開発をおすすめします。
&lt;ul class="followup-links">
&lt;li>
&lt;i class="fa-solid fa-circle-arrow-right">&lt;/i>
&lt;a href="https://778172da.llc-tumf-jp.pages.dev/services/foundry"
> ソフトウェア・ファウンドリ・サービス(受託開発) &lt;/a
>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title>Next.js</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/nextjs/</link><pubDate>Tue, 30 Apr 2024 14:37:49 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/nextjs/</guid><description>&lt;p>Next.jsは、Reactを基盤にしたフルスタックのJavaScriptフレームワークです[1] [4]. 2016年にVercel社からリリースされ、現在最も人気のあるReactベースのフレームワークの1つとなっています[1] [4]. Next.jsは、Reactの機能をサーバーサイドに拡張する存在であり、サーバーサイドレンダリング、ルーティング、コード分割、プリレンダリング、APIサポートなどの機能を提供します[1] [5]. これらの機能により、高性能ウェブサイトの構築を支援し、SEOやパフォーマンスの面で優れています[1] [5].&lt;/p>
&lt;h3 id="nextjsの特徴">Next.jsの特徴&lt;/h3>
&lt;ul>
&lt;li>サーバーサイドレンダリング(SSR)をサポートし、パフォーマンスの改善やSEOの向上に貢献[1] [5]&lt;/li>
&lt;li>ルーティング機能により、バックエンドとフロントエンドのコードを同じコードベースで記述可能[1]&lt;/li>
&lt;li>コード分割やプリレンダリング機能により、ウェブサイトのパフォーマンスを向上[1]&lt;/li>
&lt;li>APIサポートにより、バックエンドアプリケーション全体をコーディングせずに環境変数を秘密にできる[1]&lt;/li>
&lt;li>ハイブリッドレンダリングをサポートし、SSR、静的サイトジェネレータ(SSG)、クライアントサイドレンダリング(CSR)を自由に使うことができる[5]&lt;/li>
&lt;/ul>
&lt;h3 id="nextjsの基本操作">Next.jsの基本操作&lt;/h3>
&lt;ul>
&lt;li>Next.jsを使用するためには、Node.js（npm）を事前にインストールする必要があります[2]&lt;/li>
&lt;li>Next.jsでは、PagesディレクトリにJavaScriptファイルを生成するだけで、自動的にルーティングされてページにアクセスできるようになります[2]&lt;/li>
&lt;li>Next.js13からは、Server ComponentsやDynamic Routesの設定など、新しい機能が追加されています[3]&lt;/li>
&lt;/ul>
&lt;h3 id="nextjsのメリット">Next.jsのメリット&lt;/h3>
&lt;ul>
&lt;li>SEOやパフォーマンスの面で優れているため、高性能ウェブサイトの構築を支援[1] [5]&lt;/li>
&lt;li>フルスタックフレームワークであるため、アプリケーション全体の開発をサポート[1] [4]&lt;/li>
&lt;li>サーバーサイドレンダリングを簡単に実現できるため、UXの向上を実現[5]&lt;/li>
&lt;/ul>
&lt;h3 id="nextjsのデメリット">Next.jsのデメリット&lt;/h3>
&lt;ul>
&lt;li>学習曲線が高く、初心者には取り組みづらい場合がある[2]&lt;/li>
&lt;li>大量の機能を提供しているため、プロジェクトの規模によっては、不要な機能が含まれる場合がある[1]&lt;/li>
&lt;/ul>
&lt;h3 id="nextjsの将来">Next.jsの将来&lt;/h3>
&lt;ul>
&lt;li>現在最も人気のあるReactベースのフレームワークの1つであり、将来的にさらに需要が高まる予測[4]&lt;/li>
&lt;li>フロントエンド開発としてNext.jsを採用する企業は多く、さまざまな案件の獲得が見込めます[4]&lt;/li>
&lt;/ul>
&lt;p>以上、Next.jsは、Reactを基盤にしたフルスタックのJavaScriptフレームワークであり、高性能ウェブサイトの構築を支援するための多くの機能を提供しています。Next.jsの特徴や基本操作、メリット・デメリットについて理解することで、ウェブ開発のニーズに対応することができます。&lt;/p>
&lt;div class="self-ad">
tumf合同会社では、Next. JSによるWebフロントエンドの開発依頼を承っております。
&lt;ul class="followup-links">
&lt;li>
&lt;i class="fa-solid fa-circle-arrow-right">&lt;/i>
&lt;a href="https://778172da.llc-tumf-jp.pages.dev/services/foundry"
> ソフトウェア・ファウンドリ・サービス(受託開発) &lt;/a
>
&lt;/li>
&lt;/ul>
&lt;/div>
&lt;p>Citations:
[1] &lt;a href="https://kinsta.com/jp/blog/nextjs-vs-react/">https://kinsta.com/jp/blog/nextjs-vs-react/&lt;/a>
[2] &lt;a href="https://udemy.benesse.co.jp/development/app/what-is-next-js.html">https://udemy.benesse.co.jp/development/app/what-is-next-js.html&lt;/a>
[3] &lt;a href="https://reffect.co.jp/react/next-js-13">https://reffect.co.jp/react/next-js-13&lt;/a>
[4] &lt;a href="https://remoters.work/column/next-js/">https://remoters.work/column/next-js/&lt;/a>
[5] &lt;a href="https://depart-inc.com/blog/next-js/">https://depart-inc.com/blog/next-js/&lt;/a>&lt;/p></description></item><item><title>OAuth2.0</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/oauth20/</link><pubDate>Tue, 30 Apr 2024 14:37:49 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/oauth20/</guid><description>&lt;p>RFC 6749は、&amp;ldquo;OAuth 2.0認可フレームワーク&amp;quot;について定義しています。ここでは、OAuth 2.0の重要な概念や仕組みを簡単に説明します。&lt;/p>
&lt;p>OAuth 2.0は、インターネット上でユーザーのリソースへのアクセス許可を安全に委任するためのオープンスタンダードです。サービス間でユーザー情報の共有が必要な場合、そのユーザーのパスワードを渡す代わりに、ユーザーの同意に基づきアクセス権限を委任できます。例えば、ソーシャルメディアサイトがユーザーの代わりにメールサービスにアクセスして連絡先を取得する、というシナリオが考えられます。&lt;/p>
&lt;p>主な要素は以下のとおりです：&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>リソースオーナー(Resource Owner)&lt;/strong>:
リソース（データ）の所有者であり、通常はエンドユーザーです。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>クライアント(Client)&lt;/strong>:
リソースオーナーの代わりにリソースサーバーへのアクセスを要求するアプリケーションです。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>認可サーバー(Authorization Server)&lt;/strong>:
クライアントにアクセストークンを発行し、認可を行うサーバーです。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>リソースサーバー(Resource Server)&lt;/strong>:
クライアントがアクセスを求めるリソースを持っているサーバーです。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>アクセストークン(Access Token)&lt;/strong>:
認可サーバーがクライアントに発行する、リソースへのアクセスを許可するためのトークンです。&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>主なフローは以下のようになります：&lt;/p>
&lt;ol>
&lt;li>クライアントがリソースオーナーからリソースへのアクセス許可を要求します。&lt;/li>
&lt;li>リソースオーナーがこのリクエストを承認します。&lt;/li>
&lt;li>クライアントがリソースオーナーの承認を認可サーバーに提出し、アクセストークンを要求します。&lt;/li>
&lt;li>認可サーバーがクライアントにアクセストークンを発行します。&lt;/li>
&lt;li>クライアントはこのアクセストークンを使用してリソースサーバーにアクセスします。&lt;/li>
&lt;/ol>
&lt;p>OAuth 2.0は、認可コードフロー、インプリシットフロー、パスワードクレデンシャルフロー、クライアントクレデンシャルフローなど、さまざまな認証フローをサポートしており、使うシーンによって適切なフローを選択します。&lt;/p></description></item><item><title>Flutter</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/flutter/</link><pubDate>Tue, 30 Apr 2024 11:03:26 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/flutter/</guid><description>&lt;p>Flutterとは、Googleによって開発されたオープンソースのUIソフトウェア開発キットです。主にモバイルアプリケーションの開発に使われますが、Webやデスクトップアプリケーションの開発にも対応しています。&lt;/p>
&lt;h3 id="flutterのメリット">Flutterのメリット&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>クロスプラットフォーム開発&lt;/strong>:&lt;/p>
&lt;p>Flutterを使用すると、一度のコード記述でiOSとAndroidの両方のアプリケーションを開発できます。これにより、開発時間とコストを大幅に削減できます。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>ホットリロード&lt;/strong>:
コードの変更がリアルタイムでアプリに反映されるため、開発プロセスが加速します。これにより、変更を瞬時に確認でき、効率的に開発を進めることができます。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>豊富なウィジェット&lt;/strong>:
Flutterには美しいUIコンポーネントを構築するための豊富なウィジェットが用意されています。これにより、綺麗なユーザーインターフェースを簡単に作成できます。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>高いパフォーマンス&lt;/strong>:&lt;/p>
&lt;p>Flutterは&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/dart">Dart&lt;/a>を使用しており、JITとAOTコンパイルを組み合わせることで高いパフォーマンスを実現します。アプリケーションのレスポンスが速く、滑らかな動作が期待できます。&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="flutterのデメリット">Flutterのデメリット&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>大きなアプリサイズ&lt;/strong>:
Flutterで開発されたアプリケーションは、他のネイティブアプリに比べてファイルサイズが大きくなりがちです。これは、アプリのダウンロードやアップデートの時間に影響を及ぼす可能性があります。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>ライブラリとサポートの限界&lt;/strong>:
Flutterは比較的新しいテクノロジーであるため、一部の特定の機能やサードパーティのライブラリが不足している場合があります。ただし、コミュニティが成長しているため、この問題は徐々に解消されつつあります。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>学習曲線&lt;/strong>:
&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/dart">Dart&lt;/a>言語は他の一般的なプログラミング言語と比較して使用する機会が少ないため、Flutterを利用するためには&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/dart">Dart&lt;/a>の学習が必要になります。また、Flutter自体も独自のコンセプトとアーキテクチャを持っているため、初学者にとっては学習曲線がやや急になる可能性があります。&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>総じて、Flutterはクロスプラットフォーム開発を効果的に進めるための強力なツールですが、プロジェクトの特性や開発チームのスキルセットに応じて、その適用を検討する必要があります。&lt;/p>
&lt;div class="self-ad">
tumf合同会社では、FlutterによるiOS/Andoroidハイブリッドスマートフォンアプリの開発依頼を承っております。
&lt;ul class="followup-links">
&lt;li>
&lt;i class="fa-solid fa-circle-arrow-right">&lt;/i>
&lt;a href="https://778172da.llc-tumf-jp.pages.dev/services/foundry"
> ソフトウェア・ファウンドリ・サービス(受託開発) &lt;/a
>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title>検索拡張生成</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/rag/</link><pubDate>Tue, 30 Apr 2024 10:51:18 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/rag/</guid><description>&lt;p>Retrieval-Augmented Generation(RAG)とは、自然言語処理(NLP)の分野で使用される、特に&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/llm">大規模言語モデル(LLM)&lt;/a>を拡張するための技術です。RAGは、質問応答(QA)システムや文章生成タスクなどにおいて、モデルのパフォーマンスを向上させることを目的としています。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>関連記事&lt;/strong>: この記事は&lt;a href="https://778172da.llc-tumf-jp.pages.dev/topics/ai-llm/">AI・LLM総合ガイド&lt;/a>の一部です。LLM技術全体の体系的な理解には、総合ガイドもご覧ください。&lt;/p>&lt;/blockquote>
&lt;p>RAGの基本的な考え方は、大規模な情報データベースから関連情報を「検索(retrieve)」し、その情報を基にテキストを「生成(generate)」することです。これにより、モデルは特定のトピックに関する直接的な情報を活用して、より正確で詳細な回答や内容を生成できるようになります。&lt;/p>
&lt;p>RAGは主に二つの部分で構成されます：&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>検索モジュール&lt;/strong>: このモジュールは、入力された質問やプロンプトに基づいて、大量のテキストデータベースから関連する文書や情報を検索します。この検索過程には、通常、事前訓練された言語モデルや特定の検索アルゴリズムが使用されます。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>生成モジュール&lt;/strong>: 検索モジュールで得られた情報を基に、言語生成モデルが回答や文章を生成します。生成される内容は、検索された情報に基づいており、そのため、より精度が高く、詳細な内容を提供することが可能です。&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>RAGでは、検索された情報と生成プロセスが連携し合うことで、モデルが提供できる回答の質を高め、特定の情報に基づいてより具体的な回答を生成できるようになります。これにより、特にデータが限定される場合や、特定の専門知識を要する質問に対しても、効果的な回答を提供する能力が向上します。&lt;/p>
&lt;h2 id="ベクターデータベース">ベクターデータベース&lt;/h2>
&lt;p>RAG（Retrieval-Augmented Generation）は、自然言語処理（NLP）の分野で使用される手法の一つであり、特に機械学習モデルがテキスト生成タスクに取り組む際に役立ちます。
RAGは、大量の文書やデータベースから関連情報を検索（Retrieval）し、その情報を使って新しいテキストを生成（Generation）するプロセスを統合したアプローチです。
この手法は、特に情報検索と自然言語生成を融合させることで、より情報に基づいた、精度の高いテキスト生成を可能にします。&lt;/p>
&lt;p>ベクターデータベースは、特にRAGや機械学習の文脈で便利なデータベースのタイプです。このようなデータベースは、データをベクトルとして格納し、高速な類似性検索を行います。
これは、テキストや画像などのデータを数値のベクトルに変換し、これらのベクトル間の距離や類似度を計算することで機能します。
RAGのコンテキストでは、この類似性検索が非常に重要です。なぜなら、
生成したいテキストに関連する情報を高速に検索し、その情報をもとによりリッチなコンテンツ生成を支援するからです。&lt;/p>
&lt;p>Embeddingsは、ワードやフレーズ、文書を固定長のベクトルに変換する手法です。
通常、深層学習によるモデルが、テキストデータを数学的に操作可能な形式に変換するために使用します。
これらのベクトルは、テキストの意味的な類似性を反映し、機械学習モデルがより効果的にデータを理解し、処理するのを助けます。RAGやベクターデータベースにおいて、embeddingsは関連情報を検索する際の基礎となる要素です。
Embeddingsを使用することで、類似した意味を持つテキストが近いベクトル空間に位置づけられ、より関連性の高い情報検索を可能にします。&lt;/p>
&lt;div class="self-ad">
tumf合同会社では、お客様のテキストベースのデータを利用したRAG構築運用をを支援いたします。
&lt;ul class="followup-links">
&lt;li>
&lt;i class="fa-solid fa-circle-arrow-right">&lt;/i>
&lt;a href="https://778172da.llc-tumf-jp.pages.dev/services/foundry"
> ソフトウェア・ファウンドリ・サービス(受託開発) &lt;/a
>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title>大規模言語モデル</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/llm/</link><pubDate>Tue, 30 Apr 2024 10:35:17 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/llm/</guid><description>&lt;p>LLMは「Large Language Model」の略で、直訳すると「大規模言語モデル」となります。これは、大量のテキストデータを学習して、自然言語を理解し、生成する能力を持つ人工知能（AI）技術の一種です。具体的には、文章の書き方や会話の仕方を理解し、新しい文章を生成したり、質問に答えたりすることができます。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>関連記事&lt;/strong>: この記事は&lt;a href="https://778172da.llc-tumf-jp.pages.dev/topics/ai-llm/">AI・LLM総合ガイド&lt;/a>の一部です。LLM技術全体の体系的な理解には、総合ガイドもご覧ください。&lt;/p>&lt;/blockquote>
&lt;p>LLMは、多種多様なテキストデータ（ウェブサイトのテキスト、書籍、ニュース記事など）を用いてトレーニングされます。このトレーニングプロセスにより、LLMは膨大な言語パターンや情報を学習し、それをもとにして人間のように言語を扱えるようになります。&lt;/p>
&lt;p>使用例としては、文章の自動生成、翻訳、要約、チャットボット、質問応答システムなどがあります。
技術が進化するにつれて、LLMはより自然で、正確で、複雑な言語タスクを遂行できるようになっています。&lt;/p>
&lt;p>ただし、この技術は完璧ではなく、学習したデータに基づいて予測や生成を行うため、偏りや誤情報を含むこともあります。そのため、利用時には注意が必要です。&lt;/p></description></item><item><title>DApps</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/dapps/</link><pubDate>Mon, 29 Apr 2024 15:45:32 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/dapps/</guid><description>&lt;p>DApps（Decentralized Applications、分散型アプリケーション）は、従来のWebアプリケーションとは根本的に異なるアーキテクチャを持っています。以下に、Ethereumを基盤とするDAppsと従来のWebアプリケーションの主な違いを説明します。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>関連記事&lt;/strong>: この記事は&lt;a href="https://778172da.llc-tumf-jp.pages.dev/topics/web3/">Web3総合ガイド&lt;/a>の一部です。Web3技術全体の体系的な理解には、総合ガイドもご覧ください。&lt;/p>&lt;/blockquote>
&lt;h3 id="1-中央集権性-vs-非中央集権性">1. 中央集権性 vs. 非中央集権性&lt;/h3>
&lt;p>従来のWebアプリケーションは中央集権的なサーバーに依存しており、データの処理や管理が一箇所のサーバーまたはサーバー群で行われます。これに対して、DAppsはブロックチェーン技術を利用しており、データや処理がネットワーク上の多数のノード（コンピュータ）に分散されています。これにより、単一の障害点がなく、セキュリティが向上します.&lt;/p>
&lt;h3 id="2-データの透明性と不変性">2. データの透明性と不変性&lt;/h3>
&lt;p>EthereumのDAppsは、ブロックチェーン上にデータを記録するため、そのデータは改ざんが困難であり、誰でも検証可能です。これにより、透明性が保たれます。一方で、従来のWebアプリケーションでは、データはサーバー内で管理され、外部からの監査や検証が難しい場合があります.&lt;/p>
&lt;h3 id="3-サービスの運用">3. サービスの運用&lt;/h3>
&lt;p>DAppsは&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト&lt;/a>を使用して自動的に運用されるため、運用における人的介入が最小限に抑えられます。これにより、運用コストが削減されると同時に、運用の透明性が確保されます。従来のWebアプリケーションでは、運用や更新には常に管理者の介入が必要です.&lt;/p>
&lt;h3 id="4-ユーザー体験">4. ユーザー体験&lt;/h3>
&lt;p>DAppsは分散型の性質上、ユーザー体験においては従来のWebアプリケーションに比べて遅延が生じることがあります。また、ユーザーがブロックチェーンの仕組みや暗号通貨の使用に慣れていない場合、使い勝手が悪いと感じることがあります。しかし、これは技術の成熟とともに改善されつつあります.&lt;/p>
&lt;h3 id="5-開発と保守">5. 開発と保守&lt;/h3>
&lt;p>DAppsの開発は、&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト&lt;/a>の不変性のため、一度デプロイされた後の変更が困難です。これは、セキュリティの強化には寄与しますが、アプリケーションの迅速なアップデートやバグ修正を困難にします。一方、従来のWebアプリケーションは比較的容易に更新や修正が可能です.&lt;/p>
&lt;p>これらの違いにより、DAppsは特に透明性やセキュリティが要求される分野での利用が進んでおり、金融サービス（DeFi）、ゲーム、NFTマーケットプレイスなど、多岐にわたるアプリケーションが開発されています.&lt;/p>
&lt;div class="self-ad">
tumf合同会社では、Web3, DAppsの開発依頼を承っております。
&lt;ul class="followup-links">
&lt;li>
&lt;i class="fa-solid fa-circle-arrow-right">&lt;/i>
&lt;a href="https://778172da.llc-tumf-jp.pages.dev/services/foundry"
> ソフトウェア・ファウンドリ・サービス(受託開発) &lt;/a
>
&lt;/li>
&lt;/ul>
&lt;/div>
&lt;p>参考サイト:&lt;/p>
&lt;ul>
&lt;li>[1] &lt;a href="https://diamond.jp/crypto/defi/dapps/">https://diamond.jp/crypto/defi/dapps/&lt;/a>&lt;/li>
&lt;li>[2] &lt;a href="https://bitcoin.dmm.com/column/0142">https://bitcoin.dmm.com/column/0142&lt;/a>&lt;/li>
&lt;li>[3] &lt;a href="https://coincheck.com/ja/article/10">https://coincheck.com/ja/article/10&lt;/a>&lt;/li>
&lt;li>[4] &lt;a href="https://phemex.com/ja/academy/%E5%88%86%E6%95%A3%E5%9E%8B%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3dapps%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B">https://phemex.com/ja/academy/%E5%88%86%E6%95%A3%E5%9E%8B%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3dapps%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B&lt;/a>&lt;/li>
&lt;li>[5] &lt;a href="https://ykubot.com/about-dapps-in-ten-minute/">https://ykubot.com/about-dapps-in-ten-minute/&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Dart</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/dart/</link><pubDate>Mon, 29 Apr 2024 15:45:32 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/dart/</guid><description>&lt;p>Dartは、Googleが開発したプログラミング言語です。特に&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a>フレームワークのメイン言語として知られており、クロスプラットフォームアプリケーション開発で広く使用されています。&lt;/p>
&lt;h2 id="特徴">特徴&lt;/h2>
&lt;ul>
&lt;li>オブジェクト指向言語であり、すべてがオブジェクトとして扱われます&lt;/li>
&lt;li>JavaScriptのような使い慣れた構文を持ちながら、型安全性を提供します&lt;/li>
&lt;li>JIT（Just-In-Time）とAOT（Ahead-Of-Time）の両方のコンパイルをサポートしています&lt;/li>
&lt;li>非同期プログラミングを簡単に実装できる機能を備えています&lt;/li>
&lt;/ul>
&lt;h2 id="主な用途">主な用途&lt;/h2>
&lt;ol>
&lt;li>&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a>を使用したモバイル/デスクトップ/Webアプリケーション開発&lt;/li>
&lt;li>サーバーサイドアプリケーション開発&lt;/li>
&lt;li>コマンドラインツールの開発&lt;/li>
&lt;/ol>
&lt;h2 id="開発環境">開発環境&lt;/h2>
&lt;p>Dartの開発には以下のツールが一般的に使用されます：&lt;/p>
&lt;ul>
&lt;li>DartSDK: 言語の基本的な開発キット&lt;/li>
&lt;li>&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a> SDK: クロスプラットフォームアプリケーション開発用フレームワーク&lt;/li>
&lt;li>VS Code や Android Studio などのIDEと、それらのDart/&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a>プラグイン&lt;/li>
&lt;/ul>
&lt;h2 id="パフォーマンスの特徴">パフォーマンスの特徴&lt;/h2>
&lt;p>Dartは以下のような特徴により、高いパフォーマンスを実現しています：&lt;/p>
&lt;ul>
&lt;li>効率的なガベージコレクション&lt;/li>
&lt;li>AOTコンパイルによるネイティブコードの生成&lt;/li>
&lt;li>開発時の高速な開発サイクルを実現するJITコンパイル&lt;/li>
&lt;/ul>
&lt;h2 id="将来性">将来性&lt;/h2>
&lt;p>&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/flutter">Flutter&lt;/a>の急速な普及に伴い、Dart言語の需要も増加しています。特にクロスプラットフォーム開発において、重要な選択肢の一つとなっています。&lt;/p></description></item><item><title>WebAssembly (Wasm)</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/wasm/</link><pubDate>Mon, 29 Apr 2024 15:45:32 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/wasm/</guid><description>&lt;p>WebAssembly（Wasm）は、モダンなWebブラウザで動作するバイナリ形式の命令セットアーキテクチャです。C++やRustなどの高級言語で書かれたプログラムをコンパイルして生成される低レベルのバイトコード形式であり、Webブラウザ上で効率的に実行することができます。&lt;/p>
&lt;h2 id="主な特徴">主な特徴&lt;/h2>
&lt;ul>
&lt;li>ネイティブに近い実行速度&lt;/li>
&lt;li>セキュアな実行環境&lt;/li>
&lt;li>JavaScriptとの相互運用性&lt;/li>
&lt;li>C++、Rust、Goなど、多様なプログラミング言語からコンパイル可能&lt;/li>
&lt;li>移植性の高いバイトコード形式&lt;/li>
&lt;/ul>
&lt;h2 id="ユースケース">ユースケース&lt;/h2>
&lt;ul>
&lt;li>3Dゲームやグラフィックス処理&lt;/li>
&lt;li>画像・動画編集アプリケーション&lt;/li>
&lt;li>暗号化処理や科学計算&lt;/li>
&lt;li>ブロックチェーンの&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト&lt;/a>実行環境&lt;/li>
&lt;/ul>
&lt;h2 id="web3での活用">Web3での活用&lt;/h2>
&lt;p>ブロックチェーン分野では、WebAssemblyは特に重要な役割を果たしています。例えば、Polkadotエコシステムでは、&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト&lt;/a>の実行環境としてWebAssemblyが採用されています。これにより、高速で安全な&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト&lt;/a>の実行が可能となっています。&lt;/p>
&lt;p>また、&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/dapps">分散型アプリケーション（DApps）&lt;/a>の開発においても、WebAssemblyを活用することで、より高性能なフロントエンドアプリケーションを構築することができます。&lt;/p></description></item><item><title>スマートコントラクト</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract/</link><pubDate>Mon, 29 Apr 2024 11:46:39 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract/</guid><description>&lt;p>スマートコントラクトは、特定の条件が満たされたときに自動的に実行されるプログラムです。これらのプログラムは、ブロックチェーン上にデプロイされ、分散型台帳技術を利用して透明かつ改ざんが困難な方法で動作します。スマートコントラクトは、中央集権的な管理者や仲介者を必要とせずに、プログラムされたアクションを実行することができます。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>関連記事&lt;/strong>: この記事は&lt;a href="https://778172da.llc-tumf-jp.pages.dev/topics/web3/">Web3総合ガイド&lt;/a>の一部です。Web3技術全体の体系的な理解には、総合ガイドもご覧ください。&lt;/p>&lt;/blockquote>
&lt;h3 id="スマートコントラクトの機能とメカニズム">スマートコントラクトの機能とメカニズム&lt;/h3>
&lt;p>代表的なプロックチェーン、イーサリアム上でのスマートコントラクトは、&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/solidity">Solidity&lt;/a>というプログラミング言語で記述されます。これらのプログラムは、イーサリアム仮想マシン（EVM）上で実行され、ブロックチェーンに永続的に記録されます。スマートコントラクトは、外部からのメッセージ（トランザクション）を受け取ることで起動され、定義された条件に基づいて自動的に処理を行います。&lt;/p>
&lt;h3 id="スマートコントラクトの実用例">スマートコントラクトの実用例&lt;/h3>
&lt;p>スマートコントラクトは、様々なアプリケーションで利用されています。例えば、CryptoKittiesはブロックチェーンゲームであり、ユーザーは独自の猫を育成・繁殖させ、スマートコントラクトを介して安全に売買することができます。また、Etheriscは飛行機の遅延保険を提供する分散型プラットフォームで、保険金の支払いを自動化するスマートコントラクトを使用しています。&lt;/p>
&lt;h3 id="イーサリアムのトランザクションとgas">イーサリアムのトランザクションとGas&lt;/h3>
&lt;p>イーサリアム上でスマートコントラクトを実行する際には、トランザクション手数料が発生します。この手数料は「Gas」と呼ばれ、トランザクションの複雑さや実行に必要な計算資源に応じて変動します。GasはETHに換算され、マイナーに報酬として支払われます。Gasの価格（Gas Price）と、トランザクションに設定される最大Gas量（Gas Limit）を理解することが重要です。&lt;/p>
&lt;h3 id="スマートコントラクトのセキュリティ">スマートコントラクトのセキュリティ&lt;/h3>
&lt;p>スマートコントラクトは公開されているため、セキュリティは非常に重要です。不具合や脆弱性があると、悪意のある攻撃者によって損害を受ける可能性があります。そのため、開発者はコードの安全性を確保するために厳格なテストと監査を行う必要があります。&lt;/p>
&lt;p>イーサリアムのスマートコントラクトは、自動化されたプロセスを通じて、多くの分野で新しい可能性を開拓しています。これにより、従来の中央集権的なシステムに依存しない新しい形のデジタルインタラクションが可能になっています。&lt;/p>
&lt;div class="self-ad">
tumf合同会社では、Solidyによるスマートコントラクトの開発依頼を承っております。
&lt;ul class="followup-links">
&lt;li>
&lt;i class="fa-solid fa-circle-arrow-right">&lt;/i>
&lt;a href="https://778172da.llc-tumf-jp.pages.dev/services/foundry"
> ソフトウェア・ファウンドリ・サービス(受託開発) &lt;/a
>
&lt;/li>
&lt;/ul>
&lt;/div>
&lt;p>参考サイト:&lt;/p>
&lt;ul>
&lt;li>[1] &lt;a href="https://coincheck.com/ja/article/215">https://coincheck.com/ja/article/215&lt;/a>&lt;/li>
&lt;li>[2] &lt;a href="https://www.etarou.work/posts/4953854/">https://www.etarou.work/posts/4953854/&lt;/a>&lt;/li>
&lt;li>[3] &lt;a href="https://www.oreilly.co.jp/books/9784873119342/">https://www.oreilly.co.jp/books/9784873119342/&lt;/a>&lt;/li>
&lt;li>[4] &lt;a href="https://tech.bitbank.cc/20201222/">https://tech.bitbank.cc/20201222/&lt;/a>&lt;/li>
&lt;li>[5] &lt;a href="https://bitbank.cc/knowledge/chart/eth">https://bitbank.cc/knowledge/chart/eth&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Solidityとは？Ethereumスマートコントラクト開発言語の特徴と学習方法</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/solidity/</link><pubDate>Mon, 29 Apr 2024 11:45:47 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/solidity/</guid><description>&lt;p>**Solidity（ソリディティ）**は、Ethereum（イーサリアム）ブロックチェーン上で&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト&lt;/a>を開発するために設計されたプログラミング言語です。JavaScriptに似た文法を持つ静的型付けのオブジェクト指向言語で、&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/web3">Web3&lt;/a>エコシステムにおける最も重要な開発言語の一つです。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>関連記事&lt;/strong>: この記事は&lt;a href="https://778172da.llc-tumf-jp.pages.dev/topics/web3/">Web3総合ガイド&lt;/a>の一部です。Web3技術全体の体系的な理解には、総合ガイドもご覧ください。&lt;/p>&lt;/blockquote>
&lt;h2 id="solidityとは">Solidityとは&lt;/h2>
&lt;p>Solidityは、2014年にEthereum共同創設者のギャビン・ウッド（Gavin Wood）によって開発されました。Ethereum Virtual Machine（EVM）上で動作する&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト&lt;/a>を記述するための専用言語で、ブロックチェーン上で自動実行される契約ロジックをコードとして実装できます。&lt;/p>
&lt;p>Solidityで書かれた&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト&lt;/a>は、以下のような用途で使用されます：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>DeFi（分散型金融）&lt;/strong>: 仮想通貨の貸借、取引、流動性プールなど&lt;/li>
&lt;li>&lt;strong>NFT（Non-Fungible Token）&lt;/strong>: デジタルアート、ゲームアイテム、不動産権利証明&lt;/li>
&lt;li>&lt;strong>DAO（分散型自律組織）&lt;/strong>: ガバナンストークン、投票システム&lt;/li>
&lt;li>&lt;strong>分散型アプリケーション（&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/dapps">DApps&lt;/a>）&lt;/strong>: ゲーム、マーケットプレイス、ソーシャルメディア&lt;/li>
&lt;/ul>
&lt;h2 id="solidityの主な特徴">Solidityの主な特徴&lt;/h2>
&lt;h3 id="1-javascript風の文法">1. JavaScript風の文法&lt;/h3>
&lt;p>JavaScriptやC++に慣れている開発者にとって習得しやすい文法を採用しています。例えば、シンプルなデータ保存・取得機能を持つコントラクトを数行で記述でき、変数の宣言、関数の定義、条件分岐などの基本的な構文はJavaScriptとよく似ています。&lt;/p>
&lt;h3 id="2-静的型付け">2. 静的型付け&lt;/h3>
&lt;p>変数の型を明示的に宣言する必要があり、コンパイル時に型チェックが行われるため、バグを早期に発見できます。&lt;/p>
&lt;h3 id="3-継承とインターフェース">3. 継承とインターフェース&lt;/h3>
&lt;p>オブジェクト指向の概念を取り入れており、コントラクトの継承、インターフェースの実装、抽象コントラクトの定義が可能です。&lt;/p>
&lt;h3 id="4-イベントとログ">4. イベントとログ&lt;/h3>
&lt;p>ブロックチェーン上にログを記録する&lt;code>event&lt;/code>機能があり、フロントエンドから&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト&lt;/a>の状態変化を監視できます。&lt;/p>
&lt;h3 id="5-セキュリティ機能">5. セキュリティ機能&lt;/h3>
&lt;p>リエントランシー攻撃、整数オーバーフロー、ガス最適化など、ブロックチェーン特有のセキュリティ問題に対応する機能や修飾子（modifier）が用意されています。&lt;/p>
&lt;h2 id="solidityとevmの関係">SolidityとEVMの関係&lt;/h2>
&lt;p>Solidityで書かれたコードは、以下のプロセスで実行されます：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Solidityコード記述&lt;/strong> → &lt;code>.sol&lt;/code>ファイル&lt;/li>
&lt;li>&lt;strong>コンパイル&lt;/strong> → バイトコード＋ABI（Application Binary Interface）&lt;/li>
&lt;li>&lt;strong>デプロイ&lt;/strong> → Ethereumネットワーク上にコントラクト配置&lt;/li>
&lt;li>&lt;strong>実行&lt;/strong> → EVM上でバイトコードを実行&lt;/li>
&lt;/ol>
&lt;p>EVM互換チェーン（Polygon、BNB Chain、Avalancheなど）でも同じSolidityコードを利用できるため、マルチチェーン展開が容易です。&lt;/p>
&lt;h2 id="solidityの学習方法">Solidityの学習方法&lt;/h2>
&lt;h3 id="初心者向けリソース">初心者向けリソース&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>公式ドキュメント&lt;/strong>: &lt;a href="https://docs.soliditylang.org/">Solidity Documentation&lt;/a>&lt;/li>
&lt;li>&lt;strong>CryptoZombies&lt;/strong>: ゲーム形式で学べる無料の学習サイト&lt;/li>
&lt;li>&lt;strong>Remix IDE&lt;/strong>: ブラウザ上でSolidityを記述・実行できる開発環境&lt;/li>
&lt;/ol>
&lt;h3 id="中級者向けリソース">中級者向けリソース&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>OpenZeppelin Contracts&lt;/strong>: セキュアな&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト&lt;/a>ライブラリ&lt;/li>
&lt;li>&lt;strong>Hardhat / Foundry&lt;/strong>: モダンな開発フレームワーク&lt;/li>
&lt;li>&lt;strong>Ethernaut&lt;/strong>: セキュリティに焦点を当てた学習プラットフォーム&lt;/li>
&lt;/ol>
&lt;h3 id="学習ステップ">学習ステップ&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>基礎文法の習得&lt;/strong>（1-2週間）: データ型、関数、制御構文&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト&lt;/a>の理解&lt;/strong>（2-4週間）: コントラクトの構造、デプロイ（&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/smartcontract">スマートコントラクト解説&lt;/a>参照）&lt;/li>
&lt;li>&lt;strong>実践的な開発&lt;/strong>（1-2ヶ月）: ERC-20トークン、NFT、DeFiプロトコル&lt;/li>
&lt;li>&lt;strong>セキュリティ対策&lt;/strong>（継続的）: 監査、テスト、ベストプラクティス&lt;/li>
&lt;/ol>
&lt;h2 id="solidity-vs-他のスマートコントラクト言語">Solidity vs 他のスマートコントラクト言語&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>項目&lt;/th>
&lt;th>Solidity&lt;/th>
&lt;th>Vyper&lt;/th>
&lt;th>Rust（Solana）&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>ターゲットVM&lt;/td>
&lt;td>EVM&lt;/td>
&lt;td>EVM&lt;/td>
&lt;td>SVM（Solana VM）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>文法スタイル&lt;/td>
&lt;td>JavaScript風&lt;/td>
&lt;td>Python風&lt;/td>
&lt;td>Rust&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>エコシステム&lt;/td>
&lt;td>最大&lt;/td>
&lt;td>小規模&lt;/td>
&lt;td>成長中&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>セキュリティ重視度&lt;/td>
&lt;td>中&lt;/td>
&lt;td>高&lt;/td>
&lt;td>高&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>学習曲線&lt;/td>
&lt;td>緩やか&lt;/td>
&lt;td>緩やか&lt;/td>
&lt;td>急&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="solidityのセキュリティベストプラクティス">Solidityのセキュリティベストプラクティス&lt;/h2>
&lt;h3 id="1-リエントランシー攻撃対策">1. リエントランシー攻撃対策&lt;/h3>
&lt;p>Checks-Effects-Interactions パターンを使用することで、外部呼び出しの前に状態を更新し、リエントランシー攻撃を防ぐことができます。このパターンでは、まず条件チェックを行い、次に状態を更新し、最後に外部呼び出しを実行します。&lt;/p></description></item><item><title>MPCウォレットとは？仕組み・メリット・マルチシグとの違いを解説</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/mpc-wallet/</link><pubDate>Mon, 29 Apr 2024 11:28:54 +0700</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/mpc-wallet/</guid><description>&lt;p>**MPCウォレット（MPC Wallet）**とは、マルチパーティ計算（Multi-Party Computation、MPC）技術を活用した&lt;a href="https://778172da.llc-tumf-jp.pages.dev/terms/web3">Web3&lt;/a>のデジタルウォレットです。従来のウォレットと異なり、秘密鍵を複数の参加者で分散管理することで、セキュリティとユーザビリティを両立させた次世代のウォレットとして注目されています。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>関連記事&lt;/strong>: この記事は&lt;a href="https://778172da.llc-tumf-jp.pages.dev/topics/web3/">Web3総合ガイド&lt;/a>の一部です。Web3技術全体の体系的な理解には、総合ガイドもご覧ください。&lt;/p>&lt;/blockquote>
&lt;h2 id="mpcウォレットの仕組み">MPCウォレットの仕組み&lt;/h2>
&lt;p>MPCウォレットの核心は、&lt;strong>秘密鍵を物理的に分割し、複数の当事者が各断片を保持する&lt;/strong>という点にあります。この技術により、以下のような特徴が実現されています：&lt;/p>
&lt;h3 id="秘密鍵の分散管理">秘密鍵の分散管理&lt;/h3>
&lt;p>複数の参加者が秘密鍵の一部（鍵断片）を保持し、トランザクション実行時に必要な数の断片が集まって初めて署名が可能になります。この仕組みにより、単一のデバイスや場所に秘密鍵が集中するリスクを回避できます。&lt;/p>
&lt;h3 id="トランザクションの承認プロセス">トランザクションの承認プロセス&lt;/h3>
&lt;p>トランザクションを実行する際、MPCウォレットは複数の鍵断片を組み合わせることで秘密鍵全体を&lt;strong>理論上再構築&lt;/strong>し、トランザクションに署名します。重要なのは、この再構築が実際のメモリ上で行われるのではなく、暗号学的な計算によって実現される点です。&lt;/p>
&lt;h2 id="mpcウォレットのメリット">MPCウォレットのメリット&lt;/h2>
&lt;h3 id="1-高いセキュリティ">1. 高いセキュリティ&lt;/h3>
&lt;p>一つの鍵断片が漏洩または失われたとしても、他の鍵断片が安全である限り、ウォレット全体の安全性は保たれます。攻撃者が資産を盗むには、複数の鍵断片を同時に入手する必要があるため、従来のシングルポイント型ウォレットよりも格段に安全です。&lt;/p>
&lt;h3 id="2-優れたユーザビリティ">2. 優れたユーザビリティ&lt;/h3>
&lt;p>Web3Authのようなプラットフォームでは、MPC技術を用いてソーシャルログイン機能を組み込んだウォレットを提供しています。これにより、ユーザーは複雑な秘密鍵の管理から解放され、簡単かつ安全にウォレットを作成・利用できます。&lt;/p>
&lt;h3 id="3-柔軟な権限管理">3. 柔軟な権限管理&lt;/h3>
&lt;p>企業やDAO（分散型自律組織）などでは、複数人による承認が必要なトランザクションを実現できます。マルチシグウォレットと似た機能ですが、MPCウォレットはオンチェーンでの複雑な設定が不要で、より柔軟に運用できます。&lt;/p>
&lt;h2 id="mpcウォレット-vs-マルチシグウォレット">MPCウォレット vs マルチシグウォレット&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>項目&lt;/th>
&lt;th>MPCウォレット&lt;/th>
&lt;th>マルチシグウォレット&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>秘密鍵の管理&lt;/td>
&lt;td>オフチェーンで分散管理&lt;/td>
&lt;td>オンチェーンで複数の鍵を管理&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>トランザクション手数料&lt;/td>
&lt;td>通常の送金と同等&lt;/td>
&lt;td>複数署名分のガス代が必要&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>プライバシー&lt;/td>
&lt;td>高い（外部から構成不明）&lt;/td>
&lt;td>低い（オンチェーンで公開）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>対応ブロックチェーン&lt;/td>
&lt;td>広範囲に対応可能&lt;/td>
&lt;td>チェーンごとに実装が必要&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="mpcウォレットの活用分野">MPCウォレットの活用分野&lt;/h2>
&lt;p>この技術は、特に以下の分野でのプライバシーとセキュリティの保護に有効です：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>金融サービス&lt;/strong>: 暗号資産の機関投資家向けカストディサービス&lt;/li>
&lt;li>&lt;strong>医療データ管理&lt;/strong>: 患者情報の分散型セキュア管理&lt;/li>
&lt;li>&lt;strong>IoTデバイス&lt;/strong>: デバイス間の安全な認証・通信&lt;/li>
&lt;li>&lt;strong>デジタルアイデンティティ&lt;/strong>: 分散型ID（DID）の秘密鍵管理&lt;/li>
&lt;/ul>
&lt;p>MPCウォレットは、ユーザーが自身の秘密鍵を完全にコントロール下に置きつつ、分散型の安全な管理を実現することを可能にします。&lt;/p>
&lt;h2 id="技術的背景シャミアの秘密分散法sss">技術的背景：シャミアの秘密分散法（SSS）&lt;/h2>
&lt;p>MPCウォレットの多くは、**シャミアの秘密分散法（Shamir&amp;rsquo;s Secret Sharing、SSS）**という暗号技術をベースにしています。この手法では、秘密情報をN個の断片に分割し、そのうちK個（閾値）が揃えば元の秘密を復元できるという仕組みを提供します。&lt;/p>
&lt;p>秘密鍵の分割方法に興味のある方は、「&lt;a href="https://blog.tumf.dev/posts/diary/2023/4/2023-4-24/">シャミアの秘密分散を試してみる&lt;/a>」もあわせてご覧ください。&lt;/p>
&lt;h2 id="よくある質問faq">よくある質問（FAQ）&lt;/h2>
&lt;h3 id="mpcウォレットは完全に安全ですか">MPCウォレットは完全に安全ですか？&lt;/h3>
&lt;p>MPCウォレットは従来のウォレットよりも高いセキュリティを提供しますが、実装の品質やキー管理の運用方法によってセキュリティレベルは変わります。信頼できるプロバイダーを選択することが重要です。&lt;/p>
&lt;h3 id="鍵断片を紛失した場合はどうなりますか">鍵断片を紛失した場合はどうなりますか？&lt;/h3>
&lt;p>多くのMPCウォレットは、閾値署名スキーム（Threshold Signature Scheme）を採用しており、全ての鍵断片がなくてもトランザクションを実行できます。例えば、5つの断片のうち3つがあれば署名可能、といった設定が可能です。&lt;/p>
&lt;h3 id="mpcウォレットはどのブロックチェーンで使えますか">MPCウォレットはどのブロックチェーンで使えますか？&lt;/h3>
&lt;p>MPCはオフチェーン技術なので、理論上あらゆるブロックチェーンで利用可能です。Bitcoin、Ethereum、Solana、Polygonなど、主要なチェーンに対応しているサービスが多く存在します。&lt;/p>
&lt;div class="self-ad">
tumf合同会社では、Web3ウォレットやDAppsの開発をご支援いたします。
&lt;ul class="followup-links">
&lt;li>
&lt;i class="fa-solid fa-circle-arrow-right">&lt;/i>
&lt;a href="https://778172da.llc-tumf-jp.pages.dev/services/foundry"
> ソフトウェア・ファウンドリ・サービス(受託開発) &lt;/a
>
&lt;/li>
&lt;/ul>
&lt;/div>
&lt;p>参考サイト:&lt;/p>
&lt;ul>
&lt;li>[1] &lt;a href="https://zenn.dev/mashharuki/articles/211be951ae6231">https://zenn.dev/mashharuki/articles/211be951ae6231&lt;/a>&lt;/li>
&lt;li>[2] &lt;a href="https://relipasoft.com/blog/what-is-mpc-wallet-and-how-to-develop/">https://relipasoft.com/blog/what-is-mpc-wallet-and-how-to-develop/&lt;/a>&lt;/li>
&lt;li>[3] &lt;a href="https://academy.binance.com/ja/articles/what-are-multi-party-computation-mpc-wallets">https://academy.binance.com/ja/articles/what-are-multi-party-computation-mpc-wallets&lt;/a>&lt;/li>
&lt;li>[4] &lt;a href="https://foresightnews.pro/article/detail/32605">https://foresightnews.pro/article/detail/32605&lt;/a>&lt;/li>
&lt;li>[5] &lt;a href="https://www.web3researchjapan.com/p/web3auth">https://www.web3researchjapan.com/p/web3auth&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>分散型物理インフラネットワーク (DePIN)</title><link>https://778172da.llc-tumf-jp.pages.dev/terms/depin/</link><pubDate>Sun, 28 Apr 2024 00:00:00 +0900</pubDate><guid>https://778172da.llc-tumf-jp.pages.dev/terms/depin/</guid><description>&lt;p>分散型物理インフラネットワーク（DePIN）は、「Decentralized Physical Infrastructure Network」の略で、物理的なインフラストラクチャを分散型のアプローチで構築し、運用するためのシステムです。DePIN は、ブロックチェーン技術を活用して、物理インフラのデータをデジタル化し、さまざまな分野での利用を可能にすることを目的としています。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>関連記事&lt;/strong>: この記事は&lt;a href="https://778172da.llc-tumf-jp.pages.dev/topics/web3/">Web3総合ガイド&lt;/a>の一部です。Web3技術全体の体系的な理解には、総合ガイドもご覧ください。&lt;/p>&lt;/blockquote>
&lt;p>DePIN プロジェクトは、物理インフラ、ミドルウェア、ブロックチェーンなどのさまざまな環境からのデータを正確かつ安全に収集し、データの完全性とアクセシビリティを保証することに重点を置いています。これにより、中央集権的な組織がすべてを管理するのではなく、個々のネットワーク参加者がリソースを管理するという仕組みで機能します。&lt;/p>
&lt;p>DePIN は、データを利用した環境モニタリングや災害対策、エネルギーの最適化など、あらゆる分野での利用が期待されています。また、DePIN プロジェクトは、新しいプロダクトの開発を可能にすることで、社会的インパクトをもたらす新たな価値創造を推進しています。&lt;/p>
&lt;p>しかし、DePIN は物理的なインフラストラクチャを含むため、世界各国の規制当局による規制や法律の変更により影響を受ける可能性があります。通信ネットワーク、エネルギーネットワーク、交通ネットワークなど、多くの物理インフラストラクチャは既存の法律によって規制されているため、ブロックチェーン技術を利用した DePIN に対する新たな規制も想定されます。&lt;/p>
&lt;p>DePIN に関連する代表的なプロジェクトとしては、Render（レンダー）、FIL（ファイルコイン）などがあります。これらのプロジェクトは、DePIN のコンセプトを実現するために開発されています。&lt;/p>
&lt;p>DePIN の名称は、暗号資産リサーチ会社 Messari が 2022 年 11 月に実施した Twitter アンケートの結果によって定着したとされています。この分野はまだ新しく、分散的にインフラネットワークを構築できるかどうかは不確かな部分もありますが、今後のインフラ業界に与える影響に注目が集まっています。&lt;/p>
&lt;div class="self-ad">
&lt;p>tumf合同会社では、Web3でリモートビジョンを実現するSenriganの開発をしています。
&lt;ul class="followup-links">
&lt;li>
&lt;i class="fa-solid fa-circle-arrow-right">&lt;/i>
&lt;a href="https://778172da.llc-tumf-jp.pages.dev/services/senrigan"
> Senrigan &lt;/a
>
&lt;/li>
&lt;/ul>
&lt;/p>
&lt;p>Web3でDePINサービスのカスタムソフトウェアの開発を承っております。
&lt;ul class="followup-links">
&lt;li>
&lt;i class="fa-solid fa-circle-arrow-right">&lt;/i>
&lt;a href="https://778172da.llc-tumf-jp.pages.dev/services/foundry"
> ソフトウェア・ファウンドリ・サービス(受託開発) &lt;/a
>
&lt;/li>
&lt;/ul>
&lt;/p>
&lt;/div>
&lt;p>参考サイト:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://diamond.jp/crypto/defi/depin/">https://diamond.jp/crypto/defi/depin/&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.coindeskjapan.com/215179/">https://www.coindeskjapan.com/215179/&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://note.com/peaqjapan/n/n22dba5f7ad25">https://note.com/peaqjapan/n/n22dba5f7ad25&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://nft-hack.jp/8176">https://nft-hack.jp/8176&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://iotex.io/jp/blog/fen-san-xing-wu-li-inhurasutorakutiya-netutowaku-depin-tohahe-desuka/">https://iotex.io/jp/blog/fen-san-xing-wu-li-inhurasutorakutiya-netutowaku-depin-tohahe-desuka/&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>