Tổng quan về Public-key Cryptography và Cryptocurrency

Public-key cryptography, hay asymmetric cryptography – mã hoá bất đối xứng – được phát minh vào năm 1970 và là nền tảng toán học cơ bản cho máy tính và bảo mật thông tin. Cái này quan trọng lắm ấy, tại hạ không phải nói quá chứ không có bí kíp này thì chắc có lẽ các hạ sẽ không có thương mại điện tử đâu, võ lâm đại loạn mất :))

Các bạn cũng nên phân biệt giữa cryptography và encryption nha. Nói đơn giản thì cryptography là một ngành khoa học liên quan đến việc nghiên cứu. Còn encryption cơ bản là một quá trình hay thuật toán để làm ẩn thông tin đi hoặc trở nên bí mật. Cryptography là nghiên cứu và thực hành về encrypting và decrypting. Cho phép mọi người hiểu hơn về encryption.

Từ khi phát minh ra public key cryptography, một vài hàm toán học thích hợp được sử dụng như là prime number exponentiation hoặc elliptic curve multiplication. Với những cái hàm này thì theo lý thuyết là không thể “đảo ngược” trong thực tế. Nó có nghĩa là sẽ rất dễ để tính toán theo một chiều và không thể tính ngược lại từ chiều còn lại được. Ví dụ nhé, ta có n5 % 14 = 4 với n = 2, Thế có 4 rồi làm sao ta tìm được được n :)) Để tìm được cách dễ nhất thì ta chỉ có thử thôi, từ 1, 2, 3, 4, 5, … cho đến khi tìm được – brute force algorithm. Mà do số này rất rất lớn, như đã đề cặp ở bài Giới Thiệu Về Key Và Address nên việc này rất rất là khó.

Ví dụ nhẹ nhàng thư giản xíu nhé :))

  • Private key có 2256 giá trị. Tương đương khoảng 4 tỷ x 4 tỷ x 4 tỷ x 4 tỷ x 4 tỷ x 4 tỷ x 4 tỷ x 4 tỷ.
  • Ví dụ mỗi con GPU sẽ có thể tính toán được 1 tỷ hash / sec. Cho luôn 1 cái laptop có 4 con GPU đi. Chắc chơi được DOTA 2 độ phân giải 16K vẫn mượt :))
  • Tưởng tượng Google có 4 tỷ cái laptop như thế :v Không phải gọi là KiloGoogle++, Google bình thường cũng chẳng có nhiều đến thế.
  • Trên Trái Đất có khoảng 7.5 tỷ người, cho rằng một nửa thể giới sẽ có cái KiloGoogle++ trong phòng :v
  • Tiếp theo chúng ta copy Trái Đất ra 4 tỷ lần. Để rõ hơn ta so sánh với thiên hà Milky Way có tới 200 tới 400 tỷ ngồi sao. Không biết rõ là có bao nhiêu “Trái Đất” trong thiên hà, nên ta sẽ lấy 1% nhé.
  • Ta sẽ phải copy Milky Way ra 4 tỷ lần nữa.
  • Tới đây ta một siêu máy tính cấp thiên hà có 2160 hash / sec.
  • 4 tỷ giây ~ 126.8 năm. Thêm 4 tỷ nữa ~ 507 tỷ năm ~ 37 lần tuổi của vũ trụ. Còn 4 tỷ nữa mình chưa nhân tại mình cũng không biết đọc nó sao nữa :)))

Bạn cũng thấy nó khó cỡ nào rồi chứ. Thế bạn sẽ hỏi mình có thể đoán không. Biết đâu hên thì sao :))

Ví dụ tiếp nhé:

  • Bạn có một tập 2256 giá trị.
  • 7.6 tỷ người trên thế giới.
  • Ta có phép tính thế này: (7,600,000,000 / 2256 ) * 100 = 0.0000000000000000000000000000000000000000000000000000000000000000065634881018717779152936274157283036740481602769715738%. Chúc bạn may mắn, mình đi mua vietlott đây, còn dễ trúng hơn :v

Bitcoin sử dụng elliptic curve multiplication. Asymmetric cryptography dùng để tạo ra cặp khoá để kiểm soát quyền truy cập vào bitcoin. Đã gọi là cặp thì sẽ có hai cái rồi :v Thứ nhất là private key và từ private key tạo ra public key. Public key thì dùng để nhận tiền trong khi private key được sử dụng để ký lên các transaction để mua cái gì đó.

Có một mối quan hệ biện chứng, à không, quan hệ toán học giữa public và private key cho phép lấy private key để tạo ra chữ ký. Chữ ký đó sẽ được xác nhận dựa trên public key tương ứng mà không phải để lộ ra private key. Để ví dụ cho dễ hiểu nè, Ví dụ ta có public key là 5, private key là 11. Như ở trên ta có n5 % 14 = 4 với n = 2. Để tính được n ta từ 4, ta có: 411 % 14 = 2. Thế bạn sẽ thắc mắc là tại sao lại là 5, 11, 14 mà không phải là số nào khác. Đó lại là một câu truyện khác, các bạn cứ biết thế được rồi, nó có cách tính cả ấy :))

Người sở hữu bitcoin sẽ phải sử dụng public key và chữ ký để chi số bitcoin đó. Thông qua việc đưa ra public key và chữ ký, bất kì ai trong mạng lưới cũng có thể kiểm tra xem transaction đó có đúng không hay lại là thằng nào cố tình lừa mọi người nữa rồi :v Cũng như ngoài ngân hàng, bạn đi có thể thử ra rút tiền của người khác và dùng chữ kí của mình thử xem :)) Các nhân viên ngân hàng ở đây cũng tương tự như các node trong mạng lưới, nhưng là centralized – tập chung, được quản lí bởi ngân hàng, làm việc theo yêu cầu của cấp trên – còn trong bitcoin là decentralized, được kiểm tra lặp đi lặp lại tất cả các node. Không cần phải tin tưởng vào bất cứ ai cả.

Cái quan trọng nhất vẫn là private key vì bạn có thể tính ra được public key từ private key mà, nên đôi khi bạn không cần phải lưu public key đâu. Mấy cái wallet nó cũng hay làm thế đó, lưu cái private key thôi.

Nảy giờ bạn có thắc mắc là có asymmetric thế thì có symmetric – đối xứng – không? Nếu có tại sao lại sử dụng asymmetric cryptography mà không phải là symmetric cryptography? Elliptic curve multiplication là gì thế, có ăn được không? Thế máy tính lượng tử thì sao? Có giải được cái asymmetric không? Nghe nói nó mạnh lắm. Có thể phá vỡ Blockchain khi nó xuất hiện? Mình sẽ giải thích cách hoạt động của nó vào bài sau cho mọi người nhớ đón đọc nha :”D

Kham khảo:

Để lại một bình luận

Địa chỉ email của bạn sẽ không được công bố.