Mục lục:

Cách thức hoạt động của chuỗi khối
Cách thức hoạt động của chuỗi khối

Video: Cách thức hoạt động của chuỗi khối

Video: Cách thức hoạt động của chuỗi khối
Video: So Sánh Bánh Lốp Và Bánh Xích, Đâu Là Lựa Chọn Tốt Nhất Cho Xe Tăng Chiến Đấu Chủ Lực? 2024, Có thể
Anonim

Bài đăng này nhằm mục đích cho mọi người biết lý do tại sao blockchain được phát minh, cách hoạt động của tiền điện tử và tại sao nó là hệ thống đẹp nhất trong những năm gần đây theo quan điểm logic.

Tôi sẽ ngay lập tức cảnh báo bạn rằng dưới phần cắt có một trang văn bản KHỔNG LỒ và nếu bạn chưa sẵn sàng "đóng" câu hỏi về chủ đề tiền điện tử một lần và mãi mãi, hãy thêm một mục vào mục yêu thích của bạn ngay bây giờ và đặt trước thời gian)

Blockchain là một công nghệ, mới, lạ, không thể hiểu được, nhưng nó dường như đang thay đổi thế giới, trái ngược với những câu chuyện này của bạn. Rõ ràng, cô ấy ở với chúng tôi trong một thời gian dài.

Bài đăng này được viết như thể nó đang nói với những người ở rất xa máy tính và chỉ biết chúng một cách hời hợt, chẳng hạn, hãy tưởng tượng rằng anh ấy đang chuẩn bị cho bố mẹ của bạn. Tôi thậm chí có thể ném nó cho đồng nghiệp của tôi và chắc chắn rằng họ sẽ hiểu.

Và Oleg sẽ giúp tất cả chúng ta trong vấn đề khó khăn này. Gặp nhau!

Nếu bạn không thích Oleg, tôi sẽ đuổi anh ta ra ngoài.

Những điều cơ bản: tại sao chúng ta cần blockchain?

Blockchain đã được mô tả trong bài báo của Satoshi Nakamoto "Bitcoin: Hệ thống tiền mặt điện tử ngang hàng". Ở đó, chỉ trong tám trang, tác giả đã mô tả những điều cơ bản về tiền điện tử Bitcoin, dựa trên thuật toán Blockchain.

Danh sách không thể thay đổi

Chuỗi khối - một chuỗi các khối hay nói cách khác là một danh sách liên kết. Trong một danh sách như vậy, mỗi bản ghi tiếp theo đề cập đến một bản ghi trước đó, và cứ như vậy xuống chuỗi đến bản ghi đầu tiên. Giống như các toa của một đoàn tàu, mỗi toa kéo theo toa tiếp theo. Về danh sách, có một bài báo hay của Nikita Likhachev trên TJ, nơi điều này cũng được giải thích cho những người mới hoàn toàn. Các phép loại suy một phần được lấy từ đó.

Hãy lấy một ví dụ

Bạn bè của Oleg liên tục vay tiền anh ta. Oleg tốt bụng, nhưng cực kỳ đãng trí. Một tuần sau, anh ta không còn nhớ ai đã không trả nợ cho mình, nhưng anh ta lúng túng hỏi mọi người về việc đó. Vì vậy, một ngày nọ, anh ấy quyết định chấm dứt điều này bằng cách tạo ra một danh sách bạn bè trên bảng đen ở nhà anh ấy mà anh ấy đã vay tiền.

Bây giờ Oleg luôn có thể lên bảng và đảm bảo rằng Max đã trả lại mọi thứ, nhưng Vanya chưa đưa 700 rúp rồi. Một ngày nọ, Oleg mời Vanya đi uống rượu tại nhà riêng. Trong khi Oleg đang đi vệ sinh, Vanya xóa mục nhập "Tôi đã mượn 200 rúp cho Vanya" và viết vào chỗ của nó "Vanya đã đưa 500 rúp".

Oleg, người đã tin tưởng vào danh sách của mình, quên đi khoản nợ và mất 700 rúp. Anh ta quyết định bằng cách nào đó sẽ chiến đấu với nó. Năm ngoái, Oleg đã tham dự một khóa học lập trình, nơi anh được nghe về băm. Anh ấy nhớ rằng bất kỳ chuỗi nào cũng có thể được biến thành một tập hợp ký tự rõ ràng - một hàm băm và việc thay đổi bất kỳ ký tự nào trong chuỗi sẽ thay đổi hoàn toàn nó.

Thêm một dấu chấm ở cuối đã thay đổi hàm băm cuối cùng không thể nhận dạng được - bạn có thể sử dụng nó.

Oleg lấy hàm băm SHA-256 nổi tiếng và băm từng bản ghi với nó, thêm kết quả vào cuối. Giờ đây, Oleg có thể đảm bảo rằng không có ai thay đổi bản ghi của mình bằng cách băm chúng một lần nữa và so sánh chúng với bản màu xanh lá cây.

Nhưng EVIL IVAN cũng biết cách sử dụng SHA-256 và có thể dễ dàng thay đổi mục nhập cùng với hàm băm của nó. Đặc biệt nếu hàm băm được viết ngay bên cạnh nó trên bảng.

