Friday, November 30, 2018

Blockchain là gì? Tìm hiểu thông tin về Blockchain


Blockchain là gì? Blockchain là một công nghệ cho phép truyền tải dữ liệu một cách an toàn dựa vào hệ thống mã hoá vô cùng phức tạp, tương tự cuốn sổ cái kế toán của một công ty, nơi mà tiền mặt được giám sát chặt chẽ. Trong trường hợp này Blockchain là một cuốn sổ cái kế toán hoạt động trong lĩnh vực kỹ thuật số.

Blockchain sở hữu tính năng vô cùng đặc biệt đó là việc truyền tải dữ liệu không đòi hỏi một trung gian để xác nhận thông tin. Hệ thống Blockchain tồn tại rất nhiều nút độc lập có khả năng xác thực thông tin mà không đòi hỏi “dấu hiệu của niềm tin”. Thông tin trong Blockchain không thể bị thay đổi và chỉ được bổ sung thêm khi có sự đồng thuận của tất cả các nút trong hệ thống. Đây là một hệ thống bảo mật an toàn cao trước khả năng bị đánh cắp dữ liệu. Ngay cả khi một phần của hệ thống Blockchain sụp đổ, những máy tính và các nút khác sẽ tiếp tục bảo vệ thông tin và giữ cho mạng lưới tiếp tục hoạt động.


Công nghệ Blockchain có thể nói là sự kết hợp giữa 3 loại công nghệ bên dưới:
* Mật mã học: Sử dụng public key và hàm hash function để đảm bảo tính minh bạch, toàn vẹn và riêng tư.
* Mạng ngang hàng: Mỗi một nút trong mạng được xem như một client và cũng là server để lưu trữ bản sao ứng dụng.
* Lý thuyết trò chơi: Tất cả các nút tham gia vào hệ thống đều phải tuân thủ luật chơi đồng thuận (PoW, PoS…) và được thúc đẩy bởi động lực kinh tế.

Trên góc độ business có thể gọi là một sổ cái kế toán, hay một cơ sở dữ liệu chứa đựng tài sản, hay một cấu trúc dữ liệu, mà dùng để ghi chép lại lịch sử tài sản giữa các thành viên trong hệ thống mạng ngang hàng.

Trên góc độ kỹ thuật đó là một phương thức bất biến để lưu trữ lịch sử các giao dịch tài sản.

Trên góc độ xã hội đó là một hiện tượng, mà dùng để thiết lập niềm tin bằng quy tắc đồng thuận giữa các thành viên trong một hệ thống phân cấp.



Ý tưởng ra đời:

Bắt nguồn từ bài toán Các vị tướng Byzantine (Byzantine Generals) trong ngành khoa học máy tính và xử lý đường truyền tin cậy trong một hệ thống phân cấp.

Nội dung bài toán mô tả: Một đạo quân đi chiếm thành và các vị tướng nằm ở nhiều vị trí khác nhau. Trong đó có N tướng trung thành muốn chiếm thành và M tuớng phản bội muốn rút binh, một tướng phản bội truyền tin cho một nhóm là tấn công và truyền tin cho nhóm khác là rút binh. Vậy làm sao để các tướng có thể nhất quán thông tin và cùng nhau chiếm thành? Chỉ cần một sơ xuất trong việc truyền tin có thể khiến cả đạo quân có thể bị tiêu diệt.

Nếu đồng loạt tấn công vào thành thì sẽ chiến thắng, bằng không tất cả sẽ bị tiêu diệt.


Bài toán Các vị tướng Byzantine này vẫn chưa ai có thể đưa ra lời giải. Do đó chúng ta cần phải có một bên thứ ba để xây dựng lòng tin. Ví dụ như trong bài toán trên, cần có một bên thứ ba đứng ra làm thoả thuận để các tướng lĩnh ký tên vào, nếu vị tướng nào làm trái thoả thuận sẽ bị trừng phạt. Bên thứ ba đảm bảo cho việc chiếm thành của các vị tướng là đồng loạt, bởi vì các tướng có thể không tin nhau nhưng bắt buộc phải tin tưởng tuyệt đối vào bên thứ ba này.

Đây là ý tưởng mở đầu cho một hệ thống Blockchain có thể giúp các vị tướng tin tưởng nhau hơn.

Sau cuộc khủng hoảng tài chính năm 2008, hệ thống tài chính Mỹ sụp đổ hoàn toàn khiến người dân đánh mất niềm tin vào đồng tiền của một bên thứ ba đáng tin cậy. Ý tưởng về Bitcoin – một đồng tiền phân cấp ngang hàng trên mạng máy tính lần đầu tiên được Satoshi Nakamoto đưa ra, cũng là ứng dụng đầu tiên của Blockchain.

Một ví dụ khác, Tôi đặt cược 50 USD vào thời tiết ngày mai tại San Francisco. Chúng tôi cá là trời sẽ nắng, còn bạn cho rằng trời sẽ mưa. Như vậy tại thời điểm hiện tại chúng ta có ba phương án để thực hiện giao kết này:

