(Figure 24). Both blocks are named as ‘block 3’ in the
local chains. When block with data ‘0101’ is
broadcasted to Alice’s node, it is ignored, since there
is already a block with pointing to ‘block 2’ (with data
‘1010’).
Figure 25: Alice creates a block with data ‘0110’.
Later Alice creates other block, now with data
‘0110’. It results in a bigger chain shown in Figure
25. Finally, broadcasting the longest chain causes the
overwritten of the other chain (with block ‘0101’).
Hence, the implemented application behaves as the
proposed idea of applying the distributed Blockchain
algorithm to digital contracts.
4 CONCLUSIONS
We proposed an approach to support the management
of digital contracts, motivated by the need to
guarantee contract integrity and signature
authenticity, and also to provide a trustable
environment without involving intermediaries as with
regular contracts. Our proposal is mainly based on
Blockchain technology, but also includes contract
hashing (using SHA-256 algorithm) and
authentication based on public and private keys
(using RSA algorithm).
The idea is that, after consensus about the contract
rules, every part emits a signature of the hash of the
digital contract. Each signature is inserted as a
different block in the chain. This process happens
inside a node of the network. When every party has
signed the contract, the new blocks are broadcasted to
the rest of the network. After some time, if the
Blockchain is not overwritten by some other block
addition, the agreement is done. If some signatures
cannot enter the Blockchain, the local chain is
updated and they are reinserted and broadcasted
again, until all signatures are part of the Blockchain.
We developed a prototype to ensure the viability
of our proposal. We also presented a case of use to
demonstrate the prototype usage. The current
examples can be easily generalized to any number of
nodes, parties, contracts, and addendums. Extensions
of our prototype are encouraged, in a way to facilitate
the proposal application, for instance by adding
facilities to communicate with processes across
different machines, and by establishing directives to
manage keys in a secure way.
Regarding the proposal itself, we intend to
investigate enhancements in the protocols, including
to deal with incomplete networks, and to add
consensus algorithms for new blocks in the chain. We
would like to study the proposal resilience to nodes’
failure and message losses. A web application to
access Blockchain data is also of interest to improve
the application usability. Both proposal and
implementation are then suitable to further
improvements, being an appropriate environment for
research and education purposes.
REFERENCES
Alharby, M., Moorsel, A. V., 2017. Blockchain-based
smart contracts: a systematic mapping study. Computer
Science & Information Technology (CS & IT), 7, 1-16.
Borkar, S., Chien, A., 2011. The future of microprocessors.
Communications of the ACM, 54 (5), 67.
Cong, L., Zheng, H., 2017. Blockchain Disruption and
Smart Contracts. SSRN Electronic Journal.
Corbett, J. C., et al., 2013. Spanner: Google’s globally
distributed database. ACM Transactions on Computer
Systems (TOCS). 31 (3), No. 8.
Ding, H., Nutanong, S., Buyya, R., 2004. Peer-to-Peer
Networks for Content Sharing. Technical Report,
GRIDS-TR-2003-7, Grid Computing and Distributed
Systems Laboratory. University of Melbourne,
Australia.
Kalamsyah, S. A., Barmawi, A. M., Arzaki, M., 2018.
Digital Contract Using Block Chaining and Elliptic
Curve Based Digital Signature. 6th International
Conference on Information and Communication
Technology (ICoICT).
Miraz, M., Ali, M., 2018. Applications of Blockchain
Technology beyond Cryptocurrency. Emerging
Technologies in Computing (AETiC), 2 (1).
Nakamoto, N., 2017. Centralised Bitcoin: A Secure and
High Performance Electronic Cash System. SSRN
Electronic Journal.
Vashchuk, O., Shuwar, R., 2018. Pros and cons of
consensus algorithm proof of stake. Difference in the
network safety in proof of work and proof of stake.
Electronics and Information Technologies, 9.
add 0110
Index Hash PrevHash Timestamp Data
0 e3b0c442 00000000 1543547516
1 2f715cac e3b0c442 1543547787 bc27076c
2 1d9198e2 2f715cac 1543547832 d77b3c7b
3 430c0c4e 1d9198e2 1543548033 1010
4 af340aa5 430c0c4e 1543548097 0110