Do đó, để bảo mật cao hơn, Oleg quyết định băm không chỉ bản ghi mà còn thêm nó cùng với băm từ bản ghi trước đó. Bây giờ tất cả các mục sau phụ thuộc vào những mục trước. Nếu bạn thay đổi ít nhất một dòng, bạn sẽ phải tính toán lại hàm băm của tất cả các dòng khác bên dưới trong danh sách.

Nhưng một ngày nọ, Ivan lẻn vào ban đêm, thay đổi mục nhập mà anh ta cần và cập nhật mã băm cho toàn bộ danh sách đến cuối. Phải mất vài giờ, nhưng Oleg vẫn ngủ say và không thể nghe thấy. Vào buổi sáng, Oleg phát hiện ra một danh sách hoàn toàn chính xác - tất cả các hàm băm đều khớp. Nhưng dù sao thì Ivan cũng đã lừa dối anh, mặc dù anh đã trải qua một đêm mất ngủ vì điều đó. Bạn có thể bảo vệ mình khỏi Night Ivan bằng cách nào khác?

Oleg quyết định bằng cách nào đó làm phức tạp cuộc sống của mình. Bây giờ, để thêm một mục mới vào danh sách, Oleg sẽ giải một bài toán phức tạp liên quan đến nó, ví dụ, một phương trình toán học. Anh ấy sẽ thêm câu trả lời vào hàm băm cuối cùng.

Oleg giỏi toán học, nhưng thậm chí phải mất mười phút để thêm một bài dự thi. Mặc dù vậy, thời gian đã bỏ ra là xứng đáng, bởi vì nếu Ivan muốn thay đổi thứ gì đó một lần nữa, anh ta sẽ phải giải lại các phương trình cho mỗi hàng, và có thể có hàng chục trong số chúng. Sẽ mất rất nhiều thời gian, vì các phương trình là duy nhất mỗi lần và gắn với một bản ghi cụ thể.

Nhưng việc kiểm tra danh sách cũng rất đơn giản: trước tiên bạn cần so sánh các hàm băm như trước, và sau đó kiểm tra các nghiệm của phương trình bằng phép thay thế đơn giản. Nếu mọi thứ hội tụ, danh sách không bị thay đổi.

Trong thực tế, mọi thứ không tốt với các phương trình: máy tính giải chúng quá tốt, và nơi lưu trữ nhiều phương trình độc nhất. Do đó, các tác giả của blockchain đã đưa ra một vấn đề hay hơn: bạn cần tìm một số như vậy (nonce) để băm cuối cùng của toàn bộ bản ghi bắt đầu bằng 10 số không. Rất khó tìm thấy một nonce như vậy, nhưng kết quả luôn có thể được kiểm tra bằng mắt thường.

Bây giờ Oleg xác minh tất cả các hàm băm và bổ sung đảm bảo rằng mỗi hàm bắt đầu bằng số lượng số không được chỉ định. Sly Ivan, ngay cả khi được trang bị một máy tính xách tay mạnh mẽ, sẽ không có thời gian để tính toán lại tất cả các hàm băm trong một đêm để chúng thỏa mãn điều kiện - sẽ không có đủ thời gian.

Một danh sách như vậy, trên thực tế, là blockchain gia đình trên đầu gối của nó. Sự an toàn của nó được đảm bảo bởi các nhà toán học, những người đã chứng minh rằng những hàm băm này không thể được tính toán nhanh hơn bằng cách nào đó, ngoại trừ bằng vũ lực. Việc liệt kê các hàm băm như vậy cho mỗi bản ghi là khai thác, ngày nay sẽ có rất nhiều và chi tiết.

Tập trung lòng tin

Bạn bè của chúng tôi thích ý tưởng giữ một danh sách giả "ai mượn ai". Họ cũng không muốn nhớ ai đã trả tiền cho ai trong quán bar và họ vẫn nợ bao nhiêu - mọi thứ đều được viết trên tường. Bạn đã thảo luận về ý tưởng và quyết định rằng bây giờ bạn cần một danh sách duy nhất cho tất cả.

Nhưng ai là người nên được giao phó việc ghi sổ kế toán quan trọng như vậy? Rốt cuộc, khi nói đến tiền bạc, niềm tin được đặt lên hàng đầu. Chúng tôi sẽ không tin tưởng vào những điều chưa biết để giữ tiền của chúng tôi. Đối với điều này, tổ tiên của chúng ta đã phát minh ra ngân hàng, theo thời gian bắt đầu được tin cậy, bởi vì chúng được hỗ trợ bởi giấy phép, luật và bảo hiểm từ Ngân hàng Trung ương.

Trong vòng kết nối bạn bè, mọi người đều tin tưởng lẫn nhau và bạn có thể đơn giản chọn người chịu trách nhiệm cao nhất cho vai trò này. Nhưng nếu câu hỏi là về người lạ thì sao? Toàn bộ thành phố, quốc gia hay toàn thế giới, như trường hợp của Bitcoin? Nói chung, ở đó không ai có thể tin được ai.

Phi tập trung: không ai tin ai

Vì vậy, họ đã nghĩ ra một cách tiếp cận thay thế: giữ một bản sao của danh sách cho mọi người. Do đó, kẻ tấn công sẽ không chỉ phải viết lại một danh sách mà còn phải lẻn vào từng ngôi nhà và viết lại danh sách ở đó. Và sau đó hóa ra là ai đó đã giữ một số danh sách ở nhà, mà không ai biết về nó. Đây là sự phân quyền.

