• Tidak ada hasil yang ditemukan

DAFTAR SINGKATAN. Distributed hash table Domain Name System EVM IEEE : :

N/A
N/A
Protected

Academic year: 2021

Membagikan "DAFTAR SINGKATAN. Distributed hash table Domain Name System EVM IEEE : :"

Copied!
19
0
0

Teks penuh

(1)

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

(2)

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).

(3)

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:

(4)

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.

(5)

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

(6)

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.

(7)

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

(8)

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 System

Gambar 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).

(9)

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

(10)

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):

(11)

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

(12)

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,

(13)

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:

(14)

 Cryptocurrency transactions

 Smart contracts.

 Certificates and Digital Signature

Tabel II

Tipe 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

(15)

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,

(16)

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

Contract

tanpa penerapan IPFS

Contract

dengan IPFS Selisih biaya Biaya pembuatan

contract 569684 gas 339433 gas 230251 gas

Biaya transaksi 424218 gas 147617 gas 276601 gas

(17)

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.

(18)

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

Gambar II-4 menunjukkan efek dari proses enkripsi dan proses dekripsi, secara garis besar proses enkripsi adalah proses pengacakan plain text menjadi cipher text yang sulit dibaca oleh seseorang yang tidak mempunyai kunci dekripsi.

Jadi suatu proses enkripsi yang baik adalah menghasilkan cipher text yang memerlukan waktu yang lama untuk didekripsi oleh seseorang yang tidak mempunyai kunci dekripsi (Kromodimoeljo, 2009).

II.7.2 Tujuan Kriptografi

Kriptografi memiliki tujuan untuk mencapai aspek keamanan dari sebuah informasi, terdapat empat tujuan dasar dari ilmu kriptografi, yaitu (Musfiroh, 2017):

1. Kerahasian Data

Menjaga isi informasi dari orang lain yang tidak memiliki otoritas terhadap sebuah informasi, kecuali yang memiliki kunci untuk melakukan dekripsi terhadap informasi tersebut.

2. Integritas Data

Integritas data sebagai jaminan bahwa data tidak mengalami perubahan dan utuh pada saat proses pengiriman data hingga selesai (D.Sinaga, 2017).

3. Autentikasi

(19)

18

Identifikasi atau pengenalan berdasarkan kesatuan sistem atau informasi oleh user agar dapat saling berkomunikasi.

4. Non-repudiasi

Suatu usaha atau mekanisme dan pembuktian bahwa pesan yang diterima merupakan pesan yang dikirim oleh si pengirim.

II.7.3 Jenis Kriptografi

Berdasarkan kunci yang digunakan, kriptografi dibagi menjadi dua jenis, yaitu (Riadi, 2014):

1. Algoritma Simetris

Algoritma ini disebut simetris karena mempunyai kunci yang sama dalam proses enkripsi maupun dekripsi, sehingga algoritma ini biasa disebut algoritma satu kunci atau kunci tunggal. Kunci pada algoritma ini bersifat rahasia atau private key, sehingga disebut juga algoritma private key.

Beberapa contoh algoritma simetris yaitu DES dan AES.

2. Algoritma Asimetris

Algoritma ini disebut asimetris karena mempunyai kunci yang berbeda antara enkripsi dan dekripsi. Kunci yang digunakan untuk melakukan enkripsi adalah public key, sedangkan kunci yang digunakan untuk melakukan dekripsi adalah private key.

II.8

Quality of Service (QoS)

Quality of Service (QoS) merupakan sebuah metode yang dapat digunakan untuk melakukan pengukuran terhadap kualitas dari sebuah jaringan dan merupakan suatu upaya untuk mendefinisikan karakteristik dan sifat dari suatu servis. QoS digunakan untuk mengukur sekumpulan atribut dari kinerja yang telah dispesifikasikan dan diasosiasikan dengan suatu servis (Cisco, 2016).

QoS memiliki beberapa parameter, yaitu Bandwidth, Jitter, throughput, packet loss, dan delay (Lubis & Pinem, 2014).

1. Bandwidth

Bandwidth merupakan suatu nilai transfer data yang dihitung dalam satuan

bitpersecond (bps), antara server dan client. Bandwidth dapat didefinisikan

luas atau lebar cakupan frekuensi yang digunakan oleh sinyal dalam media

Referensi

Dokumen terkait