tek4

Segwit là gì? Lightning network và mở rộng Blockchain

by - September. 21, 2021
Kiến thức
Python
<p style="text-align: justify;">Segwit l&agrave; g&igrave;? Một trong những vấn đề lớn nhất đối với blockchain hiện nay đ&oacute; l&agrave; tốc độ thực thi v&agrave; khả năng mở rộng của n&oacute;. Như ch&uacute;ng ta đ&atilde; biết, <a href="https://tek4.vn/blockchain-la-gi-hieu-sao-cho-dung/">blockchain</a> l&agrave;m việc tr&ecirc;n <a href="https://tek4.vn/blockchain-la-gi-hieu-sao-cho-dung/">mạng ngang h&agrave;ng</a> phi tập trung, do đ&oacute; việc t&igrave;m kiếm c&aacute;c t&agrave;i nguy&ecirc;n, việc x&aacute;c thực c&aacute;c giao dịch hoặc bổ sung v&agrave; đồng bộ chuỗi khối đều đ&ograve;i hỏi rất nhiều thời gian v&agrave; c&ocirc;ng sức.</p> <p style="text-align: justify;">Trong khi c&aacute;c hệ thống thanh to&aacute;n hiện nay c&oacute; thể xử l&yacute; một lượng cực kỳ lớn c&aacute;c giao dịch, chẳng hạn như <a href="https://en.wikipedia.org/wiki/PayPal">Paypal</a> c&oacute; thể xử l&yacute; tới 193 giao dịch mỗi gi&acirc;y, hay hệ thống thẻ thanh to&aacute;n <a href="https://en.wikipedia.org/wiki/Visa_Inc.">Visa</a> c&oacute; thể xử l&yacute; được tới 1667 giao dịch mỗi gi&acirc;y th&igrave; Ethereum chỉ thực hiện được 20 giao dịch mỗi gi&acirc;y v&agrave; thậm ch&iacute; Bitcoin c&ograve;n tệ hơn với chỉ khoảng 7 giao dịch mỗi gi&acirc;y! Vấn đề n&agrave;y diễn ra tương tự tr&ecirc;n c&aacute;c hệ thống blockchain c&ocirc;ng khai sử dụng c&aacute;c cơ chế đồng thuận bằng chứng. Điều n&agrave;y thường kh&ocirc;ng phải l&agrave; một vấn đề qu&aacute; lớn đối với c&aacute;c hệ thống thanh to&aacute;n hoặc tiền điện tử, bởi n&oacute; thường chỉ y&ecirc;u cầu một số lượng giao dịch v&agrave; thời gian trễ hạn chế. Tuy nhi&ecirc;n, c&oacute; rất nhiều hệ thống thực tế cần xử l&yacute; lưu lượng lớn hơn nhiều (c&aacute;c hệ thống t&igrave;m kiếm hoặc IoT). Khi đ&oacute;, hiệu năng xử l&yacute; của blockchain trở th&agrave;nh một cản trở rất lớn. V&igrave; vậy, cần c&oacute; những giải ph&aacute;p để mở rộng t&iacute;nh hiệu quả của blockchain. Trong b&agrave;i viết n&agrave;y, ch&uacute;ng ta sẽ c&ugrave;ng t&igrave;m hiểu về một c&aacute;ch thức mở rộng blockchain với Segwit (hay Segregated Witness).</p> <p><img class=" wp-image-5301 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/11/SegWit-l&agrave;-g&igrave;_2.jpg" alt="SegWit l&agrave; g&igrave;_2" width="624" height="294" /></p> <h2>SegWit l&agrave; g&igrave;?</h2> <p style="text-align: justify;"><strong>SegWit</strong> (Segregated Witness), l&agrave; một bản cập nhật được đề xuất cho phần mềm <strong>Bitcoin</strong>. Mục ti&ecirc;u của Segwit l&agrave; tăng khả năng xử l&yacute; cho Bitcoin đồng thời v&aacute; c&aacute;c lỗi nghi&ecirc;m trọng trong phi&ecirc;n bản trước đ&oacute;. SegWit thực chất kh&ocirc;ng phải l&agrave; một kỹ thuật cụ thể trong việc mở rộng blockchain m&agrave; n&oacute; l&agrave; tập hợp của nhiều cập nhật.</p> <p style="text-align: justify;">Về cơ bản để mở rộng blockchain ch&uacute;ng ta c&oacute; hai hướng:</p> <ul> <li style="text-align: justify;">Giảm thời gian để đặt th&ecirc;m một giao dịch v&agrave;o trong khối.</li> <li style="text-align: justify;">Giảm thời gian để đạt được sự <a href="https://tek4.vn/luat-dong-thuan-la-gi/">đồng thuận</a>.</li> </ul> <p style="text-align: justify;">Segwit sử dụng cả hai hướng mở rộng n&agrave;y.</p> <h3 style="text-align: justify;">Giảm thời gian th&ecirc;m giao dịch v&agrave;o khối</h3> <p style="text-align: justify;">Trong một số blockchain như Bitcoin hay Ethereum, một giao dịch được thực hiện khi một người khai th&aacute;c đưa dữ liệu giao dịch đ&oacute; v&agrave;o c&aacute;c khối m&agrave; họ khai th&aacute;c v&agrave; được c&aacute;c th&agrave;nh vi&ecirc;n kh&aacute;c đồng thuận. Giả sử An muốn gửi 4 BTC cho B&igrave;nh, anh ấy sẽ phải gửi y&ecirc;u cầu v&agrave; dữ liệu giao dịch n&agrave;y cho những người khai th&aacute;c, khi đ&oacute; người khai th&aacute;c sẽ x&aacute;c minh n&oacute; v&agrave; đưa n&oacute; v&agrave;o khối của họ để tiến h&agrave;nh cố gắng th&ecirc;m n&oacute; v&agrave;o blockchain chung.</p> <p style="text-align: justify;">Khi số lượng giao dịch ng&agrave;y c&agrave;ng gia tăng th&igrave; việc th&ecirc;m một giao dịch v&agrave;o khối c&agrave;ng bị cản trở v&agrave; tốn thời gian. Th&ecirc;m v&agrave;o đ&oacute;, c&aacute;c chi ph&iacute; giao dịch cũng tăng l&ecirc;n. Do t&agrave;i nguy&ecirc;n mỗi khối l&agrave; hạn chế, do đ&oacute; c&aacute;c thợ mỏ thường sẽ ưu ti&ecirc;n chọn c&aacute;c giao dịch c&oacute; thiết đặt ph&iacute; giao dịch cao v&agrave;o khối v&agrave; bỏ qua c&aacute;c khối c&oacute; ph&iacute; giao dịch thấp. Điều n&agrave;y l&agrave;m giảm khả năng được chọn v&agrave; thậm ch&iacute; l&agrave;m nhiều giao dịch gần như kh&ocirc;ng được chọn đưa v&agrave;o khối do ph&iacute; đưa ra qu&aacute; thấp. Hiện nay,&nbsp;tr&ecirc;n mạng lưới Bitcoin, một giao dịch với chi ph&iacute; giao dịch thiết lập mặc định tối thiểu th&igrave; n&oacute; sẽ phải tốn trung b&igrave;nh khoảng 13 ph&uacute;t để được x&aacute;c nhận thực hiện. Ngay cả trong trường hợp thiết đặt ph&iacute; giao dịch cao đi chăng nữa th&igrave; c&aacute;c giao dịch vẫn phải đợi cho đến khi một khối mới được khai th&aacute;c để c&oacute; thể được th (tức l&agrave; khoảng 10 ph&uacute;t đối với Bitcoin).</p> <p style="text-align: justify;">Trong một giao dịch th&ocirc;ng thường, giả sử An muốn gửi cho B&igrave;nh một số tiền, th&igrave; An sẽ lấy số tiền đ&oacute; từ trong v&iacute; của m&igrave;nh v&agrave; đưa n&oacute; cho B&igrave;nh tận tay. Tuy nhi&ecirc;n, nếu An muốn gửi cho B&igrave;nh 2 BTC chẳng hạn th&igrave; mọi thứ kh&ocirc;ng diễn ra như vậy. An hay B&igrave;nh v&agrave; bất cứ ai cũng kh&ocirc;ng thể sở hữu bất kỳ Bitcoin n&agrave;o. Cũng giống như t&agrave;i khoản ng&acirc;n h&agrave;ng, những g&igrave; ch&uacute;ng ta c&oacute; chỉ l&agrave; một con số v&agrave; một bằng chứng cho quyền sở hữu một số lượng Bitcoin tương ứng với con số đ&oacute; được thể hiện qua chữ k&yacute; số. Như đ&atilde; biết ở c&aacute;c b&agrave;i trước, Bitcoin c&oacute; thể coi như một cuốn sổ c&aacute;i to&agrave;n cầu, một giao dịch Bitcoin giống như một tấm s&eacute;c. Bạn c&oacute; thể viết một tấm s&eacute;c để chuyển một số lượng Bitcoin cho người kh&aacute;c khi bạn chứng thực được quyền của m&igrave;nh tr&ecirc;n số Bitcoin đ&oacute;.</p> <p style="text-align: justify;">Để thực hiện một giao dịch, ch&uacute;ng ta cần phải c&oacute; được quyền sở hữu Bitcoin đ&atilde; nhận được từ nhiều giao dịch trước đ&oacute;. Trong Bitcoin, mỗi đơn vị nhỏ nhất đều c&oacute; lịch sử giao dịch v&agrave; quyền sở hữu được x&aacute;c định th&ocirc;ng qua lịch sử c&aacute;c giao dịch trước. V&igrave; vậy, giả sử ch&uacute;ng ta cần thực hiện một giao dịch th&igrave; điều ch&uacute;ng ta cần đ&oacute; l&agrave; đặt v&agrave;o một số lượng giao dịch m&agrave; ch&uacute;ng ta đ&atilde; nhận trước đ&oacute;, sao cho tổng số Bitcoin trong đ&oacute; lớn hơn số tiền ch&uacute;ng ta muốn giao dịch. C&aacute;c giao dịch n&agrave;y sẽ được th&ecirc;m v&agrave;o với nhau để tạo th&agrave;nh đầu v&agrave;o của giao dịch TX.</p> <p style="text-align: justify;">Đầu ra về giao dịch sẽ bao gồm một số Bitcoin cho địa chỉ nhận v&agrave; một số Bitcoin trả lại cho người gửi nếu thừa v&agrave; một ch&uacute;t ph&iacute; cho thợ mỏ.</p> <p><img class=" wp-image-5314 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/11/bitcoin-transaction.png" alt="bitcoin-transaction" width="664" height="336" /></p> <p style="text-align: justify;">Để một giao dịch hợp lệ th&igrave; tổng đầu ra của giao dịch phải c&oacute; gi&aacute; trị nhỏ hơn đầu v&agrave;o của giao dịch. Ngo&agrave;i ra giống như trường hợp tấm s&eacute;c của ch&uacute;ng ta ở tr&ecirc;n, người gửi sẽ k&yacute; số nhằm thể hiện t&iacute;nh x&aacute;c thực của giao dịch đồng thời kh&oacute;a giao dịch bằng kh&oacute;a c&ocirc;ng khai của người nhận. Khi đ&oacute; để c&oacute; thể mở kh&oacute;a v&agrave; sử dụng được giao dịch người nhận buộc phải c&oacute; kh&oacute;a b&iacute; mật.</p> <p style="text-align: justify;">C&aacute;c giao dịch n&agrave;y sau đ&oacute; được c&aacute;c thợ mỏ đ&oacute;ng th&agrave;nh c&aacute;c khối v&agrave; đưa l&ecirc;n blockchain. C&aacute;c khối n&agrave;y c&oacute; t&aacute;c dụng như một chiếc hộp đựng c&aacute;c tấm s&eacute;c đ&atilde; được k&yacute;. Ban đầu, chiếc hộp n&agrave;y kh&ocirc;ng c&oacute; giới hạn về k&iacute;ch thước, tuy nhi&ecirc;n Satoshi Nakamoto nhận thấy rằng nếu kh&ocirc;ng c&oacute; giới hạn về k&iacute;ch thước khối th&igrave; hệ thống c&oacute; thể dễ d&agrave;ng bị tấn c&ocirc;ng DDoS l&agrave;m v&ocirc; hiệu h&oacute;a khả năng thanh to&aacute;n tr&ecirc;n mạng. V&igrave; vậy trong Bitcoin, c&aacute;c khối được giới hạn k&iacute;ch thước tối đa. K&iacute;ch thước giới hạn ti&ecirc;u chuẩn tối đa ban đầu được sử dụng l&agrave; 1MB. Với k&iacute;ch thước n&agrave;y số lượng giao dịch c&oacute; thể chứa trong n&oacute; l&agrave; cực kỳ hạn chế. Với k&iacute;ch thước n&agrave;y Bitcoin chỉ c&oacute; thể chứa khoảng v&agrave;i ng&agrave;n giao dịch tr&ecirc;n một khối, tương ứng với xử l&yacute; được khoảng 4.4 giao dịch tr&ecirc;n mỗi gi&acirc;y.</p> <p style="text-align: justify;">R&otilde; r&agrave;ng, nếu một khối xử l&yacute; được nhiều giao dịch hơn th&igrave; khả năng mở rộng v&agrave; tốc độ của hệ thống sẽ tăng l&ecirc;n đ&aacute;ng kể.</p> <p style="text-align: justify;"><strong>Vậy, giải ph&aacute;p n&agrave;o để tăng khả năng xử l&yacute; của một khối?</strong></p> <p style="text-align: justify;">Để l&agrave;m được như vậy ch&uacute;ng ta c&oacute; hai giải ph&aacute;p được đưa ra. Thứ nhất l&agrave; tăng k&iacute;ch thước khối lớn hơn để c&oacute; thể chứa được nhiều dữ liệu hơn. Thứ hai l&agrave; l&agrave;m giảm k&iacute;ch thước của mỗi giao dịch đi để c&ugrave;ng một khối lượng dữ liệu c&oacute; thể chứa được nhiều giao dịch hơn.</p> <p><strong>Tăng k&iacute;ch thước khối</strong></p> <p style="text-align: justify;">Như đ&atilde; thấy ở tr&ecirc;n, c&aacute;ch đơn giản nhất để tăng khả năng xử l&yacute; của blockchain l&agrave; l&agrave;m tăng dung lượng của khối. Tuy nhi&ecirc;n sự thay đổi n&agrave;y sẽ tạo ra một <a href="https://tek4.vn/hard-fork-va-soft-fork-nhung-dieu-can-biet/">hard fork</a> tr&ecirc;n mạng lưới blockchain hiện tại. Bởi nếu một số người d&ugrave;ng vẫn tiếp tục sử dụng khối c&oacute; k&iacute;ch thước nhỏ hơn th&igrave; sẽ g&acirc;y ra sự kh&aacute;c biệt trong sổ c&aacute;i v&agrave; tạo ra hai sổ c&aacute;i kh&aacute;c nhau.</p> <p><img class=" wp-image-5302 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/11/Bitcoin-Blocksize.png" alt="Bitcoin Blocksize" width="644" height="362" /></p> <p style="text-align: justify;">Ưu điểm nổi bật của giải ph&aacute;p n&agrave;y l&agrave; n&oacute; tương đối đơn giản. Kh&ocirc;ng cần phải lo lắng về c&aacute;c cơ chế để kiểm tra những giao dịch theo kiểu mới v&agrave; mọi thứ vẫn c&oacute; thể hoạt động như trước. Một hard fork nổi tiếng của Bitcoin sử dụng giải ph&aacute;p n&agrave;y l&agrave; Bitcoin Cash. Trong Bitcoin Cash, giới hạn c&aacute;c khối được n&acirc;ng từ 1MB l&ecirc;n 8MB.</p> <p style="text-align: justify;"><strong>Giảm k&iacute;ch thước mỗi giao dịch<br /></strong></p> <p style="text-align: justify;">Mỗi giao dịch Bitcoin được k&yacute; bằng một chữ k&yacute; số sử dụng kh&oacute;a ri&ecirc;ng (private key) của người sở hữu tương tự như chữ k&yacute; tay tr&ecirc;n S&eacute;c. Một trong những l&yacute; do lớn nhất khiến c&aacute;c giao dịch trở n&ecirc;n cồng kềnh v&agrave; chiếm qu&aacute; nhiều dung lượng l&agrave; do dữ liệu chữ k&yacute; c&oacute; trong đ&oacute;. Mỗi đầu v&agrave;o đầu ra đều c&oacute; chữ k&yacute; số. Điều n&agrave;y dẫn đến một điều th&uacute; vị l&agrave;, trong khi một chữ k&yacute; vật l&yacute; chỉ chiếm một kh&ocirc;ng gian rất nhỏ (&lt;10%) trong tấm s&eacute;c, th&igrave; một chữ k&yacute; số trong Bitcoin lại chiếm một kh&ocirc;ng gian kh&aacute; lớn (&gt; 50%) dung lượng của giao dịch. Thực tế l&agrave;, 65% dung lượng m&agrave; giao dịch sử dụng được chiếm bởi dữ liệu của chữ k&yacute; số.</p> <p style="text-align: justify;">Ch&uacute;ng ta sẽ cố gắng t&igrave;m kiếm giải ph&aacute;p đưa được c&agrave;ng nhiều dữ liệu giao dịch v&agrave;o khối c&agrave;ng tốt.</p> <p style="text-align: justify;">Một giải ph&aacute;p được đưa ra l&agrave; cắt bỏ phần chữ k&yacute; của khối. 65% k&iacute;ch thước khối l&agrave; của c&aacute;c chữ k&yacute; số. Do đ&oacute;, nếu ch&uacute;ng ta giảm k&iacute;ch thước của n&oacute; đi, ch&uacute;ng ta c&oacute; thể th&ecirc;m v&agrave;o gấp đ&ocirc;i số lượng giao dịch trong một khối.</p> <p style="text-align: justify;">Tuy nhi&ecirc;n, để vẫn đảm bảo x&aacute;c minh được giao dịch, ch&uacute;ng ta cần c&oacute; những cơ chế đặc biệt. Điều n&agrave;y được thực hiện th&ocirc;ng qua một Sidechain (chuỗi nh&aacute;nh).</p> <p style="text-align: justify;">Sidechain l&agrave; một chuỗi tồn tại song song c&ugrave;ng với chuỗi ch&iacute;nh. Chuỗi n&agrave;y sẽ được gắn v&agrave;o chuỗi ch&iacute;nh th&ocirc;ng qua một chốt hai chiều.</p> <p>[caption id="attachment_5315" align="aligncenter" width="509"]<img class="size-full wp-image-5315" src="https://tek4.vn/wp-content/uploads/2019/11/Sidechain.png" alt="Sidechain" width="509" height="306" /> Nguồn: Medium[/caption]</p> <p style="text-align: justify;">Để mở rộng khả năng xử l&yacute; giao dịch tr&ecirc;n một khối, ch&uacute;ng ta loại bỏ phần chữ k&yacute; số của giao dịch khỏi khối ch&iacute;nh v&agrave; đưa phần dữ liệu chữ k&yacute; của tất cả c&aacute;c giao dịch n&agrave;y v&agrave;o trong Sidechain. C&aacute;c chữ k&yacute; tr&ecirc;n Sidechain được gọi l&agrave; c&aacute;c Nh&acirc;n chứng t&aacute;ch biệt (Segregated Witness) hay c&ograve;n gọi l&agrave; Segwit.</p> <p style="text-align: justify;">Bằng c&aacute;ch loại bỏ dữ liệu chữ k&yacute; khỏi c&aacute;c giao dịch, kh&ocirc;ng gian khối trở n&ecirc;n trống hơn v&agrave; c&aacute;c giao dịch trở n&ecirc;n mềm dẻo hơn. Tuy nhi&ecirc;n, để chuyển đổi to&agrave;n bộ dữ liệu sang sidechain, ch&uacute;ng ta sẽ phải đối mặt với vấn đề tạo ra một hard fork v&agrave; y&ecirc;u cầu to&agrave;n bộ mạng lưới phải thay đổi. Để tr&aacute;nh g&acirc;y ra hard fork, một giải ph&aacute;p <a href="https://tek4.vn/hard-fork-va-soft-fork-nhung-dieu-can-biet/">soft fork</a> thay thế được đưa ra đ&oacute; l&agrave; sử dụng 2 s&aacute;ng kiến kh&eacute;o l&eacute;o:</p> <ul> <li>Sắp xếp dữ liệu chữ k&yacute; trong side chain dưới dạng <a href="https://tek4.vn/merkle-tree-la-gi/">C&acirc;y Merkle</a>.</li> <li>Vẫn duy tr&igrave; một phần dữ liệu chữ k&yacute; trong khối của chuỗi ch&iacute;nh.</li> </ul> <p style="text-align: justify;">Tất cả c&aacute;c giao dịch b&ecirc;n trong một khối được sắp xếp dưới dạng c&acirc;y Merkle v&agrave; Merkle root của tất cả dữ liệu đ&oacute; được lưu giữ b&ecirc;n trong khối ch&iacute;nh. Tất cả c&aacute;c giao dịch c&oacute; thể được kiểm tra bằng c&aacute;ch duyệt qua Merkle root. Merkle tree sẽ lưu trữ c&aacute;c dữ liệu chữ k&yacute; v&agrave; được duyệt để kiểm tra khi giao dịch diễn ra. Khối ch&iacute;nh sẽ lưu giữ gi&aacute; trị của Merkle root, c&ograve;n c&aacute;c phần kh&aacute;c của c&acirc;y sẽ được chuyển sang side chain. Khi đ&oacute;, những khối cũ vẫn hoạt động b&igrave;nh thường tr&ecirc;n phi&ecirc;n bản mới, v&agrave; c&aacute;c khối mới vẫn c&oacute; thể được kiểm tra bằng c&aacute;ch sử dụng side chain. Điều n&agrave;y gi&uacute;p Bitcoin kh&ocirc;ng xảy ra hard fork.</p> <p style="text-align: justify;">Đ&acirc;y l&agrave; một bước đột ph&aacute; lớn gi&uacute;p mạng Bitcoin khắc phục tạm thời c&aacute;c vấn đề mở rộng của n&oacute;.</p> <h3 style="text-align: justify;">Giảm thời gian đạt được đồng thuận</h3> <p style="text-align: justify;">Blockchain được cấu tr&uacute;c như một mạng ngang h&agrave;ng, tr&ecirc;n đ&oacute; những người tham gia, c&ograve;n gọi l&agrave; c&aacute;c n&uacute;t, kh&ocirc;ng được cung cấp bất kỳ đặc quyền đặc biệt n&agrave;o v&agrave; hoạt động ho&agrave;n to&agrave;n b&igrave;nh đẳng. Kh&ocirc;ng c&oacute; cơ quan trung ương v&agrave; cũng kh&ocirc;ng c&oacute; hệ thống ph&acirc;n cấp. Như ch&uacute;ng ta đ&atilde; biết ở b&agrave;i trước, khi kh&ocirc;ng c&oacute; thực thể trung t&acirc;m x&aacute;c nhận v&agrave; gi&aacute;m s&aacute;t c&aacute;c giao dịch th&igrave; mạng cần đến <a href="https://tek4.vn/luat-dong-thuan-la-gi/">sự đồng thuận</a>. Bằng c&aacute;ch gửi v&agrave; đống bộ h&oacute;a c&aacute;c trạng th&aacute;i hay c&aacute;c khối giữa c&aacute;c n&uacute;t. Để l&agrave;m được điều n&agrave;y, c&aacute;c n&uacute;t sẽ phải lan truyền c&aacute;c th&ocirc;ng điệp trạng th&aacute;i v&agrave; thống nhất với nhau.</p> <p style="text-align: justify;">Để giữ sự thống nhất cho sổ c&aacute;i v&agrave; chống gian lận, mọi người c&oacute; thể kiểm tra sổ c&aacute;i bằng c&aacute;ch kiểm tra c&aacute;c hộp đựng s&eacute;c (c&aacute;c block). Bất cứ ai cũng c&oacute; thể sở hữu một bản sao của hộp đựng s&eacute;c để kiểm tra sổ c&aacute;i khi muốn. Nếu trong qu&aacute; tr&igrave;nh kiểm tra, xuất hiện một tấm s&eacute;c bất kỳ kh&ocirc;ng hợp lệ th&igrave; người kiểm tra sẽ từ chối to&agrave;n bộ hộp đựng s&eacute;c n&agrave;y. Việc n&agrave;y diễn ra li&ecirc;n tục để đảm bảo rằng kh&ocirc;ng c&oacute; bất cứ giao dịch kh&ocirc;ng hợp lệ n&agrave;o được chấp nhận trong hệ thống. Hiện nay, trong Bitcoin thời gian trung b&igrave;nh để thực hiện qu&aacute; tr&igrave;nh n&agrave;y l&agrave; khoảng 10 ph&uacute;t.</p> <p style="text-align: justify;">Giả sử An muốn gửi 3 ETH cho B&igrave;nh. Khi đ&oacute;, c&aacute;c n&uacute;t gần An nhất sẽ được An cho biết về điều n&agrave;y, v&agrave; sau đ&oacute; kết nối v&agrave; lan truyền điều n&agrave;y với c&aacute;c n&uacute;t gần họ nhất, v&agrave; sau đ&oacute; c&aacute;c n&uacute;t n&agrave;y lại tiếp tục lan truyền cho c&aacute;c h&agrave;ng x&oacute;m của m&igrave;nh,... Điều n&agrave;y sẽ di&ecirc;n ra li&ecirc;n tục cho đến khi tất cả mọi người biết đến n&oacute;. Qu&aacute; tr&igrave;nh n&agrave;y diễn ra kh&aacute; chậm v&agrave; phiền to&aacute;i. C&aacute;c n&uacute;t trong hệ thống l&agrave; kh&ocirc;ng tin cậy. Nghĩa l&agrave;, nếu n&uacute;t A n&oacute;i rằng giao dịch hợp lệ th&igrave; kh&ocirc;ng c&oacute; nghĩa l&agrave; n&uacute;t B sẽ tin v&agrave;o điều đ&oacute;. N&uacute;t B sẽ thực hiện to&agrave;n bộ c&aacute;c t&iacute;nh to&aacute;n của ri&ecirc;ng m&igrave;nh để xem liệu giao dịch c&oacute; thực sự hợp lệ hay kh&ocirc;ng. Để l&agrave;m như vậy, mỗi n&uacute;t phải c&oacute; bản sao ri&ecirc;ng của blockchain v&agrave; tốn một thời gian t&iacute;nh to&aacute;n x&aacute;c nhận tương đối phức tạp để đạt đến sự đồng thuận. Điều n&agrave;y l&agrave;m cho to&agrave;n bộ qu&aacute; tr&igrave;nh diễn ra rất chậm. Khi số lượng c&aacute;c n&uacute;t trong mạng tăng l&ecirc;n th&igrave; to&agrave;n bộ qu&aacute; tr&igrave;nh diễn ra lại c&agrave;ng trở l&ecirc;n chậm hơn.</p> <p style="text-align: justify;">Điều n&agrave;y đặc biệt l&agrave; một vấn đề với Ethereum, bởi v&igrave; n&oacute; c&oacute; số lượng n&uacute;t nhiều nhất trong số tất cả c&aacute;c hệ thống blockchain. Cơn sốt ICO đ&atilde; l&agrave;m tăng đ&aacute;ng kể số lượng n&uacute;t trong mạng lưới Ethereum. Tr&ecirc;n thực tế, t&iacute;nh đến th&aacute;ng 5 năm 2017, Ethereum đ&atilde; c&oacute; 25.000 n&uacute;t so với 7000 n&uacute;t của Bitcoin!! Gấp hơn 3 lần !. Tr&ecirc;n thực tế, số lượng n&uacute;t từ th&aacute;ng 4 đến th&aacute;ng 5 đ&atilde; tăng tới 81%, gần gấp đ&ocirc;i! Do đ&oacute;, vấn đề l&agrave;m giảm thời gian đồng thuận v&agrave; lưu lượng dữ liệu truyền tải tr&ecirc;n hệ thống n&agrave;y đặc biệt cần thiết.</p> <p style="text-align: justify;">Để giảm được thời gian n&agrave;y, giải ph&aacute;p của SegWit l&agrave; g&igrave;?</p> <p>Để giải quyết vấn đề n&agrave;y, SegWit sử dụng kh&aacute;i niệm Lightning Network.</p> <h2>Lightning network l&agrave; g&igrave;?</h2> <p style="text-align: justify;"><strong>Lightning Network</strong> l&agrave; một giải ph&aacute;p n&acirc;ng cao khả năng hoạt động của blockchain bằng c&aacute;ch giảm thời gian đồng thuận. N&oacute; l&agrave; một giao thức "lớp thứ cấp" hoạt động tr&ecirc;n một blockchain (thường l&agrave; Bitcoin).&nbsp;N&oacute; cho ph&eacute;p tạo ra c&aacute;c giao dịch tức thời giữa c&aacute;c node tham gia v&agrave; l&agrave; một giải ph&aacute;p cho b&agrave;i to&aacute;n mở rộng Bitcoin n&oacute;i ri&ecirc;ng v&agrave; blockchain n&oacute;i chung.</p> <p style="text-align: justify;">Lightning network l&agrave; một hệ thống cho ph&eacute;p thực hiện nhiều thanh to&aacute;n vi m&ocirc; ngo&agrave;i chuỗi được thiết kế để gi&uacute;p c&aacute;c giao dịch hoạt động nhanh hơn trong chuỗi khối. Việc thanh to&aacute;n được diễn ra hai chiều m&agrave; kh&ocirc;ng cần ủy th&aacute;c hay tin tưởng v&agrave;o b&ecirc;n thứ ba. Kh&aacute;i niệm n&agrave;y được đưa ra bởi Joseph Poon v&agrave; Tadge Dryja trong một giải ph&aacute;p nhằm giải quyết giới hạn k&iacute;ch thước khối v&agrave; c&aacute;c vấn đề g&acirc;y tr&igrave; ho&atilde;n giao dịch.&nbsp;Lightning network cũng gi&uacute;p cho việc ho&aacute;n đổi cơ sở (atomic swap) đơn giản hơn.</p> <p style="text-align: justify;"><strong>Lightning Network</strong> dựa tr&ecirc;n &yacute; tưởng l&agrave; kh&ocirc;ng cần phải ghi lại to&agrave;n bộ c&aacute;c giao dịch xảy ra tr&ecirc;n Blockchain. C&oacute; nghĩa l&agrave;, ch&uacute;ng ta c&oacute; thể thực hiện một số giao dịch b&ecirc;n ngo&agrave;i blockchain sau đ&oacute; sẽ tiến h&agrave;nh gộp lại v&agrave; tạo một khối giao dịch chung khi kết th&uacute;c phi&ecirc;n. Khi sử dụng Lightning Network, hai b&ecirc;n sẽ tiến h&agrave;nh mở một k&ecirc;nh thanh to&aacute;n bằng c&aacute;ch thực hiện một giao dịch g&oacute;p vốn v&agrave;o blockchain để kh&oacute;a lại một số tiền nhất định l&ecirc;n chuỗi ch&iacute;nh. Tiếp theo hai b&ecirc;n c&oacute; thể bắt đầu thực hiện c&aacute;c giao dịch Lightning trực tiếp m&agrave; kh&ocirc;ng cần chuyển th&ocirc;ng tin tới blockchain ch&iacute;nh để x&aacute;c thực cho giao dịch. Khi kết th&uacute;c giao dịch, hai b&ecirc;n sẽ tiến h&agrave;nh đ&oacute;ng k&ecirc;nh thanh to&aacute;n v&agrave; truyền th&ocirc;ng tin tổng hợp về trạng th&aacute;i quỹ cuối c&ugrave;ng sau tất cả c&aacute;c giao dịch Lightning l&ecirc;n blockchain.</p> <p style="text-align: justify;">Khi t&ocirc;i v&agrave; bạn c&oacute; vẻ tin tưởng nhau do ch&uacute;ng ta c&oacute; mối quan hệ l&agrave;m ăn kh&aacute; nhiều v&agrave; thường xuy&ecirc;n giao dịch với nhau, khi đ&oacute; r&otilde; r&agrave;ng ch&uacute;ng ta c&oacute; thể cho nhau nợ v&agrave; tất to&aacute;n v&agrave;o kỳ thanh to&aacute;n c&ocirc;ng nợ cuối năm. Tr&ecirc;n blockchain, ch&uacute;ng ta c&oacute; thể bỏ qua việc ghi lại c&aacute;c giao dịch n&agrave;y v&agrave;o chuỗi khối chung tại đa số thời điểm v&agrave; chỉ cần quyết to&aacute;n v&agrave; tạo giao dịch một lần v&agrave;o cuối phi&ecirc;n.</p> <p style="text-align: justify;">Để l&agrave;m được điều n&agrave;y, ch&uacute;ng ta cần phải thiết lập một k&ecirc;nh giao dịch ri&ecirc;ng v&agrave; k&ecirc;nh n&agrave;y được ghi nhận tr&ecirc;n blockchain. K&ecirc;nh n&agrave;y được gọi l&agrave; Lightning Network. Khi sở hữu k&ecirc;nh n&agrave;y, ch&uacute;ng ta c&oacute; thể thực hiện giao dịch v&agrave;o bất cứ l&uacute;c n&agrave;o m&agrave; kh&ocirc;ng cần sự x&aacute;c thực của mạng. Việc th&ecirc;m khối v&agrave; x&aacute;c thực giao dịch tr&ecirc;n blockchain chỉ diễn ra hai lần, lần đầu ti&ecirc;n khi mở k&ecirc;nh giao dịch v&agrave; lần thứ hai khi đ&oacute;ng k&ecirc;nh giao dịch. Trong Lightning Network, hai b&ecirc;n tham gia c&oacute; thể tạo c&aacute;c giao dịch với nhau m&agrave; kh&ocirc;ng cần đến b&ecirc;n thứ ba hay thợ mỏ x&aacute;c nhận. Giao dịch n&agrave;y được thực hiện bằng c&aacute;ch y&ecirc;u cầu cả người gửi v&agrave; người nhận đều cần phải k&yacute; x&aacute;c nhận để x&aacute;c minh cho giao dịch được thực thi. Để k&iacute;ch hoạt điều n&agrave;y, giao dịch cần phải được k&yacute; bởi cả hai ph&iacute;a người gửi v&agrave; người nhận trước khi n&oacute; được ph&aacute;t v&agrave;o mạng. Việc k&yacute; kết k&eacute;p n&agrave;y l&agrave; rất quan trọng để giao dịch được thực hiện.</p> <p style="text-align: justify;">Để dễ hiểu, ch&uacute;ng ta xem x&eacute;t v&iacute; dụ sau: Giả sử tr&ecirc;n mạng lưới blockchain, An v&agrave; B&igrave;nh muốn thiết lập nhiều lần giao dịch với nhau. Khi đ&oacute; An v&agrave; B&igrave;nh sẽ tạo ra một k&ecirc;nh giao dịch tr&ecirc;n Lightning Network bằng c&aacute;ch gửi c&ugrave;ng một số lượng tiền (chẳng hạn 20 BTC) v&agrave;o một giao dịch chung trong đ&oacute; mỗi người đều k&yacute; l&ecirc;n giao dịch đ&oacute; bằng một kh&oacute;a an to&agrave;n của ch&iacute;nh họ. C&aacute;c giao dịch n&agrave;y được gọi l&agrave; c&aacute;c giao dịch cam kết hay giao dịch mở. Đ&acirc;y l&agrave; một cặp giao dịch bất đối xứng. Giao dịch cam kết của An bao gồm hai đầu ra: trong đ&oacute; một đầu ra trả cho B&igrave;nh ho&agrave;n to&agrave;n, v&agrave; một đầu ra c&ograve;n lại l&agrave; một đầu ra bị kh&oacute;a thời gian (timelocked) v&agrave; c&oacute; thể bị truy hồi, khi giao dịch được x&aacute;c định l&agrave; kh&ocirc;ng th&agrave;nh c&ocirc;ng, n&oacute; cuối c&ugrave;ng sẽ trả lại số tiền cho An. Đầu ra n&agrave;y c&oacute; thể bị B&igrave;nh thu hồi nếu B&igrave;nh biết kh&oacute;a thu hồi. Giao dịch cam kết của B&igrave;nh ngược lại sẽ gồm hai đầu ra, trong đ&oacute;, một sẽ quy định trả to&agrave;n bộ số tiền cho An, v&agrave; một đầu ra bị kh&oacute;a thời gian, c&oacute; thể bị truy hồi v&agrave; trả lại tiền cho B&igrave;nh; nếu An biết kh&oacute;a thu hồi đối với giao dịch cam kết của B&igrave;nh, anh ấy c&oacute; thể thu hồi n&oacute;.</p> <p style="text-align: justify;">H&agrave;nh động n&agrave;y được ghi lại tr&ecirc;n Blockchain v&agrave; gi&uacute;p cho kh&ocirc;ng ai c&oacute; thể chi số tiền trong n&oacute; m&agrave; kh&ocirc;ng th&ocirc;ng qua &yacute; kiến của người kia. Số tiền n&agrave;y sau đ&oacute; được sử dụng để giao dịch với nhau. Đ&acirc;y l&agrave; qu&aacute; tr&igrave;nh thiết lập k&ecirc;nh thanh to&aacute;n tr&ecirc;n Lightning network.</p> <p style="text-align: justify;">Khi An muốn gửi cho B&igrave;nh 1 BTC, anh ta sẽ chuyển giao lời hứa về quyền sở hữu 1 BTC của m&igrave;nh trong Giao dịch mở cho B&igrave;nh. Sau khi chuyển nhượng lời hứa, nếu hộp được mở kh&oacute;a, An sẽ c&oacute; thể lấy lại 19 BTC từ đ&oacute; v&agrave; B&igrave;nh sẽ c&oacute; thể nhận được tổng cộng 21 BTC.</p> <p style="text-align: justify;">Tuy nhi&ecirc;n, để duy tr&igrave; k&ecirc;nh thanh to&aacute;n v&agrave; tiếp tục xử l&yacute; c&aacute;c thanh to&aacute;n kh&aacute;c, họ kh&ocirc;ng mở hộp giao dịch n&agrave;y. Hai b&ecirc;n An v&agrave; B&igrave;nh vẫn c&oacute; thể giao dịch với nhau qua k&ecirc;nh n&agrave;y chừng n&agrave;o n&oacute; vẫn được duy tr&igrave;. V&agrave;o ng&agrave;y h&ocirc;m sau An c&oacute; thể gửi tiếp cho B&igrave;nh 2 BTC (trong giao dịch tổng An sẽ chỉ c&ograve;n 17 BTC, v&agrave; B&igrave;nh c&oacute; 23 BTC), h&ocirc;m sau nữa B&igrave;nh chuyển lại cho An 4 BTC (khi đ&oacute; An c&oacute; 21 BTC v&agrave; B&igrave;nh c&oacute; 19 BTC).</p> <p><img class="size-full wp-image-5317 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/11/lightning-network-la-gi.jpg" alt="lightning-network-la-gi" width="768" height="995" /></p> <p style="text-align: justify;">N&oacute;i t&oacute;m lại, k&ecirc;nh thanh to&aacute;n Lightning network l&agrave; sự kết hợp của việc gộp chung một số tiền lại với nhau v&agrave; sau đ&oacute; chuyển giao lời hứa về quyền sở hữu của số tiền được gộp lại theo c&aacute;ch thức đ&atilde; thoả thuận từ trước. Nếu c&oacute; một trong hai người &ndash; An hoặc B&igrave;nh muốn đ&oacute;ng k&ecirc;nh, họ c&oacute; thể thực hiện ngay lập tức. Việc đ&oacute;ng k&ecirc;nh đơn giản l&agrave; việc quyết to&aacute;n lại to&agrave;n bộ giao dịch trong Giao dịch mở. Việc n&agrave;y diễn ra v&agrave; được ghi nhận tr&ecirc;n blockchain v&agrave; mạng lưới blockchain sẽ ghi lại giao dịch tổng dưới dạng sổ c&aacute;i phi tập trung.</p> <p style="text-align: justify;">Đ&oacute; l&agrave; c&aacute;ch c&aacute;c k&ecirc;nh thanh to&aacute;n hoạt động. Ch&uacute;ng gi&uacute;p cho nhiều giao dịch c&oacute; thể xảy ra giữa hai thực thể trong mạng được ghi lại chỉ cần một lần đồng thuận do đ&oacute; l&agrave;m giảm thời gian đạt đến đồng thuận rất lớn. Tuy nhi&ecirc;n điều n&agrave;y chưa phải l&agrave; sức mạnh lớn nhất của Lightning Network. Sức mạnh thực sự của ch&uacute;ng được thể hiện khi hai hoặc nhiều k&ecirc;nh thanh to&aacute;n l&agrave;m việc c&ugrave;ng nhau để tạo th&agrave;nh một mạng lưới &ndash; <strong>Lightning Network</strong>.</p> <p style="text-align: justify;">Nếu An v&agrave; B&igrave;nh thiết lập 1 k&ecirc;nh thanh to&aacute;n, B&igrave;nh v&agrave; Cường lại thiết lập được 1 k&ecirc;nh thanh to&aacute;n. Vậy th&igrave; ch&uacute;ng ta c&oacute; thể thiết lập một k&ecirc;nh thanh to&aacute;n trung gian giữa An v&agrave; Cường th&ocirc;ng qua Lightning Network bằng c&aacute;ch chuyển quyền sở hữu của giao dịch trong hai k&ecirc;nh thanh to&aacute;n một c&aacute;ch nhanh ch&oacute;ng.</p> <p style="text-align: justify;">Khi An muốn chuyển 2 BTC cho Cường, anh ta c&oacute; thể sử dụng k&ecirc;nh thanh to&aacute;n giữa B&igrave;nh v&agrave; Cường để thực hiện điều đ&oacute;. An sẽ y&ecirc;u cầu B&igrave;nh chuyển lời hứa sở hữu 2 BTC đến Cường tr&ecirc;n k&ecirc;nh thanh to&aacute;n của B&igrave;nh v&agrave; Cường v&agrave; sau đ&oacute; anh ta sẽ ho&agrave;n trả lại cho B&igrave;nh 2 BTC tr&ecirc;n k&ecirc;nh của m&igrave;nh v&agrave; B&igrave;nh.</p> <p style="text-align: justify;">Với mạng lưới c&aacute;c k&ecirc;nh thanh to&aacute;n như vậy, một khối lượng lớn c&aacute;c giao dịch c&oacute; thể được chuyển ra khỏi Blockchain, do đ&oacute; giải ph&oacute;ng băng th&ocirc;ng của chuỗi. Sử dụng một mạng lưới c&aacute;c k&ecirc;nh thanh to&aacute;n, sẽ c&oacute; thể xử l&yacute; h&agrave;ng triệu giao dịch v&agrave; điều đ&oacute; sẽ l&agrave;m giảm ph&iacute; giao dịch đi đ&aacute;ng kể. Việc giao dịch diễn ra giống như việc định tuyến tr&ecirc;n mạng. C&oacute; nghĩa l&agrave; l&agrave;m thế n&agrave;o để t&igrave;m được một tuyến đường sao cho c&oacute; thể thực hiện kết nối giao dịch từ một th&agrave;nh vi&ecirc;n n&agrave;y đến một th&agrave;nh vi&ecirc;n kh&aacute;c trong mạng lưới.</p> <p><img class="wp-image-5318 aligncenter" src="https://tek4.vn/wp-content/uploads/2019/11/lightning-network-la-gi-3.png" alt="lightning-network-la-gi-3" width="780" height="393" /></p> <p style="text-align: justify;">Bằng c&aacute;ch sử dụng Lightning Network ch&uacute;ng ta thấy rằng giao dịch được thực hiện rất nhanh v&agrave; k&ecirc;nh thanh to&aacute;n chỉ đ&oacute;ng khi cần ghi nhận lại tr&ecirc;n blockchain. Điều n&agrave;y l&agrave;m cho mạng lưới blockchain gần như hoạt động giống như một hệ thống mạng <a href="https://tek4.vn/peer-to-peer-network-nen-tang-mang-ngang-hang-cua-blockchain/">Peer to Peer</a> th&ocirc;ng thường với độ trễ rất nhỏ.</p> <p>[caption id="attachment_5319" align="aligncenter" width="737"]<img class=" wp-image-5319" src="https://tek4.vn/wp-content/uploads/2019/11/lightning-network-la-gi-2.jpg" alt="lightning-network-la-gi-2" width="737" height="616" /> M&ocirc; phỏng c&aacute;c k&ecirc;nh Lightning Network[/caption]</p> <p>&nbsp;</p> <h2>Tổng kết</h2> <p style="text-align: justify;">B&agrave;i viết n&agrave;y đ&atilde; tr&igrave;nh b&agrave;y về vấn đề mở rộng blockchain trong đ&oacute; tập trung v&agrave;o c&ocirc;ng nghệ SegWit, giải th&iacute;ch SegWit l&agrave; g&igrave; đồng thời chỉ r&otilde; c&aacute;c c&ocirc;ng nghệ nền tảng của SegWit bao gồm mở rộng khối, K&ecirc;nh mở rộng (Off chain) v&agrave; c&ocirc;ng nghệ Lightning Network. Những điều r&uacute;t ra từ b&agrave;i n&agrave;y bao gồm:</p> <ul> <li> <p style="text-align: justify;"><strong>SegWit</strong> l&agrave; viết tắt của Segregated Witness, l&agrave; một bản cập nhật được đề xuất cho phần mềm <strong>Bitcoin</strong>, ra đời với mục đ&iacute;ch v&aacute; lỗi c&aacute;c vấn đề nghi&ecirc;m trọng v&agrave; mở rộng khả năng xử l&yacute; cho Bitcoin.</p> </li> <li> <p style="text-align: justify;">SegWit thực chất kh&ocirc;ng phải l&agrave; một kỹ thuật cụ thể trong việc mở rộng blockchain m&agrave; n&oacute; l&agrave; tập hợp của nhiều cập nhật.</p> </li> <li> <p style="text-align: justify;">SegWit cố gắng giảm thời gian để đặt th&ecirc;m một giao dịch v&agrave;o trong khối bằng c&aacute;ch mở rộng k&iacute;ch thước khối v&agrave; đưa v&agrave;o một k&ecirc;nh off chain nhằm t&aacute;ch phần chữ k&yacute; số của giao dịch ra khỏi blockchain ch&iacute;nh.</p> </li> <li> <p style="text-align: justify;">Phần chữ k&yacute; được t&aacute;ch ra dưới dạng c&acirc;y merkle, trong đ&oacute; merkle root lưu tr&ecirc;n khối ch&iacute;nh v&agrave; c&aacute;c chữ k&yacute; kh&aacute;c được lưu tr&ecirc;n side chain.</p> </li> <li> <p style="text-align: justify;">Side chain l&agrave; một chuỗi mở rộng nằm ngo&agrave;i blockchain ch&iacute;nh c&oacute; nhiệm vụ lưu trữ dữ liệu chữ k&yacute;.</p> </li> <li> <p style="text-align: justify;">SegWit giảm thời gian để đạt được sự đồng thuận bằng c&aacute;ch sử dụng k&ecirc;nh thanh to&aacute;n ngo&agrave;i khối gọi l&agrave; Lightning network trong đ&oacute; c&aacute;c giao dịch được gộp lại v&agrave; diễn ra trong một k&ecirc;nh, trong k&ecirc;nh đ&oacute; hai th&agrave;nh vi&ecirc;n tham gia sẽ k&yacute; v&agrave; đưa v&agrave;o một số tiền dự kiến giao dịch th&ocirc;ng qua chữ k&yacute; k&eacute;p.</p> </li> <li style="text-align: justify;">Khi c&aacute;c giao dịch diễn ra th&agrave;nh c&ocirc;ng, số tiền trong giao dịch n&agrave;y được update li&ecirc;n tục v&agrave; chỉ được th&ecirc;m v&agrave;o chuỗi ch&iacute;nh khi một b&ecirc;n y&ecirc;u cầu đ&oacute;ng k&ecirc;nh</li> <li style="text-align: justify;">Lợi thế của Lightning network thể hiện khi c&agrave;ng đ&ocirc;ng th&agrave;nh vi&ecirc;n tham gia v&agrave;o mạng lưới v&agrave; thiết lập k&ecirc;nh. C&agrave;ng nhiều k&ecirc;nh th&igrave; c&aacute;c giao dịch diễn ra c&agrave;ng nhanh. C&aacute;c th&agrave;nh vi&ecirc;n c&oacute; thể giao dịch bắc cầu th&ocirc;ng qua c&aacute;c k&ecirc;nh của nhau bằng c&aacute;ch chuyển đổi trung gian c&aacute;c cam kết. Giao dịch được diễn ra tương tự như qu&aacute; tr&igrave;nh định tuyến trong mạng Peer to Peer, c&aacute;c b&ecirc;n chỉ cần t&igrave;m được một đường giao dịch bao gồm c&aacute;c k&ecirc;nh được thiết lập sẵn.</li> </ul> <p style="text-align: justify;">Hi vọng b&agrave;i viết n&agrave;y đ&atilde; cung cấp một số kh&iacute;a cạnh cơ bản về vấn đề mở rộng blockchain cho bạn đọc. Đặc biệt l&agrave; SegWit l&agrave; g&igrave;? Lightning Network l&agrave; g&igrave;? Nếu c&oacute; bất cứ thắc mắc g&igrave; h&atilde;y để lại comment b&ecirc;n dưới, ch&uacute;ng ta sẽ cố gắng phản hồi sớm nhất c&oacute; thể. V&agrave; đừng qu&ecirc;n like trang v&agrave; chia sẻ b&agrave;i viết nh&eacute;.</p> <p>&nbsp;</p> <hr /> <p style="text-align: center;"><em><strong>Fanpage Facebook:</strong>&nbsp;<a href="https://www.facebook.com/tek4.vn/">TEK4.VN</a></em>&nbsp;</p> <p style="text-align: center;"><em><strong>Tham gia cộng đồng để chia sẻ, trao đổi v&agrave; thảo luận:</strong>&nbsp;<a href="https://www.facebook.com/groups/tek4.vn/">TEK4.VN - Học Lập Tr&igrave;nh Miễn Ph&iacute;</a></em></p>