Nhược điểm của phương pháp này là để thực hiện các mục mới, bạn sẽ phải gọi tất cả những người tham gia khác và thông báo cho từng người trong số họ về những thay đổi mới nhất. Nhưng nếu những người tham gia này là những cỗ máy vô hồn, nó sẽ không còn là vấn đề gì cả.

Trong một hệ thống như vậy, không có điểm tin cậy duy nhất, và do đó có khả năng hối lộ và gian lận. Tất cả những người tham gia vào hệ thống đều hành động theo một quy tắc duy nhất: không ai tin ai. Mọi người chỉ tin vào thông tin mà họ có theo ý của họ. Đây là luật chính của bất kỳ mạng phi tập trung nào.

Giao dịch

Khi mua nồi ở cửa hàng, bạn nhập mã pin từ thẻ của mình, cho phép cửa hàng hỏi ngân hàng xem bạn có 35 rúp trong tài khoản của mình hay không. Nói cách khác, bạn ký một giao dịch với giá 35 rúp bằng mã pin của mình, mã pin mà ngân hàng xác nhận hoặc từ chối.

Hồ sơ của chúng tôi về loại "Tôi đã mượn Vanya 500 rúp" cũng là các giao dịch. Nhưng chúng tôi không có ngân hàng ủy quyền cho tác giả của các giao dịch. Làm thế nào chúng ta có thể kiểm tra rằng Ivan đã không âm thầm thêm mục nhập "Max nợ Oleg 100.500 rúp"?

Blockchain sử dụng cơ chế của các khóa công khai và riêng tư cho việc này; các chuyên gia CNTT từ lâu đã sử dụng chúng để ủy quyền trong cùng một SSH. Tôi đã giải thích nó trên ngón tay của tôi trong bài đăng "Bảo mật, mã hóa, cyberpunk" trong phần "Giới thiệu về mã hóa".

Sơ lược về cách thức hoạt động của phép toán phức tạp nhưng đẹp đẽ này: bạn tạo một cặp số nguyên tố dài trên máy tính của mình - khóa công khai và khóa riêng. Khóa riêng được coi là siêu bí mật vì nó có thể giải mã những gì được mã hóa công khai.

Nhưng ngược lại cũng có tác dụng. Nếu bạn chia sẻ khóa công khai với tất cả bạn bè của mình, họ sẽ có thể mã hóa bất kỳ tin nhắn nào cho họ để chỉ bạn mới có thể đọc được vì bạn sở hữu khóa riêng tư.

Nhưng bên cạnh đó, khóa công khai có một tác dụng hữu ích - với nó, bạn có thể kiểm tra xem dữ liệu đã được mã hóa bằng khóa riêng tư của mình hay chưa mà không cần giải mã chính dữ liệu đó. Tất cả các thuộc tính này được mô tả kỹ trong "Sách mật mã".

Chúng tôi đang sử dụng một mạng internet phi tập trung, nơi không ai có thể tin cậy được. Giao dịch được ký bằng khóa riêng và cùng với khóa công khai, được gửi đến một kho lưu trữ đặc biệt - một nhóm các giao dịch chưa được xác nhận. Vì vậy, bất kỳ thành viên nào của mạng đều có thể xác minh rằng chính bạn là người đã khởi xướng nó, chứ không phải ai khác muốn đền đáp bằng tiền của bạn.

Điều này đảm bảo tính mở và bảo mật của mạng. Nếu các ngân hàng trước đó chịu trách nhiệm cho việc này, thì trong chuỗi khối, các nhà toán học phải chịu trách nhiệm cho việc này.

Đối với những người dùng thông thường không muốn tìm cách phát hành và lưu trữ khóa cá nhân, các dịch vụ ví trực tuyến sẽ giúp ích. Để sao chép các khóa công khai dài, mã QR thuận tiện được tạo ở đó. Ví dụ: Ví Blockchain, vì nó có một ứng dụng di động tiện lợi và hỗ trợ hai loại tiền điện tử chính - BTC và ETH.

Thiếu khái niệm "cân bằng"

Giống như hội đồng quản trị của chúng tôi, về cơ bản blockchain chỉ bao gồm lịch sử giao dịch. Nó không lưu trữ số dư của mỗi ví, nếu không chúng tôi sẽ phải phát minh ra các phương pháp bảo vệ bổ sung.

Chỉ có khóa riêng xác nhận quyền sở hữu của ví. Nhưng làm thế nào các thành viên khác của mạng lưới có thể đảm bảo rằng tôi có đủ tiền để mua?

Vì chúng tôi không có số dư, bạn phải chứng minh điều đó. Do đó, một giao dịch blockchain không chỉ bao gồm chữ ký của bạn và số tiền bạn muốn chi tiêu, mà còn liên kết với các giao dịch trước đó mà bạn đã nhận được số tiền cần thiết.

Nghĩa là, nếu bạn muốn chi tiêu 400 rúp, bạn sẽ xem qua toàn bộ lịch sử thu nhập và chi phí của mình và đính kèm vào giao dịch của bạn những khoản thu nhập mà bạn được cấp 100 + 250 + 50 rúp, do đó chứng minh rằng bạn có 400 rúp này.

Mỗi thành viên của mạng lưới sẽ một lần nữa chắc chắn rằng bạn đã không đính kèm thu nhập hai lần. Đó là 300 rúp mà Max đã đưa vào tuần trước, bạn thực sự vẫn chưa tiêu.

