رفتن به محتوا

راهنما

چطور برای اثبات وجود سند در یک تاریخ به آن مهر زمانی بزنم؟

هش رمزنگاری فایل را محاسبه کنید، سپس آن را در سابقه تاریخ‌داری منتشر کنید که کنترلش نمی‌کنید: تراکنش در بلاک‌چین عمومی یا توکن امضاشده مرجع مهر زمانی. بعداً هر کسی با همان فایل می‌تواند هش را دوباره محاسبه و با سابقه تاریخ‌دار تطبیق دهد که وجود محتوا تا آن تاریخ را بدون افشای آن نشان می‌دهد. مهر زمانی فقط وجود در تاریخ را ثابت می‌کند: نه نویسنده متن، نه موافقت کسی با آن و نه درست بودن آن.

به‌روزرسانی: ⁨۳ اکتبر ۲۰۲۶⁩

هش رمزنگاری چیست

هش رمزنگاری اثر انگشت با طول ثابت است که از فایل محاسبه می‌شود: ورودی یکسان همیشه خروجی یکسان می‌دهد و تغییر یک نویسه اثر انگشت کاملاً متفاوت ایجاد می‌کند. یک‌طرفه است، پس متن اصلی از هش قابل بازیابی نیست و پیدا کردن دو فایل متفاوت با هش یکسان با رایانه‌های امروز عملی نیست.

SHA-256 و Keccak-256 دو موردی هستند که بیشتر می‌بینید. SHA-256 استاندارد رایج مورد استفاده Bitcoin و بیشتر مراجع مهر زمانی است. Keccak-256 هش مورد استفاده در Ethereum و زنجیره‌های سازگار مانند Polygon است و TrustChain هنگام ثبت توافق‌نامه امضاشده در زنجیره از آن استفاده می‌کند. هر دو رشته شانزده‌شانزدهی 64 نویسه‌ای تولید می‌کنند، هر دو برای مهر زمانی مناسب‌اند و تنها شرط ثبت نام الگوریتم استفاده‌شده است.

  1. فایل یکسان، اثر انگشت یکسان، هر بار
  2. یک نویسه را تغییر دهید تا کل اثر انگشت تغییر کند
  3. اثر انگشت را نمی‌توان معکوس کرد تا متن آشکار شود
  4. طول اثر انگشت برای فایل یک‌سطری یا یک‌گیگابایتی یکسان است

چرا انتشار هش وجود در تاریخ را ثابت می‌کند

تمام روش، انتشار هش به جای سند است. هش چیزی از محتوا آشکار نمی‌کند، پس می‌تواند عمومی باشد و چون ساختن سند مطابق هش ازپیش‌انتخاب‌شده پس از وقوع عملاً ممکن نیست، سابقه عمومی تاریخ‌دار هش نشان می‌دهد همان محتوای دقیق تا آن تاریخ وجود داشته است.

قدرت مدرک از سابقه می‌آید، نه هش. هش نوشته‌شده در دفتر خودتان چیزی ثابت نمی‌کند، زیرا دفتر و تاریخ‌هایش در کنترل شماست. هش در بلوک Bitcoin یا Polygon یا در توکن امضاشده مرجع مهر زمانی، توسط سامانه‌ای تاریخ‌دار می‌شود که کنترلش نمی‌کنید و افراد بسیاری آن را رصد می‌کنند.

فایل اصلی را بایت‌به‌بایت نگه دارید. مدرک فقط وقتی کار می‌کند که بعداً فایلی با هش مطابق مقدار منتشرشده ارائه کنید و PDF دوباره ذخیره‌شده، متن دوباره تایپ‌شده یا سند دارای تغییرات رهگیری‌شده هش متفاوت دارد. فایل دقیق را در بیش از یک محل همراه یادداشت تابع هش و محل انتشار هش ذخیره کنید.

مهر زمانی چه ثابت نمی‌کند

