Chữ kí số trong Blockchain là gì?? Những điều cần biết

Chữ ký kỹ thuật số trong blockchain 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 tài liệu điện tử, tin nhắn và dữ liệu số khác. Trong bài viết này, chúng ta sẽ tìm hiểu về chữ ký kỹ thuật số trong Blockchain và nó có thật sự quan trọng như vậy hay không?

Chữ ký số (Digital Signature) trong Blockchain là gì?

Chữ ký số (Digital signature) là cơ chế để người dùng tự chứng minh được quyền sở hữu định danh (thực chất là địa chỉ Blockchain) của một người tham gia mạng lưới Blockchain.

Chữ ký số là một chuỗi ký tự mã hóa được gửi đi cùng các dữ liệu gốc của giao dịch trên nền tảng Blockchain. Để tạo ra chữ ký số, người dùng sẽ sử dụng khóa bí mật để mã hóa (gọi là ký chữ ký số) các dữ liệu có trong giao dịch gửi đến người nhận. Một điểm lưu ý là khóa bí mật dùng để mã hóa này chính là khóa bí mật tạo ra địa chỉ Blockchain của người gửi. Chữ ký số sẽ thay đổi nếu dữ liệu giao dịch dùng để mã hóa thay đổi, hoặc là trong trường hợp cùng một dữ liệu đó, nhưng dùng khóa bí mật của người dùng khác.

Khi nhận được giao dịch, người nhận sẽ sử dụng Public key của người gửi để giải mã chữ ký số (xác minh chữ ký số), nếu giải mã thành công và dữ liệu sau khi giải mã trùng khớp với dữ liệu gốc của giao dịch thì sẽ chứng minh được hai tính chất sau:

  1. Sự toàn vẹn dữ liệu: Dữ liệu của giao dịch không bị mất mát hoặc bị thay đổi trong quá trình truyền từ người gửi đến người nhận. 
  2. Nguồn gốc của dữ liệu: Dữ liệu của giao dịch được gửi từ chính địa chỉ Blockchain trong giao dịch. 

Digital signature được coi như một sự thay thế cho chữ ký viết tay trong phạm vi pháp luật cho phép. Các ứng dụng của nó bao gồm:

  • Cho phép kiểm soát giá trị liên quan đến tài liệu đang được truyền. Bất cứ khi nào một tài liệu bị tiếp xúc với một sửa đổi độc hại, chữ ký sẽ bị vô hiệu vì nó chỉ phù hợp với trạng thái tài liệu ban đầu.
  • Bảo vệ dữ liệu khỏi sự giả mạo. Các thuật toán chữ ký hiện tại khiến cho việc giả mạo không thể thực hiện được trong hầu hết các trường hợp.
  • Đảm bảo từ chối các tài liệu có chữ ký không rõ nguồn gốc – bất kỳ chữ ký nào được tạo bằng khóa riêng tư mà chỉ chủ sở hữu của nó mới biết, do đó, người này không thể từ chối chữ ký của mình được thêm vào tài liệu.

Vai trò của chữ ký kỹ thuật số trong blockchain

Chữ ký kỹ thuật số là một yếu tố quan trọng trong blockchain để xác thực tính toàn vẹn và chống lại sự gian lận. Trong blockchain, các giao dịch được đóng gói lại thành các khối và sau đó được liên kết với nhau để tạo thành Blockchain. Mỗi khối chứa thông tin về các giao dịch, bao gồm cả chữ ký kỹ thuật số của người gửi và người nhận.

Chữ ký kỹ thuật số được tạo ra bằng cách sử dụng một cặp khóa – Public Key và Private Key khai. Private key chỉ được biết bởi người gửi, trong khi Public key có thể được chia sẻ công khai. Khi người gửi tạo chữ ký kỹ thuật số bằng private key, người nhận có thể sử dụng Public key để xác minh tính toàn vẹn của chữ ký.

Trong blockchain, chữ ký kỹ thuật số giúp đảm bảo rằng mỗi giao dịch được xác thực và không bị thay đổi khi được thêm vào khối. Khi một khối mới được tạo ra, nó sẽ có một mã băm duy nhất và chữ ký kỹ thuật số của khối trước đó. Nếu bất kỳ giao dịch nào trong khối mới được thay đổi, mã băm của khối sẽ thay đổi và chữ ký kỹ thuật số của khối trước đó sẽ không còn hợp lệ nữa. Do đó, hệ thống blockchain có thể phát hiện và từ chối bất kỳ giao dịch giả mạo nào được thêm vào Block.