Những khoản thu nhập như vậy gắn liền với một giao dịch được gọi là đầu vào trong chuỗi khối và tất cả những người nhận tiền được gọi là đầu ra. Tổng của tất cả các đầu vào hiếm khi chính xác giống như bạn muốn chuyển tại một thời điểm - do đó, một trong những đầu ra thường là chính bạn. Nói cách khác, giao dịch trên blockchain trông giống như "Tôi đã được cấp 3 và 2 BTC, tôi muốn chuyển 4 BTC từ chúng và trả lại 1 BTC còn lại."

Vẻ đẹp của blockchain là đầu vào không nhất thiết phải đến từ một ví. Rốt cuộc, chỉ có chìa khóa được kiểm tra. Nếu bạn biết khóa riêng của tất cả các đầu vào, thì bạn có thể dễ dàng đính kèm chúng vào giao dịch của mình và thanh toán bằng số tiền này. Như thể bạn đang thanh toán trong một siêu thị bằng một số thẻ mà từ đó bạn biết mã pin.

Tuy nhiên, nếu bạn mất khóa cá nhân, ổ đĩa bị chết hoặc máy tính xách tay của bạn bị đánh cắp, bitcoin của bạn sẽ bị mất vĩnh viễn. Không ai có thể sử dụng chúng làm đầu vào cho các giao dịch mới.

Số tiền này sẽ vĩnh viễn không thể tiếp cận được đối với toàn thế giới - như thể bạn đốt một gói tiền giấy. Không có ngân hàng nào mà bạn có thể viết đơn cùng với một bản sao hộ chiếu của bạn, và anh ấy sẽ in nó. Điều này đòi hỏi phải có thêm một đợt phát hành bitcoin mới "ngoài luồng".

Vấn đề chi tiêu gấp đôi

Ở trên tôi đã nói rằng các giao dịch được thêm vào một "nhóm giao dịch chưa được xác nhận" đặc biệt. Tại sao chúng ta cần một số loại thực thể trung gian, nếu chúng ta đã có, trên thực tế, các giao dịch đã ký sẵn sàng? Tại sao không viết chúng trực tiếp vào blockchain?

Bởi vì các tín hiệu từ điểm A đến điểm B luôn đi kèm với một thời gian trễ. Hai giao dịch có thể đi theo những cách hoàn toàn khác nhau. Và giao dịch được bắt đầu trước có thể đến người nhận sau đó, vì nó mất một con đường dài hơn.

Điều này dẫn đến chi tiêu gấp đôi, khi cùng một khoản tiền được gửi đến hai người nhận cùng một lúc, điều mà họ thậm chí sẽ không đoán được. Đây không phải là chuyển giao các hóa đơn từ tay này sang tay khác.

Đối với một mạng phi tập trung trong đó không ai có thể tin cậy được, vấn đề này đặc biệt nghiêm trọng. Đây là cách bạn đảm bảo rằng một giao dịch chắc chắn là trước một giao dịch khác? Yêu cầu người gửi may thời gian gửi vào đó, phải không? Nhưng hãy nhớ - bạn không thể tin tưởng bất cứ ai, ngay cả người gửi.

Thời gian trên tất cả các máy tính nhất thiết sẽ khác nhau và không có cách nào đảm bảo để đồng bộ hóa chúng. Một bản sao của chuỗi khối được lưu trữ trên mọi máy tính trong mạng và mỗi người tham gia chỉ tin tưởng vào nó.

Làm thế nào bạn có thể đảm bảo rằng một giao dịch sớm hơn một giao dịch khác?

Câu trả lời rất đơn giản: điều đó là không thể. Không có cách nào để xác nhận thời gian của giao dịch trên mạng phi tập trung. Và giải pháp cho vấn đề này là ý tưởng blockchain quan trọng thứ ba mà Satoshi đã phát minh ra và điều kỳ lạ là nó được viết ngay trong tên của anh ấy - các khối.

Các khối là xương sống của chuỗi khối

Mỗi máy tính hoạt động trên mạng chọn bất kỳ giao dịch nào mà nó thích từ nhóm chung. Thường chỉ với khoản hoa hồng cao nhất mà anh ta có thể kiếm được trên đó. Vì vậy, anh ta thu thập các giao dịch cho chính mình cho đến khi tổng kích thước của chúng đạt đến giới hạn đã thương lượng. Trong Bitcoin, giới hạn kích thước khối này là 1 MB (sau SegWit2x, nó sẽ là 2 MB) và trong Bitcoin Cash - 8 MB.

Toàn bộ chuỗi khối về cơ bản là một danh sách các khối như vậy, trong đó mỗi khối đề cập đến khối trước đó. Nó có thể được sử dụng để theo dõi bất kỳ giao dịch nào trong toàn bộ lịch sử, giải nén chuỗi khối ngay cả với bản ghi đầu tiên.

Đó là danh sách này hiện nặng hàng trăm gigabyte và phải được tải xuống đầy đủ cho tất cả các máy tính muốn tham gia vào mạng (nhưng điều này không cần thiết chỉ đơn giản là tạo giao dịch và chuyển tiền). Nó được tải xuống theo cùng một cách từ tất cả các máy tính gần nhất trên mạng, giống như thể bạn đang tải một loạt phim từ torrent, chỉ các tập mới mới được phát hành trong đó 10 phút một lần.