مهر زمانی ثابت می‌کند بایت‌های مشخص در تاریخ یا پیش از آن وجود داشته‌اند. چیز دیگری ثابت نمی‌کند و حتی ثابت نمی‌کند سند در همان تاریخ نوشته شده است: متن نوشته‌شده در ژانویه که در مارس ثبت شود مهر زمانی مارس دارد. سه معنای دیگر اغلب به مهر زمانی نسبت داده می‌شود که نمی‌تواند داشته باشد و این درباره همه روش‌های این راهنما، از ثبت Polygon تا توکن امضاشده مرجع، صادق است.

  1. چه کسی آن را نوشته است. هر کسی می‌تواند هر فایلی، از جمله فایل کپی‌شده از دیگری، را هش کند. هش در بلوک یا توکن نه نویسنده را شناسایی می‌کند و نه منتشرکننده را، مگر گام هویت جداگانه‌ای شخص را به اقدام وصل کند.
  2. اینکه با آن موافقت شده است. پیش‌نویس قرارداد با مهر زمانی نشان می‌دهد پیش‌نویس وجود داشته، نه اینکه طرف دیگر آن را دیده، پذیرفته یا امضا کرده است. توافق به سابقه پذیرش همان متن توسط هر طرف نیاز دارد.
  3. اینکه درست است. هش صورتحساب، اظهارنامه یا ادعا چیزی درباره دقت محتوا نمی‌گوید. اثر انگشت بایت‌هاست، نه بررسی واقعیت‌ها.

ثبت در بلاک‌چین عمومی: Polygon و Bitcoin

ثبت در بلاک‌چین هش را در تراکنش زنجیره عمومی قرار می‌دهد و بلوک حاوی آن تاریخ دارد. در Polygon یا Ethereum هش وارد داده تراکنش یا رویداد قرارداد می‌شود. در Bitcoin مسیر معمول OpenTimestamps است، پروتکل باز رایگانی که هش‌های فراوان را در یک درخت مرکل جمع می‌کند، ریشه را در یک تراکنش Bitcoin ثبت می‌کند و فایل مدرک کوچکی برای نگهداری می‌دهد.

مزیت‌ها استقلال و دوام هستند. لازم نیست شرکتی در فعالیت بماند تا مدرک کار کند؛ هر کسی می‌تواند تراکنش را در مرورگر عمومی بلوک پیدا کند و پس از تأیید بلوک و قرار گرفتن بلوک‌های بعدی روی آن، دست‌کاری سابقه قابل تشخیص است: نمی‌توان آن را تغییر داد بی‌آنکه تغییر برای همه اجراکنندگان شبکه قابل مشاهده باشد.

ضعف‌ها دقت و هویت هستند. مهر زمانی بلوک را شبکه تعیین می‌کند و تقریبی است، نه دقیق: در Bitcoin ممکن است یک ساعت یا بیشتر خطا داشته باشد؛ پس آن را مدرک روز بدانید، نه دقیقه. مدرک OpenTimestamps ممکن است برای تأیید کامل ساعت‌ها زمان ببرد و باید شناسه تراکنش یا فایل مدرک را خودتان نگه دارید. از همه مهم‌تر، تراکنش کسی را شناسایی نمی‌کند: نشان می‌دهد کیف پولی این هش را در این زمان منتشر کرده است، نه اینکه چه کسی سند را نوشته یا پذیرفته است.

مراجع مهر زمانی و گواهی‌کنندگان اسناد

مرجع مهر زمانی سروری است که هش شما را همراه زمان کنونی امضا و توکنی برمی‌گرداند. استاندارد رایج RFC 3161 است و چارچوب اروپایی eIDAS نوع واجد صلاحیت آن را با ارائه‌دهندگان تحت نظارت تعریف می‌کند. هش را ارسال می‌کنید، نه سند را، پس مرجع چیزی از محتوا نمی‌آموزد.

مزیت‌ها: زمان دقیق، قالب شناخته‌شده و پشتیبانی داخلی در بسیاری از ابزارهای امضای سند و کد. ضعف‌ها: به ساعت مرجع، مدیریت کلید آن و ادامه وجودش اعتماد می‌کنید و بررسی بعدی توکن نرم‌افزار آشنا با قالب می‌خواهد. اگر کلید امضای مرجع به خطر بیفتد، همه توکن‌های صادرشده آن محل تردید می‌شوند.

