Chữ ký số là gì và hoạt động như thế nào?

Trung cấp1/19/2024, 6:23:26 PM
Blockchain sử dụng chữ ký số như một phần quan trọng của quá trình xác minh phi tập trung của họ, tạo ra một cách an toàn để xác thực các quy trình mà không tiết lộ danh tính người dùng.

Giới thiệu

Chữ ký số là một công cụ mật mã được sử dụng trong các lĩnh vực như an toàn thông tin, thương mại điện tử và phân phối phần mềm. Chúng cung cấp một phương pháp để xác minh nguồn gốc và tính toàn vẹn của các tin nhắn số hoặc tài liệu số.

Tuy nhiên, Công nghệ Blockchain đã phổ biến việc sử dụng chữ ký số như một phần không thể thiếu của quy trình xác minh giao dịch phi tập trung của nó. Bài viết này sẽ đi sâu vào cách hoạt động của chữ ký số, các thuật toán khác nhau được sử dụng bởi các blockchain, và các ứng dụng của chúng trong không gian Web3.

Hiểu về Chữ ký số

Nguồn: CoinGeek

Chữ ký số là một kỹ thuật mật mã được sử dụng để xác minh tính xác thực và tính toàn vẹn của các tin nhắn số, tài liệu hoặc giao dịch số. Chữ ký số được coi là an toàn hơn so với chữ ký điện tử.

Truyền thống, chữ ký đảm bảo các thỏa thuận có tính pháp lý, xác thực danh tính của các bên liên quan và có sự chấp nhận chắc chắn về các điều khoản của hợp đồng. Chữ ký số đi xa hơn để giải quyết vấn đề sửa đổi và làm giả, điều này làm cho nó trở thành một dạng chữ ký an toàn hơn.

Đặc điểm của Chữ ký số

Các tính năng chính của một chữ ký số là:

  • Xác thực: Chữ ký số chứng minh rằng tin nhắn được gửi bởi người gửi được yêu cầu bằng cách xác minh tin nhắn với khóa công khai của người gửi.
  • Không thể phủ nhận: Chữ ký số sử dụng các khóa công khai của người gửi để giải mã chữ ký, nếu thành công, người gửi không thể phủ nhận việc gửi tin nhắn.
  • Tính nguyên vẹn: Khả năng xác minh giá trị băm/chứng minh rằng dữ liệu không bị sửa đổi trong quá trình truyền.

Mật mã không đối xứng

Nguồn: WikiBooks

Mật mã không đối xứng là một phương pháp mã hóa và giải mã dữ liệu bằng hai khóa khác nhau, từ đó khiến một trong số các khóa, (đó chính là khóa công khai) được chia sẻ công khai với bất kỳ ai. Khóa khác, được gọi là khóa riêng tư, là một khóa bí mật và được lưu trữ an toàn chỉ được biết đến bởi người ký. Dữ liệu được mã hóa bằng một khóa chỉ có thể được giải mã bằng khóa kia.

Trong mật mã học, một khóa thường là một chuỗi số và chữ cái, được sử dụng để mã hóa dữ liệu sao cho nó trở nên ngẫu nhiên. Tuy nhiên, bất kỳ ai có khóa đúng để giải mã dữ liệu đều có thể giải mã nó trở lại dạng ban đầu.

Ví dụ, giả sử chúng ta lấy một hình ảnh và mã hóa nó với một khóa; hãy nói rằng khóa là 28j932d8kd8. Khi mã hóa với khóa này, hình ảnh của chúng ta sẽ được nhìn thấy là “X5CSycg14=xJ”. Tuy nhiên, bằng cách giải mã nó với khóa đúng, chúng ta có thể lấy lại hình ảnh của mình.

Các Thuật ngữ quan trọng bạn cần hiểu

Băm

Hashing là quá trình chuyển đổi dữ liệu (văn bản, tệp), một đầu vào có kích thước biến thiên thành một đầu ra có độ dài cố định của chữ cái và số, bằng cách sử dụng các hàm băm. Đó là một quy trình một chiều, trong đó giá trị băm không thể được quay trở lại đầu vào ban đầu, nhưng cùng một phần đầu vào sẽ luôn tạo ra cùng một giá trị băm.

Nguồn: CyberHoot

Trong hình ảnh trên, một đoạn văn bản (một câu đố) đi qua một hàm băm (SHA-256) và được chuyển đổi thành một giá trị băm (một độ dài cố định của các số và chữ cái).

Hash Functions là gì?

Một thuật toán xử lý dữ liệu cần được ký, tạo ra một giá trị băm có kích thước cố định. Hàm băm đảm bảo rằng chữ ký luôn có độ dài cố định, bất kể kích thước của dữ liệu gốc.

Giá trị băm

Đầu ra cuối cùng của hàm băm là giá trị băm, cũng được gọi là bản rút gọn, duy nhất cho mỗi đầu vào. Kích thước của giá trị băm dao động từ 32-bit đến 256-bit, tùy thuộc vào hàm băm được sử dụng. Giá trị băm chỉ cần cho một lần sử dụng trong các quy trình như xác thực dữ liệu hoặc tạo chữ ký số. Do đó, một chữ ký số là duy nhất cho mỗi giao dịch.

Làm thế nào Chữ ký số hoạt động?

