Public key là gì? Tìm hiểu về public key và address trong bitcoin

157 Total Views
[Sassy_Social_Share count="1" total_shares="ON"]

Từ ngày bitcoin mới ra đời đến nay thì Private key, Public key và Address là một phần không thể tách rời với nó.

Trước khi tìm hiểu về Public key bạn nên xem qua sơ đồ sau:

so do Private key

Nhìn vào sơ đồ ta thấy: từ Private key ta có thể sinh ra được Public key. Và từ Public key ta sinh ra được address (địa chỉ bitcoin). Vì thế, ta chỉ cần biết Private key là đủ, từ đó ta có thể sinh ra public key.

Bạn có thể tìm hiểu về private key trong bài viết: Private key là gì? Tìm hiểu về Private key trong bitcoin.

Tìm hiểu về Public key

Khái niệm Private key rất đơn giản: Private key là 1 dẫy số 256 bit. Tuy nhiên, thuật toán từ sinh ra public key từ Private key sẽ phức tạp hơn 1 chút.

Public key hay còn gọi là khóa công khai. Nó có thể được xem bởi bất cứ ai và bất cứ lúc nào.

Dưới đây là công thức tính public key đã được đơn giản hóa:

Public_key = Private_key * G 
  • * ở đây có thể hiểu tương tự như phép nhân số học 2 * 2 = 4, khác ở chỗ là đây có thể nói là 1 phép nhân hình học thì dễ hình dung hơn.
  • G là 1 giá trị cố định và đã biết được gọi là generation point và đây cũng là 1 điểm hình học.

Người ta cho rằng: Thuật đoán để có thể suy luận được private key từ public key là rất khó, nó tương đương với việc thử tất cả các giá trị của private key.

Vậy để hiểu về phép nhân hình học * ở trên, trước hết bạn cần hiểu về đường cong hình học dưới đây.

duong cong hinh hoc

Đây là đồ thị của hàm : y2 mod p = (x3+7) mod p

Trong bitcoin p là giá trị rất lớn p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F

Để dễ hình dung thì giả sử lấy p bằng 17, ta sẽ có được tương ứng cặp (x, y) = (1, 5) thỏa mãn hàm trên.

Một số tính chất của đường cong này như sau:

  • Điểm vô định (Point of infinity): Tương tự như số 0 trong toán học, ta có 1 + 0 = 1 thì trong đồ thị này ta cũng có ý nghĩa của điểm vô định gần giống như vậy. Nếu P1 là điểm trên đường cong và P2 là điểm vô định thì P1 + P2 = P1.
  • Phép cộng: Tương tự như phép cộng số học. Nếu trong số học ta có 1 + 1 = 2 thì trong đồ thị giả sử ta có 2 điểm P1, P2 nằm trên đường cong thì ta có P1 + P2 = P3 cũng là 1 điểm trên đường cong.

Về mặt hình học, nếu P1 + P2 = P3 thì ta sẽ có được P3 bằng cách nối 2 điểm P1, P2 tạo thành 1 đoạn thẳng. Đoạn thẳng này sẽ cắt đường cong tại duy nhất 1 điểm P3′ (x, y) thì P3 sẽ là điểm đối xứng với nó qua trục x (x, -y).

Điểm vô định có 2 tính chất như sau:

  • Trường hợp mà P1, P2 là 2 điểm đối xứng với nhau qua trục x, thì đoạn thẳng nối chúng sẽ không cắt đường cong, và P3 lúc này được gọi là điểm vô định.
  • Trường hợp P1, P2 là cùng 1 điểm, thì đoạn thẳng nối 2 điểm này sẽ được kéo dài ra, tạo thành 1 tiếp tuyến với đường cong. Tiếp tuyến này sẽ cắt đường cong duy nhất 1 điểm P3′, đối xứng với nó là P3. Và ta nói rằng P1 + P1 = P1 + P2 = P3. (Hoặc 2*P1 = P3).

