xviii
DAFTAR SINGKATAN
ABI : Application Binary Inteface
DApp : Decentralized Application
DHT DNS
: :
Distributed hash table Domain Name System EVM
IEEE
: :
Ethereum Virtual Machine
Institute of Electrical and Electronics Engineers
Internet : Interconnected Network
IPFS : Interplanetary File System
IPNS : Interplanetary Name System
JSON MFS
: :
JavaScript Object Notation Mutable File System NDLC
NPM
:
:
Network Development Life Cycle Operation System
Node Package Manager P2P
POSIX
: :
Peer to peer
Portable Operating System Interface
RAM : Random Access Memory
SFS TIPHON
QoS
: :
:
Self-Certified Filesystems
Telecommunications and Internet Protocol Harmonization
Quality of Service
1
BAB I PENDAHULUAN
I.1 Latar Belakang
Pada saat ini seluruh kegiatan bisnis terikat pada kontrak atau perjanjian, kontrak atau data tertulis tidak aman digunakan. Kontrak tertulis mempunyai beberapa kelemahan yaitu kontrak dapat hilang dan rusak, tidak hemat biaya dan salah satu pihak bisa saja melakukan kecurangan (Wennergren, dkk, 2014:05).
Solusi untuk itu adalah menggunakan smart contract Ethereum. Smart contract Ethereum merupakan protokol komputer yang berfungis untuk memfasilitasi, memverifikasi, atau menegakakan negoisasi secara digital yang ditulis melalui kode program. Smart contract bekerja tanpa melalui pihak ketiga dan memiliki proses transaksi yang kredibel sehingga tidak bisa dilacak ataupun diubah. (Atzei, Bartoletti dan Cimoli, 2017: 1-3)
Smart contract disimpan beserta transaksinya pada Blockchain. Blockchain menggunakan teknologi jaringan peer-ro-peer yang terdistribusi, sehingga Blockchain adalah tempat penyimpanan yang paling aman untuk data digital seperti cryptocurrency, smart contract , properti, saham, berkas, ataupun yang berharga dengan adanya kerahasiaan, integritas dan keaslian data (Rajalakshmi, 2018:1437). Blockchain terdiri dari beberapa daftar blok yang terus bertambah dan dihubungkan oleh algoritma kriptografi. Hal ini didasarkan pada Distributed Ledger Technology (DLT) yang merupakan sistem untuk mencatat transaksi digital dalam penyimpanan terdistribusi tanpa memiliki penyimpanan secara terpusat. Distributed Ledger Technology (DLT) (Atzei, Bartoletti dan Cimoli, 2017: 1-3).
Untuk menyimpan data pada Blockchain memerlukan biaya yang cukup
mahal. Karena Blockchain tidak cocok untuk menyimpan data dalam jumlah yang
cukup besar maka banyak developer membuat suatu DApp yang
mengintegrasikan antara IPFS dan smart contract Ethereum. Dengan demikian
untuk penyimpanan data di Blockchain akan lebih murah karena biaya gas yang
dikeluarkan untuk pembuatan kontrak dan pembuatan transaksi menjadi lebih
murah (Sinha dan Kaul, 2018:1209).
2
IPFS merupakan sebuah distributed file system yang bersifat peer-to-peer (P2P), berfungsi untuk menghubungkan semua perangkat komputasi dengan sistem file yang sama. IPFS mengkombinasikan ide – ide sukses dari sistem peer- to-peer sebelumnya yaitu DHT, BitTorrent, Git, dan SFS. Kombinasi ini bertujuan untuk menggantikan teknik distribusi file saat ini dengan teknik yang lebih modern membuatnya menjadi sistem file yang menarik untuk dipelajari (Benet, 2014:03).
Pada penelitian ini akan dibangun sistem aplikasi web yang bersifat DApp (Decentralized Application) yang mengintegrasikan antara IPFS dan smart contract. Aplikasi ini dibuat untuk menggantikan sistem penyimpanan file secara terpusat misalnya Google Drive dan Dropbox. Penelitian ini dilakukan pengukuran terhadap Quality of Service dan integritas data dari IPFS dan smart contract Ethereum sebagai acuan terhadap implementasi untuk suatu perusahaan.
Hasil pengujian ini membuktikan bahwa terdapat packet loss yang berpotensi mempengaruhi kualitas dari integritas data. Sehingga hasil pengujian dari Quality of Service dapat mempengaruhi hasil dari pengujian integritas data.
I.2 Rumusan Masalah
Berdasarkan latar belakang yang diuraikan diatas, maka rumusan masalah pada penelitian ini adalah sebagai berikut:
1. Bagaimana langkah – langkah dalam membangun sistem DApps dengan menerapkan IPFS pada smart contract Ethereum dengan menggunakan sistem operasi Linux Ubuntu?
2. Bagaimana integritas data terhadap penggunaan IPFS pada smart contract Ethereum?
3. Bagaimana Quality of Service (QoS) mengenai komunikasi antar node IPFS pada smart contract Ethereum dengan parameter throughput, packet loss, dan delay?
I.3 Tujuan Penelitian
Berdasarkan rumusan masalah, tujuan yang ingin dicapai dan diperoleh
pada penelitian ini adalah sebagai berikut:
3
1. Membangun sistem web DApps dengan menerapkan IPFS pada Smart Contract Ethereum dengan menggunakan sistem operasi Linux Ubuntu.
2. Mengetahui dan memberikan analisis mengenai integritas data dari pengunggahan data melalui IPFS berdasarkan parameter dari IPFS hash dan IPFS hash download dan content dari file.
3. Mengetahui dan memberikan analisis Quality of Service (QoS) mengenai komunikasi antar node IPFS pada Smart Contract Ethereum dengan parameter yang meliputi throughput, packet loss dan delay. Sehingga dapat disimpulkan seberapa besar performansi serta kehandalan dari penggunaan IPFS.
I.4 Manfaat Penelitian
Manfaat yang diperoleh dari penelitian ini diantaranya sebagai berikut:
1. Sebagai acuan dan pedoman dalam membangun web DApp yang mengintegrasikan IPFS dan smart contract Ethereum menggunakan Sistem Operasi Linux Ubuntu.
2. Sebagai acuan dan rekomendasi seberapa besar performansi serta kehandalan dari penggunaan IPFS mengenai integritas data, throughput, packet loss, dan delay dalam pengimplementasian IPFS pada smart contract Ethereum dengan menggunakan sistem web DApps dengan menggunakan metode Network Development Life Cycle (NDLC).
I.5 Batasan Masalah
Batasan masalah yang dilakukan pada penelitian ini adalah sebagai berikut:
1. Sistem operasi yang digunakan pada penelitian ini adalah Linux Ubuntu 16.04 LTS
2. Penelitian ini dilakukan dengan menggunakan IPFS Cluster private network.
3. Penelitian ini menggunakan sistem web DApp (Decentralized Applications) yang hanya melakukan proses pengunggahan data.
4. Analisis pada integritas data menggunakan hash dari hasil pengiriman data dengan parameter hash yang ada pada smart contract Ethereum.
5. Analisis dari Quality of Service dengan parameter throughput, packet loss
dan delay dihasilkan dari sniffing menggunakan Wireshark.
4 I.6 Sistematika Penulisan
Adapun sistematika penulisan dari penelitian ini dapat diuraikan sebagai berikut:
BAB I PENDAHULUAN
Bab ini berisi mengenai uraian latar belakang, rumusan masalah, tujuan penelitian, manfaat penelitian, batasan masalah, dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisi literatur yang relevan dengan permasalahan yang dihadapi, penelitian terdahulu yang memiliki keterkaitan dengan penelitian yang sedang dilakukan dan menjelaskan teori-teori yang digunakan seperti Model Jaringan komputer, Interplanetary File System (IPFS), Blockchain, Ethereum dan Smart Contract Ethereum, Solidity, Quality of Service (QoS), CIA Triad Model, Kriptografi, metode Networking Development Life Cycle (NDLC).
BAB III METODOLOGI PENELITIAN
Bab ini menjelaskan model konseptual untuk merumuskan solusi dari permasalahan yang ada. Selain itu dijelaskan juga langkah-langkah penelitian secara rinci pada sistematika meliputi tahap awal, tahap analisis (analysis), tahap perancangan (design), tahap simulasi, dan tahap akhir dari penelitian ini.
BAB IV RANCANGAN SISTEM DAN SKENARIO PENGUJIAN Bab ini menjelaskan rancangan sistem dan komunikasi antar node IPFS terhadap pengimplementasian smart contract Ethereum dalam bentuk simulasi proses peer-to-peer pada node IPFS dan analisis integritas data dan Quality of Service (QoS) dari pengaruh beban file atau besarnya file mengenai pengiriman file melalui IPFS.
BAB V HASIL DAN ANALISIS
5
Bab ini menjelaskan pengujian sistem yang telah rancang pada bab sebelumnya, yaitu mengenai pengujian skenario komunikasi antar node IPFS pada smart contract Ethereum, selain itu akan dilakukan analisis terhadap integritas data dan kecepatan proses yang sebelumnya telah diuji menggunakan aplikasi sniffing atau wireshark.
BAB VI KESIMPULAN DAN SARAN
Bab ini menjelaskan kesimpulan dari penelitian yang telah
dilakukan, dari perancangan dan analisis yang dilakukan,
pengujian sistem dan analisis, serta memberikan saran untuk
penelitian selanjutnya.
6
BAB II LANDASAN TEORI
II.1 Model Jaringan Komputer
Gambar II-1 Model Jaringan Komputer
Jaringan komputer adalah sekumpulan perangkat keras maupun perangkat lunak dari beberapa komputer yang saling terhubung dan berbagi satu sama lain.
Jaringan komputer diperlukan untuk memudahkan dalam berbagi sumber atau resource sharing baik itu berupa software, hardware, dan data, serta berguna untuk komunikasi, dan akses informasi (Pratama, 2003). Berikut adalah beberapa model jaringan komputer (Capital, 2018).
II.1.1 Jaringan Terpusat (Centralized)
Jaringan terpusat merupakan representasi dari topologi bintang (star) dimana semua node jaringan terhubung ke node pusat. Setiap node dapat berkomunikasi atau berbagi data dengan node lain terlebih dahulu harus melalui node pusat. Dengan demikian apabila node pusat mengalami kendala atau kerusakan, maka semua node yang terhubung tidak dapat berkomunikasi dan berbagi data satu sama lain.
II.1.2 Jaringan Desentralisasi (Decentralized)
Jaringan komputer desentralisasi merupakan model jaringan komputer dimana terdiri dari beberapa node pusat (server). Jaringan terdesentralisasi bertujuan untuk memecahkan masalah pada jaringan terpusat dengan menambahkan beberapa node pusat yang terhubung dengan node pusat lainnya.
Meskipun jaringan terdesentralisasi lebih dapat diandalkan daripada jaringan
terpusat, mungkin saja masih dapat menimbulkan beberapa masalah. Jaringan
terdesentralisasi masih digunakan oleh Google penggunanya.
II.1.3 Jaringan Distribusi Jaringan terdistribusi (alias
jaringan terpusat. Dalam model jaringan terdistribusi semua memiliki kedudukan yang sama da
kemampuan yang sama untuk memberikan informasi atau berkomunikasi dengan node lainnya. Selama sebuah
node tersebut tetap terhubung ke seluruh jaringan. Semakin banya dipertahankan oleh sebuah
pendistribusian data dengan seluruh jaringan. Dalam hal ini jaringan terdistribusi digunakan oleh BitTorrent. Di jaringan ini,
untuk berbagi file dengan ukuran dapat melayani data ke node
II.2
InterPlanetary File SystemGambar II
IPFS merupakan project
Juan Benet lalu dikembangkan sejak tahun 2014 oleh Protocol Labs, sebuah laboratorium riset dan pengembangan protokol jaringan
Menurut Benet (2014:01) IPFS adalah sebuah
bersifat peer-to-peer (P2P), berfungsi untuk menghubungkan semua perangkat komputasi dengan sistem
IPFS mengkombinasikan ide
sebelumnya yaitu DHT, BitTorrent, Git, dan SFS. Kombinasi ini bertuju menggantikan teknik distribusi
membuatnya menjadi sistem
7
terdesentralisasi masih digunakan oleh Google yang dapat melayani semua
Distribusi (Distributed)
Jaringan terdistribusi (alias peer-to-peer) menghilangkan konsep model jaringan terpusat. Dalam model jaringan terdistribusi semua node yang terhubung
kedudukan yang sama dalam sebuah jaringan. Semua node
kemampuan yang sama untuk memberikan informasi atau berkomunikasi dengan lainnya. Selama sebuah node terhubung setidaknya dengan satu
tersebut tetap terhubung ke seluruh jaringan. Semakin banyak koneksi dipertahankan oleh sebuah node, maka semakin handal komunikasi dan pendistribusian data dengan seluruh jaringan. Dalam hal ini jaringan terdistribusi digunakan oleh BitTorrent. Di jaringan ini, node terhubung secara peer
dengan ukuran file data yang besar. Setiap node dalam jaringan node yang meminta jika memiliki data yang diperlukan
lanetary File System (IPFS)
Gambar II-2 Logo IPFS (Capital, 2018)
project bersifat open source, yang awalnya dirancang oleh Juan Benet lalu dikembangkan sejak tahun 2014 oleh Protocol Labs, sebuah
pengembangan protokol jaringan (Protocol Labs, 2017).
Benet (2014:01) IPFS adalah sebuah distributed file syste
(P2P), berfungsi untuk menghubungkan semua perangkat komputasi dengan sistem file yang sama.
IPFS mengkombinasikan ide-ide sukses dari sytems peer sebelumnya yaitu DHT, BitTorrent, Git, dan SFS. Kombinasi ini bertuju
menggantikan teknik distribusi file saat ini dengan teknik yang lebih modern membuatnya menjadi sistem file yang menarik untuk dipelajari (Benet, 2014:03)
pat melayani semua
) menghilangkan konsep model yang terhubung node memiliki kemampuan yang sama untuk memberikan informasi atau berkomunikasi dengan terhubung setidaknya dengan satu node lain, k koneksi yang , maka semakin handal komunikasi dan pendistribusian data dengan seluruh jaringan. Dalam hal ini jaringan terdistribusi peer-to-peer dalam jaringan memiliki data yang diperlukan.
, yang awalnya dirancang oleh Juan Benet lalu dikembangkan sejak tahun 2014 oleh Protocol Labs, sebuah
(Protocol Labs, 2017).
system yang (P2P), berfungsi untuk menghubungkan semua perangkat
peer-to-peer
sebelumnya yaitu DHT, BitTorrent, Git, dan SFS. Kombinasi ini bertujuan untuk
saat ini dengan teknik yang lebih modern
(Benet, 2014:03).
8
Gambar II-3 IPFS Protocol Stack (Benet, 2014)
Node IPFS menyimpan objek IPFS dalam sebuah penyimpanan lokal. Node terhubung satu sama lain dan mentransfer sebuah objek. Objek – objek ini mewakili sebuah file dan struktur data lainnya. Berdasarkan gambar II-3 protokol IPFS dibagi menjadi tumpukan (stack) sub-protokol yang memiliki tanggung jawab untuk berbagai fungsi:
II.2.1 Identitas dalam InterPlanetary File System (IPFS)
Wennergren menyebutkan bahwa suatu node mengacu pada identitas perangkat komputasi yang ada dalam jaringan IPFS. Identitas node yang berada dalam jaringan IPFS diidentifikasi dengan kriptografi hash dari kunci publik, dibuat dengan kripto S / Kademlia ini diterapkan untuk memastikan bahwa setiap node diotentikasi sehingga tidak ada node “palsu”. Hasil dari enkripsi dikenal dengan istilah NodeID (Wennergren, dkk, 2014:04).
II.2.2 Jaringan dalam IPFS
Menurut Benet (2014:03) IPFS menyimpan address dan protokol dengan tipe string byte yang berformat multiaddr. Sebagai contoh :
# an SCTP/IPv4 connection/ip4/10.20.30.40/sctp/1234/
Untuk menemukan alamat jaringan semua node yang relevan yaitu dengan menggunakan sistem routing yang berlandaskan DHT (Distributed Hash Table).
Implementasi DHT yang digunakan dalam IPFS adalah untuk menyimpan dan mengamankan NodeID dan mencegah serangan Sybil (Wennergren, dkk, 2014:05).
II.2.3 Routing dalam IPFS
9
Routing dalam IPFS berfungsi mengelola informasi untuk dapat menemukan peers dan objek serta mampu merespon local dan remote queries.
IPFS melakukan routing menggunakan DSHT berdasarkan S/ Kademlia dan Coral. Ukuran dari objek dan pola penggunaan IPFS mirip dengan Coral dan Mainline, sehingga DHT IPFS dapat membuat perbedaan unutk nilai yang disimpan berdasarkan ukurannya. Untuk ukuran file 1KB disimpan langsung di DHT. Untuk penyimpanan ukuran file besar, DHT hanya menyimpan referensi yang merupakan NodeID dari peers yang dapat melayani sebuah blok (Benet, 2014:04).
II.2.4 Block Exchange – Bitswap Protocol
Di dalam IPFS, distribusi data dilakukan dengan bertukar blok dengan peer menggunakan protokol yang terinspirasi dari BitTorrent yaitu Bitswap. Seperti BitTorrent, Bitswap peers mencari satu set blok (want_list), dan memiliki satu set blok lainnya untuk diberikan (have_list). Tidak seperti BitToreent, Bitswap tidak memliki batas blok dalam satu torrent. Bitswap beroperasi seperti marketplace dimana setiap node dapat memperoleh blok yang mereka butuhkan, terlepas dari file apa yang menjadi bagian dari blok tersebut. Blok dapat berasal dari file yang sama sekali tidak terkait dengan filesystem.
Dalam situs resmi IPFS yaitu ipfs.io menjelaskan bahwa node IPFS memperlakukan data yang mereka simpan seperti cache, yang berarti bahwa tidak ada jaminan bahwa data akan terus disimpan di local storage. semua objek yang memegang konten yang sama persis sama, hanya akan disimpan sekali.
Jika node menganggap suatu objek penting, pengguna dapat menyematkan objek sehingga akan tetap berada di penyimpanan lokal. Hal tersebut menguntungkan karena IPFS tidak harus terus mengambil objek melalui jaringan ketika mereka ingin mengaksesnya (Wennergren dkk, 2014:06).
II.2.5 Object Merkle DAG
Secara esensial IPFS merupakan peer-to-peer sistem untuk mengambil dan
membagikan IPFS object. IPFS object memliki struktur dengan dua field sebagai
berikut (Benet, 2014):
10
1. Data, merupakan blob dari data binary tidak terstruktur dengan ukuran kurang dari 256 kb.
2. Links, merupakan array yang berisikan struktur link yang menghubungkan IPFS object dengan IPFS object lainnya. Struktur link memiliki beberapa field sebagai berikut ini:
a. Name, nama dari sebuah link.
b. Hash, merupakan hasil dari object IPFS yang dihubungkan.
c. Size, ukuran dari sebuah objek IPFS yang dihubungkan.
II.2.6 Files Transfer dalam IPFS
Dalam IPFS untuk mendistribusikan file dengan menggunakan protokol bernama Bitswap dengan cara bertukar blok antar peer. Blok yang dimaksud adalah struktur biner data yang berisi sejumlah informasi file. Dalam IPFS, konten file dibagikan ke dalam beberapa blok (Benet, 2014:04-06).
Pendistribusian file terjadi seperti alur berikut ini. Pertama, Bitswap akan melakukan pencarian blok yang dibutuhkan suatu peer dengan melakukan broadcast “want_list” ke semua peer yang terhubung. Setelah menerima sebuah want_list, node akan menyimpannya, lalu memeriksa ketersediaan dan mengirimkan blok yang diinginkan kepada penerima. Penerima akan memverifikasi kesesuaian file dengan checksum multihash. Jika file tidak sesuai penerima berhak untuk menolak file dan proses file sharing dihentikan. Setelah menyelesaikan transmisi blok yang benar penerima mengirimkan konfirmasi acceptance dan memindahkan blok dari want_list ke have_list. Beberapa node diizinkan menerima berbagai blok file atau seluruh file sekaligus dalam satu waktu (Benet, 2014:04-06).
Bitswap akan menyimpan history file transfer pada Bitswap Ledger. Setelah melakukan file sharing, baik penerima maupun pengirim memperbarui Bitswap Ledger mereka untuk mencerminkan byte tambahan yang ditransmisikan.
Semakin banyak byte yang tercatat dalam Bitswap Legder maka node tersebut semakin dipercaya oleh Bitswap (Benet, 2014:04-06).
II.2.7 IPNS: Naming and Mutable State
InterPlanetary Name System memperbarui mutable links merupakan content-addressed
Itu berguna untuk berbagai hal, tetapi menyulitkan untuk mendapatkan versi terbaru. Name didalam IPNS merupakan
record yang berisi informasi tentang ditanda tangani oleh private key kapan saja.
IPNS bukan satu –
pada IPFS. Bisa menggunakan DNSLink yang saat ini jauh lebih cepat daripada IPNS dan menggunakan nama yang lebih mudah dibaca.
Karena file dalam IPFS ditujukan sehingga menjadi sulit untuk di
dibangun ke dalam IPFS yang memungkinkan untuk menggunakan
file sistem yang dapat menambah, menghapus, memindahkan, dan mengubah MFS files dan memungkinkan untuk meng
(Benet, 2014:09).
II.3 Blockchain
Blockchain adalah rantai struktur data ibaratkan sebuah
mendokumentasi dan memverifikasi semua transaksi yang dilakukan oleh atau pengguna. Blockchain
untuk menghasilkan dan memperbarui data transaksi
block (block-chain) untuk memverifikasi dan menyimpan data transaksi, menggunakan kriptografi asimetris untuk memasti
transmisi pada data, menggunakan kontrak intelijen untuk me memanipulasi data (Chen, 2017)
Blockchain memiliki beberapa karakteristik yaitu desentralisasi, persistensi, anonimitas dan
11
Planetary Name System (IPNS) adalah sistem untuk membuat dan mutable links ke IPFS content. Karena object didalam IPFS
addressed, address akan berubah setiap saat content
Itu berguna untuk berbagai hal, tetapi menyulitkan untuk mendapatkan versi didalam IPNS merupakan hash dari public key. Berkaitan dengan yang berisi informasi tentang hash berhubungan dengan link yang sudah
private key records dapat ditanda tangani dan di
– satunya cara untuk membuat alamat yang dapat diubah pada IPFS. Bisa menggunakan DNSLink yang saat ini jauh lebih cepat daripada IPNS dan menggunakan nama yang lebih mudah dibaca.
dalam IPFS ditujukan pada content yang tidak dapat diubah, enjadi sulit untuk diedit. Mutable File System (MFS) adalah alat yang
IPFS yang memungkinkan untuk menggunakan name stem yang dapat menambah, menghapus, memindahkan, dan mengubah
s dan memungkinkan untuk mengupdate links dan hash sebelumnya
Gambar II-5 Logo Blockchain
adalah rantai struktur data ibaratkan sebuah general ledger mendokumentasi dan memverifikasi semua transaksi yang dilakukan oleh
hain menggunakan algoritma distributed node
dan memperbarui data transaksi menggunakan struktur rantai ) untuk memverifikasi dan menyimpan data transaksi,
menggunakan kriptografi asimetris untuk memastikan keamanan akses dan data, menggunakan kontrak intelijen untuk memprogram dan
(Chen, 2017).
memiliki beberapa karakteristik yaitu desentralisasi, persistensi, anonimitas dan auditability (Zheng, 2017).
istem untuk membuat dan didalam IPFS content berubah.
Itu berguna untuk berbagai hal, tetapi menyulitkan untuk mendapatkan versi . Berkaitan dengan yang sudah dapat ditanda tangani dan dipublish
nya cara untuk membuat alamat yang dapat diubah pada IPFS. Bisa menggunakan DNSLink yang saat ini jauh lebih cepat daripada
yang tidak dapat diubah, System (MFS) adalah alat yang name-based stem yang dapat menambah, menghapus, memindahkan, dan mengubah
sebelumnya
ledger yang mendokumentasi dan memverifikasi semua transaksi yang dilakukan oleh user concencus menggunakan struktur rantai ) untuk memverifikasi dan menyimpan data transaksi, dengan kan keamanan akses dan mprogram dan
memiliki beberapa karakteristik yaitu desentralisasi,
12 II.3.1 Blockchain Architecture
Gambar II-6 Arsitektur Blockchain (Zheng, 2017)
Semua transaksi yang dilakukan akan disimpan dalam daftar block. Rantai akan tumbuh ketika block baru ditambahkan secara terus menerus. Setiap block memiliki timestamp, hash kriptografisnya sendiri dan referensi hash dari block sebelumnya yang tertera pada block header. Jumlah maksimum transaksi dalam satu block tergantung pada ukuran block dan ukuran setiap transaksi (Zheng, 2017).
II.3.2 Tipe Blockchain
Menurut Karamitsos, Papadaki dan Al Barghuthi (2018:180), platform teknologi Blockchain dapat diprogram menjadi dua jenis yaitu public Blockchain dan private Blockchain :
Public Blockchain: Setiap orang dapat membaca dan melakukan transaksi.
Private Blockchain : Memungkinkan penentuan izin yang berbeda untuk operasi yang berbeda pada Blockchain.
II.3.3 Tujuan Blockchain
Blockchain berguna untuk seseorang yang perlu mengakses, memverifikasi, mengirim atau menyimpan informasi dengan aman dan dijaga keaslian dari pengiriman informasi tersebut. Informasi ini dapat berupa identitas seseorang, riwayat pengiriman produk, catatan medis, atau aset digital seperti uang (Rajalakshmi, 2018:1437).
Menurut Grech dan Camilleri (2017:22) Blockchain biasanya digunakan
untuk menyimpan berbagai rekaman yaitu:
Cryptocurrency transactions
Smart contracts.
Certificates and Digital Signature
Tabel IITipe Blockchain Tujuan
Blockchain
Smart Contract
Cryptocurrency
II.4 Ethereum
Ethereum adalah sebuah platform dengan rantai smart contract. Ethereum memiliki fungsi seperti menjalankan smart contract
Ether (ETH). Pada awalnya
dimulai oleh Vitalik Buterin dan dikembangkan oleh Gavi Kontrak pada smart contract
Turing-Complete, yang disebut EVM cryptocurrency. Tidak seperti
uang, Ethereum memungkinkan pengembang untuk membuat program mereka sendiri ke dalam kontrak, sehingga pengembang bebas untuk meletakkan logika bisnis ke Blockchain. Smart contract
berbagai data seperti uang, properti, saham, data keuangan, data
13 ncy transactions.
Certificates and Digital Signature.
Tabel II-1 Tipe Blockchain (Grech, 2017:22)
Tipe
Blockchain
Public Blockchain Private Blockchain
Ethereum Ethereum/Hyper
Fabric
Bitcoin Multichain
Gambar II-7 Logo Ethereum
adalah sebuah platform dengan rantai-blok yang memiliki fungsi . Ethereum memiliki fungsi seperti virtual machine
smart contract secara peer-to-peer dengan uang kriptografi yaitu Ether (ETH). Pada awalnya Ethereum merupakan sebuah proyek besar yang dimulai oleh Vitalik Buterin dan dikembangkan oleh Gavin Wood (Wood, 2018).
smart contract Ethereum ditulis dalam bahasa
, yang disebut EVM bytecode. Ethereum juga termasuk kedalam . Tidak seperti Bitcoin yang terbatas pada kasus penggunaan mata memungkinkan pengembang untuk membuat program mereka diri ke dalam kontrak, sehingga pengembang bebas untuk meletakkan logika Smart contract membantu dalam menerima dan mengirim berbagai data seperti uang, properti, saham, data keuangan, data customer
Blockchain
Hyperledger
blok yang memiliki fungsi virtual machine yang dengan uang kriptografi yaitu merupakan sebuah proyek besar yang (Wood, 2018).
dalam bahasa bytecode
juga termasuk kedalam
yang terbatas pada kasus penggunaan mata
memungkinkan pengembang untuk membuat program mereka
diri ke dalam kontrak, sehingga pengembang bebas untuk meletakkan logika
dan mengirim
customer, data
pegawai atau apapun yang berh keintegritasan dari data tersebut
Untuk mempercepat proses komunikasi dan mencegah konfilk atau kehilangan data smart contract
disetiap node jaringan diatas teknologi
Smart contract dapat terlaksana apabila adanya transaksi dan setiap transaksi memerlukan biaya atau Ether (ETH).
beberapa alasan pengguna melakukan transaksi pada jaringan membuat kontrak baru; (ii) menjalankan fun
kontrak atau ke pengguna lain (Atzei, Bartoletti dan Cimoli, 2017:1 Pada saat seseorang menginginka
bisa mendapatkannya melalui seorang penambang atau menjadi penambang (miner). Dalam melakukan proses penambangan (
terdistribusi dan tidak memiliki pemilik tunggal.
menyimpan transaksi dalam suatu blok dan (Wang dkk, 2016:4-5)
penambang (miner) harus memecahkan algoritma setiap blok, setiap blok yang berhasil dipecahkan maka penambang ak
2017:12).
II.5 Solidity
14
pun yang berharga dengan cara transparan dan dijaga tegritasan dari data tersebut (Atzei, Bartoletti dan Cimoli, 2017).
Gambar II-8 Smart Contract Ethereum
Untuk mempercepat proses komunikasi dan mencegah konfilk atau smart contract dan transaksi dibuat, disimpan dan dijalankan jaringan diatas teknologi Blockchain (Dannen, 2017:12).
dapat terlaksana apabila adanya transaksi dan setiap transaksi memerlukan biaya atau Ether (ETH). (Galal dan Youssef, 2018:2)
alasan pengguna melakukan transaksi pada jaringan Ethereum membuat kontrak baru; (ii) menjalankan fungsi kontrak; (iii) mentransfer E kontrak atau ke pengguna lain (Atzei, Bartoletti dan Cimoli, 2017:1-3).
Pada saat seseorang menginginkan sebuah Ether (ETH), maka seseorang bisa mendapatkannya melalui seorang penambang atau menjadi penambang ). Dalam melakukan proses penambangan (Mining) menggunakan sistem terdistribusi dan tidak memiliki pemilik tunggal. Proses mining adalah proses menyimpan transaksi dalam suatu blok dan menambahkan blok ke Blockchain
5). Untuk melakukan penambangan (mining
) harus memecahkan algoritma setiap blok, setiap blok yang berhasil dipecahkan maka penambang akan mendapatkan sekitar 5 ether
Gambar II-9 Logo Solidity
arga dengan cara transparan dan dijaga
Untuk mempercepat proses komunikasi dan mencegah konfilk atau dibuat, disimpan dan dijalankan
dapat terlaksana apabila adanya transaksi dan setiap (Galal dan Youssef, 2018:2) Ada Ethereum, yaitu: (i) gsi kontrak; (iii) mentransfer Ether ke
Ether (ETH), maka seseorang
bisa mendapatkannya melalui seorang penambang atau menjadi penambang
) menggunakan sistem
adalah proses
Blockchain
mining) seorang
) harus memecahkan algoritma setiap blok, setiap blok yang
ndapatkan sekitar 5 ether (Dannen,
15
Developer pada umumnya tidak menulis smart contract menggunakan bahasa EVM bytecode melainkan bahasa pemograman Solidity (Parizi dkk, 2018). Solidity adalah bahasa pemrograman mirip Javascript yang digunakan untuk membuat smart contract. Kode yang telah dibuat akan dikompilasi menjadi EVM byte-code agar dapat dieksekusi di jaringan Ethereum (Atzei, Bartoletti dan Cimoli, 2017:3). Setelah kompilasi, kompiler membuat Application Binary Interface (ABI) untuk kontrak. ABI adalah seperangkat metadata yang menjelaskan cara berinteraksi dengan kontrak. ABI biasanya disimpan dalam format JSON (Kopylash, 2018:11).
II.6 Penerapan IPFS pada Smart Contract Ethereum
Gambar II-10 IPFS dan Smart Contract Ethereum
Pada dasarnya Ethereum menyimpan transaksi atau datanya di Blockchain.
Untuk menyimpan data pada Blockchain memerlukan biaya yang cukup mahal, sehingga tidak cocok apabila menyimpan data dalam jumlah besar. Solusi untuk itu dilakukanlah penerapan IPFS pada smart contract Ethereum (Zalecki, 2018).
File utuh akan disimpan pada IPFS sedangkan pada Blockchain hanya menyimpan file berupa hash file dari IPFS. Kemudian hash file disimpan di Blockchain dapat dihubungkan dengan file yang disimpan pada IPFS untuk dapat mengaksesnya (Rajalakshmi dkk, 2018).
Tabel II-2 Perbandingan Biaya Gas dengan dan tanpa IPFS pada Smart Contract (Sinha dan Kaul, 2018:1209)
Kategori Biaya
Contracttanpa penerapan IPFS
Contract
dengan IPFS Selisih biaya Biaya pembuatan
contract 569684 gas 339433 gas 230251 gas
Biaya transaksi 424218 gas 147617 gas 276601 gas
16
Semua aktifitas perhitungan yang dapat diprogram dalam Ethereum dikenakan biaya. Jadi setiap bagian dari perhitungan yang dapat diprogram (ini termasuk membuat kontrak, membuat panggilan pesan, menggunakan dan mengakses penyimpanan dan menjalankan operasi pada mesin virtual) memiliki biaya yang disepakati secara universal dalam hal gas. Setiap transaksi memiliki jumlah gas tertentu atau gasLimit. Transaksi dianggap tidak valid jika dana pada account tidak mencukupi. Penjual atau transactor bebas menentukan biaya gas yang mereka inginkan, namun penambang (miner) bebas mengabaikan transaksi yang mereka pilih. Oleh karena itu, harga gas yang lebih tinggi pada transaksi akan membebani pengirim (biaya Ether) dan memberikan nilai lebih besar kepada penambang (Wood, 2018).
Pada Tabel II-2 menjelaskan perbandingan biaya gas yang dikeluarkan saat pembuatan smart contract dan transaksinya dengan dan tanpa melibatkan IPFS.
Dengan diterapkannya IPFS pada smart contract, biaya gas yang dikeluarkan jauh lebih sedikit daripada tanpa menerapkan smart contract pada saat pembuatan contract ataupun melakukan transaksi. Jika pembuatan contract tanpa ada keterlibatan IPFS akan menghabiskan 569684 gas. Sedangkan jika menerapkan IPFS, pembuatan contract hanya menghabiskan 339433 gas. Sama halnya dengan proses transaksi, jika tanpa penerapan IPFS menghabiskan 424218 gas dan jika adanya penerapan IPFS hanya menghabiskan 146617 gas. Dapat disimpulkan proses akan lebih efisien jika menerapkan IPFS pada smart contract dengan tingkat efisiensi 67.83% pada pembuatan contract dan 183.377% pada proses transaksi (Sinha dan Kaul, 2018:1209).
II.7 Kriptografi
II.7.1 Definisi Kriptografi
Pada awalnya kriptografi berasal dari kata Yunani yang berarti “kode
rahasia”. Kriptografi diciptakan untuk perbedaan antara sandi (chiper) dan kode
(codes). Cipher merupakan karakter atau transformasi dari bit ke bit tanpa
memperhatikan struktur pesan. Sebaliknya kode berarti menggantikan satu kata
dengan kata lain.
17
Data atau pesan yang akan dienkripsi dikenal sebagai plaintext, dalam proses enkripsi dilakukan menggunakan sebuah algoritma dengan beberapa parameter. Hasil dari enkripsi dikenal sebagai cipher text.
Algoritma dalam kriptografi biasanya tidak dirahasiakan, karena hal ini dinilai kurang baik, tetapi yang menjadi kerahasian dalam sebuah kriptografi terletak pada beberapa parameter yang digunakan. Jadi kunci enkripsi ditentukan oleh parameter dan parameter yang menentukan kunci dekripsi yang harus dirahasiakan karena hal ini yang akan menjadi ekuivalen dengan kunci enkripsi.
Gambar II-11 Proses enkripsi dan dekripsi