Ngoài ra, chữ ký kỹ thuật số cũng giúp đảm bảo tính riêng tư và bảo mật cho người dùng blockchain. Khi tạo một giao dịch, người dùng chỉ cần sử dụng private key của mình để tạo chữ ký kỹ thuật số, trong khi khóa công khai của họ không cần được tiết lộ cho ai.

Hoạt động của chứ ký kỹ thuật số

Chữ ký kỹ thuật số hoạt động dựa trên sự kết hợp của một cặp khóa – private key và public key. Các bước thực hiện chữ ký kỹ thuật số như sau:

  1. Người gửi tạo một tin nhắn, tài liệu hoặc giao dịch. Để tạo chữ ký kỹ thuật số, người gửi sẽ sử dụng một thuật toán mã hóa để tính toán một đoạn mã băm (hash) duy nhất cho nội dung này.
  2. Người gửi sử dụng private key của mình để mã hóa mã băm đó, tạo thành chữ ký kỹ thuật số. Quá trình mã hóa này sử dụng một thuật toán mã hóa đối xứng (symmetric encryption) hoặc mã hóa không đối xứng (asymmetric encryption) để tạo ra chữ ký.
  3. Người gửi gửi tài liệu hoặc giao dịch, cùng với chữ ký kỹ thuật số của mình, đến người nhận.
  4. Người nhận sử dụng khóa công khai của người gửi để giải mã chữ ký kỹ thuật số, để lấy ra mã băm ban đầu. Sau đó, người nhận sử dụng cùng thuật toán mã hóa đã được sử dụng bởi người gửi, để tính toán lại mã băm.
  5. Nếu mã băm được tính toán bởi người nhận trùng khớp với mã băm ban đầu, thì chữ ký kỹ thuật số được xác minh là hợp lệ, tức là nội dung của tài liệu hoặc giao dịch không bị thay đổi và chữ ký kỹ thuật số được tạo ra bởi chính người gửi đó.

Quá trình này đảm bảo tính toàn vẹn của tài liệu hoặc giao dịch và đảm bảo rằng chỉ người gửi mới có thể tạo ra chữ ký kỹ thuật số hợp lệ cho nội dung đó, do Private key chỉ được biết bởi người gửi. Ngoài ra, chữ ký kỹ thuật số cũng giúp đảm bảo tính bảo mật và không thể phủ nhận (non-repudiation) trong trường hợp tranh chấp, vì người gửi không thể từ chối việc tạo ra chữ ký kỹ thuật số đó.

Thuật toán chữ ký kỹ thuật số trong blockchain phổ biến

Có nhiều thuật toán chữ ký kỹ thuật số được sử dụng trong blockchain, tuy nhiên có hai thuật toán phổ biến nhất đó là RSA và ECDSA.

  1. RSA (Rivest-Shamir-Adleman): RSA là một thuật toán mã hóa không đối xứng, được sử dụng rộng rãi trong blockchain và các ứng dụng an ninh mạng khác. RSA sử dụng cặp khóa – một Private key và một Public key – để tạo ra và xác minh chữ ký kỹ thuật số. Thuật toán RSA dựa trên tính toán các số nguyên tố lớn, do đó nó có tính bảo mật cao và được sử dụng rộng rãi.
  2. ECDSA (Elliptic Curve Digital Signature Algorithm): ECDSA là một thuật toán mã hóa không đối xứng sử dụng các đường cong elliptic để tạo ra và xác minh chữ ký kỹ thuật số. ECDSA được sử dụng trong nhiều blockchain, như Bitcoin và Ethereum, bởi vì nó cung cấp tính năng bảo mật cao, đồng thời có thể tạo ra chữ ký với kích thước nhỏ hơn so với RSA.

Cả hai thuật toán này đều có tính bảo mật cao và được sử dụng rộng rãi trong các ứng dụng blockchain. Tuy nhiên, mỗi thuật toán có những ưu điểm và hạn chế riêng, do đó, sự lựa chọn thuật toán phù hợp phụ thuộc vào các yêu cầu cụ thể của ứng dụng blockchain.

RSA (Rivest-Shamir-Adleman)

RSA (Rivest-Shamir-Adleman) là một thuật toán mã hóa không đối xứng sử dụng cặp Public key và Private key để tạo ra và xác minh chữ ký kỹ thuật số. Dưới đây là các ưu điểm, nhược điểm và cách thức hoạt động của RSA:

Ưu điểm của RSA:

  • Tính bảo mật cao: RSA dựa trên tính toán các số nguyên tố lớn và tính toán phức tạp, do đó nó cung cấp tính bảo mật cao.
  • Không đối xứng: RSA sử dụng cặp Public Key và Private Key, điều này làm cho nó trở nên rất an toàn và không dễ bị tấn công.
  • Dễ triển khai: RSA được triển khai rộng rãi trong nhiều ngôn ngữ lập trình và hệ thống, do đó nó dễ dàng triển khai trong các ứng dụng.

Nhược điểm của RSA:

  • Tốc độ tính toán chậm: do tính toán phức tạp và kích thước của khóa lớn, nên tốc độ tính toán của RSA không nhanh bằng các thuật toán mã hóa khác.
  • Kích thước khóa lớn: RSA yêu cầu kích thước khóa lớn để đảm bảo tính bảo mật, điều này có thể gây ra vấn đề với khả năng lưu trữ và xử lý khóa trong một số hệ thống.

Hoạt động của RSA:

  • Bước 1: Tạo cặp Public Key và Private Key bằng cách chọn hai số nguyên tố lớn p và q, tính n = p * q, chọn số nguyên e (1<e<φ(n)) và tính d sao cho e * d = 1 mod φ(n), trong đó φ(n) = (p-1)*(q-1).
  • Bước 2: Tạo chữ ký bằng cách sử dụng Private key: cho một thông điệp m, tính chữ ký k bằng cách sử dụng công thức: k = m^d mod n.
  • Bước 3: Xác minh chữ ký bằng cách sử dụng Public key: cho một thông điệp m và chữ ký k, tính lại giá trị m’ của thông điệp bằng công thức m’ = k^e mod n. Sau đó, so sánh giá trị m’ với thông điệp m ban đầu. Nếu m’ = m thì chữ ký hợp lệ, ngược lại

ECDSA (Elliptic Curve Digital Signature Algorithm)

ECDSA (Elliptic Curve Digital Signature Algorithm) là một thuật toán mã hóa không đối xứng sử dụng đường cong elip để tạo ra và xác minh chữ ký kỹ thuật số. Dưới đây là các ưu điểm, nhược điểm và cách thức hoạt động của ECDSA:

Ưu điểm của ECDSA:

  • Kích thước khóa nhỏ: ECDSA yêu cầu kích thước khóa nhỏ hơn so với các thuật toán mã hóa khác, điều này giúp giảm chi phí lưu trữ và truyền thông.
  • Tính bảo mật cao: ECDSA cung cấp tính bảo mật cao và không dễ bị tấn công bởi các hacker.
  • Tốc độ tính toán nhanh: ECDSA có tốc độ tính toán nhanh hơn so với RSA và các thuật toán mã hóa khác.

Nhược điểm của ECDSA:

  • Điều kiện tiên quyết khó tính toán: Trong ECDSA, các Public Key và Private Key được tạo ra từ các điểm trên đường cong elip, điều này yêu cầu tính toán toán học khá phức tạp để tìm ra các điểm này.
  • Không phổ biến: ECDSA không phổ biến như RSA và một số thuật toán mã hóa khác, do đó việc triển khai ECDSA có thể gặp khó khăn trong một số ứng dụng.

Hoạt động của ECDSA:

  • Bước 1: Tạo cặp Public Key và Private Key bằng cách chọn một đường cong elip và một điểm trên đường cong elip làm điểm cơ sở. Sau đó, chọn một số nguyên k bí mật (1<k<n-1), tính toán điểm Q = kG trên đường cong elip, trong đó G là điểm cơ sở.
  • Bước 2: Tạo chữ ký bằng cách sử dụng Private Key: cho một thông điệp m, tính toán hàm băm SHA-256 của m để tạo ra một giá trị h, sau đó tính toán r = xQ mod n, s = k^-1(h + dr) mod n, trong đó x là tọa độ x của điểm Q.
  • Bước 3: Xác minh chữ ký bằng cách sử dụng Public Key: cho một thông điệp m, chữ ký (r, s) và khóa công khai (Q, n), tính lại giá trị h bằng cách sử dụng hàm băm SHA-256 của m. Sau đó, tính toán điểm P = sG – hQ và kiểm tra x

Share:

Share on facebook
Share on twitter
Share on pinterest
Share on linkedin

Bình luận

Bài viết liên quan