گواهی‌کننده اسناد جایگزین انسانی است. هویت را بررسی، امضا را مشاهده و تاریخ را در دفتر ثبت می‌کند. این نوع مدرک با هش متفاوت است و تنها روش این فهرست است که درباره حضور اشخاص در اتاق سخن می‌گوید. محدودیت‌ها هزینه، زمان‌بندی و این واقعیت‌اند که معمولاً امضای روی کاغذ را گواهی می‌کند، نه بایت‌های فایل دیجیتال را: نسخه کاغذی گواهی‌شده و نسخه دیجیتال ویرایش‌شده می‌توانند متفاوت شوند مگر فایل را نیز هش کنید.

چرا ایمیل کردن به خود ضعیف است

ایمیل کردن سند به خود روش عامیانه‌ای است و به سه دلیل ضعیف است. صندوق در کنترل شماست، پس پیام می‌تواند حذف و با پیوست تغییریافته دوباره ساخته شود. تاریخ‌های سرآیند متن ساده‌اند و هنگام ورود یا در فایل صادرشده قابل ویرایش‌اند. و محتوا به‌طور کامل در صندوق قرار دارد، پس نه خصوصی است و نه کم‌حجم.

تنها مزیت آن مهر زمانی دریافت روی سرور ارائه‌دهنده ایمیل است که در کنترل شما نیست. کمی از هیچ بهتر است، اما ارائه‌دهنده چیزی را گواهی نمی‌کند، گزارش‌هایش برای مدرک طراحی نشده‌اند و سال‌ها بعد برای بازیابی سابقه سمت سرور کمک نمی‌کند. اگر روشی به همان آسانی می‌خواهید که واقعاً تاریخ را ثابت کند، فایل را هش و هش را با OpenTimestamps مهر کنید: یک دستور است و تقویم‌های عمومی رایگان‌اند.

جایگاه TrustChain

مهر زمانی تنها به یک پرسش پاسخ می‌دهد: آیا این بایت‌ها تا این تاریخ وجود داشتند؟ TrustChain برای پرسش دیگری ساخته شده است: آیا هر دو طرف تأییدشده با همین متن دقیق موافقت کردند و چه زمانی؟ هر دو طرف یک بار با مدرک عکس‌دار و سلفی از طریق Sumsub هویت خود را تأیید و همان متن نهایی را امضا می‌کنند؛ وقتی هر دو حساب داشته باشند می‌توانند در گفت‌وگوی رمزگذاری‌شده سرتاسری صحبت کنند. حساب تأییدنشده نمی‌تواند امضا کند.

هنگام امضا، TrustChain برای هر امضای حساب دارای هویت تأییدشده رویداد ممیزی با مهر زمانی می‌نویسد. مرورگرها و برنامه‌ها نمی‌توانند آن را ویرایش کنند و این بخشی است که هش تنها نمی‌دهد. ثبت در زنجیره اختیاری است: اثر انگشت Keccak-256 سابقه امضاشده را محاسبه و در تراکنش شبکه اصلی Polygon می‌نویسد که آن را عمومی تاریخ‌دار می‌کند. در طرح رایگان ($0، بدون کارت: ماهانه 1 توافق‌نامه و 3 درخواست AI Advisor)، توافق‌نامه اضافه یا ثبت اضافه در Polygon هر کدام یک‌بار $1 هزینه دارند و ثبت در زنجیره هویت تأییدشده می‌خواهد. Pro با ماهانه $19 شامل 20 توافق‌نامه و 20 ثبت است؛ Elite با $49 شامل 100 مورد از هر کدام است. طرح‌ها ماهانه و هر زمان قابل لغو هستند.

اگر در زنجیره ثبت کنید، اثر انگشت و شناسه داخلی سابقه با دو جایگاه خالی کیف پول به زنجیره می‌روند، هرگز متن، نام یا ایمیل نمی‌روند. متن توافق‌نامه روی سرورهای TrustChain ذخیره می‌شود تا اثر انگشت محاسبه و سابقه، گواهی و PDF ارائه شود که در همه طرح‌ها رایگان هستند. گفت‌وگو رمزگذاری سرتاسری دارد و TrustChain نمی‌تواند پیام‌ها را بخواند. پیوند عمومی بدون حساب باز می‌شود و وضعیت و در صورت ثبت در زنجیره اثر انگشت را نشان می‌دهد، هرگز هویت طرف‌ها را نشان نمی‌دهد؛ عنوان فقط برای توافق‌نامه‌های ساخته‌شده در طرح Elite ظاهر می‌شود. اگر سابقه ثبت شده باشد، تراکنش Polygon در هر مرورگر بلوک مستقل از TrustChain قابل بررسی است. قرارداد هوشمند TrustChain در شبکه اصلی Polygon نشانی 0x649Bc303d15E173D95B4d379e163868b03cf5Fec دارد.