* Chúng ta có thể tin tưởng vào nhau. Kết quả là trời mưa hoặc nắng, thì người thua cuộc sẽ tặng 50 đô la cho người chiến thắng. Nếu chúng ta là bạn, đây có thể là một phương thức phù hợp để thực hiện giao kết này. Tuy nhiên với những người xa lạ, rất có thể người thua sẽ chối bỏ trách nhiệm và không trả tiền cho người đoán đúng.

* Chúng ta có thể đưa giao kết này thành hợp đồng. Với một hợp đồng được ký kết thì sẽ dễ dàng để buộc người thua cuộc phải thực hiện trách nhiệm thanh toán của mình cho người thắng tuy nhiên nếu có một ai đó quyết định không trả tiền, người chiến thắng sẽ phải trả thêm tiền để trang trải các chi phí pháp lý và để có được các phán quyết có lợi từ tòa án điều này có thể mất nhiều thời gian. Đặc biệt đối với một lượng tiền mặt khá nhỏ như trong giao kèo này, điều này dường như không phải là cách hữu hiệu để quản lý giao kết này.

* Chúng ta có thể viện dẫn một bên liên quan đóng vai trò là một bên thứ ba trung lập làm trung gian. Mỗi người trong chúng ta sẽ gửi trước 50 đô la cho bên thứ ba này, sau đó họ sẽ đưa tổng số tiền cho người chiến thắng. Tuy nhiên lúc này niềm tin lại được đặt vào vai trò của người thứ ba, họ có thể bỏ trốn với tất cả số tiền đó. Vì vậy, thông thường các giao kết như vậy sẽ được thực hiện với một trong hai phương án đầu.

Tuy vậy giao kết dựa vào niềm tin và dựa vào hợp đồng vẫn chưa phải là giải pháp tối ưu. Công nghệ Blockchain rất thú vị vì nó cung cấp cho chúng ta một phương án mà không cần tin tưởng vào bên thứ ba, vô cùng nhanh chóng và rẻ tiền.

Blockchain cho phép chúng ta soạn thảo các đoạn mã để tạo ra một chương trình chạy trên blockchain, và khi đó cả hai bên cùng gửi 50 đô la. Chương trình này sẽ giữ 100 đô là an toàn và sẽ kiểm tra thời tiết vào ngày hôm sau một cách tự động dựa vào một số nguồn dữ liệu. Và theo đó tùy theo kết quả là trời nắng hoặc mưa, nó sẽ tự động chuyển toàn bộ số tiền cho người chiến thắng. Mỗi bên tham gia có thể kiểm tra tính logic của hợp đồng và khi nó đã được đưa lên trên blockchain và thực thi thì nó không thể thay đổi hoặc dừng lại được.

Mục tiêu của ví dụ này để giải thích nguyên lý mà Blockchain hoạt động với những ngôn từ đơn giản tránh đi sâu vào chi tiết kỹ thuật và cố gắng truyền tải cho bạn một khái niệm chung về tính logic và cơ chế ngầm định sâu xa của nó.

Nguyên lý hoạt động của Blockchain
Bitcoin: Ứng dụng Blockchain đầu tiên

Ứng dụng được biết đến và thảo luận nhiều nhất về công nghệ Blockchain chính là đồng tiền điện tử Bitcoin. Hiện nay đồng tiền điện tử này có thể được sử dụng để trao đổi các sản phẩm và dịch vụ, giống như đồng đô la Mỹ (USD), Euro (EUR), đồng nhân dân tệ Trung Quốc (CNY) và các loại tiền tệ của các quốc gia khác. Do vậy chúng ta sẽ tạm lấy đồng tiền này làm đại diện để nói về nguyên lý hoạt động của công nghệ Blockchain.

“Bitcoin thực sự là ứng dụng đầu tiên của công nghệ blockchain cho phép chúng ta có thể gửi một tài sản dạng điện tử số thông qua mạng internet tới một người dùng khác trên mạng Internet, bên cạnh đó giao dịch này được đảm bảo an toàn và bảo mật, mọi người đều biết rằng việc chuyển tiền này đã diễn ra và không ai có thể xen vào và can thiệp hay sửa đổi quá trình này,” theo Marc Andreessen.

Bitcoin là một đơn vị tiền tệ kỹ thuật số với mã là BTC, cũng giống như đô la Mỹ bản thân nó không mang giá trị, nó chỉ có giá trị bởi vì có một cộng đồng đồng ý sử dụng nó làm đơn vị giao dịch hàng hóa và dịch vụ.