Để thực hiện chữ ký số, bạn cần những điều sau đây:

  1. Một Cặp Khóa: Cặp khóa bao gồm một cặp khóa công khai/số bí mật. Khóa bí mật được sử dụng để tạo chữ ký, và khóa công khai tương ứng được sử dụng để xác minh chữ ký.

  2. Dữ liệu cần ký: Nội dung hoặc tin nhắn mà bạn muốn ký. Điều này có thể là một tài liệu, một giao dịch, hoặc bất kỳ dữ liệu số nào.

  3. Hàm băm: Một hàm băm được áp dụng vào dữ liệu để tạo ra một giá trị băm cố định. Giá trị băm này sau đó được mã hóa bằng khóa riêng để tạo ra chữ ký số.

  4. Thuật toán Chữ ký số: Một thuật toán kết hợp khóa riêng với dữ liệu cần ký, thường liên quan đến một hàm băm. Thuật toán này tạo ra chữ ký số.

  5. Cơ chế xác thực: Bất kỳ ai muốn xác thực chữ ký số cần truy cập vào khóa công khai và cùng một thuật toán chữ ký số. Khóa công khai được sử dụng để giải mã chữ ký số và tiết lộ giá trị băm, sau đó so sánh với giá trị băm được tính từ dữ liệu gốc.

Làm thế nào họ kết hợp để làm việc?

Nguồn: CamCert — Người gửi ký (mã hóa) giá trị băm bằng khóa riêng của họ, và người nhận xác minh tính xác thực của tin nhắn bằng cách so sánh giá trị băm

Bước 1: Tạo giá trị băm bằng cách đi qua dữ liệu gốc thông qua một hàm băm

Bước 2: Ký digest bằng khóa riêng của người gửi để tạo ra một mật mã.

Bước 3: Gửi tập tin đã mã hóa cho người nhận, người có thể giải mã nó bằng khóa công khai của người gửi để tạo ra một bản tóm tắt.

Bước 4: Sau khi giải mã, chạy dữ liệu qua cùng một hàm băm để tạo ra một bản tóm tắt tương đương.

Bước 5: Xác minh tính toàn vẹn dữ liệu bằng cách so sánh giá trị hash mới tạo với giá trị hash nhận được cùng với dữ liệu. Một sự khớp nhau xác nhận tính toàn vẹn của dữ liệu.

Hãy sử dụng hình minh họa về việc chuyển tài liệu giữa Mark người gửi và Karen người nhận.

  1. Ký và Gửi: Mark khởi xướng quá trình bằng cách gửi một tài liệu. Tài liệu được đi qua một thuật toán băm, tạo ra một giá trị băm. Giá trị băm này sau đó được mã hóa bằng khóa riêng của Mark, hoàn tất chữ ký số; một kết hợp của tài liệu và khóa riêng của anh ấy.
  2. Nhận và Xác minh: Karen, người nhận, sử dụng khóa công khai của Mark để giải mã chữ ký số, nhận được bản rõ. Độc lập, Karen áp dụng cùng thuật toán băm vào tài liệu nhận được, tạo ra một bản rõ khác.
  3. Karen so sánh hai bản tóm tắt: một từ chữ ký được giải mã và một bản tạo ra độc lập. Nếu chúng khớp nhau, Karen đảm bảo về tính toàn vẹn của tài liệu và xác thực về nguồn gốc của Mark.

Các thuật toán chữ ký được sử dụng trong Blockchain

Sự lựa chọn của các thuật toán Chữ ký số phụ thuộc vào các yếu tố như yêu cầu bảo mật, kích thước khóa và xem xét về hiệu suất. Mỗi thuật toán đều có điểm mạnh và điểm yếu riêng, và việc sử dụng có thể phát triển dựa trên sự tiến bộ trong mật mã học và thách thức bảo mật mới nổi.

Phần này thảo luận về các thuật toán chữ ký số phổ biến nhất trong công nghệ blockchain.

  1. ECDSA (Elliptic Curve Digital Signature Algorithm): Điều này sử dụng các khóa ngắn hơn và đòi hỏi ít tài nguyên tính toán hơn và sử dụng "khóa mật mã đường cong elip" là các nhóm hữu hạn của điểm trên một đường cong nơi mà một số hoạt động được thực hiện một cách dễ dàng theo hướng này nhưng khó khăn theo hướng ngược lại. Để bảo mật, ECDSA dựa trên vấn đề log rời rạc. Đây là thuật toán chữ ký phổ biến nhất được sử dụng trong công nghệ blockchain.

  2. EdDSA (Thuật toán Chữ ký số Edwards-curve): Đây là một thuật toán chữ ký số hiện đại và hiệu quả dựa trên mật mã đường cong elip. Nó được giới thiệu để giải quyết những lo ngại cụ thể và cải thiện hiệu suất so với các hệ thống chữ ký khác như ECDSA. Thuật toán được thiết kế để cung cấp bảo mật mạnh mẽ với kích thước khóa tương đối nhỏ, làm cho nó phù hợp cho các ứng dụng khác nhau, bao gồm công nghệ blockchain ví dụ như Cardano và Solana.

  3. Thuật toán Schnorr: Chữ ký Schnorr là một loại thuật toán chữ ký số cho phép tập hợp, đó. nhiều chữ ký trên cùng một tin nhắn có thể được gói gọn thành một chữ ký duy nhất. Chữ ký này không chỉ hiệu quả về không gian mà còn tạo điều kiện cho quá trình xác minh hiệu quả hơn.
    Nó chứng minh hiệu quả trong các tình huống liên quan đến nhiều bên ký một thông điệp chung, như ủy quyền giao dịch từ một địa chỉ đa chữ ký (multisig). Trong những trường hợp như vậy, mỗi người tham gia phải cung cấp khóa công khai và chữ ký của họ. Do đó, nếu ba bên có ý định ký cùng một thông điệp, bằng chứng sẽ bao gồm ba khóa công khai và ba chữ ký. Điều này dường như không hiệu quả trong tính toán và lưu trữ vì mỗi nút được yêu cầu thực hiện chức năng xác minh chữ ký ba lần và lưu trữ ba bộ chữ ký và khóa công khai riêng biệt.
    Thuật toán Schnorr đơn giản chỉ tạo ra một chữ ký hợp lệ cho tổng của các khóa công khai của họ. Tích hợp khóa có thể giảm phí gas và cải thiện khả năng mở rộng cơ sở khi chữ ký đến từ một giao dịch đa chữ ký chiếm cùng một lượng không gian trong một khối như chữ ký đến từ một giao dịch của một bên.

  4. Chữ ký BLS: Thuật toán mật mã BLS (Boneh-Lynn-Shacham) dựa trên sự ghép cặp bilinear trên các nhóm đường cong elliptic. Được giới thiệu bởi Dan Boneh, Ben Lynn và Hovav Shacham vào năm 2001. Trọng tâm chính của mật mã BLS là các hệ thống chữ ký hiệu quả và an toàn hỗ trợ các tính chất đặc biệt như tổng hợp. Ngoài ra, Chữ ký BLS được sử dụng trên Ethereum 2.0 và Chia.