هیچ‌یک معنای مهر زمانی را تغییر نمی‌دهد. اثر انگشت ثبت‌شده و تاریخش همه جا قابل بررسی است؛ قابلیت اجرای حقوقی توافق‌نامه به محل طرف‌ها و توافقشان بستگی دارد و TrustChain در این باره ادعایی ندارد.

دستی انجام دهید

یک تابع هش انتخاب کنید و نامش را بنویسید. این گام‌ها برای فایلی است که خودتان هش می‌کنید: اثر انگشت TrustChain شناسه داخلی سابقه و حساب‌ها را نیز پوشش می‌دهد، پس با هش متن توافق‌نامه مطابقت ندارد. برای SHA-256 همه سیستم‌عامل‌های رایج ابزار دارند. برای Keccak-256، تابع مورد استفاده TrustChain و زنجیره‌های سازگار با Ethereum، اسکریپت کوتاهی لازم است، زیرا گزینه sha3-256 در OpenSSL و ابزارهای مشابه خط فرمان، NIST SHA-3 است که پدگذاری متفاوت دارد و نتیجه‌ای متفاوت از Keccak-256 می‌دهد.

محاسبه‌گرهای آنلاین هش راحت‌اند اما دو نکته دارند. هر چیزی که بچسبانید یا بارگذاری کنید از دستگاه خارج می‌شود؛ پس هرگز برای سندی که نمی‌خواهید منتشر کنید از آن‌ها استفاده نکنید. ابزاری که کاملاً در مرورگر اجرا می‌شود بهتر است و یک بررسی تقریبی قطع شبکه پیش از هش کردن و دیدن ادامه کار آن است. همچنین سایت ناشناس ممکن است نام الگوریتم را اشتباه بزند؛ پس پیش از اتکا، دست‌کم یک نتیجه را با دستور محلی تطبیق دهید.

پس از گرفتن هش، آن را در جایی تاریخ‌دار خارج از کنترل خود منتشر کنید: مدرک OpenTimestamps، توکن مرجع مهر زمانی یا تراکنش زنجیره عمومی. سپس فایل اصلی دقیق را با یادداشت الگوریتم، هش و محل انتشار ذخیره کنید.

برای بررسی بعدی، همان دستور را روی همان فایل اجرا و دو رشته 64 نویسه‌ای را مقایسه کنید؛ پیشوند 0x و بزرگی حروف مهم نیست، اما بقیه نویسه‌ها باید مطابق باشند. اگر متفاوت‌اند، فایل تغییر کرده یا الگوریتم یا کدگذاری متفاوت استفاده کرده‌اید؛ علت‌های معمول PDF دوباره ذخیره‌شده، تبدیل پایان سطرها یا سطر تازه انتهایی هستند. اگر هش در زنجیره ثبت شده، تراکنش را در مرورگر بلوک باز کنید، هش را در داده‌ها پیدا و به همان روش مقایسه کنید.

  1. SHA-256 در macOS: shasum -a 256 agreement.pdf
  2. SHA-256 در Linux: sha256sum agreement.pdf
  3. SHA-256 در Windows (PowerShell): Get-FileHash agreement.pdf -Algorithm SHA256
  4. Keccak-256 با Python (ابتدا pip install pycryptodome): python3 -c "from Crypto.Hash import keccak; print(keccak.new(digest_bits=256, data=open('agreement.txt','rb').read()).hexdigest())"
  5. Keccak-256 با Node.js (ابتدا npm install ethers): node -e "const {ethers}=require('ethers'); console.log(ethers.keccak256(require('fs').readFileSync('agreement.txt')))"

پرسش‌های بعدی

آیا مهر زمانی نویسنده سند را ثابت می‌کند؟

