Blockchain - Hướng dẫn nhanh
Trong những năm gần đây, có rất nhiều tiếng vang về Blockchain. Nhiều người đã mô tả đây là công nghệ đột phá nhất trong thập kỷ. Đặc biệt, thị trường tài chính có thể bị ảnh hưởng nhiều nhất.
Công nghệ này đang được điều chỉnh cho nhiều ngành dọc như Chăm sóc sức khỏe, Thuốc men, Bảo hiểm, Tài sản thông minh, Xe ô tô và thậm chí cả Chính phủ.
Tuy nhiên, cho đến nay việc triển khai thành công nhất của Blockchain là Bitcoin - Hệ thống tiền mặt điện tử ngang hàng, ngẫu nhiên cũng là ứng dụng đầu tiên của công nghệ blockchain. Vì vậy, để hiểu công nghệ blockchain, tốt nhất là hiểu cách Hệ thống Bitcoin được thiết kế và triển khai.
Trong bài viết này, bạn sẽ tìm hiểu Blockchain là gì, kiến trúc của nó, cách nó được triển khai và các tính năng khác nhau của nó. Tôi sẽ trang web triển khai Bitcoin trong khi mô tả sự phức tạp của blockchain.
Kiến trúc blockchain không quá tầm thường và nhiều người đã viết các bài báo hay, hướng dẫn bao gồm một số video. Đối tượng này bao gồm từ Người mới làm quen đến Người chuyên nghiệp. Trong hướng dẫn này, tôi sẽ tập trung vào sự hiểu biết khái niệm về kiến trúc blockchain, lưu ý cả Người mới và Người chuyên nghiệp. Trước khi đi sâu vào blockchain, điều quan trọng là phải biết tại sao lại xuất hiện nhu cầu về công nghệ mới này? Câu trả lời cho câu hỏi này nằm trong cái được gọi làDouble − Spending.
Hãy xem xét một tình huống được hiển thị trong hình ảnh -
Như đã thấy rõ ở đây, Bob đang đấu thầu tờ 10 đô la cho Lisa để đổi lấy một cuốn sách. Khi Lisa nhận được tờ 10 đô la vật chất này, Bob sẽ không có cách nào sử dụng lại số tiền này cho một số giao dịch khác, vì đồng tiền vật chất hiện thuộc quyền sở hữu của Lisa.
Bây giờ, hãy xem xét một tình huống mà tiền được thanh toán ở dạng Kỹ thuật số. Điều này được minh họa bằng hình ảnh -
Vì định dạng trao đổi tiền ở định dạng kỹ thuật số, về cơ bản nó là một tệp vật lý nhị phân được lưu trữ ở đâu đó trên thiết bị của Bob. Sau khi Bob đưa tệp này (tiền kỹ thuật số) cho Lisa, anh ta cũng có thể đưa một bản sao của tệp cho Alice. Hiện cả hai đều nghĩ rằng họ đã nhận được tiền mà không cần bất kỳ phương tiện xác thực đồng tiền kỹ thuật số nào và do đó sẽ giao hàng hóa tương ứng của họ cho Bob. Đây được gọi làdouble-spending trong đó người gửi chi cùng một khoản tiền tại nhiều nơi để nhận dịch vụ hoặc hàng hóa từ nhiều nhà cung cấp.
Để giải quyết vấn đề chi tiêu kép này, người ta sẽ sử dụng một cơ quan có thẩm quyền tập trung để giám sát tất cả các giao dịch. Điều này được minh họa bằng hình ảnh -
Cơ quan tập trung, theo thuật ngữ phổ biến là ngân hàng của bạn, duy trì một sổ cái ghi lại tất cả các giao dịch. Bây giờ, Bob phải gửi tiền kỹ thuật số của mình đến ngân hàng, người sẽ thực hiện một mục nhập vào sổ cái ghi nợ tài khoản của Bob. Sau khi đảm bảo rằng Bob có đủ số dư để thanh toán tiền kỹ thuật số mà anh ấy muốn gửi, sẽ gửi tiền cho Lisa bằng cách ghi có vào tài khoản của cô ấy trong sổ cái của nó.
Bây giờ, có thể đảm bảo rằng Bob không thể tiêu gấp đôi số tiền. Nếu mọi giao dịch kỹ thuật số được định tuyến thông qua một cơ quan tập trung như thế này, vấn đề chi tiêu gấp đôi sẽ được giải quyết. Điều này cũng cung cấp một lợi ích khác trong việc xác nhận tính xác thực của mỗi đồng xu (tiền kỹ thuật số) mà nó nhận được trong giao dịch. Vì vậy, tiền giả (tiền sao y như trường hợp Bob trả tiền cho Alice bằng bản sao) sẽ dễ dàng bị phát hiện và ngăn chặn lưu thông.
Sự ra đời của cơ quan quyền lực tập trung mặc dù nó giải quyết được vấn đề chi tiêu kép, nhưng lại đưa ra một vấn đề lớn khác - chi phí tạo và duy trì cơ quan quyền lực tập trung.
Khi các ngân hàng cần tiền cho hoạt động của họ, họ bắt đầu cắt hoa hồng trên mỗi giao dịch tiền tệ mà họ thực hiện cho khách hàng của mình. Điều này đôi khi có thể trở nên rất tốn kém, đặc biệt là trong việc chuyển tiền ra nước ngoài khi nhiều đại lý (ngân hàng) có thể tham gia vào toàn bộ giao dịch.
Tất cả các vấn đề trên được giải quyết bằng sự ra đời của tiền tệ kỹ thuật số, được gọi là Bitcoin. Bây giờ tôi sẽ cung cấp cho bạn một nền tảng ngắn gọn về Bitcoin là gì trước khi đi sâu vào thiết kế và kiến trúc của nó.
Bitcoin đã được giới thiệu trên thế giới này bởi Satoshi Nakamoto thông qua một sách trắng kiểu nghiên cứu có tên Bitcoin: Hệ thống tiền mặt điện tử ngang hàng vào năm 2008.
Bitcoin không chỉ giải quyết được vấn đề chi tiêu gấp đôi mà còn mang lại nhiều lợi thế hơn nữa, Một lợi thế đáng nói ở đây là tính ẩn danh trong các giao dịch. Satoshi, người đã tạo ra hệ thống và đã giao dịch vài đồng tiền trên hệ thống này hoàn toàn ẩn danh đối với toàn thế giới.
Chỉ cần tưởng tượng, trong thế giới truyền thông xã hội này, khi quyền riêng tư của mỗi cá nhân bị đe dọa, thế giới không thể tìm ra Satoshi là ai? Trên thực tế, chúng tôi không biết Satoshi là một cá nhân hay một nhóm người. Googling nó cũng tiết lộ thực tế rằng số bitcoin mà Satoshi Nakamoto nắm giữ trị giá khoảng 19,4 tỷ đô la - số tiền đó hiện vẫn chưa được xác nhận trong hệ thống Bitcoin. Vậy Bitcoin là gì - chúng ta hãy cùng tìm hiểu!
Bitcoin là gì?
Như bạn đã thấy trước đó, ngân hàng duy trì một sổ cái ghi lại từng giao dịch. Sổ cái này do ngân hàng tư nhân nắm giữ và duy trì. Satoshi đề xuất rằng hãy để sổ cái này được công khai và được cộng đồng duy trì.
Thời điểm bạn công khai một sổ cái như vậy, một số cân nhắc sẽ xuất hiện trong đầu bạn. Sổ cái này phải được chống giả mạo để không ai có thể sửa đổi các mục nhập của nó. Vì mỗi mục trong sổ cái được hiển thị công khai, chúng tôi sẽ phải tìm cách duy trì tính ẩn danh - rõ ràng là bạn sẽ không muốn mọi người trên thế giới biết rằng tôi đã trả cho bạn một triệu đô la.
Ngoài ra, vì chỉ có một sổ cái duy nhất theo dõi từng và mọi giao dịch trên thế giới, kích thước của sổ cái sẽ là một mối quan tâm lớn khác. Cung cấp một giải pháp cho những phức tạp này không hề tầm thường và đó là những gì tôi đang cố gắng ở đây để giúp bạn hiểu kiến trúc cơ bản của Bitcoin bằng những từ đơn giản.
Kiến trúc cơ bản này là Blockchainvà đó là nội dung của hướng dẫn này. Để hiểu kiến trúc Blockchain, bạn cần hiểu một vài tính năng chính mà nó dựa trên. Vì vậy, chúng ta hãy bắt đầu với PKI - Mật mã khóa công khai.
Public Key Cryptography hay nói ngắn gọn là PKI còn được gọi là mật mã không đối xứng. Nó sử dụng hai cặp khóa - công khai và riêng tư. Khóa là một số nhị phân dài. Khóa công khai được phân phối trên toàn thế giới và thực sự công khai như tên gọi của nó. Khóa cá nhân phải được giữ riêng tư một cách nghiêm ngặt và không bao giờ được làm mất nó.
Trong trường hợp của Bitcoin, nếu bạn đánh mất khóa cá nhân trong ví Bitcoin của mình, toàn bộ nội dung trong ví của bạn sẽ ngay lập tức dễ bị đánh cắp và trước khi bạn biết điều đó, tất cả tiền của bạn (nội dung trong ví của bạn) sẽ biến mất. cơ chế trong hệ thống để tìm ra ai đã đánh cắp nó - đó là tính ẩn danh trong hệ thống mà tôi đã đề cập trước đó.
PKI thực hiện hai chức năng - xác thực và bảo mật tin nhắn thông qua cơ chế mã hóa / giải mã. Bây giờ tôi sẽ giải thích cả hai chức năng này -
Xác thực
Khi hai bên trao đổi thông điệp, điều quan trọng là phải thiết lập sự tin cậy giữa người gửi và người nhận. Đặc biệt người nhận phải tin tưởng vào nguồn tin nhắn. Đến với kịch bản trước đó của chúng tôi (được mô tả trong Hình 1) về việc Bob gửi một số tiền cho Lisa để mua một số hàng hóa từ cô ấy, hãy cùng xem PKI xây dựng lòng tin giữa Bob và Lisa như thế nào. Nhìn vào hình ảnh dưới đây -
Trước hết, nếu Bob muốn gửi một số tiền cho Lisa, anh ta phải tạo một khóa cá nhân / công khai của riêng mình. Lưu ý rằng cả hai khóa luôn được ghép nối với nhau và bạn không thể kết hợp khóa cá nhân và khóa công khai của các cá nhân khác nhau hoặc các trường hợp khác nhau.
Bây giờ, Bob nói rằng anh ấy đang gửi 10 đô la cho Lisa. Vì vậy, anh ta tạo một tin nhắn (một tin nhắn văn bản thuần túy) chứa khóa công khai của Bob (người gửi), khóa công khai của Lisa (người nhận) và số tiền (10 đô la).
Mục đích của việc chuyển tiền này như "Tôi muốn mua bí ngô từ bạn" cũng được thêm vào tin nhắn. Toàn bộ thư hiện đã được ký bằng khóa riêng của Bob. Khi Lisa nhận được tin nhắn này, cô ấy sẽ sử dụng thuật toán xác minh chữ ký của PKI và khóa công khai của Bob để đảm bảo rằng tin nhắn thực sự đến từ Bob. Cách hoạt động của PKI nằm ngoài phạm vi của hướng dẫn này. Bạn đọc quan tâm có thể tham khảo trang web này để thảo luận chi tiết hơn về PKI. Điều này thiết lập tính xác thực của người khởi tạo thông báo. Bây giờ, chúng ta hãy xem xét quyền riêng tư của tin nhắn.
Bảo mật tin nhắn
Bây giờ, khi Lisa đã nhận được khoản thanh toán của mình, cô ấy muốn gửi liên kết đến cuốn sách điện tử của mình mà Bob muốn mua. Vì vậy, Lisa sẽ tạo một tin nhắn và gửi cho Bob như thể hiện trong hình ảnh -
Lisa tạo một thông báo chẳng hạn như “Đây là liên kết đến ebook của tôi mà bạn đã yêu cầu”, ký nó bằng khóa công khai của Bob mà cô ấy đã nhận được trong tin nhắn yêu cầu của Bob và cũng mã hóa tin nhắn bằng một số khóa bí mật được chia sẻ giữa hai người trong quá trình bắt tay HTTPS.
Bây giờ, Lisa chắc chắn rằng chỉ Bob mới có thể giải mã tin nhắn bằng khóa riêng tư do một mình Bob nắm giữ. Ngoài ra, ai đó chặn tin nhắn sẽ không thể khôi phục nội dung của nó vì nội dung được mã hóa bằng khóa bí mật chỉ do Bob và Alice nắm giữ. Điều này đảm bảo với Lisa rằng quyền truy cập vào sách điện tử của cô ấy chỉ được cấp cho Bob.
Sau khi thấy cả hai tính năng, Xác thực và Bảo mật tin nhắn, được ngụ ý bởi PKI, chúng ta hãy tiếp tục xem cách Bitcoin sử dụng PKI để bảo mật sổ cái công khai mà tôi đã đề cập trong chương “Bitcoin là gì?”.
Theo hiểu biết của bạn - Các thuật toán PKI phổ biến nhất là RSA và ECDSA , Bitcoin sử dụng thuật toán thứ hai.
Một trong những hàm quan trọng nhất trong PKI là hàm băm. Một hàm băm ánh xạ dữ liệu có kích thước tùy ý bất kỳ thành dữ liệu có kích thước cố định. Bitcoin sử dụng hàm băm SHA-256 tạo ra hàm băm (đầu ra) có kích thước 256 bit (32 byte). Điều này được minh họa bằng hình ảnh -
Bob, trong khi đặt hàng với Lisa, tạo một thông báo tương tự như thông báo ở trên. Thông báo này được băm thông qua một hàm băm tạo ra một hàm băm 32 byte. Vẻ đẹp của hàm băm này là cho tất cả các mục đích thực tế, hàm băm (số 256-bit) được coi là duy nhất cho nội dung của thông báo. Nếu thông báo được sửa đổi, giá trị băm sẽ thay đổi. Không những thế với một giá trị băm, không thể tạo lại thông điệp ban đầu.
Sau khi đã thấy tầm quan trọng của băm, chúng ta hãy chuyển sang một khái niệm khác trong Bitcoin đó là khai thác.
Khi Bob tạo yêu cầu mua hàng cho Lisa, anh ấy không gửi cho Lisa một mình. Thay vào đó, thông điệp yêu cầu được phát trên toàn bộ mạng mà anh ta được kết nối. Mạng của Bob được mô tả bằng hình ảnh.
Thông báo đến tất cả các nút (máy) được kết nối. Một số nút trong sơ đồ được đánh dấu là thợ đào. Đây là những máy chạy một phần mềm để khai thác thông điệp bitcoin. Bây giờ tôi sẽ giải thích cho bạn ý nghĩa của việc khai thác này.
Quy trình khai thác
Vì toàn bộ mạng được phân phối rộng rãi, mọi thợ đào trong mạng phải nhận được nhiều tin nhắn từ nhiều nhà cung cấp tại bất kỳ khoảng thời gian nhất định nào. Những gì người khai thác làm là anh ta kết hợp các thông báo này trong một khối duy nhất. Điều này được minh họa bằng hình ảnh -
Sau khi một khối thông báo được hình thành, người khai thác sẽ tạo một hàm băm trên khối bằng cách sử dụng hàm băm được mô tả trước đó. Bây giờ, như bạn biết nếu bất kỳ bên thứ ba nào sửa đổi nội dung của khối này, thì hàm băm của nó sẽ trở nên không hợp lệ. Ngẫu nhiên, mỗi tin nhắn được đánh dấu thời gian để không ai có thể sửa đổi thứ tự thời gian của nó mà không ảnh hưởng đến giá trị băm của khối. Do đó, các thư trong khối được bảo mật hoàn hảo khỏi sự giả mạo. Thực tế này được sử dụng như thế nào để bảo mật tất cả các giao dịch trong mạng được giải thích thêm.
Các khối được tạo bởi các thợ đào khác nhau được liên kết với nhau để tạo thành cái được gọi là sổ cái công khai phân tán thực sự.
Mỗi khối trong chuỗi chứa nhiều thông điệp (giao dịch) như đã thấy trước đó trong Hình 8. Một khối trong chuỗi có thể đến từ bất kỳ người khai thác nào. Trong khi tạo chuỗi khối, chúng tôi quan sát quy tắc băm của khối trước đó được thêm vào khối hiện tại.
Do đó, một người khai thác trong khi tạo khối, chọn băm của khối cuối cùng trong chuỗi, kết hợp nó với bộ thông điệp của chính nó và tạo một băm cho khối mới được tạo của nó. Khối mới được tạo này giờ đây trở thành điểm kết thúc mới cho chuỗi và do đó chuỗi tiếp tục phát triển khi ngày càng có nhiều khối được thêm vào bởi các thợ đào.
Vì tất cả các giao dịch đều được đóng dấu thời gian, chúng tôi cần triển khai máy chủ dấu thời gian phân tán trên mạng ngang hàng. Điều này yêu cầu một số triển khai bổ sung và đó là Proof-of-Work mà tôi sẽ mô tả bây giờ. Đối với mỗi khối, bây giờ chúng tôi thêm một mục nữa được gọi làNonce như trong hình bên dưới -
Nonce là một số sao cho hàm băm của khối đáp ứng một tiêu chí nhất định. Tiêu chí này có thể là hàm băm được tạo phải có bốn chữ số đứng đầu là số 0.
Do đó, hàm băm được tạo sẽ giống như 000010101010xxx. Nói chung, người khai thác bắt đầu với giá trị Nonce là 0 và tiếp tục tăng nó cho đến khi hàm băm được tạo đáp ứng tiêu chí đã chỉ định.
Lưu ý rằng việc tạo hàm băm hoạt động ngẫu nhiên và nằm ngoài tầm kiểm soát của bạn - nghĩa là bạn không thể buộc hàm băm tạo ra một hàm băm nhất định. Do đó, có thể mất vài lần lặp lại cho đến khi tạo được hàm băm mong muốn với bốn số 0 ở đầu. Thời gian dự kiến để tạo một khối trong hệ thống bitcoin là 10 phút. Sau khi người khai thác thành công khối, anh ta giải phóng khối đó trong hệ thống, khiến nó giờ đây trở thành khối cuối cùng trong chuỗi.
Lưu ý rằng có nhiều người khai thác cạnh tranh để tạo ra khối hợp pháp. Hệ thống Bitcoin trao thưởng cho người khai thác thành công đầu tiên bằng cách trao cho anh ta một số bitcoin nhất định. Nói chung, người khai thác có nhiều khả năng tính toán hơn có thể là người chiến thắng sớm. Điều này có thể gây ra các cuộc tấn công vào toàn bộ hệ thống bởi những người sở hữu sức mạnh xử lý rất lớn. Tôi sẽ mô tả các cuộc tấn công và cách chúng được giảm thiểu ở phần cuối của hướng dẫn này.
Bây giờ tôi sẽ tóm tắt các bước được mô tả ở trên; đây là những gì xảy ra trong mạng -
Bất kỳ ai muốn nhận dịch vụ từ bên thứ ba đã quảng cáo trên mạng trước tiên sẽ tạo một giao dịch (thông báo cho người nhận mong muốn).
Trong một khoảng thời gian nhất định, có thể có nhiều người gửi (người mua) và người nhận (người bán) tạo ra các giao dịch như vậy.
Tất cả các giao dịch được phát trên mạng tới tất cả các nút. Lưu ý rằng không nhất thiết một giao dịch nhất định phải tiếp cận từng nút khác trong mạng.
Mỗi nút sẽ tập hợp các giao dịch mới thành một khối. Lưu ý rằng tập hợp các giao dịch trong mỗi khối độc lập với tập hợp trong các khối được tạo bởi những người khác và đương nhiên sẽ khác với những khối khác. Điều này không thành vấn đề; hệ thống đảm bảo rằng mọi giao dịch phát trên mạng đều được đưa vào một số khối trong một khoảng thời gian hợp lý. Nói chung, người gửi sẽ khuyến khích nút bằng cách cung cấp một lượng bitcoin nhất định cho người khai thác vì những nỗ lực của nó. Người khai thác có thể chọn ưu tiên đưa vào khối cho những người có ưu đãi cao hơn.
Nút hiện đang hoạt động để tìm bằng chứng công việc cho khối đã lắp ráp của nó.
Khi nút tìm thấy bằng chứng công việc, nó sẽ phát khối đã lắp ráp trên mạng.
Các nút nhận được khối mới sẽ chỉ chấp nhận nó sau khi xác minh rằng tất cả các giao dịch trong khối là hợp lệ và chưa được chi tiêu.
Nếu khối được chấp nhận là hợp lệ, nút đang làm việc trên khối mới của chính nó sẽ phải tập hợp lại các giao dịch trong khối của nó để đảm bảo rằng các giao dịch không bị trùng lặp. Nút bây giờ làm việc để tìm bằng chứng công việc trên khối mới được tạo của nó; trong khi làm như vậy, nó sẽ lấy băm của khối được chấp nhận làm băm trước đó.
Tương tự như vậy, blockchain tiếp tục phát triển mãi mãi.
Bây giờ, như chúng ta đã thấy toàn bộ hệ thống hoạt động như thế nào, hãy để tôi mô tả một số tác dụng phụ và cách giải quyết chúng.
Như chúng ta đã thấy trong chương Bitcoin - Khai thác, một người khai thác có thể bị ngập trong nhiều giao dịch tại bất kỳ khoảng thời gian nhất định nào. Kích thước tối đa cho một khối được xác định trước trong hệ thống, yêu cầu chỉ một số lượng giao dịch nhất định được đưa vào khối.
Số lượng giao dịch trong khối được xác định bởi kích thước khối được xác định trước và độ dài trung bình của mỗi khối. Một mẹo quan trọng ở đây là người gửi không nên đưa quá nhiều thông tin vào tin nhắn để làm cho nó ngắn gọn và do đó khuyến khích người khai thác chấp nhận nó trước những tin nhắn dài dòng khác.
Người gửi nói chung cũng sẽ thêm phí giao dịch về một số lượng bitcoin nhất định để khuyến khích người khai thác sớm đưa vào khối của mình.
Hệ quả khác trong việc xây dựng blockchain là kích thước đơn thuần của nó. Trong một khoảng thời gian, toàn bộ blockchain có thể trở nên quá lớn để một nút có thể lưu trữ nó trên đĩa của nó. Điều này được giải quyết bằng cách sử dụng Merkle Tree được mô tả tiếp theo.
Vấn đề về không gian đĩa trong một nút có thể dễ dàng khắc phục vì tất cả các giao dịch trong một khối đều được băm trong Cây Merkle như trong hình ảnh -
Tiêu đề khối bây giờ chứa hàm băm của khối trước đó, một Nonce và Root Hashcủa tất cả các giao dịch trong khối hiện tại trong Cây Merkle. Như thế nàyRoot Hashbao gồm các hàm băm của tất cả các giao dịch trong khối, các giao dịch này có thể được cắt bớt để tiết kiệm dung lượng đĩa. Vì vậy, bây giờ blockchain của bạn sẽ giống như trong hình ảnh dưới đây -
Điều này có thể dẫn đến tiết kiệm rất nhiều dung lượng đĩa. Chiến lược này được sử dụng bởi một khách hàng bình thường, những người chỉ quan tâm đến việc nhận thanh toán từ người khác. Tuy nhiên, các thợ mỏ cần lưu toàn bộ chuỗi khối. Bây giờ câu hỏi được đặt ra, làm thế nào người nhận xác minh khoản thanh toán mà không có khả năng truy tìm nguồn gốc của đồng xu đã nhận. Điều này được giải thích tiếp theo.
Hãy xem xét một trường hợp trong đó với tư cách là nhà cung cấp, bạn có thể muốn xác minh một khoản thanh toán nhất định đã thực hiện trong quá khứ. Vì blockchain bạn đang giữ trên máy của mình chỉ chứa các tiêu đề khối như được hiển thị trong hình trước đó, giao dịch mà bạn đang tìm kiếm bị thiếu trong bản sao blockchain của bạn.
Giờ đây, bạn có thể tìm kiếm ngược trong bản sao blockchain của mình cho đến khi bạn tìm thấy khối mà giao dịch mong muốn được đánh dấu thời gian. Bây giờ, hãy yêu cầu cây merkle của khối đã chọn và bạn sẽ có giao dịch mà bạn đang tìm kiếm. Điều này được minh họa trong Hình bên dưới -
Ở đây, chúng tôi giả định rằng bạn đang tìm kiếm Tx103. Mặc dù bạn có thể không xem được nội dung của Tx103, nhưng bạn biết rằng điều này đã được chấp nhận bởi khối mà nó thuộc về và tất cả các khối tiếp theo trong chuỗi. Vì vậy, bạn có thể an tâm tin tưởng giao dịch này và tiến hành kinh doanh của bạn.
Như chúng ta đã thấy, mạng Bitcoin chứa một số thợ đào. Có thể hai người khai thác khác nhau giải quyết Proof-of-Work cùng một lúc và do đó thêm các khối của họ vào khối cuối cùng đã biết trong chuỗi. Điều này được minh họa trong hình ảnh dưới đây -
Bây giờ, chúng ta có hai nhánh sau Khối 3. Cả hai nhánh đều hợp lệ. Vì vậy, khối được khai thác tiếp theo có thể được thêm vào một trong hai nhánh. Giả sử, người khai thác thêm khối mới được khai thác vào Khối 104-A, nhánh chứa Khối 104-A sẽ dài hơn nhánh chứa Khối 104-B. Điều này được minh họa trong hình ảnh dưới đây -
Trong kiến trúc Bitcoin, nhánh dài nhất luôn thắng và nhánh ngắn hơn bị loại bỏ. Vì vậy, Block 104-B phải được thanh lọc. Trước khi xóa khối này, tất cả các giao dịch trong khối này sẽ được trả lại cho nhóm giao dịch để chúng được khai thác và thêm vào một số khối trong tương lai. Đây là cách các xung đột được giải quyết và hệ thống chỉ duy trì một chuỗi khối duy nhất.
Vì sổ cái ghi lại tất cả các giao dịch bitcoin được thực hiện công khai nên quyền riêng tư đang bị đe dọa. Bất kỳ ai trên thế giới sẽ có thể biết ai đã trả tiền cho ai? Hệ thống ngân hàng truyền thống có thể duy trì loại quyền riêng tư này bằng cách giữ bí mật hồ sơ của nó.
Quyền riêng tư trong hệ thống Bitcoin đạt được bằng một chiến lược khác. Lưu ý rằng chúng tôi đã nói rằng người gửi bitcoin cần biết người trả tiền. Vì vậy, anh ta yêu cầu khóa công khai của nhà cung cấp mà anh ta muốn thực hiện thanh toán. Khóa công khai này có thể ẩn danh.
Theo nghĩa, với tư cách là nhà cung cấp một số dịch vụ, khi ai đó hỏi bạn gửi thanh toán ở đâu, bạn chỉ cần gửi cho họ khóa công khai của mình. Mối liên hệ của khóa công khai này với bạn không được ghi lại ở bất kỳ đâu trong sổ cái. Bằng cách đó, bất kỳ ai bên ngoài giao dịch này sẽ chỉ biết có bao nhiêu tiền được giao dịch và khóa công khai nào mà tiền được thanh toán.
Để đạt được mức độ riêng tư cao hơn, đối với mọi giao dịch, bạn có thể tạo khóa riêng tư / công khai mới cho mỗi giao dịch để nhiều giao dịch do bạn thực hiện không thể bị nhóm lại với nhau bởi một bên thứ ba. Đối với người ngoài, điều này đơn giản có nghĩa là nhiều giao dịch có giá trị nhỏ hơn đã được thực hiện và chúng sẽ không bao giờ được liên kết với một nguồn chung.
Cuối cùng, bất kỳ hệ thống dựa trên internet trực tuyến nào cũng dễ bị lạm dụng. Bây giờ tôi sẽ mô tả một số loại tấn công có thể xảy ra vào hệ thống Bitcoin và cách giảm thiểu những loại tấn công đó.
Tôi sẽ thảo luận về ba loại tấn công có thể xảy ra khác nhau trong hệ thống Bitcoin -
Cuộc tấn công cuộc đua
Là một kẻ tấn công, bạn có thể nhanh chóng gửi cùng một đồng tiền đến các nhà cung cấp khác nhau, có thể bằng cách sử dụng hai máy khác nhau. Nếu các nhà cung cấp không đợi xác nhận khối trước khi giao hàng, họ sẽ rất sớm nhận ra rằng giao dịch đã bị từ chối trong quá trình khai thác. Giải pháp cho kiểu tấn công này là nhà cung cấp phải đợi ít nhất một xác nhận khối trước khi gửi hàng đi.
Finney Attack
Trong trường hợp này, kẻ tấn công là thợ mỏ. Người khai thác khai thác một khối bằng giao dịch của mình và không phát hành nó trong hệ thống. Giờ đây, anh ta sử dụng cùng một số tiền trong giao dịch thứ hai và sau đó phát hành khối tiền khai thác. Rõ ràng, giao dịch thứ hai cuối cùng sẽ bị từ chối bởi các thợ đào khác, nhưng điều này sẽ mất một thời gian. Để giảm thiểu rủi ro này, người bán nên đợi ít nhất sáu xác nhận khối trước khi giải phóng hàng hóa.
Tấn công 51%
Trong kiểu tấn công này, chúng tôi đưa ra một giả định không thực tế rằng ai đó sở hữu 51% sức mạnh tính toán của mạng. Kẻ tấn công trong kiểu tấn công này khai thác một blockchain riêng tư, nơi anh ta chi gấp đôi số tiền.
Vì anh ấy sở hữu phần lớn sức mạnh tính toán, anh ấy được đảm bảo rằng blockchain riêng tư của anh ấy vào một thời điểm nào đó sẽ dài hơn chuỗi mạng “trung thực”. Sau đó, anh ta phát hành chuỗi khối riêng tư của mình trong hệ thống khiến tất cả các giao dịch trước đó được ghi lại trong chuỗi khối trung thực không hợp lệ.
Loại tấn công này là hư cấu vì rất tốn kém để có được sức mạnh tính toán bằng hoặc vượt quá 51% sức mạnh tính toán của toàn bộ mạng.
Trong hướng dẫn ngắn này, bạn đã được giới thiệu một số khái niệm về Blockchain bằng cách lấy Bitcoin làm nghiên cứu điển hình. Bitcoin là sự triển khai thành công đầu tiên của blockchain. Ngày nay, thế giới đã tìm thấy các ứng dụng của công nghệ blockchain trong một số ngành công nghiệp, nơi mong muốn có được sự tin tưởng mà không có sự tham gia của cơ quan quản lý tập trung. Vì vậy, chào mừng bạn đến với thế giới của Blockchain.
Các bài đọc thêm -
Bản gốc của Satoshi - Bitcoin: Hệ thống tiền mặt điện tử ngang hàng
Trang web chính thức - Bitcoin.org