Blockchains, their Hashing Algorithm, and Signature Algorithm

  1. Bitcoin (BTC):
    Thuật toán băm: SHA-256
    Thuật toán Chữ ký số: ECDSA, Schnoor (TapRoot Soft Fork)

  2. Ethereum (ETH):
    Thuật toán băm: Keccak
    Thuật toán Chữ ký số: ECDSA

  3. Litecoin (LTC):
    Thuật toán Hashing: Scrypt
    Thuật toán Chữ ký số: ECDSA

  4. Ripple (XRP):
    Thuật toán băm: SHA-256
    Thuật toán Chữ ký số: ECDSA

  5. Cardano (ADA):
    Thuật toán băm: Keccak
    Thuật toán Chữ ký số: EdDSA (Thuật toán Chữ ký số Edwards-curve)

  6. Polkadot (DOT):
    Thuật toán băm: Blake2
    Thuật toán chữ ký số: EdDSA

  7. Tezos (XTZ):
    Thuật toán băm: Blake2b
    Thuật toán Chữ ký số: EdDSA

  8. Chuỗi BNB (BNB):
    Thuật toán băm: Keccak (được sử dụng cho các token BEP-2)
    Thuật toán Chữ ký số: ECDSA

Cách Bitcoin Sử Dụng Chữ Ký Số

Bitcoin sử dụng thuật toán Chữ ký số đường cong Elliptic Curve (ECDSA) để tạo ra một chữ ký duy nhất cho mỗi giao dịch. Tuy nhiên, với sự tiến bộ gần đây, thuật toán Schnorr đã được giới thiệu thông qua soft fork TapRoot. Thuật toán này, nổi tiếng với hiệu suất lưu trữ và tốc độ xác minh, có thể cải thiện tính mở rộng của Bitcoin lên đến 30%, với tính năng tổng hợp giao dịch của nó.

)

Nguồn: TimesofIndia — Chỉ có các giao dịch đã được ký mới có thể được phát và xác thực bởi các nút mạng

Cơ chế cơ bản của giao dịch Bitcoin bao gồm một loạt các bước bao gồm việc sử dụng chữ ký số.

Đây là một cái nhìn tổng quan:

  1. Người gửi quyết định thực hiện một giao dịch bitcoin, Điều này có thể liên quan đến việc gửi bitcoins cho người dùng khác hoặc nhiều người dùng.
  2. Người gửi tạo một tin nhắn giao dịch chứa các chi tiết quan trọng như địa chỉ ví của người nhận, số lượng BTC được gửi, bất kỳ phí liên quan nào, và nguồn gốc của Bitcoin (đầu ra giao dịch chưa được sử dụng hoặc UTXOs) được sử dụng như đầu vào cho giao dịch.
  3. Người gửi ký tin nhắn giao dịch bằng khóa riêng của họ bằng cách sử dụng Thuật toán Chữ ký số Đường cong Elliptic (ECDSA). Chữ ký số này cung cấp bằng chứng cho việc giao dịch đã được ủy quyền bởi chủ sở hữu đúng của địa chỉ gửi.
  4. Thông điệp giao dịch được băm bằng SHA-256 (Thuật toán băm an toàn 256-bit) và sau đó tiếp tục được băm bằng RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest 160-bit). Quá trình này tạo ra một băm độ dài cố định, thường được biết đến là ID giao dịch hoặc băm.
  5. Giao dịch đã được ký được phát sóng đến mạng lưới Bitcoin, nơi nó trở nên hiển thị cho tất cả các nút (máy tính tham gia vào mạng lưới Bitcoin). Các nút trong mạng lưới, bao gồm cả các thợ đào, xác minh tính hợp lệ của giao dịch. Xác minh này bao gồm kiểm tra chữ ký số để đảm bảo rằng nó khớp với khóa công khai của người gửi và rằng các đầu vào (UTXOs) được sử dụng trong giao dịch không được tiêu và hợp lệ.
  6. Các giao dịch hợp lệ được thu thập bởi các thợ đào, họ cạnh tranh để giải quyết một vấn đề toán học phức tạp (chứng minh công việc). Người đào đầu tiên giải quyết vấn đề thêm một khối chứa các giao dịch đã xác minh vào chuỗi khối.
  7. Khối mới được thêm vào được phát sóng đến mạng, và các nút khác xác minh bằng chứng công việc và tính hợp lệ của các giao dịch trong khối. Khi đạt được sự đồng thuận, khối được coi là đã được xác nhận, và giao dịch được ghi lại vĩnh viễn trên chuỗi khối.
  8. Số dư ví của người nhận được cập nhật để phản ánh số Bitcoin đã nhận, và số dư ví của người gửi được điều chỉnh để tính đến các UTXO đã tiêu.