Từ những khái niệm trên, ta có định nghĩa về phép nhân như sau:

Với k là thừa số, ta có k * P = P + P + P + … + P (k lần). Cũng tương tự như số học, khác là P ở đây là 1 điểm hình học.

Vậy đến đây ta sẽ quay trở lại với công thức tính public key ở trên.

Public_key = Private_key * G 

Trong công thức trên, G chính là 1 điểm trong đồ thị trên. Và vì G là điểm biết trước, chung cho tất các user, nên ta có:

Public_key chính là số lần nhân G với Private_key lần về mặt hình học
private key ve mat hinh hoc

Giả sử G như trong hình vẽ trên, nếu private key là 2 thì ta sẽ có public key sinh ra chính là điểm 2G trên đồ thị.

Vậy là chúng tôi đã giải thích cho bạn hiểu về public key. Tiếp theo, mời các bạn tìm hiểu về address trong bitcoin.

Tìm hiểu về address trong bitcoin

Bitcoin address là chuỗi ký tự bao gồm các chữ và số. Một bitcoin address thường bắt đầu với số 1.

Ví dụ:

 1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy

Bitcoin address có nghĩa là “nơi nhận” trong 1 transaction. Ví dụ: bạn mua hàng online và bạn phải cung cấp địa chỉ nhận hàng, đó gọi là “nơi nhận“.

Trong bitcoin, Address có thể mang tính trừu tượng chứ không nhất thiết phải là một lớp mã hóa.

Nếu như public key có thể được suy luận từ private key tương đối phức tạp thì address được dẫn xuất từ public key lại đơn giản hơn. Dưới đây là công thức address:

 Address = RIPEMD160 (SHA256(public_key))
  • SHA256: Thuật toán mã hóa Secure Hash Algorithm
  • RIPEMD160: Thuật toán mã hóa RACE Integrity Primitives Evaluation Message Digest

Trên thực tế, để thuận tiện cho việc tính toán ở các node và dễ dàng lưu trữ, tránh nhầm lẫn. Các khái niệm trên được mã hóa thêm 1 lớp nữa, ví dụ như Base58Check (Loại bỏ các ký tự 0, O, l, I), gắn thêm version, checksum…

Tìm hiểu về Bitcoin Transaction

Bitcoin transaction là gì?

Bitcoin transaction hay còn gọi là giao dịch bitcoin. Đây là thuật ngữ mô tả số lượng BTC được gửi từ một ví bitcoin cụ thể đến một hay nhiều ví bitcoin khác.

Bitcoin Transaction

Bởi vì blockchain có tính minh bạch nên các transaction đều có thể theo dõi được. Chúng ta có thể kiểm tra xem:

Ví nào chuyển cho ví nào bao nhiêu đồng BTC tại thời gian nào.

Tuy nhiên blockchain cũng có tính ẩn danh nên không ai biết được chủ sở hữu đằng sau những chiếc ví Bitcoin đó.

Blockchain cũng có tính không thể sửa đổi, một khi giao dịch bitcoin đã được xác nhận thì không thể thay đổi được nữa.

Check Bitcoin transaction như thế nào?

Để check Bitcoin transaction (check BTC transaction), bạn truy cập vào https://www.blockchain.com/explorer, nhập Bitcoin Address của ví Bitcoin cần kiểm tra, sau đó nhấn Enter.

Check Bitcoin transaction

Thông tin của chiếc ví đó sẽ được hiển thị đầy đủ. Bao gồm: số dư và liệt kê tất cả các giao dịch (gửi, nhận).

  • Unconfirmed transaction blockchain: nghĩa là người gửi đã chuyển BTC cho người nhận.
  • Confirmed: giao dịch chưa được xác nhận.

____________________________________________________________________________________

Trên đây là bài viết Private key là gì? Tìm hiểu về Private key và address trong bitcoin mà CafeBitcoin gửi tới bạn đọc! Cảm ơn độc giả đã đón đọc!

Đăng nhập email để cập nhật thông tin độc quyền.