Sau khi nhập các giao dịch từ nhóm cho chính nó, máy tính bắt đầu soạn từ chúng một danh sách không thể kiểm soát được giống như chúng ta đã làm ở đầu bài đăng trên bảng ở nhà.

Chỉ có anh ta làm cho nó ở dạng một cái cây - băm các bản ghi theo từng cặp, sau đó kết quả lại là theo từng cặp, và cứ tiếp tục như vậy cho đến khi chỉ còn lại một hàm băm - gốc của cây, được thêm vào khối. Tại sao chính xác với một cái cây - tôi không tìm thấy câu trả lời, nhưng tôi cho rằng nó đơn giản là nhanh hơn theo cách đó. Đọc thêm trên wiki: Merkle tree.

Vì blockchain hiện tại đã được tải xuống, máy tính của chúng tôi biết chính xác khối cuối cùng nằm trong đó là gì. Anh ấy chỉ cần thêm một liên kết đến nó trong tiêu đề khối, băm tất cả và nói với tất cả các máy tính khác trên mạng “xem này, tôi đã tạo một khối mới, hãy thêm nó vào chuỗi khối của chúng ta”.

Phần còn lại nên kiểm tra xem khối có được xây dựng theo tất cả các quy tắc hay không và chúng tôi đã không thêm các giao dịch không cần thiết vào đó, sau đó thêm chúng vào chuỗi của chúng tôi. Bây giờ tất cả các giao dịch trong đó đã được xác nhận, blockchain được tăng thêm một khối và mọi thứ đang diễn ra tốt đẹp, phải không?

Nhưng không. Hàng nghìn máy tính đang đồng thời làm việc trên mạng và ngay sau khi họ lắp ráp một khối mới, họ gần như đồng thời vội vàng thông báo cho mọi người rằng khối của họ đã được tạo trước. Và từ phần trước, chúng ta đã biết rằng trong một mạng phi tập trung, không thể chứng minh ai thực sự là người đầu tiên.

Như ở trường, khi tất cả mọi người đều giải một bài kiểm tra khó, hiếm khi xảy ra trường hợp học sinh xuất sắc lấy đáp án cùng một lúc.

Nhưng nếu đối với một người, việc lên kế hoạch cho một kỳ nghỉ sao cho đến ngày nghỉ tháng Năm là một nhiệm vụ khó khăn và vé đi biển không đắt, thì đối với máy tính, việc thêm một số như vậy (nonce) vào cuối để kết quả là hàm băm SHA-256 cho toàn bộ khối bắt đầu, giả sử là 10 số không. Đây là vấn đề cần được giải quyết để thêm một khối vào mạng Bitcoin. Đối với các mạng khác, các nhiệm vụ có thể khác nhau.

Vì vậy, chúng ta đến với khái niệm khai thác, mà mọi người đã bị ám ảnh trong những năm gần đây.

Khai thác mỏ

Khai thác bitcoin không phải là một loại bí tích thiêng liêng nào đó. Khai thác không phải là tìm kiếm bitcoin mới ở đâu đó trong chiều sâu của Internet. Khai thác là khi hàng nghìn máy tính trên khắp thế giới chạy ồn ào trong các tầng hầm, trải qua hàng triệu con số mỗi giây, cố gắng tìm một hàm băm bắt đầu bằng 10 số không. Họ thậm chí không cần phải trực tuyến để làm điều này.

Card màn hình với hàng trăm lõi song song giải quyết vấn đề này nhanh hơn bất kỳ CPU nào.

Tại sao chính xác là 10 số không? Và chỉ như vậy, nó không có ý nghĩa. Vì vậy, Satoshi đã nghĩ ra. Bởi vì đây là một trong những vấn đề luôn có lời giải, nhưng chắc chắn không thể tìm ra nó nhanh hơn một bảng liệt kê dài đơn điệu các phương án.

Mức độ phức tạp của việc khai thác trực tiếp phụ thuộc vào quy mô của mạng, tức là tổng sức mạnh của nó. Nếu bạn tạo blockchain của riêng mình và tự chạy nó ở nhà trên hai máy tính xách tay, thì nhiệm vụ sẽ đơn giản hơn. Ví dụ: để băm chỉ bắt đầu bằng một số 0 hoặc sao cho tổng các chữ số chẵn bằng tổng các chữ số lẻ.

Sẽ mất vài thập kỷ để một máy tính tìm thấy một băm bắt đầu bằng 10 số không. Nhưng nếu bạn kết hợp hàng nghìn máy tính thành một mạng duy nhất và tìm kiếm song song, thì theo lý thuyết xác suất, vấn đề này trung bình được giải quyết trong 10 phút. Đây là thời điểm khi một khối mới xuất hiện trong chuỗi khối bitcoin.

Cứ sau 8-12 phút, một người nào đó trên trái đất tìm thấy một hàm băm như vậy và có đặc quyền thông báo khám phá của họ cho mọi người, do đó tránh được vấn đề ai là người đầu tiên.

Để tìm ra câu trả lời, máy tính (tính đến năm 2017) nhận được 12,5 BTC - đây là số lượng phần thưởng được tạo ra bởi hệ thống bitcoin "ngoài luồng" và giảm sau mỗi bốn năm.

Về mặt kỹ thuật, điều này có nghĩa là mỗi người khai thác luôn thêm một giao dịch khác vào khối của mình - “tạo 12,5 BTC và gửi chúng vào ví của tôi”. Khi bạn nghe thấy "số lượng bitcoin trên thế giới được giới hạn ở 21 triệu, bây giờ họ đã thuê 16 triệu" - đây là những phần thưởng do mạng tạo ra.