Ứng dụng của Chữ ký số trong Web3

Bây giờ chúng ta đã hiểu về cách hoạt động và tầm quan trọng của chữ ký. Hãy nhấn mạnh các ứng dụng thực tế của chữ ký số trong việc bảo vệ giao dịch, xác thực danh tính và đảm bảo tính toàn vẹn của dữ liệu trong hệ sinh thái Web3.

Xác thực giao dịch

Ví dụ, Alice muốn chuyển Ethereum cho Bob. Cô ấy ký giao dịch bằng khóa riêng của mình, tạo ra một chữ ký số. Mạng Ethereum xác minh chữ ký bằng khóa công khai của Alice, đảm bảo giao dịch được ủy quyền bởi cô ấy. Điều này cũng áp dụng cho việc chuyển quyền sở hữu của một NFT, vì nó được ghi lại trên blockchain với một giao dịch đã ký, đảm bảo tính hợp pháp của việc thay đổi quyền sở hữu.

Thực thi Hợp đồng Thông minh

Hợp đồng thông minh được xây dựng để tương tác với chữ ký và có thể thực hiện giao dịch sau khi được xác minh. Ví dụ, trong một nền tảng cho vay phi tập trung, người dùng khởi tạo yêu cầu vay. Yêu cầu này kích hoạt việc thực thi hợp đồng thông minh. Người dùng ký giao dịch bằng khóa riêng của họ, và hợp đồng thông minh xác minh chữ ký để thực hiện hợp đồng vay.

Tính nhận dạng và xác thực phi tập trung

Một người dùng đăng nhập vào một ứng dụng phi tập trung (dApp) bằng cách sử dụng danh tính blockchain của họ, ví dụ: địa chỉ Ethereum. Ứng dụng yêu cầu một thông điệp đã được ký từ người dùng (khóa riêng), đóng vai trò là bằng chứng sở hữu. Chữ ký số xác thực danh tính của người dùng.

Điều này cũng có thể là một cách dễ dàng để tham gia người dùng Web3 mới, vì họ không cần tạo tài khoản và lưu mật khẩu khác, người dùng có thể ẩn danh tính của mình và không nhất thiết phải tiết lộ chi tiết riêng như địa chỉ email của họ.

Tính toàn vẹn dữ liệu và Không thể phủ nhận của NFTs

Một nghệ sĩ ký một tệp nghệ thuật kỹ thuật số bằng khóa riêng của họ trước khi đúc nó thành một NFT. Chữ ký số đảm bảo tính toàn vẹn của tác phẩm nghệ thuật, và nghệ sĩ không thể sau này phủ nhận việc sáng tác.

Hệ thống bỏ phiếu

Trong một nền tảng bỏ phiếu phi tập trung, cử tri đúng phiếu bầu của họ bằng cách ký tên lựa chọn của mình bằng khóa riêng. Các chữ ký số xác thực các phiếu bầu và đảm bảo mỗi cử tri có thể xác minh đóng góp của mình. Ứng dụng này thường thấy trong việc bỏ phiếu quản trị và bỏ phiếu giao thức đồng thuận.

Tương tác Mạng lưới Liên chuỗi

Một người dùng chuyển đổi một token từ một blockchain sang blockchain khác bằng cách sử dụng giao thức cầu nối. Người dùng ký giao dịch trên chuỗi nguồn, và chuỗi đích xác minh chữ ký, cho phép chuyển giao qua chuỗi.

Thách thức và Xu hướng Tương lai

Thách thức của các cuộc tấn công lượng tử

Chữ ký số vẫn là một trong những cách xác thực không thể phá vỡ trên blockchain. Tuy nhiên, sự phát triển của máy tính lượng tử quy mô lớn sẽ đe dọa đến bảo mật của các blockchain, vì các thuật toán mật mã có thể được giải mã nhanh chóng bởi máy tính lượng tử.

Máy tính lượng tử có thể xử lý các nhiệm vụ ở tốc độ đáng kinh ngạc, hoàn thành trong vài giây những gì mà máy tính truyền thống mất vài giờ, những kẻ xấu có thể sử dụng máy tính lượng tử để tiến hành các cuộc tấn công lượng tử có thể đe dọa toàn bộ blockchain.

Tuy nhiên, chúng có thể được ngăn chặn bằng chữ ký sau-quantum, đang được phát triển, mặc dù chúng sẽ chiếm nhiều không gian lưu trữ hơn trên blockchain.

Kết luận

Chữ ký số xác minh tính xác thực và tính nguyên vẹn của dữ liệu, dựa trên nguyên lý của mật mã không đối xứng và băm. Nó hoạt động bằng cách sử dụng khóa riêng của người gửi để xác thực dạng băm của dữ liệu, và người nhận xác minh với khóa công khai của người gửi. Các thuật toán mật mã phổ biến nhất được các blockchain sử dụng là ECDSA, EdDSA, Schnoor và chữ ký BLS.

Ngoài ra, việc sử dụng chữ ký số chủ yếu được áp dụng trong xác thực giao dịch, thực thi hợp đồng thông minh, bỏ phiếu quản trị, chuyển giao qua các chuỗi khối và tính toàn vẹn dữ liệu của NFTs.

Автор: Paul
Перекладач: Sonia
Рецензент(-и): Piccolo、Edward、Ashley He
* Ця інформація не є фінансовою порадою чи будь-якою іншою рекомендацією, запропонованою чи схваленою Gate.io.
* Цю статтю заборонено відтворювати, передавати чи копіювати без посилання на Gate.io. Порушення є порушенням Закону про авторське право і може бути предметом судового розгляду.