Để theo dõi số lượng Bitcoin mà mỗi người sở hữu trong các tài khoản nhất định và theo dõi các giao dịch phát sinh từ đó thì chúng ta cần đến một cuốn sổ kế toán, trong trường hợp này nó chính là blockchain và đây thực tế là một tệp kỹ thuật số theo dõi tất cả các giao dịch Bitcoin.
Tệp sổ cái này không được lưu trữ trong một máy chủ trung tâm, như trong một ngân hàng hoặc trong một trung tâm dữ liệu mà ngược lại nó được phân phối trên toàn thế giới thông qua một mạng lưới các máy tính ngang hàng với vai trò lưu trữ dữ liệu và thực thi các tính toán. Mỗi máy tính này đại diện cho một “nút” của mạng lưới blockchain và mỗi nút đều có một bản sao của tệp sổ cái này.

Nếu David muốn gửi Bitcoin cho Sandra, anh ta sẽ phát một thông báo tới mạng lưới và cho biết số lượng Bitcoin trong tài khoản của mình sẽ giảm 5 BTC và số lượng Bitcoin trong tài khoản của Sandra sẽ tăng lên tương ứng. Mỗi nút trong mạng sau đó sẽ nhận được thông báo này và ánh sạ giao dịch được yêu cầu vào bản sao sổ cái kế toán của họ, và theo đó số dư tài khoản của cả hai bên đều được cập nhật.

Nguyên lý mã hoá

Thực tế là sổ kế toán luôn được duy trì bởi một nhóm các máy tính được kết nối trong mạng ngang hàng thay vì việc dựa vào một thực thể tập trung như một ngân hàng đóng vai trò trung gian.

Với đặc tính kỹ thuật như vậy nó sẽ có một số khác biệt:​

* Trong khi trong hệ thống ngân hàng của chúng ta, chúng ta chỉ biết các giao dịch và số dư tài khoản của riêng mình thì trên blockchain của bitcoin mọi người đều có thể xem các giao dịch của tất cả mọi người.​

* Trong khi bạn phải đặt niềm tin vào ngân hàng của bạn thì mạng lưới Bitcoin là mạng lưới phân tán không có bên thứ ba đóng vai trò trung gian xử lý giao dịch.

​ * Hệ thống blockchain được thiết kế theo cách không yêu cầu sự tin cậy và bảo đảm bởi độ tin cậy có được thông qua các hàm mã hóa toán học đặc biệt.​

“Chúng tôi có thể định nghĩa blockchain như một hệ thống cho phép một nhóm các máy tính duy trì kết nối với một cuốn sổ cái được cập nhật và bảo mật.”

Để có thể thực hiện các giao dịch trên blockchain, bạn cần một ví tiền điện tử, đây là một chương trình phần mềm sẽ cho phép bạn lưu trữ và trao đổi các đồng Bitcoin của bạn. Vì chỉ có bạn mới có thể chi tiêu các đồng Bitcoin của mình do vậy mỗi chiếc ví tiền điện tử này được bảo vệ bằng một phương pháp mã hóa đặc biệt sử dụng một cặp khóa bảo mật duy nhất: khóa riêng tư (private key) và khóa công khai (public key).​

Nếu một thông điệp được mã hóa bằng một khóa công khai cụ thể thì chỉ chủ sở hữu của khóa riêng tư là một cặp với khóa công khai này mới có thể giải mã và đọc nội dung thông điệp. Khi David muốn gửi Bitcoin, anh ta cần phát một thông điệp được mã hóa bằng khóa riêng của ví điện tử của mình, vì thế anh ta chỉ có thể dùng Bitcoin mà anh ta sở hữu vì David là người duy nhất biết khóa riêng tư của anh cần thiết để mở ví điện tử của mình. Mỗi nút trong mạng có thể kiểm tra chéo các yêu cầu giao dịch được gửi từ David là chính xác hay không bằng cách giải mã thông điệp yêu cầu giao dịch bằng khóa công khai của David. ​

Khi mã hóa một yêu cầu giao dịch bằng khóa riêng tư từ ví của bạn tức là bạn đang tạo ra một chữ ký điện tử được các máy tính trong mạng lưới blockchain sử dụng để kiểm tra chủ thể gửi và tính xác thực của giao dịch. Chữ ký này là một chuỗi văn bản và nó là kết quả của việc kết hợp yêu cầu giao dịch và khóa riêng tư của bạn. Nếu bạn thay đổi một ký tự đơn trong thông điệp yêu cầu giao dịch này thì chữ ký điện tử sẽ thay đổi theo vì vậy không có kẻ tấn công tiềm tàng nào có thể thay đổi yêu cầu giao dịch của bạn hoặc thay đổi số lượng Bitcoin mà bạn đang gửi.​


Để gửi bitcoin, bạn cần chứng minh rằng bạn sở hữu khóa riêng tư của một chiếc ví điện tử cụ thể bởi bạn cần sử dụng nó để mã hóa thông điệp yêu cầu giao dịch. Và một khi bạn đã gửi tin nhắn đi sau khi nó đã được mã hóa thì bạn không bao giờ cần phải tiết lộ khóa riêng tư của bạn.


EmoticonEmoticon