25/12/2018, 21:41

Tìm hiểu về Blockchain trong 5 phút

Blockchain đang là công nghệ được kì vọng sẽ định nghĩa lại cách làm việc của cơ sở dữ liệu phân tán. Tin tức nói về nó luôn hot và là chủ đề được quan tâm rất nhiều. Với rất nhiều bài viết, rất nhiều videos giải thích về cách mà blockchain hoạt động, nhưng dưới đây là những lí do mà tôi nghĩ rằng ...

Blockchain đang là công nghệ được kì vọng sẽ định nghĩa lại cách làm việc của cơ sở dữ liệu phân tán. Tin tức nói về nó luôn hot và là chủ đề được quan tâm rất nhiều. Với rất nhiều bài viết, rất nhiều videos giải thích về cách mà blockchain hoạt động, nhưng dưới đây là những lí do mà tôi nghĩ rằng có thể bài viết này hữu ích hơn đối với bạn:

  1. Hầu hết các bài viết giải thích về blockchain chủ yếu tập trung vào tiền điện tử như Bitcoin chứ không đi vào cách hoạt động cũng như các công nghệ đứng sau nó (các giao thức đồng thuận, các blocks được xác thực như thế nào, làm sao để nhận được bitcoins, ...). Bài viết này sẽ trả lời những câu hỏi đó.
  2. Hầu hết các bài viết đều không đề cập đến các loại blockchain khác hiện đang nổi tiếng được nhiều người biết đến khác trên internet, và những loại blockchain được nhắc tới trong các buổi talkshow, trao đổi với các CEOs. Dưới đây bạn sẽ tìm thấy câu trả lời cho việc chúng là gì và chúng khác với các mạng public blockchain (như Bitcoin, Etherium) như thế nào.

Thời điểm khai sinh Blockchain

Kể từ khi Internet được tạo ra, đã có nhiều nỗ lực để tạo ra một phương thức thanh toán trực tuyến an toàn. Và thế là ý tưởng về một loại tiền ảo ra đời. Và chìa khóa của ý tưởng này đã được S. Habber y W.S. Stornetta công bố với thế giới vào năm 1991. Và đó chính là blockchain, một ý tưởng thông minh và khá đơn giản khiến những người không tin tưởng (thậm chí những người ẩn danh) đồng ý chia sẻ và lưu trữ thông tin (như giao dịch tiền tệ).

Mục đích ban đầu của công nghệ blockchain là cung cấp chữ kí số để giúp cho việc đăng kí tài liệu kỹ thuật số được diễn ra một cách có trật tự. Mãi đến năm 2008, một người nào đó dưới bút danh “Sathosi Nakamoto” đã phát hành một đồng tiền điện tử với tên gọi Bitcoin sử dụng công nghệ này. Từ 2008 đến nay, bitcoin đã tăng từ vài cents lên đến đỉnh điểm là gần 20,000 , và giá ở thời điểm hiện tại của bài viết này là 4,186.

Blockchain là gì?

Đầu tiên hãy cùng xác định cấu trúc của blockchain gốc ban đầu. Hiện blockchain đã được phát triển thành nhiều cấu trúc khác mà ta sẽ tìm hiểu sau.
Blockchain là một cơ sở dữ liệu phân tán ngang hàng (peer-to-peer), trong đó tất cả các nodes ở cùng một cấp bậc với nhau và không cần phải tin tưởng lẫn nhau nhờ vào một giao thức đồng thuận. Hơn nữa, mọi người tham gia đều có một bản sao của toàn bộ sổ cái của blockchain.

Distributed: Có nghĩa data không được lưu trữ trong một trung tâm máy chủ mà tất cả những servers cá nhân hay máy tính riêng lẻ của những người tham gia sẽ chạy một node. Điều này cùng với việc sử dụng hàm băm đã làm cho công nghệ này vô cùng an toàn.

Peer-to-peer: Có nghĩa là thông tin được chia sẻ giữa những người tham gia. Những người tham gia chạy một node đều được kết nối với các nodes khác (hãy gọi chúng là node-friends) và tất cả các thông tin riêng hay các giao dịch ngoài được chia sẻ giữa các nodes theo cặp. Sau đó chúng sao chép và lặp lại hành động này với các connections của chúng.