Chữ ký số là gì và hoạt động như thế nào?

Trung cấp1/19/2024, 6:23:26 PM
Blockchain sử dụng chữ ký số như một phần quan trọng của quá trình xác minh phi tập trung của họ, tạo ra một cách an toàn để xác thực các quy trình mà không tiết lộ danh tính người dùng.

Giới thiệu

Chữ ký số là một công cụ mật mã được sử dụng trong các lĩnh vực như an toàn thông tin, thương mại điện tử và phân phối phần mềm. Chúng cung cấp một phương pháp để xác minh nguồn gốc và tính toàn vẹn của các tin nhắn số hoặc tài liệu số.

Tuy nhiên, Công nghệ Blockchain đã phổ biến việc sử dụng chữ ký số như một phần không thể thiếu của quy trình xác minh giao dịch phi tập trung của nó. Bài viết này sẽ đi sâu vào cách hoạt động của chữ ký số, các thuật toán khác nhau được sử dụng bởi các blockchain, và các ứng dụng của chúng trong không gian Web3.

Hiểu về Chữ ký số

Nguồn: CoinGeek

Chữ ký số là một kỹ thuật mật mã được sử dụng để xác minh tính xác thực và tính toàn vẹn của các tin nhắn số, tài liệu hoặc giao dịch số. Chữ ký số được coi là an toàn hơn so với chữ ký điện tử.

Truyền thống, chữ ký đảm bảo các thỏa thuận có tính pháp lý, xác thực danh tính của các bên liên quan và có sự chấp nhận chắc chắn về các điều khoản của hợp đồng. Chữ ký số đi xa hơn để giải quyết vấn đề sửa đổi và làm giả, điều này làm cho nó trở thành một dạng chữ ký an toàn hơn.

Đặc điểm của Chữ ký số

Các tính năng chính của một chữ ký số là:

  • Xác thực: Chữ ký số chứng minh rằng tin nhắn được gửi bởi người gửi được yêu cầu bằng cách xác minh tin nhắn với khóa công khai của người gửi.
  • Không thể phủ nhận: Chữ ký số sử dụng các khóa công khai của người gửi để giải mã chữ ký, nếu thành công, người gửi không thể phủ nhận việc gửi tin nhắn.
  • Tính nguyên vẹn: Khả năng xác minh giá trị băm/chứng minh rằng dữ liệu không bị sửa đổi trong quá trình truyền.

Mật mã không đối xứng

Nguồn: WikiBooks

Mật mã không đối xứng là một phương pháp mã hóa và giải mã dữ liệu bằng hai khóa khác nhau, từ đó khiến một trong số các khóa, (đó chính là khóa công khai) được chia sẻ công khai với bất kỳ ai. Khóa khác, được gọi là khóa riêng tư, là một khóa bí mật và được lưu trữ an toàn chỉ được biết đến bởi người ký. Dữ liệu được mã hóa bằng một khóa chỉ có thể được giải mã bằng khóa kia.

Trong mật mã học, một khóa thường là một chuỗi số và chữ cái, được sử dụng để mã hóa dữ liệu sao cho nó trở nên ngẫu nhiên. Tuy nhiên, bất kỳ ai có khóa đúng để giải mã dữ liệu đều có thể giải mã nó trở lại dạng ban đầu.

Ví dụ, giả sử chúng ta lấy một hình ảnh và mã hóa nó với một khóa; hãy nói rằng khóa là 28j932d8kd8. Khi mã hóa với khóa này, hình ảnh của chúng ta sẽ được nhìn thấy là “X5CSycg14=xJ”. Tuy nhiên, bằng cách giải mã nó với khóa đúng, chúng ta có thể lấy lại hình ảnh của mình.

Các Thuật ngữ quan trọng bạn cần hiểu

Băm

Hashing là quá trình chuyển đổi dữ liệu (văn bản, tệp), một đầu vào có kích thước biến thiên thành một đầu ra có độ dài cố định của chữ cái và số, bằng cách sử dụng các hàm băm. Đó là một quy trình một chiều, trong đó giá trị băm không thể được quay trở lại đầu vào ban đầu, nhưng cùng một phần đầu vào sẽ luôn tạo ra cùng một giá trị băm.

Nguồn: CyberHoot

Trong hình ảnh trên, một đoạn văn bản (một câu đố) đi qua một hàm băm (SHA-256) và được chuyển đổi thành một giá trị băm (một độ dài cố định của các số và chữ cái).

Hash Functions là gì?

Một thuật toán xử lý dữ liệu cần được ký, tạo ra một giá trị băm có kích thước cố định. Hàm băm đảm bảo rằng chữ ký luôn có độ dài cố định, bất kể kích thước của dữ liệu gốc.

Giá trị băm

Đầu ra cuối cùng của hàm băm là giá trị băm, cũng được gọi là bản rút gọn, duy nhất cho mỗi đầu vào. Kích thước của giá trị băm dao động từ 32-bit đến 256-bit, tùy thuộc vào hàm băm được sử dụng. Giá trị băm chỉ cần cho một lần sử dụng trong các quy trình như xác thực dữ liệu hoặc tạo chữ ký số. Do đó, một chữ ký số là duy nhất cho mỗi giao dịch.

Làm thế nào Chữ ký số hoạt động?

Để thực hiện chữ ký số, bạn cần những điều sau đây:

  1. Một Cặp Khóa: Cặp khóa bao gồm một cặp khóa công khai/số bí mật. Khóa bí mật được sử dụng để tạo chữ ký, và khóa công khai tương ứng được sử dụng để xác minh chữ ký.

  2. Dữ liệu cần ký: Nội dung hoặc tin nhắn mà bạn muốn ký. Điều này có thể là một tài liệu, một giao dịch, hoặc bất kỳ dữ liệu số nào.

  3. Hàm băm: Một hàm băm được áp dụng vào dữ liệu để tạo ra một giá trị băm cố định. Giá trị băm này sau đó được mã hóa bằng khóa riêng để tạo ra chữ ký số.

  4. Thuật toán Chữ ký số: Một thuật toán kết hợp khóa riêng với dữ liệu cần ký, thường liên quan đến một hàm băm. Thuật toán này tạo ra chữ ký số.

  5. Cơ chế xác thực: Bất kỳ ai muốn xác thực chữ ký số cần truy cập vào khóa công khai và cùng một thuật toán chữ ký số. Khóa công khai được sử dụng để giải mã chữ ký số và tiết lộ giá trị băm, sau đó so sánh với giá trị băm được tính từ dữ liệu gốc.

Làm thế nào họ kết hợp để làm việc?

Nguồn: CamCert — Người gửi ký (mã hóa) giá trị băm bằng khóa riêng của họ, và người nhận xác minh tính xác thực của tin nhắn bằng cách so sánh giá trị băm

Bước 1: Tạo giá trị băm bằng cách đi qua dữ liệu gốc thông qua một hàm băm

Bước 2: Ký digest bằng khóa riêng của người gửi để tạo ra một mật mã.

Bước 3: Gửi tập tin đã mã hóa cho người nhận, người có thể giải mã nó bằng khóa công khai của người gửi để tạo ra một bản tóm tắt.

Bước 4: Sau khi giải mã, chạy dữ liệu qua cùng một hàm băm để tạo ra một bản tóm tắt tương đương.

Bước 5: Xác minh tính toàn vẹn dữ liệu bằng cách so sánh giá trị hash mới tạo với giá trị hash nhận được cùng với dữ liệu. Một sự khớp nhau xác nhận tính toàn vẹn của dữ liệu.

Hãy sử dụng hình minh họa về việc chuyển tài liệu giữa Mark người gửi và Karen người nhận.

  1. Ký và Gửi: Mark khởi xướng quá trình bằng cách gửi một tài liệu. Tài liệu được đi qua một thuật toán băm, tạo ra một giá trị băm. Giá trị băm này sau đó được mã hóa bằng khóa riêng của Mark, hoàn tất chữ ký số; một kết hợp của tài liệu và khóa riêng của anh ấy.
  2. Nhận và Xác minh: Karen, người nhận, sử dụng khóa công khai của Mark để giải mã chữ ký số, nhận được bản rõ. Độc lập, Karen áp dụng cùng thuật toán băm vào tài liệu nhận được, tạo ra một bản rõ khác.
  3. Karen so sánh hai bản tóm tắt: một từ chữ ký được giải mã và một bản tạo ra độc lập. Nếu chúng khớp nhau, Karen đảm bảo về tính toàn vẹn của tài liệu và xác thực về nguồn gốc của Mark.

Các thuật toán chữ ký được sử dụng trong Blockchain

Sự lựa chọn của các thuật toán Chữ ký số phụ thuộc vào các yếu tố như yêu cầu bảo mật, kích thước khóa và xem xét về hiệu suất. Mỗi thuật toán đều có điểm mạnh và điểm yếu riêng, và việc sử dụng có thể phát triển dựa trên sự tiến bộ trong mật mã học và thách thức bảo mật mới nổi.

Phần này thảo luận về các thuật toán chữ ký số phổ biến nhất trong công nghệ blockchain.

  1. ECDSA (Elliptic Curve Digital Signature Algorithm): Điều này sử dụng các khóa ngắn hơn và đòi hỏi ít tài nguyên tính toán hơn và sử dụng "khóa mật mã đường cong elip" là các nhóm hữu hạn của điểm trên một đường cong nơi mà một số hoạt động được thực hiện một cách dễ dàng theo hướng này nhưng khó khăn theo hướng ngược lại. Để bảo mật, ECDSA dựa trên vấn đề log rời rạc. Đây là thuật toán chữ ký phổ biến nhất được sử dụng trong công nghệ blockchain.

  2. EdDSA (Thuật toán Chữ ký số Edwards-curve): Đây là một thuật toán chữ ký số hiện đại và hiệu quả dựa trên mật mã đường cong elip. Nó được giới thiệu để giải quyết những lo ngại cụ thể và cải thiện hiệu suất so với các hệ thống chữ ký khác như ECDSA. Thuật toán được thiết kế để cung cấp bảo mật mạnh mẽ với kích thước khóa tương đối nhỏ, làm cho nó phù hợp cho các ứng dụng khác nhau, bao gồm công nghệ blockchain ví dụ như Cardano và Solana.

  3. Thuật toán Schnorr: Chữ ký Schnorr là một loại thuật toán chữ ký số cho phép tập hợp, đó. nhiều chữ ký trên cùng một tin nhắn có thể được gói gọn thành một chữ ký duy nhất. Chữ ký này không chỉ hiệu quả về không gian mà còn tạo điều kiện cho quá trình xác minh hiệu quả hơn.
    Nó chứng minh hiệu quả trong các tình huống liên quan đến nhiều bên ký một thông điệp chung, như ủy quyền giao dịch từ một địa chỉ đa chữ ký (multisig). Trong những trường hợp như vậy, mỗi người tham gia phải cung cấp khóa công khai và chữ ký của họ. Do đó, nếu ba bên có ý định ký cùng một thông điệp, bằng chứng sẽ bao gồm ba khóa công khai và ba chữ ký. Điều này dường như không hiệu quả trong tính toán và lưu trữ vì mỗi nút được yêu cầu thực hiện chức năng xác minh chữ ký ba lần và lưu trữ ba bộ chữ ký và khóa công khai riêng biệt.
    Thuật toán Schnorr đơn giản chỉ tạo ra một chữ ký hợp lệ cho tổng của các khóa công khai của họ. Tích hợp khóa có thể giảm phí gas và cải thiện khả năng mở rộng cơ sở khi chữ ký đến từ một giao dịch đa chữ ký chiếm cùng một lượng không gian trong một khối như chữ ký đến từ một giao dịch của một bên.

  4. Chữ ký BLS: Thuật toán mật mã BLS (Boneh-Lynn-Shacham) dựa trên sự ghép cặp bilinear trên các nhóm đường cong elliptic. Được giới thiệu bởi Dan Boneh, Ben Lynn và Hovav Shacham vào năm 2001. Trọng tâm chính của mật mã BLS là các hệ thống chữ ký hiệu quả và an toàn hỗ trợ các tính chất đặc biệt như tổng hợp. Ngoài ra, Chữ ký BLS được sử dụng trên Ethereum 2.0 và Chia.