Đi xem một khối Bitcoin trực tiếp thực sự trên một trong những trang web chuyên dụng. Ngoài ra còn có các giao dịch với đầu vào và đầu ra, và có tới 18 số không ở đầu và tất cả các hàm băm được mô tả ở trên.

Chính những người khai thác đã thêm các giao dịch mới nổi vào chuỗi khối. Vì vậy, nếu ai đó nói với bạn rằng anh ta sẽ "tạo ra một blockchain cho ***", câu hỏi đầu tiên anh ta phải trả lời là ai sẽ khai thác nó và tại sao. Thông thường, câu trả lời chính xác là "tất cả mọi người sẽ như vậy, bởi vì để khai thác, chúng tôi cung cấp cho đồng tiền của mình, đồng tiền này sẽ phát triển và nó mang lại lợi nhuận cho các thợ đào". Nhưng điều này không áp dụng cho tất cả các dự án.

Ví dụ, một số Bộ Y tế vào ngày mai tạo ra blockchain khép kín của riêng mình cho các bác sĩ (và họ muốn nó), ai sẽ khai thác nó? Các nhà trị liệu cuối tuần?

Nhưng lợi ích cho các thợ đào sau này là gì, khi phần thưởng biến mất hoặc trở nên ít ỏi?

Theo ý tưởng của Người sáng tạo, vào thời điểm đó mọi người sẽ phải tin vào thực tế của bitcoin và hoạt động khai thác sẽ bắt đầu mang lại lợi nhuận bằng số phí bao gồm trong mỗi giao dịch. Đây là nơi mọi thứ diễn ra: trở lại năm 2012, tất cả tiền hoa hồng đều bằng không, các thợ đào chỉ khai thác để lấy phần thưởng từ các khối. Ngày nay, một giao dịch không có hoa hồng có thể tồn tại trong vài giờ, bởi vì có sự cạnh tranh và mọi người sẵn sàng trả tiền cho tốc độ.

Đó là, bản chất của khai thác là giải quyết các vấn đề vô nghĩa. Chẳng lẽ tất cả sức mạnh này không thể được sử dụng cho việc gì đó hữu ích hơn - ví dụ như việc tìm kiếm phương pháp chữa trị bệnh ung thư?

Bản chất của khai thác là giải quyết bất kỳ vấn đề tính toán nào. Nhiệm vụ này phải đủ đơn giản để những người tham gia mạng có xác suất ổn định để tìm ra câu trả lời - nếu không, các giao dịch sẽ được xác nhận mãi mãi. Hãy tưởng tượng rằng khi thanh toán trong một cửa hàng, bạn phải đợi nửa giờ mỗi lần để ngân hàng xác nhận giao dịch của bạn. Sẽ không ai sử dụng một ngân hàng như vậy.

Nhưng nhiệm vụ phải đồng thời khó khăn khiến tất cả cư dân mạng cùng một lúc không tìm ra đáp án. Bởi vì trong trường hợp này họ sẽ thông báo nhiều khối có giao dịch giống nhau lên mạng và sẽ có khả năng xảy ra "lãng phí kép", mà tôi đã đề cập. Hoặc thậm chí tệ hơn - chia một chuỗi khối duy nhất thành nhiều nhánh, trong đó không ai có thể tìm ra giao dịch nào được xác nhận và giao dịch nào không.

Nếu phần thưởng 12,5 BTC chỉ được trao 10 phút một lần và chỉ có một người tìm thấy khối, thì hóa ra tôi đã phải lãng phí thẻ video trong vài năm với hy vọng một ngày nào đó tôi sẽ giảm được 40.000 đô la (tại Tỷ giá hối đoái hiện hành)?

Đây chính xác là trường hợp của bitcoin. Nhưng nó không phải luôn luôn như vậy. Trước đây, mạng nhỏ hơn, độ phức tạp thấp hơn, có nghĩa là xác suất tìm kiếm một cách thủ công một mã băm cho một khối mới cao hơn. Nhưng khi đó bitcoin không đắt như vậy.

Bây giờ không ai khai thác bitcoin một mình. Giờ đây, những người tham gia được thống nhất thành các nhóm đặc biệt - các nhóm khai thác, nơi mọi người cùng nhau cố gắng tìm ra hàm băm chính xác.

Nếu ít nhất một người trong nhóm tìm thấy, thì toàn bộ phần thưởng được chia cho những người tham gia, tùy thuộc vào đóng góp của họ vào công việc chung. Nó chỉ ra rằng bạn đang khai thác và bạn nhận được một xu từ tổng số chia sẻ mỗi tuần.

Nhưng việc khai thác một mình hoàn toàn có thể xảy ra trên các mạng khác. Cho đến gần đây, thật dễ dàng để khai thác Ethereum, nơi các khối được tìm thấy cứ sau 10 giây. Phần thưởng khối ở đó thấp hơn nhiều, nhưng xác suất kiếm được một xu khá cao hơn.

Vậy là chúng ta sẽ đốt hàng nghìn card màn hình một cách vô ích và không có lối thoát?

Có, nhưng có những ý tưởng. Việc khai thác mà tôi đã mô tả là cổ điển và được gọi là Proof-of-Work (bằng chứng công việc). Có nghĩa là, mỗi máy chứng minh rằng nó hoạt động vì lợi ích của mạng bằng cách giải quyết các vấn đề vô nghĩa với một xác suất nhất định.