Consensus protocol: Giao thức đồng thuận chính là ý tưởng mang tính cách mạng nhất của công nghệ này. Ta sẽ đi vào chi tiết sau nhưng để phát biểu định nghĩa thì có thể nói nó là phương thức xác định những blocks đúng và chỉ những blocks này mới được thêm vào blockchain và trong trường hợp block sai thì có thể bị từ chối bởi những người tham gia khác.

Ledger: Mỗi người tham gia đều có một bản sao ghi chép lại lịch sử giao dịch và nó luôn được cập nhật. Điều này giúp có thể kiểm tra xem một người đang cố gắng thực hiện giao dịch có tiền hay không, điều này giúp giải quyết vấn đề double spending (hình thức gian lận sử dụng hai giao dịch khác nhau để cùng chi tiêu số dư của một tài khoản).

Anonymous: Mọi người truy cập hệ thống bằng private key và public key hoặc wallet (đoạn mã gồm chữ và số mà những người tham gia khác có thể nhìn thấy). Và bạn có thể thấy như trên, bạn được coi là ẩn danh. Tuy nhiên, với vai trò như là một node, bạn cũng đang cung cấp địa chỉ IP của mình cho các nodes khác, vì vậy nên cũng ko thể hoàn toàn coi là ẩn danh. Có một số cách để tránh điều này nhưng bài viết sẽ không đề cập đến, bạn có thể tìm hiểu thêm trên mạng.

Cách hoạt động của blockchain và cách mà mọi thứ được xác thực

Step 1: Khi một node muốn thực hiện một transaction (chuyển tiền, deploy smart contract, ...) nó gửi thông tin này đến tất cả các node-friends. Các nodes này kiểm tra những thứ cơ bản đầu tiên (ví dụ như tiền đã được sử dụng trước đó chưa).

Step 2: Nếu mọi thứ đều đã đúng, chúng lưu thông tin về transaction vào trong POOL và tiếp tục gửi thông tin đến các node-friends của chúng. Và tất nhiên, mỗi node có POOL khác nhau vì chúng nhận được thông tin về transaction theo một thứ tự khác nhau.

Step 3: Với mỗi vòng (trung bình là 10 phút với bitcoin), một node được chọn hoàn toàn ngẫu nhiên để đề xuất một block với những transactions trong POOL của nó. Đây chính là quá trình được gọi là giao thức đồng thuận. Thay vì ngẫu nhiên 100%, các nút khác nhau có cơ hội chiến thắng khác nhau. Tại sao và làm thế nào sẽ được giải thích trong phần tiếp theo.

Step 4: Block mới được đề xuất và được kí bởi một người được chọn. Người này sẽ gửi cho tất cả các node-friends một phiên bản mới của blockchain bao gồm các block của phiên bản trước và thêm một block là các transactions trong POOL của nó. Các node-friends nhận và sao chép nó.

Step 5: Các nodes cập nhật blockchain mới nếu block mới được nối thêm là hợp lệ.

Hash Functions and Hash numbers

Tất cả các block đều được cung cấp dưới một dạng code gồm chữ và số hoặc toàn số được gọi là hash (chắc hẳn ai cũng biết đây là hàm băm). Ta lấy được mã hash bằng cách ghép tất cả các thông tin của block với một mã khác gọi là nonce. Mã hash thu được là kết quả của việc áp dụng hash function với input là phép ghép nối này. Phương pháp này làm cho việc giả mạo gần như là không thể. Tại sao ? Vì nếu bạn sửa bất cứ thứ gì trong block đã được xác thực, rõ ràng mã hash của nó sẽ không còn hiệu lực. Và bởi vì bạn đang lấy mã hash của block này làm một phần để tạo ra mã hash của block sau nên nếu các bạn thay đổi thông tin của block thì không chỉ block đó không hợp lệ mà cả những block sau đều bị coi là không hợp lệ. Nếu bất cứ ai muốn thay đổi một block, họ sẽ phải thay đổi block đó và tất cả các block sau trong tất cả các bản sao blockchain trong tất cả các nodes. Điều này được coi như không thể             </div>
            
            <div class=

0