خیر. هش بایت‌ها را شناسایی می‌کند، نه افراد را؛ هر کسی می‌تواند فایلی را هش کند که ننوشته است. TrustChain به پرسش نزدیکِ امضاکننده پاسخ می‌دهد: هر دو طرف پیش از امکان امضا با مدرک عکس‌دار و سلفی هویت را تأیید می‌کنند و حساب تأییدنشده نمی‌تواند امضا کند، پس امضاهای سابقه از هویت‌های تأییدشده می‌آیند. همچنان چیزی درباره نویسنده نخست متن نمی‌گوید.

هزینه ثبت توافق‌نامه در Polygon با TrustChain چقدر است؟

طرح رایگان ($0، بدون کارت) ماهانه 1 توافق‌نامه دارد؛ ثبت اضافه در Polygon یک‌بار $1 هزینه دارد و هویت تأییدشده می‌خواهد. Pro با ماهانه $19 شامل 20 توافق‌نامه و 20 ثبت است؛ Elite با $49 شامل 100 مورد از هر کدام است. طرح‌ها ماهانه و هر زمان قابل لغو هستند. ثبت در زنجیره اختیاری است: هر توافق‌نامه امضاشده رویداد ممیزی با مهر زمانی دارد که مرورگرها و برنامه‌ها نمی‌توانند ویرایش کنند، ثبت در زنجیره اثر انگشت Keccak-256 می‌افزاید و سابقه، گواهی و PDF خودتان در همه طرح‌ها رایگان هستند.

آیا متن توافق‌نامه روی بلاک‌چین ذخیره می‌شود؟

خیر. اگر ثبت در زنجیره را انتخاب کنید، اثر انگشت Keccak-256 و شناسه داخلی سابقه با دو جایگاه خالی کیف پول به زنجیره می‌روند؛ هرگز متن، نام یا ایمیل نمی‌روند. متن توافق‌نامه روی سرورهای TrustChain ذخیره می‌شود تا اثر انگشت محاسبه و سابقه، گواهی و PDF ارائه شود. گفت‌وگوی مذاکره رمزگذاری سرتاسری دارد و TrustChain نمی‌تواند پیام‌ها را بخواند. اثر انگشت علاوه بر متن، شناسه داخلی سابقه و حساب‌ها را پوشش می‌دهد، پس فقط از متن قابل محاسبه دوباره نیست.

آیا کسی بدون حساب می‌تواند مهر زمانی TrustChain را راستی‌آزمایی کند؟

بله. پیوند عمومی بدون حساب باز می‌شود و وضعیت سابقه و در صورت ثبت در زنجیره اثر انگشتش را نشان می‌دهد، هرگز هویت طرف‌ها را نشان نمی‌دهد؛ عنوان فقط در توافق‌نامه‌های ساخته‌شده با طرح Elite ظاهر می‌شود. اگر سابقه در زنجیره ثبت شده باشد، تراکنش Polygon در هر مرورگر بلوک مستقل از TrustChain قابل بررسی است. قرارداد هوشمند TrustChain در شبکه اصلی Polygon نشانی 0x649Bc303d15E173D95B4d379e163868b03cf5Fec دارد.

آیا مهر زمانی توافق‌نامه مرا از نظر حقوقی قوی‌تر می‌کند؟

TrustChain چنین ادعایی ندارد. مهر زمانی نشان می‌دهد متن تا تاریخی وجود داشته و سابقه TrustChain حساب‌های تأییدشده امضاکننده و زمان امضا را اضافه می‌کند؛ فقط همین را نشان می‌دهد. اثر انگشت ثبت‌شده و تاریخش همه جا قابل بررسی است؛ قابلیت اجرای حقوقی به محل طرف‌ها و توافقشان بستگی دارد و TrustChain در این باره ادعایی ندارد. اگر این پرسش برایتان مهم است، از وکیلی که در محل شما فعالیت می‌کند بپرسید.

بررسی‌های جدید هویت فعلاً متوقف‌اند. اگر قبلاً تأیید شده‌اید هنوز می‌توانید امضا کنید؛ در غیر این صورت امضا تا بازگشت بررسی‌ها منتظر می‌ماند. نوشتن پیش‌نویس، خواندن، اشتراک پیوند و جستجوی سوابق همچنان کار می‌کنند.

طرح Free ماهانه ۱ توافق را پوشش می‌دهد: بررسی هویت هر دو نفر توسط Sumsub، گزارش تاریخ‌دار امضاها و پیوند عمومی. کارت لازم نیست.

ادامه مطالعه