Blockchains, their Hashing Algorithm, and Signature Algorithm

  1. Bitcoin (BTC):
    Thuật toán băm: SHA-256
    Thuật toán Chữ ký số: ECDSA, Schnoor (TapRoot Soft Fork)

  2. Ethereum (ETH):
    Thuật toán băm: Keccak
    Thuật toán Chữ ký số: ECDSA

  3. Litecoin (LTC):
    Thuật toán Hashing: Scrypt
    Thuật toán Chữ ký số: ECDSA

  4. Ripple (XRP):
    Thuật toán băm: SHA-256
    Thuật toán Chữ ký số: ECDSA

  5. Cardano (ADA):
    Thuật toán băm: Keccak
    Thuật toán Chữ ký số: EdDSA (Thuật toán Chữ ký số Edwards-curve)

  6. Polkadot (DOT):
    Thuật toán băm: Blake2
    Thuật toán chữ ký số: EdDSA

  7. Tezos (XTZ):
    Thuật toán băm: Blake2b
    Thuật toán Chữ ký số: EdDSA

  8. Chuỗi BNB (BNB):
    Thuật toán băm: Keccak (được sử dụng cho các token BEP-2)
    Thuật toán Chữ ký số: ECDSA

Cách Bitcoin Sử Dụng Chữ Ký Số

Bitcoin sử dụng thuật toán Chữ ký số đường cong Elliptic Curve (ECDSA) để tạo ra một chữ ký duy nhất cho mỗi giao dịch. Tuy nhiên, với sự tiến bộ gần đây, thuật toán Schnorr đã được giới thiệu thông qua soft fork TapRoot. Thuật toán này, nổi tiếng với hiệu suất lưu trữ và tốc độ xác minh, có thể cải thiện tính mở rộng của Bitcoin lên đến 30%, với tính năng tổng hợp giao dịch của nó.

)

Nguồn: TimesofIndia — Chỉ có các giao dịch đã được ký mới có thể được phát và xác thực bởi các nút mạng

Cơ chế cơ bản của giao dịch Bitcoin bao gồm một loạt các bước bao gồm việc sử dụng chữ ký số.

Đây là một cái nhìn tổng quan:

  1. Người gửi quyết định thực hiện một giao dịch bitcoin, Điều này có thể liên quan đến việc gửi bitcoins cho người dùng khác hoặc nhiều người dùng.
  2. Người gửi tạo một tin nhắn giao dịch chứa các chi tiết quan trọng như địa chỉ ví của người nhận, số lượng BTC được gửi, bất kỳ phí liên quan nào, và nguồn gốc của Bitcoin (đầu ra giao dịch chưa được sử dụng hoặc UTXOs) được sử dụng như đầu vào cho giao dịch.
  3. Người gửi ký tin nhắn giao dịch bằng khóa riêng của họ bằng cách sử dụng Thuật toán Chữ ký số Đường cong Elliptic (ECDSA). Chữ ký số này cung cấp bằng chứng cho việc giao dịch đã được ủy quyền bởi chủ sở hữu đúng của địa chỉ gửi.
  4. Thông điệp giao dịch được băm bằng SHA-256 (Thuật toán băm an toàn 256-bit) và sau đó tiếp tục được băm bằng RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest 160-bit). Quá trình này tạo ra một băm độ dài cố định, thường được biết đến là ID giao dịch hoặc băm.
  5. Giao dịch đã được ký được phát sóng đến mạng lưới Bitcoin, nơi nó trở nên hiển thị cho tất cả các nút (máy tính tham gia vào mạng lưới Bitcoin). Các nút trong mạng lưới, bao gồm cả các thợ đào, xác minh tính hợp lệ của giao dịch. Xác minh này bao gồm kiểm tra chữ ký số để đảm bảo rằng nó khớp với khóa công khai của người gửi và rằng các đầu vào (UTXOs) được sử dụng trong giao dịch không được tiêu và hợp lệ.
  6. Các giao dịch hợp lệ được thu thập bởi các thợ đào, họ cạnh tranh để giải quyết một vấn đề toán học phức tạp (chứng minh công việc). Người đào đầu tiên giải quyết vấn đề thêm một khối chứa các giao dịch đã xác minh vào chuỗi khối.
  7. Khối mới được thêm vào được phát sóng đến mạng, và các nút khác xác minh bằng chứng công việc và tính hợp lệ của các giao dịch trong khối. Khi đạt được sự đồng thuận, khối được coi là đã được xác nhận, và giao dịch được ghi lại vĩnh viễn trên chuỗi khối.
  8. Số dư ví của người nhận được cập nhật để phản ánh số Bitcoin đã nhận, và số dư ví của người gửi được điều chỉnh để tính đến các UTXO đã tiêu.