Nhưng một số người đang bắt đầu tạo blockchain với các loại hình khai thác khác. Hiện nay, khái niệm phổ biến thứ hai là Proof-of-Stake (bằng chứng về cổ phần). Trong loại hình khai thác này, người tham gia mạng càng có nhiều “tiền” trong tài khoản của mình, thì khả năng anh ta chèn khối của mình vào blockchain càng cao. Giống như một gã ồn ào nhất trong làng.

Bạn có thể nghĩ đến các loại hình khai thác khác. Như đã đề xuất, tất cả các máy tính trên mạng đều có thể tìm cách chữa khỏi bệnh ung thư, chỉ bạn cần tìm ra cách, trong trường hợp này, ghi lại đóng góp của chúng cho hệ thống. Sau cùng, tôi có thể tuyên bố rằng tôi cũng đang tham gia, nhưng tắt card màn hình của tôi và không tính gì cả.

Làm thế nào để bạn định lượng sự đóng góp của mỗi người tham gia trong việc tìm ra phương pháp chữa khỏi bệnh ung thư? Nếu bạn nghĩ ra nó - dám cắt giảm CancerCoin của bạn, thì sự cường điệu trên các phương tiện truyền thông được đảm bảo cho bạn.

Chuỗi khối

Hãy tưởng tượng một tình huống trong đó, bất chấp tất cả lý thuyết về xác suất của chúng ta, hai thợ đào vẫn cố gắng tìm ra câu trả lời đúng cùng một lúc. Họ bắt đầu gửi hai khối hoàn toàn chính xác qua mạng.

Các khối này được đảm bảo là khác nhau, bởi vì ngay cả khi chúng chọn các giao dịch giống nhau một cách kỳ diệu từ nhóm, tạo các cây hoàn toàn giống hệt nhau và đoán cùng một số ngẫu nhiên (nonce), thì các băm của chúng vẫn sẽ khác nhau, vì mỗi khối sẽ ghi số ví của mình vào khối cho phần thưởng.

Bây giờ chúng ta có hai khối hợp lệ và một lần nữa vấn đề nảy sinh là ai nên được xem xét đầu tiên. Mạng sẽ hoạt động như thế nào trong trường hợp này?

Thuật toán blockchain tuyên bố rằng những người tham gia mạng chỉ cần chấp nhận câu trả lời đúng đầu tiên mà họ đạt được. Sau đó, họ sống trên cơ sở bức tranh của riêng họ về thế giới.

Cả hai thợ đào sẽ nhận được phần thưởng của họ và tất cả những người còn lại bắt đầu khai thác, dựa trên khối cuối cùng mà họ nhận được cá nhân, loại bỏ tất cả những phần còn lại được sửa lại. Hai phiên bản của blockchain chính xác xuất hiện trên mạng. Đó là một nghịch lý.

Đây là một tình huống thường xuyên mà lý thuyết xác suất sẽ giúp ích một lần nữa. Mạng hoạt động ở trạng thái phân nhánh như vậy cho đến khi một trong những người khai thác tìm thấy khối tiếp theo của một trong những chuỗi này.

Ngay sau khi một khối như vậy được tìm thấy và chèn vào chuỗi, nó sẽ dài hơn và một trong những thỏa thuận của mạng blockchain được bao gồm: trong mọi điều kiện, chuỗi khối dài nhất được chấp nhận là khối đúng duy nhất cho toàn bộ mạng.

Chuỗi ngắn, bất chấp tất cả tính đúng đắn của nó, bị từ chối bởi tất cả những người tham gia trong mạng. Các giao dịch từ nó được trả lại cho nhóm (nếu chúng chưa được xác nhận trong một nhóm khác) và quá trình xử lý của chúng sẽ bắt đầu lại. Người khai thác mất phần thưởng của mình vì khối của anh ta không còn tồn tại.

Với sự phát triển của mạng lưới, những sự trùng hợp như vậy từ "rất khó xảy ra" chuyển thành phạm trù "tốt, đôi khi nó xảy ra." Những người xưa nói rằng đã có trường hợp một chuỗi bốn khối bị rơi cùng một lúc.

Bởi vì điều này, ba quy tắc không an toàn cuối chuỗi đã được phát minh:

1. Phần thưởng cho việc khai thác chỉ có thể được sử dụng sau 20 khối được xác nhận khác sau khi nhận được. Đối với Bitcoin, đây là khoảng ba giờ.

2. Nếu bitcoin được gửi cho bạn, bạn có thể sử dụng chúng làm đầu vào trong các giao dịch mới chỉ sau 1-5 khối.

3. Quy tắc 1 và 2 chỉ được viết trong cài đặt của mỗi ứng dụng khách. Không ai giám sát việc tuân thủ của họ. Nhưng luật chuỗi dài nhất vẫn sẽ xóa sổ tất cả các giao dịch của bạn nếu bạn cố gắng lừa hệ thống không thực thi chúng.

Cố gắng gian lận chuỗi khối

Bây giờ bạn đã biết mọi thứ về khai thác, thiết bị của chuỗi khối và quy tắc của chuỗi dài nhất, bạn có thể có câu hỏi: liệu có thể bằng cách nào đó vượt qua chuỗi khối một cách cụ thể bằng cách tự tạo chuỗi dài nhất, do đó xác nhận các giao dịch giả mạo của bạn.

