Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)Về tiền điện tử, Cryptocurrency và Bitcoin (luận văn thạc sĩ)
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - VŨ DUY HIẾN VỀ TIỀN ĐIỆN TỬ, CRYPTOCURRENCY VÀ BITCOIN Chuyên ngành: Cơ sở Toán cho Tin học Mã số: 60460110 LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: TS TÔN QUỐC BÌNH XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ CHỦ TỊCH HỘI ĐỒNG CHẤM LUẬN VĂN THẠC SĨ KHOA HỌC (Ký ghi rõ họ tên) CÁN BỘ HƢỚNG DẪN KHOA HỌC PGS TS Nguyễn Hữu Ngự Hà Nội – Năm 2015 (Ký ghi rõ họ tên) TS Tôn Quốc Bình MỤC LỤC LỜI CAM ĐOAN Error! Bookmark not defined LỜI CẢM ƠN Error! Bookmark not defined MỤC LỤC DANH MỤC HÌNH VẼ, BẢNG BIỂU Error! Bookmark not defined MỞ ĐẦU CHƢƠNG 1: TỔNG QUAN VỀ TIỀN ĐIỆN TỬ, CRYPTOCURRENCY VÀ BITCOIN 1.1 Giới thiệu tiền điện tử, Cryptocurrency Bitcoin 1.2 Các vấn đề tiền điện tử Bitcoin .8 CHƢƠNG 2: CƠ SỞ MẬT MÃ HỌC CỦA TIỀN ĐIỆN TỬ BITCOIN 10 2.1 Chữ ký số hệ mật đường cong Eliptic (ECSDA) 10 2.1.1 Đường cong Elliptic 10 2.1.2 Chữ ký số hệ mật đường cong Elliptic 14 2.2 Hàm băm 17 2.2.1 Tổng quan hàm băm 17 2.2.2 Hàm băm SHA-256 19 2.2.3 Hàm băm RIPEMD-160 23 2.3 Cây băm Merkle 26 2.3.1 Bài toán xác thực liệu 26 2.3.2 Cây băm Merkle xác thực liệu băm Merkle .27 2.4 Hashcash 29 2.4.1 Khái niệm 29 2.4.2 Hashcash ngăn chặn thư rác .30 2.4.3 Hashcash chống lại công từ chối dịch vụ 31 2.4.4 Đánh giá chi phí tính toán Hashcash 32 2.5 TimeStamp 33 2.6 Base 58 .34 CHƢƠNG 3: NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG TIỀN ĐIỆN TỬ NGANG HÀNG BITCOIN 36 3.1 Mô tả hoạt động hệ thống tiền điện tử ngang hàng Bitcoin 36 3.1.1 Định nghĩa thành phần hệ thống 36 3.1.2 Quy trình thực toán hệ thống tiền điện tử ngang hàng Bitcoin 36 3.2 Những giải pháp cho vấn đề tiền điện tử Bitcoin 37 3.2.1 Vấn đề tạo đồng tiền điện tử Bitcoin 37 3.2.2 Vấn đề xác định quyền sở hữu đồng tiền điện tử Bitcoin 39 3.2.3 Vấn đề chuyển quyền sở hữu đồng tiền điện tử Bitcoin 42 3.2.4 Vấn đề chia nhỏ giá trị đồng tiền Bitcoin giao dịch sử dụng nhiều đồng tiền Bitcoin .48 3.2.5 Vấn đề an toàn bảo mật hệ thống tiền điện tử ngang hàng Bitcoin 49 KẾT LUẬN 54 TÀI LIỆU THAM KHẢO 57 PHỤ LỤC Error! Bookmark not defined MỞ ĐẦU Tiền tệ đời giúp cho hoạt động trao đổi, sản xuất lưu thông hàng hoá xã hội phát triển Tất đồng tiền thức từ trước tới nay, dù tiền giấy hay tiền điện tử nhà nước tổ chức uy tín phát hành quản lý Lý vấn đề có nhà nước, phủ tổ chức uy tín đứng đảm bảo giá trị cho đồng tiền phát hành tạo niềm tin cho người sử dụng chúng Tuy nhiên, quan điểm bị thay đổi hoàn toàn tiền điện tử Bitcoin đời Bitcoin hoạt động dựa sở lý thuyết mật mã giao thức mạng ngang hàng (Peer-to-Peer); tất node mạng tạo đồng tiền tổ chức, phủ hay nhà nước phát hành quản lý; giao dịch sử dụng Bitcoin không cần đến bên thứ ba tin cậy làm trung tâm xác thực Mặc dù vậy, Bitcoin mang đầy đủ tính chất quan trọng tiền tệ: sử dụng để mua bán hàng hóa dịch vụ thực giao dịch toán, không lưu vết thông tin định danh sở hữu đồng tiền, chuyển đổi giá trị dễ dàng cộng đồng chấp nhận Bitcoin Trên giới, có số quốc gia: Đức, Hy Lạp, Venezuela số tổ chức, doanh nghiệp chấp nhận tiền điện tử Bitcoin làm phương tiện toán đặc điểm ưu việt Bên cạnh đó, có số quốc gia Việt Nam, Thái Lan, Iceland…không chấp nhận Bitcoin đồng tiền hợp pháp Điều hoàn toàn tự nhiên giống loại tiền tệ thông thường, Bitcoin chấp nhận có giá trị cộng đồng tin tưởng sử dụng chúng Tại quốc gia không chấp nhận Bitcoin, phủ dừng lại mức khuyến nghị người dân không nên đầu cơ, nắm giữ sử dụng Bitcoin chưa đưa sở khoa học làm cho khuyến nghị Cơ sở khoa học hệ thống tiền điện tử ngang hàng Bitcoin Satoshi (một nhóm nhà phát triển ẩn danh) công bố vào năm 2009 tài liệu tên, nhiên tài liệu đưa ý tưởng hoàn toàn Với mong muốn nghiên cứu làm rõ sở khoa học hình thành nên đồng tiền điện tử Bitcoin nguyên lý hoạt động hệ thống tiền điện tử ngang hàng Bitcoin, lựa chọn đề tài: “Về tiền điện tử, Cryptocurrency Bitcoin” cho luận văn Bố cục luận bao gồm phần mở đầu, ba chương chính, phần kết luận, phụ lục tài liệu tham khảo Nội dung ba chương tổ chức sau: Chương I: Tổng quan tiền điện tử, Cryptocurrency Bitcoin Chương II: Cơ sở mật mã học tiền điện tử Bitcoin Chương III: Nguyên lý hoạt động hệ thống tiền điện tử ngang hàng Bitcoin Sau phần trình bày nội dung chương CHƢƠNG 1: TỔNG QUAN VỀ TIỀN ĐIỆN TỬ, CRYPTOCURRENCY VÀ BITCOIN 1.1 Giới thiệu tiền điện tử, Cryptocurrency Bitcoin Theo quan điểm chủ nghĩa Mác-Lênin, tiền tệ hàng hoá đặc biệt, dùng làm vật ngang giá chung thống cho hàng hoá khác, thể chung giá trị thể lao động xã hội; đồng thời tiền tệ biểu quan hệ sản xuất người sản xuất hàng hoá, trình phát triển lâu dài trao đổi hàng hoá tạo Còn theo nhà kinh tế đại: Tiền định nghĩa chấp nhận chung việc toán để nhận hàng hoá, dịch vụ việc trả nợ Bản chất tiền tệ thể rõ qua hai thuộc tính giá trị giá trị sử dụng Trong đó: - Giá trị tiền theo quan điểm triết học Mác-Lênin công sức lao động tích tụ tạo kết tinh vào thân đồng tiền - Khác với vật chất thông thường, giá trị sử dụng tiền nằm khả thỏa mãn nhu cầu trao đổi hàng hóa xã hội, nhu cầu sử dụng làm vật trung gian trao đổi Giá trị sử dụng loại tiền tệ xã hội quy định: chừng xã hội thừa nhận vai trò làm vật trung gian trao đổi loại tiền tệ chừng giá trị sử dụng với tư cách tiền tệ tồn [1] Tiền tệ trải qua nhiều hình thái đa dạng khác lịch sử hình thành phát triển Trước đồng tiền kim loại tiền giấy xuất hiện, người sử dụng nhiều thứ khác với vai trò loại tiền để trao đổi hàng hóa Chẳng hạn, số nơi giới, người ta sử dụng cá mập tiền Ở nhiều nơi khác, tiền lông chim sặc sỡ vỏ sò quý hiếm; có nơi người ta dùng cọng lông đuôi voi để làm tiền Với phát triển nhanh xã hội đại ngày với bùng nổ mạnh mẽ lĩnh vực Công nghệ thông tin, tiền sử dụng dạng giá trị số lưu trữ máy tính thiết bị điện tử Người sử dụng thực giao dịch điện tử cách truyền giá trị số từ máy tính (hoặc thiết bị điện tử) tới máy tính (hoặc thiết bị điện tử) khác Loại tiền gọi tiền điện tử Trong vài năm trở lại đây, loại tiền điện tử phát triển mạnh mẽ bật Cryptocurrency Cho đến nay, chưa có thuật ngữ tiếng Việt thống mô tả xác đầy đủ ý nghĩa Cryptocurrency Chúng ta tạm dịch Cryptocurrency tiền điện tử mật mã hình thức tiền điện tử xây dựng dựa sở lý thuyết mật mã nhằm đảm bảo an toàn cho giao dịch điện tử Khác tiền tệ thông thường, tiền điện tử Cyptocurrency không phát hành tổ chức, phủ hay nhà nước Tính đến tháng năm 2014, có 275 loại Cryptocurrency lưu hành thị trường,…Có thể kể đến điển hình số loại phổ biến như: Bảng 1.1-Một số tiền điện tử Cryptocurrency điển hình Tên gọi Viết tắt Năm Giá trị xuất thị trƣờng (tỷ USD) Số lƣợng phát hành Thuật toán /Tổng số hình thành (triệu) Bitcoin BTC/XBT 2009 ~5.813-8.332 ~12,63/21 SHA-256 Litecoin LTC 2011 ~266-310 ~27.37/84 Scryt Peercoin PPC 2012 ~30-48 ~21,3/ ∞ SHA-256 Ripple XRP 2013 ~20-41 ~100/100 ECDSA Darkcoin DRK 2014 ~6-39 ~4,37/22 X11 Dogecoin DOGE/XDG 2013 ~22-38 ~69,131/100 Namecoin NMC 2011 ~16-10 ~8,48/21 SHA-256 Mastercoin MSC 2013 ~9-21 ~0,6/0,6 SHA-256 Scrypt Tên gọi Viết tắt Năm Giá trị xuất thị trƣờng (tỷ USD) Số lƣợng phát hành Thuật toán /Tổng số hình thành (triệu) Primecoin XPM 2013 ~2-4 ~5,18/∞ ICC/2CC/TƯN Vertcoin VTC 2014 ~2-4 ~3,36/84 Scrypt Aroracoin AUR 2014 ~0,2-0,7 ~10,68/21 Scrypt MazaCoin MZC 2014 ~0,1 ~226,98/2419 SHA-256 (Số liệu tính đến cuối năm 2014, Nguồn: Wikipedia) Gần nhất, vào đầu năm 2015, hình thức Cryptocurrency đời Onecoin Người sáng lập Onecoin Tiến sĩ, luật sư Dr Ruja Ignotava tiếng giới tài Bà người tư vấn chiến lược trình xây dựng hệ thống tiền điện tử Bitcoin nhiều tập đoàn tài khác châu Âu Trong tất loại tiền Cryptocurrency, Bitcoin loại điển hình nhất, đời sớm loại tiền Cryptocurrency sử dụng rộng rãi Bitcoin mang đặc điểm bật sau: - Bitcoin không phát hành quản lý ngân hàng trung ương nào, không hay công ty điều hành Bitcoin, vận hành tất người dùng hệ thống - Người dùng Bitcoin không cần phải đăng ký tài khoản, không cần tới ngân hàng, không cần thẻ tín dụng, không cần thông tin định danh để nhận hay gửi Bitcoin - Hệ thống tiền điện tử Bitcoin mạng lưới phân bố ngang hàng, gửi Bitcoin trực tiếp cho người khác mà không cần qua trung gian, thời gian, bất chấp không gian, với lệ phí thấp, gần chí Bởi vậy, giao dịch Bitcoin chịu loại phí giao dịch trung gian - Người sở hữu Bitcoin mua bán đồng tiền qui đổi vài đồng tiền khác cộng đồng chấp nhận 1.2 Các vấn đề tiền điện tử Bitcoin Như đề cập trên, xã hội đại ngày người sử dụng giá trị số để thay cho đồng tiền truyền thống Tuy nhiên để giá trị số trở thành đồng tiền thân chúng phải thoải mãn điều kiện cần điều kiện đủ Điều kiện đủ giá trị số phải cộng đồng chấp nhận coi chúng đồng tiền để thực giao dịch mua bán hàng hóa, dịch vụ Những giá trị số muốn cộng đồng chấp nhận chúng phải có giá trị sử dụng tạo niềm tin cộng đồng Ngược lại, người cộng đồng giá trị số giá trị Tuy nhiên, khuôn khổ luận văn này, không bàn luận điều kiện đủ liệu giá trị số thay cho tiền tệ thông thường có cộng đồng chấp nhận hay không mà xem xét điều kiện cần góc nhìn khía cạnh công nghệ để tiền điện tử CryptoCurrency mà cụ thể Bitcoin trở thành đồng tiền nghĩa sử dụng để giao dịch trao đổi hàng hóa dịch vụ Những điều kiện cần bao gồm: - Thứ nhất, giống đồng tiền truyền thống phát hành tạo dựa chi phí tiêu tốn để tạo sản phẩm hàng hóa dịch vụ, việc tạo tiền điện tử Bitcoin phải gắn với việc tiêu tốn tài nguyên định để sinh giá trị - Thứ hai, tiền điện tử Bitcoin sử dụng giao dịch phải xác định chủ sở hữu Đối với tiền tệ thông thường, quy tắc sở hữu nắm giữ đồng tiền hợp pháp người sở hữu đồng tiền Điều xác định nhờ tính tính khó làm giả mạo đồng tiền Tuy nhiên, chất tiền điện tử nói chung Bitcoin nói riêng giá trị số chúng dễ dàng bị chép Do đó, cần phải có chế xác định người chủ sở hữu đồng tiền điện tử Bitcoin - Thứ ba, tiền điện tử Bitcoin phải phù hợp với đặc điểm bật tiền tệ thông thường dễ dàng chuyển nhượng quyền sở hữu Đối với tiền tệ thông thường, việc chuyển giao sở hữu cách chuyển tiền hay mua bán trao đổi hàng hóa dịch vụ diễn đơn giản: tiền chuyển “tay trao tay” thông qua bên thứ ba tin cậy (Ngân hàng, tổ chức tín dụng,…) làm trung gian cho giao dịch Với tiền điện tử Bitcoin, đồng tiền chuyển theo kiểu “tay trao tay” bên thứ ba đáng tin cậy làm trung gian cho giao dịch, cần chế để chuyển giao quyền sở hữu đảm bảo đồng tiền bị chép để tiêu hai lần (double spending) - Thứ tư, trình phát hành tiền tệ thông thường, ngân hàng trung ương tính toán đưa mệnh giá đồng tiền khác để phù hợp với nhu cầu thực tế: tiền có mệnh giá thấp để dễ dàng thực giao dịch có giá trị thấp sử dụng để trả lại giao dịch sử dụng nhiều đồng tiền khác Vì tiền điện tử Bitcoin cần có khả chia nhỏ gộp giá trị lại để đáp ứng yêu cầu - Thứ năm, chất tiền điện tử giá trị số, giao dịch thực mạng công khai Bên cạnh đó, tiền điện tử Bitcoin lại không phủ tổ chức phát hành quản lý cần đảm bảo giao dịch sử dụng Bitcoin an toàn thông tin người dùng bảo mật Trong năm điều kiện cần kể trên, ba điều kiện coi quan trọng chúng định mức độ khả dụng đồng tiền Chúng ta coi năm điều kiện năm vấn đề mà Satoshi cần phải giải để đưa Bitcoin trở thành đồng tiền khả dụng Mục tiêu nghiên cứu luận văn tập trung làm rõ sở khoa học giải pháp mà Satoshi đưa để giải năm vấn đề đồng tiền điện tử Bitcoin + Index: vị trí Output người gửi nhận đồng tiền Bitcoin giao dịch trước + ScriptSig bao gồm khóa công khai chữ ký số người gửi Trong khóa công khai người gửi khóa dùng để tạo địa mà người gửi lưu trữ đồng tiền Bitcoin trên; chữ ký số người gửi chữ ký số ECDSA Previous tx - Output chứa thông tin: + Value: số tiền mà người gửi chuyển tới người nhận tính theo đơn vị Satoshi BTC (Bitcoin) = 100.000.000 Satoshi + ScriptPubKey: mô tả địa người nhận muốn cất giữ đồng tiền Bitcoin trên, ScriptPubKey có dạng: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG Như đồng tiền Bitcoin lưu trữ địa số tạo cặp khóa công khai người sở hữu giá trị đồng Bitcoin quy định giá trị Value phần Output giao dịch mà người sở hữu nhận đồng tiền Khi giao dịch xảy ra, thông tin toàn giao dịch truyền tới tất node mạng để ghi nhận vào lịch sử giao dịch 3.2.3.2 Thủ tục ghi nhận lịch sử giao dịch a Công cụ ghi nhận lịch sử giao dịch Quá trình ghi nhận lịch sử giao dịch nhằm mục đích xác định người chuyển quyền sở hữu hợp pháp đồng tiền điện tử Bitcoin chống lại vấn đề tiêu hai lần đồng tiền Hệ thống tiền điện tử ngang hàng Bitcoin sử dụng TimeStamp làm nhiệm vụ ghi nhận toàn lịch sử giao dịch dùng chung TimeStamp có cấu trúc dạng chuỗi liên tiếp khối (Block), Block chứa băm Block đứng liền trước băm Merkle lưu trữ 43 thông tin giao dịch (Ti) thời điểm Thứ tự xảy giao dịch xác định sau: giao dịch nằm Block đứng trước xác định xảy trước giao dịch nằm Block đứng sau Mỗi Block tạo thành giao dịch Block ghi nhận vào lịch sử giao dịch Root Hash Hash() Hash() ……………………… Hash(0,1) Hash(T0) Hash (n-2, n-1) Hash(T1) Hash(Tn-1) Hash(Tn-2) Hình 3.2-Cấu trúc băm Merkle lƣu trữ thông tin n giao dịch Bản băm Block thứ n-2 Bản băm Block thứ n-1 Bản băm Block thứ n Cây băm Merkle Cây băm Merkle Cây băm Merkle Block thứ n Block thứ n+1 Block thứ n-1 Hình 3.3-Cấu trúc TimeStamp sử dụng kỹ thuật băm Với cấu trúc này, muốn thay đổi liệu Block cần phải thay đổi liệu bên toàn Block phía sau Như vậy, Block đứng trước nhiều khối Block khác liệu Block 44 khó bị thay đổi; chuỗi nhãn thời gian TimeStamp kéo dài nhanh giao dịch lưu trữ có độ tin cậy cao [11] Bên cạnh đó, TimeStamp kết hợp với Hashcash cách đưa yêu cầu toán khó Hashcash vào làm điều kiện để tạo Block chuỗi nhãn thời gian Mỗi Block tạo node mạng tìm thấy giá trị ngẫu nhiên Nonce thỏa mãn điều kiện chuỗi bit kết H(H(s||c||x)) bắt đầu với w-bits Trong s chuỗi bit giá trị băm Block liền trước, chuỗi bit c giá trị node gốc băm Merkle lưu trữ thông tin giao dịch (Ti), chuỗi bit x biểu diễn nhị phân Nonce Như vậy, toán khó giải giao dịch nằm khối Block tương ứng ghi nhận vào chuỗi TimeStamp đồng tiền điện tử Bitcoin tạo BLOCK Prev Hash(s) Root(c) Hash Nonce(x) Hash Hash Hash Hash0 Hash1 Hashn-2 Hashn-1 T0 T1 Tn-2 Tn-1 Hình 3.4-Cấu trúc khối Block TimeStamp Với cải tiến này, độ an toàn TimeStamp tăng thêm kẻ xấu muốn thay đổi liệu khối Block thứ n việc cần phải thay đổi liệu bên Block từ vị trí thứ n+1 trở đi, chúng cần phải giải tất toán khó Hashcash tương ứng với Block 45 b Cơ chế ghi nhận lịch sử giao dịch - Khi giao dịch thực thông tin giao dịch công khai truyền đến cho tất node mạng hệ thống mạng ngang hàng Các node mạng kiểm tra tính hợp lệ giao dịch - Tiếp theo, node mạng cố gắng tìm lời giải cho toán khó Hashcash với liệu đầu vào là: giá trị băm khối Block liền trước (đây chuỗi bit kết toán khó liền trước) thông tin giao dịch Khi node tìm lời giải toán khó, truyền lời giải tới tất node lại hệ thống Các node thể việc chấp nhận kết cách sử dụng chuỗi kết toán khó để giải toán khó ghi nhận giao dịch cách kéo dài thêm chuỗi lịch sử giao dịch - Trong trường hợp: hai node X Y tìm lời giải gửi kết tới node mạng lại Một số node nhận liệu từ X trước sử dụng liệu để tiếp tục kéo dài chuỗi Block theo hướng X, số khác nhận liệu từ Y trước tiếp tục kéo dài chuỗi Block theo hướng Y Bên cạnh đó, node mạng hệ thống xem xét lựa chọn chuỗi Block có độ dài lớn có tiềm để tiếp tục kéo dài chuỗi Block theo hướng Toàn hệ thống chấp nhận chuỗi Block dài chuỗi lịch sử giao dịch hợp lệ giao dịch nằm Block thuộc chuỗi hợp lệ đắn [11] Block Block X Block Block Y Block Hình 3.5-Cơ chế ghi nhận lịch sử giao dịch 46 Block - Mỗi đồng tiền Bitcoin phát hành gắn liền với lời giải toán khó ứng với việc tạo Block Đồng tiền thưởng cho node mạng tìm lời giải toán khó thông qua giao dịch đặc biệt giao dịch nằm khối Block Giá trị đồng tiền Bitcoin động lực thúc đẩy node mạng nhanh chóng tìm lời giải toán khó, giúp cho việc tăng tốc trình ghi nhận lịch sử giao dịch 3.2.3.3 Xác thực giao dịch Để xác thực giao dịch, người dùng truy vấn node mạng để có chuỗi Block dài Các node mạng trả Block chứa giao dịch người dùng nhờ quy trình xác thực liệu băm Merkle Người nhận kiểm tra hai vấn đề quan trọng sau: - Block chứa giao dịch có thuộc chuỗi Block dài hay không?! Nếu không, người dùng không chấp nhận giao dịch - Số Block nối tiếp sau Block chứa giao dịch tính đến thời điểm Như đề cập, giao dịch nằm Block mà theo sau có nhiều Block khác nối tiếp độ an toàn cao Người dùng phải vào để định việc chấp nhận giao dịch Độ an toàn đánh giá chi tiết nội dung vấn đề an toàn bảo mật hệ thống tiền điện tử ngang hàng Bitcoin Bên cạnh đó, để giảm lượng liệu người dùng cần tải phục vụ cho việc xác thực giao dịch, chuỗi lịch sử giao dịch lược bỏ giao dịch mà phần Output chúng đến phần Input giao dịch xảy sau Với cấu trúc Merkle lưu trữ giao dịch Block, giao dịch dư thừa hoàn toàn lược bỏ mà không ảnh hưởng tới giá trị node gốc không ảnh hưởng tới kết toán khó Hashcash block [11] 47 3.2.4 Vấn đề chia nhỏ giá trị đồng tiền Bitcoin giao dịch sử dụng nhiều đồng tiền Bitcoin Để chia nhỏ gộp giá trị đồng tiền điện tử Bitcoin nhằm thuận tiện cho việc toán, giao dịch cho phép chứa nhiều Input nhiều Output bên - Mỗi Input đến đồng tiền Bitcoin sử dụng giao dịch - Mỗi Output đến địa số người nhận tiền Thông thường, giao dịch gồm hai Output: Output dùng để gửi tiền đến địa số người nhận, Output dùng để gửi lại tiền thừa (nếu có) vào địa số người gửi [11] Input Input Output (100) Input Output (Trả lại 49) Input Output (101) Input Output (101) Input (Thưởng) Output (50) Hình 3.6-Cơ chế thực giao dịch sử dụng Bitcoin Cơ chế cho phép bên tham gia thêm vào phí giao dịch Phí giao dịch tính tổng lượng tiền Input trừ tổng lượng tiền Output phí giao dịch thưởng cho người ghi nhận giao dịch vào lịch sử giao dịch chung Phí giao dịch với đồng tiền thưởng 48 làm động lực thúc đẩy node mạng nhanh chóng tìm lời giải toán khó, giúp cho việc tăng tốc trình ghi nhận lịch sử giao dịch Như vậy, tồn hai loại giao dịch mà phần Input không đến phần Output giao dịch trước giao dịch thưởng đồng tiền giao dịch thưởng phí giao dịch tới người tạo Block 3.2.5 Vấn đề an toàn bảo mật hệ thống tiền điện tử ngang hàng Bitcoin 3.2.5.1 Chính sách bảo mật thông tin người dùng Trong mô hình ngân hàng truyền thống, riêng tư thông tin giao dịch bảo vệ cách giới hạn khả truy cập nhân viên đối tượng khác vào sở liệu khách hàng Trong hệ thống tiền điện tử Bitcoin đại, tất thông tin giao dịch công khai nhiên thông tin bên tham gia giao dịch lại giữ bí mật cách giấu thông tin chủ sở hữu khóa công khai Điều tương tự giao dịch chứng khoán, thời gian số cổ phiếu giao dịch công bố công khai thông tin bên tham gia giao dịch giữ bí mật [11] 3.2.5.2 Đánh giá độ an toàn hệ thống tiền điện tử ngang hàng Bitcoin a Trƣờng hợp hệ thống bị chiếm quyền điều khiển Giả sử người tập hợp sức mạnh tính toán lớn tất node tin cậy hợp lại, người sử dụng sức mạnh để thực hai hành vi sau: - Lừa đảo người cách lấy lại tiền toán mà người bên trả (1) - Ghi nhận lịch sử giao dịch để kiếm đồng tiền (2) Tuy nhiên trường hợp không đáng ngại Người nhận thực hành vi (2) có lợi cho bởi: 49 - Nếu thực hành vi (1), mức độ tin tưởng hệ thống giảm giá trị đồng tiền mà người sở hữu - Nếu thực hành vi (2), dễ dàng kiếm đồng tiền hợp lệ sở hữu nhiều tiền tất người hệ thống b Trƣờng hợp kẻ công thay đổi lịch sử giao dịch [11] Như biết, chuỗi lịch sử giao dịch hợp lệ chuỗi Block dài Kẻ công muốn thay đổi lịch sử giao dịch khối Block từ khối này, kẻ công cần phải nhanh chóng tạo chuỗi thay dài chuỗi hợp lệ Tuy nhiên kẻ công thay đổi giao dịch mà bên gửi Chúng ta mô tả xác suất mà kẻ công tạo chuỗi thay dài nhanh chuỗi hợp lệ từ khoảng cách z khối Block sau: + p xác suất node tin cậy nối thêm khối + q xác suất node công nối thêm khối + qz xác suất kẻ công bắt kịp từ khoảng cách z khối cho bởi: p ≤ q qz = (q/p)z p > q - Trường hợp p ≤ q: tương tự trường hợp a - Trường hợp p > q: xác suất giảm theo cấp số nhân số khối Block mà kẻ công phải bắt kịp tăng lên Như vậy, node công muốn tạo chuỗi thay bắt kịp chuỗi hợp lệ khoảng thời gian xác định node công phải nối thêm thành công z khối so với node tin cậy Nghĩa khoảng thời gian đó, node tin cậy nối thêm n khối node công cần 50 nối thêm (n+z) khối Điều xảy phụ thuộc vào mức độ may mắn kẻ công khoảng cách z c Xác định thời điểm ngƣời nhận chấp nhận giao dịch [11] Giả sử người gửi kẻ công, thực giao dịch gửi tiền người nhận lại cố gắng tạo chuỗi song song dài chuỗi hợp lệ tại, chuỗi song song có chứa giao dịch mà chuyển lại tiền cho Để chống lại điều này, người nhận thực hai việc sau: - Chỉ gửi địa số nhận tiền trước giao dịch bắt đầu người nhận gửi trước người gửi chuẩn bị chuỗi song song thích hợp trước thực giao dịch người nhận yêu cầu - Đợi giao dịch hai người xuất khối Block thuộc chuỗi lịch sử giao dịch dài sau khối Block có z khối Block nối thêm vào chuỗi lịch sử giao dịch Vì để ghi nhận khối Block cần khoảng thời gian trung bình định nên tốc độ thực kẻ công để bắt kịp chuỗi thực mô tả phân phối Poisson với: = z(q/p) Với p xác suất node tin cậy nối thêm khối q xác suất node công nối thêm khối Để tính xác suất mà kẻ công kéo dài chuỗi song song bắt kịp chuỗi hợp lệ, nhân hàm mật độ Poisson với xác suất mà bắt kịp từ điểm đó: Biến đổi biểu thức ta được: 51 52 Như với tính toán trên, thu kết sau: q = 0.1 q = 0.3 Để P < 0.1% z P z P q z 1 0.10 0.2045873 0.1773523 0.15 0.0509779 10 0.0416605 0.20 11 0.0131722 15 0.0101008 0.25 15 0.0034552 20 0.0024804 0.30 24 0.0009137 25 0.0006132 0.35 41 0.0002428 30 0.0001522 0.40 89 0.0000647 35 0.0000379 0.45 340 0.0000173 40 0.0000095 0.0000046 45 0.0000024 10 0.0000012 50 0.0000006 Căn vào kết tính toán này, khuyến nghị đưa để chấp nhận giao dịch người gửi người nhận cần phải đợi sáu Block thêm vào chuỗi lịch sử giao dịch sau Block chứa giao dịch 53 KẾT LUẬN Các kết đạt đƣợc - Luận văn tập trung nghiên cứu tìm hiểu sở khoa học hình thành nên đồng tiền điện tử Bitcoin - Luận văn làm rõ giải pháp mà Satoshi sử dụng để giải năm vấn đề mà Bitcoin phải đối mặt để trở thành đồng tiền - Bên cạnh đó, luận văn mô tả chi tiết nguyên lý hoạt động hệ thống tiền điện tử ngang hàng Bitcoin bao gồm: phương thức lưu trữ Bitcoin, phương thức thiết lập phương thức xác thực giao dịch toán sử dụng Bitcoin Các vấn đề tồn tiền điện tử Bitcoin a Về số lƣợng phát hành Hệ thống tiền điện tử Bitcoin đưa sách hạn chế số lượng Bitcoin phát hành theo quy tắc sau [6]: - Giá trị đồng tiền Bitcoin phát hành 50 BTC, sau bốn năm nghĩa sau 210.000 Block giá trị giảm nửa - Đến năm 2140, mà giá trị đồng tiền Bitcoin phát hành xấp xỉ gần Satoshi (đơn vị Bitcoin nhỏ nhất) số lượng Bitcoin tối đa phát hành 21 triệu Điều không phù hợp với tính chất tiền tệ thông thường lượng tiền phát hành xã hội tương đương với tăng trưởng tổng sản phẩm xã hội Tuy nhiên sách riêng biệt hệ thống tiền điện tử Bitcoin, không ảnh hưởng đến điều kiện cần đồng tiền 54 b Về vấn đề an toàn bảo mật - Vấn đề ẩn danh ngƣời dùng: hệ thống tiền điện tử Bitcoin đảm bảo tính ẩn danh người dùng giao dịch tiền điện tử Bitcoin dễ dàng sử dụng làm công cụ rửa tiền thực hành vi phạm pháp Nếu người nhóm người đánh cắp khóa người dùng chúng sử dụng khóa bí mật để tạo giao dịch chuyển toàn tiền người dùng vào địa chúng mà không truy vết Điều xảy với sàn giao dịch Bitcoin lớn giới Mt.Gox Nhật Bản vào tháng năm 2014 khiến cho sàn giao dịch thất thoát 850.000 Bitcoin tương đương 475 triệu USD phải đóng cửa sau đó; tiếp tháng năm 2014 ngân hàng Flexcoin Canada chuyên nhận tiền gửi Bitcoin phải đóng cửa bị tin tặc đáng cắp 896 Bitcoin xấp xỉ 600.000 USD - Vấn đề thời gian xác thực giao dịch: trình bày, Block chứa giao dịch trung bình khoảng 10 phút để ghi nhận vào chuỗi lịch sử giao dịch Như để chấp nhận giao dịch, người nhận phải đợi tới có sáu Block nối thêm sau Block chứa giao dịch nghĩa người nhận phải đợi trung bình: 6*10 phút = 60 phút Rõ ràng thời gian lớn, đặc biệt với giao dịch có giá trị thấp Tuy nhiên với giao dịch có giá trị thấp xác suất xảy trường hợp người gửi gian lận thấp! - Vấn đề không gian lƣu trữ lịch sử giao dịch: số người sử dụng tiền điện tử Bitcoin hạn chế Tuy nhiên mong muốn hệ thống tiền điện tử Bitcoin sử dụng rộng rãi toàn giới nghĩa 10 phút có tới hàng trăm nghìn chí hàng triệu giao dịch thực kích thước Block lớn Giả sử Block có kích thước khoảng 20MB năm kích thước chuỗi lịch sử giao dịch tăng thêm khoảng: 20MB *6*24*365 = TB, số lớn! 55 Đề xuất định hƣớng phát triển Với phát triển mạnh mẽ lĩnh vực Công nghệ thông tin mức độ phổ biến thiết bị di động thông minh, tiền điện tử dự đoán dần thay cho tiền tệ thông thường tương lai Dựa việc kế thừa phát triển ý tưởng hệ thống tiền điện tử ngang hàng Bitcoin, giải pháp xây dựng hệ thống tiền điện tử cho phủ quốc gia đề xuất sau: - Sử dụng hạ tầng khóa công khai để tạo địa số lưu trữ đồng tiền thực giao dịch điện tử - Sử dụng Hashcash làm sở phát hành điều tiết lượng tiền xã hội cho phù hợp với tình hình tăng trưởng kinh tế, sách tiền tệ quốc gia giảm thiểu lạm phát - Sử dụng TimeStamp làm công cụ ghi nhận lịch sử giao dịch Tuy nhiên Ngân hàng Trung Ương phải kiểm soát lưu trữ liệu lịch sử giao dịch số máy chủ, đồng thời Ngân hàng Trung Ương tổ chức phủ ủy nhiệm đảm nhiệm vai trò trung tâm xác thực giao dịch điện tử Mặc dù điều ngược lại với tư tưởng “ngang hàng” hệ thống tiền điện tử Bitcoin Ngân hàng Trung Ương không kiểm soát lưu trữ liệu lịch sử giao dịch đảm bảo tính công bằng, minh bạch cho giao dịch tạo tin tưởng cho người sử dụng - Tăng cường an ninh đảm bảo an toàn cho hệ thống lưu trữ liệu lịch sử giao dịch Ngân hàng Trung Ương quản lý 56 TÀI LIỆU THAM KHẢO Tiếng Việt Nguyễn Văn Tiến (2011), Giáo trình Tiền tệ Ngân hàng, NXB Thống kê Trịnh Nhật Tiến (2009), Giáo trình An toàn liệu, NXB ĐHQGHN Tiếng Anh Adam Back (1997), Hashcash, http://www.cypherspace.org/hashcash Adam Back (2002), Hashcash - A Denial of Service Counter - Measure, www.hashcash.org/papers/hashcash.pdf Bitcoin Wiki 2015 “Base58Check_encoding” Truy cập ngày 17/09 https://en.bitcoin.it/wiki/Base58Check_encoding Bitcoin Wiki 2015 “Controlled_supply” Truy cập ngày 17/09 https://en.bitcoin.it/wiki/Controlled_supply Bitcoin Wiki 2015 “Technical background of version Bitcoin addresses” Truy cập ngày 17/09 https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses Bitcoin Wiki 2015 “Transaction” Truy cập ngày 17/09 https://en.bitcoin.it/wiki/Transaction Ralph Charles Merkle (1979), Secrecy, authentication and public key systems, Technical Report No 1979-1 Stanford University 10 S Haber, W.S Stornetta (1991), How to time-stamp a digital document, Journal of Cryptology, vol 3, no 2, pages 99-111 11 Satoshi Nakamoto (2009), Bitcoin: A Peer-to-Peer Electronic Cash System, http://www.bitcoin.org/bitcoin.pdf 12 Shahdad Naghshpour (2013), The fundamental of Money and Finance System, Business Expert Press 57 [...]... Hashcash còn được sử dụng trong hệ thống tiền điện tử Bitcoin và một số Cryptocurrency khác 29 Nguyên lý hoạt động của Hashcash: trong mô hình yêu cầu (Requester) và cung cấp (Provider) dịch vụ, Provider lựa chọn một công việc hoặc một bài toán khó để yêu cầu bên Requester thực hiện và Provider có thể kiểm tra dễ dàng minh chứng công việc của Requester Ví dụ về hashcash trong hệ thống email: mỗi lần... thực xem Yp có thuộc Y hay không với thời gian xác thực nhanh nhất và dữ liệu trao đổi giữa A và B là công khai và ít nhất 26 2.3.2 Cây băm Merkle và xác thực dữ liệu trên cây băm Merkle 2.3.2.1 Đặt vấn đề - Dữ liệu đầu vào: dữ liệu Y được chia thành n thành phần Y1, Y2,…, Yn (với n có dạng 2m) và phân phối cho n đối tượng khác nhau và hàm băm H cho trước - Yêu cầu bài toán: xây dựng một cấu trúc dữ... số lượng thư/yêu cầu dịch vụ mà chúng gửi đi Tuy nhiên, chi phí về thời gian và tài nguyên hệ thống để kiểm tra lời giải của bài toán khó trong Hashcash thường rất thấp và không phụ thuộc vào giá trị w bởi chỉ cần sử dụng một lần hàm băm để tính toán và kiểm tra điều kiện đối với giá trị băm Công việc này tốn rất ít chi phí về thời gian và tài nguyên hệ thống [15] 2.5 TimeStamp Nhãn thời gian-TimeStamp... phương trình: y2 = x3 + ax + b (a, b R và 4a3 + 27b2 ≠ 0) Với một điểm O gọi là điểm tại vô cùng b Phép cộng - Về khía cạnh hình học, để xác định điểm R = P+Q (P≠O, Q≠O, P≠Q), ta nối P và Q bằng đường thẳng L Đường thẳng L cắt đường E tại ba điểm P, Q và –R(x, y) Điểm R(x, –y) sẽ có tung độ là giá trị đối của y 10 Hình 2.1-Phép cộng trên đƣờng cong Elliptic - Về khía cạnh đại số, để xác định điểm R(xR,... ở Leuven-Bỉ bởi Hans Dobbertin, Antoon Bosselaers và Bart Preneel thuộc nhóm nghiên cứu COSIC tại Katholieke Universiteit Leuven và lần đầu tiên được xuất bản vào năm 1996 RIPEMD-160 là một phiên bản được tăng cường của RIPEMD với một kết quả băm 160-bit được thiết kế thiết kế để sử dụng như là một thay thế an toàn cho các hàm băm 128-bit MD4, MD5 và RIPEMD RIPEMD-160 dự kiến sẽ được an toàn trong...CHƢƠNG 2: CƠ SỞ MẬT MÃ HỌC CỦA TIỀN ĐIỆN TỬ BITCOIN 2.1 Chữ ký số trên hệ mật đƣờng cong Eliptic (ECSDA) 2.1.1 Đƣờng cong Elliptic 2.1.1.1 Định nghĩa đường cong Elliptic theo công thức Weierstrass Đường cong elliptic E trên trường K là tập hợp các điểm (x, y) KxK thỏa mãn phương trình: y2 + a1xy + a3y = x3+ a2x2 + a4x + a6 (ai K và 4a43+27a62≠0) Với một điểm O gọi là điểm tại vô... -P(xP, -yP) E và P+ (-P) = O 11 Ví dụ: xét đường cong Elliptic: y2 = x3 - x trên trường số thực, P(2, √ ) E thì điểm đối xứng của P là -P(2, √ ) E c Phép nhân đôi - Về khía cạnh hình học, để xác định điểm R= 2P = P+P, ta vẽ tiếp tuyến L của đường cong elliptic tại điểm P, điểm –R là giao điểm còn lại của L với E và R = 2P = P+P Hình 2.2-Phép nhân đôi trên đƣờng cong Elliptic - Về khía cạnh đại... phương án được chấp nhận và Provider bắt đầu phản hồi yêu cầu dịch vụ cho Requester Ngược lại, phương án bị từ chối Đối với Non-interactive Hashcash: - Provider và Requester thỏa thuận trước yêu cầu của bài toán khó và các tham số: hàm băm H (SHA-1), chuỗi bit s là chuỗi bit biểu diễn thông tin định danh duy nhất của dịch vụ mà Requester yêu cầu (có thể là tên miền, địa chỉ email…) và số nguyên dương w... băm SHA-256 2.2.2.1 Giới thiệu Secure Hash Algorithm (SHA) được công bố trong Hồ sơ Liên bang năm 1992 và được chấp nhận làm tiêu chuẩn vào năm 1993 do Viện Tiêu Chuẩn và Công Nghệ Quốc Gia (NIST) Ý tưởng thuật toán băm SHA-256 được thực hiện trong các bước sau: - Bƣớc 1: Thông điệp ban đầu được tiền xử lý thành thông điệp M rồi được chia nhỏ thành N khối 512 bits: M(1), M(2), …, M(N) - Bƣớc 2: Khởi... và (16+7) mod 23 = 0 c Phép nhân đôi - Để xác định điểm R(xR, yR) = 2P(xP, yP) với yP ≠ 0, ta tính xR và yR như sau: = mod p xR = (2 – 2xP) mod p yR = (( xP – xR) – yP) mod p Ví dụ: xét đường cong Elliptic: y2 mod 23 = (x3+x+1) mod 23 trên trường Z23 với P(3, 10) E Tính theo công thức trên ta có: = (28/20) mod 23 = (5/20) mod 23 = (1/4) mod 23 = 6 do 6*4 1 (mod 23) xR = (36-6) mod 23 = 7 và ... CHƢƠNG 1: TỔNG QUAN VỀ TIỀN ĐIỆN TỬ, CRYPTOCURRENCY VÀ BITCOIN 1.1 Giới thiệu tiền điện tử, Cryptocurrency Bitcoin 1.2 Các vấn đề tiền điện tử Bitcoin .8 CHƢƠNG... hình thành nên đồng tiền điện tử Bitcoin nguyên lý hoạt động hệ thống tiền điện tử ngang hàng Bitcoin, lựa chọn đề tài: Về tiền điện tử, Cryptocurrency Bitcoin cho luận văn Bố cục luận bao... dung chương CHƢƠNG 1: TỔNG QUAN VỀ TIỀN ĐIỆN TỬ, CRYPTOCURRENCY VÀ BITCOIN 1.1 Giới thiệu tiền điện tử, Cryptocurrency Bitcoin Theo quan điểm chủ nghĩa Mác-Lênin, tiền tệ hàng hoá đặc biệt, dùng