Ứng dụng của Chữ ký số trong Web3

Bây giờ chúng ta đã hiểu về cách hoạt động và tầm quan trọng của chữ ký. Hãy nhấn mạnh các ứng dụng thực tế của chữ ký số trong việc bảo vệ giao dịch, xác thực danh tính và đảm bảo tính toàn vẹn của dữ liệu trong hệ sinh thái Web3.

Xác thực giao dịch

Ví dụ, Alice muốn chuyển Ethereum cho Bob. Cô ấy ký giao dịch bằng khóa riêng của mình, tạo ra một chữ ký số. Mạng Ethereum xác minh chữ ký bằng khóa công khai của Alice, đảm bảo giao dịch được ủy quyền bởi cô ấy. Điều này cũng áp dụng cho việc chuyển quyền sở hữu của một NFT, vì nó được ghi lại trên blockchain với một giao dịch đã ký, đảm bảo tính hợp pháp của việc thay đổi quyền sở hữu.

Thực thi Hợp đồng Thông minh

Hợp đồng thông minh được xây dựng để tương tác với chữ ký và có thể thực hiện giao dịch sau khi được xác minh. Ví dụ, trong một nền tảng cho vay phi tập trung, người dùng khởi tạo yêu cầu vay. Yêu cầu này kích hoạt việc thực thi hợp đồng thông minh. Người dùng ký giao dịch bằng khóa riêng của họ, và hợp đồng thông minh xác minh chữ ký để thực hiện hợp đồng vay.

Tính nhận dạng và xác thực phi tập trung

Một người dùng đăng nhập vào một ứng dụng phi tập trung (dApp) bằng cách sử dụng danh tính blockchain của họ, ví dụ: địa chỉ Ethereum. Ứng dụng yêu cầu một thông điệp đã được ký từ người dùng (khóa riêng), đóng vai trò là bằng chứng sở hữu. Chữ ký số xác thực danh tính của người dùng.

Điều này cũng có thể là một cách dễ dàng để tham gia người dùng Web3 mới, vì họ không cần tạo tài khoản và lưu mật khẩu khác, người dùng có thể ẩn danh tính của mình và không nhất thiết phải tiết lộ chi tiết riêng như địa chỉ email của họ.

Tính toàn vẹn dữ liệu và Không thể phủ nhận của NFTs

Một nghệ sĩ ký một tệp nghệ thuật kỹ thuật số bằng khóa riêng của họ trước khi đúc nó thành một NFT. Chữ ký số đảm bảo tính toàn vẹn của tác phẩm nghệ thuật, và nghệ sĩ không thể sau này phủ nhận việc sáng tác.

Hệ thống bỏ phiếu

Trong một nền tảng bỏ phiếu phi tập trung, cử tri đúng phiếu bầu của họ bằng cách ký tên lựa chọn của mình bằng khóa riêng. Các chữ ký số xác thực các phiếu bầu và đảm bảo mỗi cử tri có thể xác minh đóng góp của mình. Ứng dụng này thường thấy trong việc bỏ phiếu quản trị và bỏ phiếu giao thức đồng thuận.

Tương tác Mạng lưới Liên chuỗi

Một người dùng chuyển đổi một token từ một blockchain sang blockchain khác bằng cách sử dụng giao thức cầu nối. Người dùng ký giao dịch trên chuỗi nguồn, và chuỗi đích xác minh chữ ký, cho phép chuyển giao qua chuỗi.

Thách thức và Xu hướng Tương lai

Thách thức của các cuộc tấn công lượng tử

Chữ ký số vẫn là một trong những cách xác thực không thể phá vỡ trên blockchain. Tuy nhiên, sự phát triển của máy tính lượng tử quy mô lớn sẽ đe dọa đến bảo mật của các blockchain, vì các thuật toán mật mã có thể được giải mã nhanh chóng bởi máy tính lượng tử.

Máy tính lượng tử có thể xử lý các nhiệm vụ ở tốc độ đáng kinh ngạc, hoàn thành trong vài giây những gì mà máy tính truyền thống mất vài giờ, những kẻ xấu có thể sử dụng máy tính lượng tử để tiến hành các cuộc tấn công lượng tử có thể đe dọa toàn bộ blockchain.

Tuy nhiên, chúng có thể được ngăn chặn bằng chữ ký sau-quantum, đang được phát triển, mặc dù chúng sẽ chiếm nhiều không gian lưu trữ hơn trên blockchain.

Kết luận

Chữ ký số xác minh tính xác thực và tính nguyên vẹn của dữ liệu, dựa trên nguyên lý của mật mã không đối xứng và băm. Nó hoạt động bằng cách sử dụng khóa riêng của người gửi để xác thực dạng băm của dữ liệu, và người nhận xác minh với khóa công khai của người gửi. Các thuật toán mật mã phổ biến nhất được các blockchain sử dụng là ECDSA, EdDSA, Schnoor và chữ ký BLS.

Ngoài ra, việc sử dụng chữ ký số chủ yếu được áp dụng trong xác thực giao dịch, thực thi hợp đồng thông minh, bỏ phiếu quản trị, chuyển giao qua các chuỗi khối và tính toàn vẹn dữ liệu của NFTs.

Автор: Paul
Перекладач: Sonia
Рецензент(-и): Piccolo、Edward、Ashley He
* Ця інформація не є фінансовою порадою чи будь-якою іншою рекомендацією, запропонованою чи схваленою Gate.io.
* Цю статтю заборонено відтворювати, передавати чи копіювати без посилання на Gate.io. Порушення є порушенням Закону про авторське право і може бути предметом судового розгляду.
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!