Giả sử bạn có máy tính mạnh nhất trên trái đất. Các trung tâm dữ liệu của Google và Amazon kết hợp với nhau theo ý của bạn và bạn đang cố gắng tính toán một chuỗi như vậy sẽ trở thành chuỗi khối dài nhất trong mạng.

Bạn không thể lấy và tính toán ngay lập tức một số khối của chuỗi, bởi vì mỗi khối tiếp theo phụ thuộc vào khối trước đó. Sau đó, bạn quyết định càng nhanh càng tốt để đếm từng khối trên các trung tâm dữ liệu khổng lồ của mình song song với cách tất cả những người tham gia khác tiếp tục tăng blockchain chính. Có thể vượt qua họ không? Chắc là đúng.

Nếu khả năng tính toán của bạn lớn hơn 50% sức mạnh của tất cả những người tham gia mạng, thì với xác suất 50%, bạn sẽ có thể xây dựng một chuỗi dài hơn nhanh hơn tất cả những người khác cộng lại. Đây là một cách có thể về mặt lý thuyết để đánh lừa blockchain bằng cách tính toán một chuỗi giao dịch dài hơn. Sau đó, tất cả các giao dịch của mạng thực sẽ bị coi là không hợp lệ, và bạn sẽ thu thập tất cả các phần thưởng và bắt đầu một cột mốc mới trong lịch sử của tiền mã hóa, được gọi là "phân chia blockchain". Một lần, do một lỗi trong mã, đây là trường hợp của Ethereum.

Nhưng trên thực tế, không có trung tâm dữ liệu nào có thể so sánh được về sức mạnh của tất cả các máy tính trên thế giới. Một tỷ rưỡi người Trung Quốc với những bức tượng, một tỷ rưỡi người Ấn Độ khác đang đói khát với các trang trại khai thác mỏ và điện giá rẻ - đây là một sức mạnh tính toán khổng lồ. Không ai trên thế giới có thể cạnh tranh một mình với họ, kể cả Google.

Nó giống như việc bạn đi ra ngoài đường và cố gắng thuyết phục mọi người trên thế giới rằng đồng đô la hiện có giá trị 1 rúp và hãy đến kịp thời trước khi phương tiện truyền thông phanh phui bạn. Và nếu bạn thuyết phục được mọi người, bạn có thể làm sụp đổ nền kinh tế thế giới. Về lý thuyết, không phải là nó có thể? Nhưng trong thực tế, vì một số lý do, không ai thành công.

Blockchain cũng dựa trên xác suất này. Càng nhiều người tham gia-thợ mỏ, thì mạng càng được bảo mật và tin tưởng. Do đó, khi một trang trại khai thác lớn khác được bao phủ ở Trung Quốc, tỷ lệ này sẽ sụp đổ. Mọi người đều sợ rằng ở đâu đó trên thế giới này có một thiên tài xấu xa đã thu thập được một nhóm thợ đào với công suất ~ 49%.

Sự kết luận

Blockchain không phải là một tập hợp các thuật toán được xác định nghiêm ngặt. Nó là một cấu trúc để xây dựng một mạng lưới giả giữa những người tham gia, nơi không ai có thể tin tưởng bất cứ ai. Trong khi đọc, có lẽ bạn đã hơn một lần nghĩ rằng “bạn có thể làm như thế này và nó sẽ còn hữu ích hơn nữa”. Điều này có nghĩa là bạn đã hiểu về blockchain, xin chúc mừng.

Một số chàng trai trên thế giới cũng hiểu điều đó và muốn cải thiện hoặc thích nghi cho một số nhiệm vụ cụ thể. Tiền điện tử không giống nhau, mặc dù có rất nhiều loại tiền điện tử. Dưới đây là danh sách ngắn một số ý tưởng và dự án đã trở nên phổ biến nhờ việc suy nghĩ lại về ý tưởng blockchain.

Ethereum

“Ethers” là từ phổ biến thứ hai mà bạn nghe thấy trong các tin tức cường điệu về tiền điện tử, sau Bitcoin. Đối với những người bình thường, đây là một loại tiền điện tử khác và là một cách để thực hiện điều xu hướng nhất được gọi là ICO. Các nhà phát triển trên trang web mô tả Ethereum là "một công cụ xây dựng chuỗi khối cho nhu cầu của bạn." Điều này cũng có thể, có.

Nhưng nếu bạn đào sâu hơn nữa, ether không chỉ là một mạng lưới các đồng tiền. Đây là một cỗ máy điện toán toàn cầu khổng lồ, nơi người dùng thực thi mã chương trình của người khác (hợp đồng thông minh), nhận phần thưởng cho mỗi dòng được thực hiện. Và tất cả điều này là phi tập trung, không thể phá hủy và với tất cả sự đảm bảo của blockchain.

Chúng ta có thể nói về Ethereum và các hợp đồng thông minh trong một thời gian dài đến mức sẽ đủ cho một bài đăng khác như vậy. Do đó, chúng tôi sẽ hành động theo phong cách của các blogger hàng đầu: nếu bài đăng này được đăng lại và tweet lại một cách tích cực và đến thứ Sáu, nó nhận được ít nhất 1.500 lượt xem duy nhất, tôi sẽ viết phần tiếp theo về Ethereum và các hợp đồng thông minh.

Đề xuất: